* guile-snarf.in: Change regexp "^SCM__I" --> "^ *SCM__I".
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
341f78c9
MD
12000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
9a8a1e8a
MD
3 * Makefile.am (EXTRA_DOT_X_FILES, EXTRA_DOT_DOC_FILES): New
4 variables.
5 (guile-procedures.txt): Depend on EXTRA_DOT_DOC_FILES.
6
341f78c9
MD
7 * snarf.h (SCM_SNARF_HERE, SCM_SNARF_INIT, SCM_SNARF_DOCS):
8 Renamed from SCM_HERE, SCM_INIT, SCM_DOCS.
9
10 * smob.h (scm_smobfuns): Removed deprecated type.
11
12 * smob.c, smob.h (scm_newsmob): Removed deprecated function.
13 (Replaced by `scm_make_smob_type'.)
14
15 * keywords.c (scm_tc16_kw): Removed deprecated type.
16 (Replaced by scm_tc16_keyword.)
17
18 * Makefile.am (modinclude_HEADERS): Removed kw.h.
19
20 * kw.h: Removed deprecated header file.
21
22 * evalext.c (serial-map): Removed deprected alias for scm_map.
23 (Has been replaced by `map-in-order'.)
24
25 * ramap.c (serial-array-copy!, serial-array-map!): Removed
26 depracted aliases. (Replaced by `array-copy-in-order!' and
27 `array-map-in-order'.)
28
4f60fa74
MD
292000-06-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
30
31 * gc.h (SCM_VALIDATE_CELL): Rewritten.
32 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
33 SCM_SET_CELL_OBJECT): Use new version of SCM_VALIDATE_CELL.
34 (Thanks to Han-Wen Nienhuys.)
35
adb2c53b
ML
362000-06-10 Michael Livshin <mlivshin@bigfoot.com>
37
38 * guile-doc-snarf.in: don't pipe the CPP output right into sed --
39 write it to the temp file first and check the CPP return code.
40 (I introduced this bug earlier, and this probably caused people
41 with non-GNU C preprocessors to get empty *.x files and not to
42 have the build fail right away...).
43
44 * scmsigs.c (s_scm_sigaction): guard the SIGSYS case with an ifdef
45 -- at least my libc5-based Linux system doesn't define SIGSYS.
46
0abbd8f4
MD
472000-06-08 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
48
aa169af8
MD
49 * snarf.h, guile-snarf.awk.in, guile-snarf.in: Replaced snarf
50 markers with identifiers (SCM__I, SCM__D, SCM__S, SCM__E).
51 (Thanks to Bernard Urban.)
0abbd8f4 52
a6596faa
MD
532000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
54
55 * modules.c (scm_system_module_env_p): Fixed detection of system
56 modules.
57
c29ee3e5
MV
582000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
59
60 * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
61 `program error signals' because they can't currently be handled by
62 Scheme code.
63
2d9cdf4e
DH
642000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
65
66 * procs.h (SCM_SET_SUBRF): Added.
67
68 * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
69 SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
70 report.
71
4b479d98
DH
722000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
73
74 * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
75 value.
76
77 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
78 scm_merge_list_step): Don't take the address of SCM_CAR. Use
79 SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
80
9a09deb1
DH
812000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
82
83 * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
84 replacement for !SCM_FALSEP.
85
86 * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
87 (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
88 (scm_primitive_load), print.c (scm_simple_format), procs.c
89 (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
90 (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
91 (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
92 (scm_string_to_obarray_symbol), throw.c (scm_catch,
93 scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
94 scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
95 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
96 uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
97
2c4fc472
MD
982000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
99
542bfe1d
MD
100 * eval.c (scm_badformalsp): New static function.
101 (SCM_CEVAL): Check arguments for procedure-with-setter closures.
102 (Thanks to Keisuke Nishida.)
103
2c4fc472
MD
104 The major reason for Guile's slow loading speed has been the fact
105 that a chain of Scheme level procedures has been evaluated for
106 every top-level symbol lookup during the first pass through the
107 code.
108
109 The following is a kludge which I suggested four years ago, and
110 which I've repeatedly suggested since. Personally, I've never
111 been bothered by Guile's slow loading speed, so I thought I would
112 let someone else do it...
113
114 But since the new environments will be included first in
115 Guile-1.5, I thought it would make people happy to get the kludge
116 into 1.4.
117
118 * modules.c: Added #include "libguile/vectors.h";
119 Added #include "libguile/hashtab.h";
120 Added #include "libguile/struct.h";
121 Added #include "libguile/variable.h";
122 Capture Scheme level `module-make-local-var!' to be used in the
123 standard eval closure.
124 (scm_standard_eval_closure): New primitive.
125
126 * modules.h (scm_standard_eval_closure): Declare.
127
128 * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
129 instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
130
131 * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
132 standard eval closures.
133
134 * variable.c: Code layout fixes.
135
96372e45
MD
1362000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
137
138 * Makefile.am: Added LIBS line to libpath which accidentally
139 disappeared in the change of 2000-06-01.
140 (Thanks to Dale P. Smith.)
141
cc0bb1ef
MD
1422000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
143
6784d5c0
MD
144 * scmsigs.c (scm_segfault): Removed. (Was probably added by
145 mistake since it is not mentioned in ChangeLog.)
146
cc0bb1ef
MD
147 * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
148 avoid compiler warnings in gcc. (Does this work for other
149 compilers?)
150
f8d4d8e5
MD
1512000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
152
4ecf5aa3
MD
153 * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
154 abort ().
155 (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
156 SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
157 the address of these expressions since they use SCM_VALIDATE_CELL.
158 (Thanks to Bernard Urban.)
159
f8d4d8e5
MD
160 * dynl.c: Changed #include <ltdl.h> --> #include
161 "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
162
b6fae158
CB
1632000-06-01 Craig Brozefsky <craig@red-bean.com>
164
165 * Makefile.am: libguile_la_LDFLAGS gets -version-info args
166 from GUILE-VERSION definition of LIBGUILE version. Added to
167 libpath.h definitions for guileversion and libguileversion which
168 both get their values from GUILE-VERSION definition.
169
7272f6d8
DH
1702000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
171
172 * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
173 file: Code using numbers should not be required to include
174 smob.h.
175
b2728432
DH
1762000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
177
178 * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
179 mit-pthreads.c, mit-pthreads.h: Deleted.
180
181 * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
182 references to deleted files and fsu/mit thread support in
183 general.
184
f8eaf8b9
DH
1852000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
186
187 * hooks.c (symbol_name, scm_create_hook): Restored the original
188 behaviour of scm_create_hook. Changing it was bad as Carl
189 R. Witty has pointed out.
190
191 * gc.c (scm_init_gc): We can still rely on scm_create_hook to
192 protect the object.
193
e11f8b42
DH
1942000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
195
196 * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
197 soon not be done by scm_create_hook any longer.
198
199 * hooks.c (make_hook, print_hook, scm_create_hook,
200 scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
201 SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
202 scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
203 longer have names. As an intermediate solution, the name
204 predicate is emulated via object properties, but use of this
205 feature is deprecated.
206
207 * hooks.h (scm_free_hook): Removed, as it is never defined.
208
47457e8a
DH
2092000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
210
894a712b
DH
211 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
212 Un-deprecated since otherwise user code can't determine whether a
213 number fits into an inum any longer. The names should be changed
214 some time, though.
215
216 * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
217
218 * tags.h (SCM_UNPACK_CAR): Deprecated.
219
2202000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
221
222 * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
47457e8a
DH
223 fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
224 (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
225 numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
226 Replace SCM_UNPACK_CAR appropriately. Don't access cells via
227 SCM_{SET}?C[AD]R unless they are known to be cons cells.
228
229 * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
230 init_heap_seg): Remove unused struct member variable 'valid'.
231
f9a64404
DH
2322000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
233
234 * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
235 scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
236 SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
237 procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
238 variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
239 appropriately.
240
206d3de3
DH
2412000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
242
243 * gc.c (free_list_length), hash.c (scm_hasher), macros.c
244 (scm_macro_type), objects.c (scm_class_of), options.c
245 (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
246 (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
247
445f675c
DH
2482000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
249
250 * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
251 SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
252
253 * eval.c (scm_force): Add documentation.
254
255 * eval.c (scm_force, scm_cons_source): Don't access cells via
256 SCM_{SET}?C[AD]R unless they are known to be cons cells.
257
6ba93e5e
DH
2582000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
259
260 * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
261 (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
262
263 * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
264 nosve #endif conditionally compiled code.
265
fe517a7d
ML
2662000-05-23 Michael Livshin <mlivshin@bigfoot.com>
267
268 * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
269
a564e775
ML
2702000-05-22 Michael Livshin <mlivshin@bigfoot.com>
271
272 * guile-doc-snarf.in: put the preprocessed file through sed to
cf00e803
ML
273 trim all lines to 1024 chars. I hope it doesn't break anybody's
274 sed. we'll see. (note: this is lossy trimming, i.e. the spill
275 isn't wrapped around but actually chopped off. this seemed to me
276 safe because the current snarfer doesn't understand multi-line
277 cookies anyway. in the long term, it would be nice not to depend
278 on AWK for anything.)
a564e775
ML
279
280 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
281 the previous change to this macros, after deciding to torture the
282 snarfer instead.
283
686765af
ML
2842000-05-21 Michael Livshin <mlivshin@bigfoot.com>
285
286 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
287 the yucky, ugly and nasty conditional compilation back. sorry,
288 but it was either that or requiring GAWK to build Guile.
289 (lots of places): removed the code that implemented the old GC
290 scheme.
686765af
ML
291
292 * init.c (scm_boot_guile_1): removed the code conditioned on
293 !GUILE_NEW_GC_SCHEME.
294
295 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
296
297 * gc.c (scm_protect_object, scm_unprotect_object): change the
298 implementation to more efficient (at least in the time complexity
299 sense). the calls should now also be thread-safe -- I suspect
300 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
301 (lots of places): removed the code that implemented the old GC
302 scheme.
686765af
ML
303
304 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
305 SCM_REALLOW_INTS before return. I really wonder about the
306 possible interactions between hashtables, threads & GC. it
307 doesn't look healthy at all.
686765af 308
44e47754
DH
3092000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
310
311 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
312 Dale P. Smith.
313
46d53380
DH
3142000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
315
316 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
317 debug option to verify all accesses to cells actually access
318 objects on the heap.
319
320 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
321 SCM_DEBUG_CELL_ACCESSES is set to 1.
322
323 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
324 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
325 that is accessed.
326
1a548472
DH
3272000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
328
329 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
330 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
331
332 * gc.c (scm_cellp): Fixed and simplified.
333
334 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
335 make_jmpbuf, scm_init_throw): Now using double cells to represent
336 jump buffers when using debug extensions.
337
338 (freejb): Removed.
339
bcee10dd
DH
3402000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
341
342 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
343 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
344 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
345 gh_module_lookup): Accept const pointers as parameters.
346
347 * gh.h gh_data.c (gh_int2scmb): Deprecated.
348
3492000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
350
351 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
352 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
353 the actual arguments in the list, but rather the rest argument as
354 a list of arguments.
355
356 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
357
358 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
359 (scm_list_star, scm_append, scm_append_x), ports.c
360 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
361 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
362 (scm_make_stack), strings.c (scm_string_append), struct.c
363 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
364
365 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
366 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
367 (scm_dynamic_link): Removed possibility to pass flags to
368 scm_dynamic_link, as it had no effect anyway.
369
370 * filesys.c (scm_fcntl): Made single optional rest argument into
371 a standard optional argument.
372
373 * hooks.c (scm_run_hook): A list of rest arguments is never
374 SCM_UNBNDP.
375
376 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
377 strings.c (scm_string_append): Don't perform half-hearted checks
378 to see whether the rest argument forms a proper list any more, use
379 SCM_VALIDATE_REST_ARGUMENTS instead.
380
381 * ports.c (scm_close_all_ports_except): Accept empty list of rest
382 arguments.
383
384 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
385 Simplify verification of rest argument.
386
387 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
388 (ss_handler, handler_message): Make first mandatory rest argument
389 of scm_make_stack into a standard mandatory argument.
390
391 * unif.c (scm_transpose_array, scm_enclose_array,
392 scm_array_in_bounds_p), unif.h (scm_transpose_array,
393 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
394 rest argument into a standard mandatory argument.
395
c8a54c4b
DH
3962000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
397
398 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
399 Keisuke Nishida for the suggestion.) Added debug option
400 SCM_DEBUG_REST_ARGUMENTS.
401
402 * eval.c (scm_map, scm_for_each): Make sure all lists have the
403 same length. Also, removed redundant parameter checks.
404
56100716
DH
4052000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
406
407 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
408
409 * __scm.h: Improved explanation of giving options to make.
410
411 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
412 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
413 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
414 corresponding declaration and comment to __scm.h.
415
416 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
417 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
418 SCM_INUM): Removed conditionally compiled code for Turbo C.
419
420 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
421 That check can be assumed to be redundant except for very rare
422 conditions that actually indicate broken heap data.
423
3c9f20f8
DH
4242000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
425
426 * numbers.c (scm_logcount, scm_integer_length): Reordered
427 dispatch sequence.
428
8536a982
GH
4292000-05-15 Gary Houston <ghouston@arglist.com>
430
431 * stime.c (scm_strftime): don't reset TZ if zone is an empty
432 string. append a "0" to the zone for TZ.
c8a54c4b 433
78166ad5
DH
4342000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
435
436 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
437 sequence.
438
439 (scm_bit_extract): Fixed handling of bignums.
440
f5f2dcff
DH
4412000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
442
443 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
444 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
445 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
446 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
447 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
448 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
449 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
450 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
451 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
452 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
453
454 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
455 scm_output_port_p), print.c (scm_get_print_state), validate.h
456 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
457 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
458 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
459
07ccd85d
GH
4602000-05-14 Gary Houston <ghouston@arglist.com>
461
32f1b9fd
GH
462 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
463 TZ environment variable so that the %Z format returns the zone
464 from the input vector instead of the system default.
465
07ccd85d
GH
466 from Keisuke Nishida:
467 * fports.c (scm_setvbuf): minor docstring fix.
468 * ports.h (scm_generic_fgets): obsolete prototype deleted.
469
3a9809df
DH
4702000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
471
472 * __scm.h: Added new section for debugging options.
473
474 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
475 help developers to get rid of references to deprecated code.
476
477 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
478 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
479 as part of the interface and are marked as deprecated in the
480 header file.
481
482 * numbers.c (scm_make_real, scm_make_complex): Inlined the
483 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
484 respectively.
485
486 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
487 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
488 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
489
e828cb75
DH
4902000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
491
492 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
493 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
494 of two scm_bits_t values instead of two SCM values, because it is
495 legal for cell entries to hold values that are not scheme objects.
496
497 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
498 Use SCM_SETC[AD]R to modify contents of pairs.
499
5986c47d
DH
5002000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
501
502 * numbers.c (IS_INF, isfinite): Added FIXME comment.
503
504 (scm_abs, scm_magnitude): Make these two independent of each
505 other. scm_abs now reports an error if given a complex argument.
506
507 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
508 SCM_REALPART if the object is known to be real.
509
510 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
511 here.
512
513 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
514
eb42e2f0
DH
5152000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
516
517 * eq.c (scm_eqv_p): Separate handling of real and complex
518 values. Remove #ifdef SCM_BIGDIG #endif test.
519
520 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
521 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
522 ramap_rp, scm_array_map_x), random.c (vector_scale,
523 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
524 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
525 the object is known to be real. Use SCM_COMPLEXP instead of
526 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
527 SCM_INEXP.
528
7235ee58
DH
5292000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
530
531 * numbers.c: No need to include unif.h.
532
533 (IS_INF): Returned to old test for now: x == x + 1 will not work
534 for large numbers due to rounding errors.
535 Thanks to Kalle Olavi Niemitalo.
536
bb628794
DH
5372000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
538
539 * numbers.c (scm_divbigdig): Removed outdated comment.
540
541 (scm_number_to_string, scm_string_to_number, scm_number_p,
542 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
543 scm_geq_p, scm_make_rectangular, scm_make_polar,
544 scm_inexact_to_exact): Added comments.
545
546 (add1, scm_init_numbers): Removed add1.
547
98cb6e75
DH
5482000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
549
550 * numbers.c (IS_INF): The new test is x == x + 1. The old test
551 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
552 and Ivan Toshkov.
553
554 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
555 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
556 dispatch sequence.
557
c45c2b6b
MV
5582000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
559
560 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
561 SIGILL and SIGBUS signals. These signals are not continuable and
562 must be handled for real right away.
563
c2ff8ab0
DH
5642000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
565
566 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
567 scm_real_part, scm_imag_part, scm_magnitude,
568 scm_inexact_to_exact): Reordered dispatch sequence.
569
1a450153
DH
5702000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
571
572 * feature.c: No need to include "libguile/smob.h"
573
574 (scm_loc_features, features, scm_add_feature, scm_init_feature):
575 Removed variable 'scm_loc_features' as a pointer to the SCM value
576 holding the features list. Using variable 'features' instead,
577 which holds the interned pair. Thus, SCM_SETCDR can be used
578 instead of pointer trickery.
579
665aeda3
DH
5802000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
581
582 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
583 cell is not known to be a valid pair.
584
ab66ae47
DH
5852000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
586
587 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
588 ASRTSYNTAX. Using SCM_ASSYNT instead.
589
590 (scm_m_body): Don't create a redundant cons cell.
591
592 (scm_m_do): Removed redundant test 'bodycheck'.
593
594 (bodycheck): Removed.
595
596 * stacks.c (stack_depth, read_frame, read_frames): Removed
597 redundant calculation of size, minimized some variable scopes.
598
4983cbe4
DH
5992000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
600
601 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
602 long as a cell is not known to be a valid pair.
603
604 (scm_pair_p): Eliminated redundant SCM_IMP test.
605
44d3cb0d
DH
6062000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
607
608 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
609 scm_deval_args): Eliminated redundant SCM_IMP tests.
610
611 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
612 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
613 scm_make_doubly_weak_hash_table): Fixed critical sections.
614 Thanks to Keisuke Nishida.
615
9a00c9fc
DH
6162000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
617
618 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
619 Fixed some goto-related initialization bugs (introduced by me).
620
b82c6ce0
DH
6212000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
622
623 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
624
625 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
626
627 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
628 pointer trickery.
629
630 (SET_DYNL_HANDLE): Added.
631
632 (scm_dynamic_object_p): Simplified.
633
634 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
635 better error message when accessing unlinked dynamic objects.
636 Eliminated call to get_dynl_obj.
637
106428b3
MV
6382000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
639
7eea5296 640 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
641 be an array of function pointers instead of being a pointer to an
642 array returning function. Thanks to Kalle Olavi Niemitalo!
643
f4c627b3
DH
6442000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
645
646 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
647 (scm_divbigbig, scm_divbigint): Don't return zero any more to
648 indicate that a division has a remainder, return SCM_UNDEFINED
649 instead. It is improbable that anyone actually used these
650 functions outside of numbers.c. For this reason and due to the
651 change in behaviour the functions are static now. Thus, if
652 surprisingly there are users of these functions they will at least
653 get alarmed.
654
655 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
656 that already have a clean dispatch order. Note: SCM_BIGDIG is
657 always defined.
658
659 * numbers.c (scm_inexact_p): Simplified.
660
661 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
662 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
663 sequence, thereby fixing some comparisons of SCM values with
664 integer constants.
665
666 * numbers.c (scm_divide): Division by zero of inums leads to an
667 error now. (Formerly, an infinite number was returned.)
668
669 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
670 if a division has a remainder.
671
3a6e6616
GH
6722000-05-02 Gary Houston <ghouston@arglist.com>
673
674 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
675
f8de44c1
DH
6762000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
677
678 * numbers.c (scm_logtest, scm_division): Reordered dispatch
679 sequence, thereby fixing some comparisons of SCM values with
680 integer constants.
681
682 * numbers.h (scm_makdbl): Mark as deprecated at the point of
683 declaration.
684
685 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
686 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
687 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
688 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
689 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
690 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
691 (ramap_rp, scm_array_map_x), random.c (scm_random,
692 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
693 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
694 call to scm_makdbl with a call to scm_make_real or
695 scm_make_complex, depending on whether the imaginary part is known
696 to be zero.
697
7f5fa419
GH
6982000-05-01 Gary Houston <ghouston@arglist.com>
699
0607c109
GH
700 * scmsigs.c: fix the definition of orig_handlers for the case
701 that HAVE_SIGACTION is not defined (thanks to
702 Kalle Olavi Niemitalo).
703
7f5fa419
GH
704 * Makefile.am: remove include_HEADERS (was libguile.h)
705 libguile.h: moved to top level directory.
706
09fb7599
DH
7072000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
708
709 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
710 a wider use.
711
712 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
713 scm_logxor): Reordered dispatch sequence, thereby fixing some
714 comparisons of SCM values with integer constants.
715
716 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
717 tests.
718
89a7e495
DH
7192000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
720
721 * numbers.c (scm_quotient, scm_remainder): Removed code that was
722 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
723 occur anywhere else throughout guile.
724
725 * numbers.c (scm_quotient): Fixed parameter number in error
726 message.
727
728 * numbers.c (scm_remainder): Reordered dispatch sequence.
729
a4fbabb3
GH
7302000-04-25 Gary Houston <ghouston@arglist.com>
731
732 * posix.c (scm_execlp): docstring fix (thanks to Martin
733 Grabmueller).
734
09e4d064
DH
7352000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
736
737 * eval.c (undef_object): Made into a local static variable
738 (suggested by Jost Boekemeier).
739
e59bb516
DH
7402000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
741
742 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
743 c[ad]+r functions.
744
745 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
746 scm_dsubr, scm_init_iprocs): Removed.
747
748 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
749 directly instead of casting a cell to a C struct.
750
820920e6
MD
7512000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
752
753 Better modularization of GC extensions through new C level GC
754 hooks:
755
756 * weaks.c (scm_weaks_prehistory): New function: Add
757 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
758 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
759 (scm_scan_weak_vectors): New function; added to
760 scm_after_sweep_c_hook.
761
762 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
763 declarations.
764
765 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
766 now static.
767
768 * guardians.c (scm_guardian_gc_init): Turned into a hook function
769 and added to scm_before_mark_c_hook.
770 (scm_guardian_zombify): Turned into a hook function and added to
771 scm_before_sweep_c_hook.
772
773 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
774 Added #include "libguile/gc.h".
775
776 * gc.h: Added #include "libguile/hooks.h".
777
778 * gc.c: Removed #include "libguile/guardians.h".
779 (scm_before_gc_c_hook, scm_before_mark_c_hook,
780 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
781 scm_after_gc_c_hook): New C level hooks.
782 (scm_after_gc_hook): New Scheme level hook.
783 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
784 (scm_igc): Moved initialization of scm_weak_vectors and the call
785 to scm_guardian_gc_init to respective module.
786 (scm_mark_weak_vector_spines): Moved to weaks.c;
787 Call to scm_guardian_zombify moved to guardians.c;
788 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
789 scm_after_gc_c_hook at appropriate places.
790 (scm_init_gc): Initialize scm_after_gc_hook.
791
792 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
793 function.
794
795 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
796
797 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
798
799 * feature.c, feature.h: Broke out hook code into separate files.
800
801 * hooks.c, hooks.h: New files.
9764c29b 802
a0599745
MD
803 * *.*: Change includes so that they always use the "prefixes"
804 libguile/, qt/, guile-readline/, or libltdl/.
805 (Thanks to Tim Mooney.)
806
807 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
808 (DEFS): Added. automake adds -I options to DEFS, and we don't
809 want that.
810 Removed all -I options except for the root source directory and
811 the root build directory.
812
f4b0c568
MD
813 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
814 instead of SCM_ASSERT (0, ...). (Some compilers will complain
815 about control reaching end of function otherwise, and, besides,
816 the new code is not less clear.)
817
9764c29b
MD
818 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
819 calls to malloc debugging functions.
820
821 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
822 functions.
823
824 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
825 debug-malloc.x.
826
827 * debug-malloc.c, debug-malloc.h: New files.
828
4219f20d
DH
8292000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
830
831 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
832 documentation strings.
833
834 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
835 scm_quotient): Reordered dispatch sequence to first handle
836 immediates, second handle bignums and finally handle generic
837 functions respectively signal wrong type arguments. Hopefully
838 this will allow for easier separation when goops is integrated.
839
195e6201
DH
8402000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
841
842 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
843 variable into a pointer to a heap cell.
844
845 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
846 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
847
9e882eec
DH
8482000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
849
850 * print.c (scm_iprin1): Don't assign zero to SCM values, use
851 SCM_UNDEFINED instead.
852
853 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
854 vector element. (Still to be improved)
855
3201d763
DH
8562000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
857
858 * eval.c (undef_cell): Removed, replaced by:
859
860 (undef_object): Added to replace undef_cell.
861
862 (scm_lookupcar, scm_lookupcar1): Use undef_object.
863
864 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
865 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
866 Don't perform arithmetic operations with SCM values.
867
868 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
869 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
870 symbolic names for the tc3 type codes.
871
872 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
873 cast to SCM.
874
875 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
876 access of the struct vcell element explicit.
877
f7c38587
MD
8782000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
879
880 * struct.c (scm_struct_free_light, scm_struct_free_standard,
881 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
882
883 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
884 realloc:ing scm_subr_table ("what" instead of "who").
885
886 * numbers.c (scm_adjbig): Ditto.
887
baa702c8
DH
8882000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
889
890 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
891 itself, as was done in the previous 'patch'. (Thanks to Radey
892 Shouman)
893
fee7ef83
DH
8942000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
895
896 * options.c (scm_options), read.c (recsexpr): Remove redundant
897 SCM_IMP test.
898
899 * print.c (scm_iprin1): Made the access of the struct vcell
900 element explicit.
901
902 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
903
904 * ramap.c (scm_ra_eqp, ra_compare), unif.c
905 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
906 unsigned long and signed long arrays and clarified the way the
907 access is performed.
908
909 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
910 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
911 scm_raprin1): Use SCM_EQ_P to compare SCM values.
912
913 * strings.c (scm_makstr): Treat the msymbol slots as a field of
914 scm_bits_t values.
915
916 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
917 a field of scm_bits_t values.
918
919 * unif.c (l2ra): Don't test result of scm_array_set_x against
920 zero: It is always SCM_UNSPECIFIED.
921
9d0633a8
MD
9222000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
923
924 * script.c (scm_compile_shell_switches): Also enable
925 record-positions when given the --debug option. (Thanks to Diego
926 Dainese.)
927
230d095f
DH
9282000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
929
930 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
931 Compare SCM's with SCM_EQ_P.
932
933 * print.c (scm_make_print_state), srcprop.c
934 (scm_source_properties): Use valid scheme object to initialize
935 SCM variable.
936
937 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
938
c8045e8d
DH
9392000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
940
941 * struct.c (scm_alloc_struct, scm_struct_free_0,
942 scm_struct_free_light, scm_struct_free_standard,
943 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
944 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
945 scm_struct_free_light, scm_struct_free_standard,
946 scm_struct_free_entity): Struct data regions (and thus also
947 vtable data regions) are now C arrays of scm_bits_t elements.
948
949 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
950 mixup of glocs and structs explicit.
951
952 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
953
b0c54567
DH
9542000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
955
956 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
957 Minimize scope of variable 'ir'.
958
959 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
960 Added missing call to SCM_UNPACK.
961
b9c90f11
MD
9622000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
963
7aac9824 964 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 965 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 966
9ae58e2d
MD
9672000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
968
969 * script.c (scm_compile_shell_switches): Added --debug option.
970
49e12eb3
MD
9712000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
972
973 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
974 specified by R5RS).
975
7c1e0b12
MD
9762000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
977
978 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
979 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
980
981 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
982 New macros.
983 Cleanup of code layout.
984
985 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
986 procedures.
987
01c8a3dd
DH
9882000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
989
990 * continuations.c (scm_make_cont, scm_dynthrow): Completely
991 separated implementations for defined (CHEAP_CONTINUATIONS) and
992 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
993 copying.
994
995 * continuations.c (grow_stack): Renamed from grow_throw.
996
997 * continuations.c (copy_stack_and_call): New static function.
998
999 * continuations.c (scm_dynthrow): Simplified and made static.
1000
1001 * continuations.h (scm_dynthrow): Made static.
1002
553f4414
MD
10032000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1004
1005 * unif.c, unif.h (shared-array-root, shared-array-offset,
1006 shared-array-increments): New primitives.
1007
cf551a2b
DH
10082000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1009
1010 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
1011 size for msymbols.
1012
1013 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
1014 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
1015 values.
1016
1017 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
1018 macros.
1019
1020 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
1021 scm_symbol_pset_x): Use them.
1022
1023 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
1024
12a8b769
DH
10252000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1026
1027 * ports.c (scm_port_print): The port data is read as raw data.
1028
1029 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
1030 mismatch.
1031
d8c40b9f
DH
10322000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1033
1034 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
1035 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
1036 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
1037 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
1038 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
1039 The struct data is now an array of scm_bits_t variables.
1040
1041 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
1042
cf551a2b 1043 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
1044
1045 * struct.c (scm_struct_init): Unused variable 'data' removed.
1046
1047 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
1048
1c3e63f0
DH
10492000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1050
1051 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
1052 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
1053 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
1054 scm_bits_t variables.
1055
1056 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
1057
cf551a2b 1058 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 1059
bc66755e
DH
10602000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1061
1062 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
1063 scm_intern_obarray_soft, scm_sysintern0,
1064 scm_string_to_obarray_symbol, scm_intern_symbol,
1065 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
1066 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
1067 compare SCM values.
1068
828865c3
DH
10692000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1070
1071 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
1072 case of immediate numbers parameters first. Also, only use
1073 decoded numbers for numerical comparison.
1074
1cf49a85
MD
10752000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1076
1077 * objects.h: Don't redeclare scm_call_generic_0 and
1078 scm_apply_generic. (Thanks to Tal Tversky.)
1079
dba97178
DH
10802000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1081
1082 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
1083 Unpack SCM value to use it as a switch parameter. Don't cast SCM
1084 values to int values.
1085
3da01fa3
MD
10862000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1087
1088 * coop.c (mother): Handled EINTR (the wait has been interrupted by
1089 a signal).
1090
451e591c
DH
10912000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1092
1093 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
1094 contains a raw zero value it has to be unpacked.
1095
1096 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
1097 via void * requires unpacking / packing.
1098
1099 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
1100 SCM_EQ_P to compare SCM values.
1101
1102 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
1103 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
1104 call to SCM_UNPACK.
1105
1106 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
1107
1108 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
1109 quite ugly.
1110
e94e3f21
ML
11112000-04-05 Michael Livshin <mlivshin@bigfoot.com>
1112
1113 * async.[ch]: unexpose low-level async access macros (thanks to
1114 Dirk Herrmann).
1115
1116 * validate.h: move async validation macros to async.c (nobody else
1117 needs them anyway), and rename them.
1118
843e4e9d
ML
11192000-04-04 Michael Livshin <mlivshin@bigfoot.com>
1120
1121 * async.h: kill the scm_async_t struct. having a heap cell
1122 pretending to be a C struct is not helthy, and is not needed here
1123 anyway, as asyncs happily fit in one heap cell.
1124
1125 * async.c: reflect the fact that asyncs are now represented by
1126 single heap cell each.
1127
873c35ee
GH
11282000-04-04 Gary Houston <ghouston@arglist.com>
1129
1130 * error.c (scm_syserror): save errno before doing anything else,
1131 since it's used in two expressions and may get mutated (thanks to
1132 Dirk Herrmann).
1133
4260a7fc
DH
11342000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1135
1136 * debug.c (scm_procedure_source, scm_procedure_environment),
1137 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
1138 (scm_procedure, scm_setter): Return valid scheme value as dummy.
1139
1140 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
1141 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
1142 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
1143 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
1144 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
1145 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
1146 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
1147 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
1148
1149 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
1150 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
1151 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
1152 SCM_{SET_}?CELL_WORD_0.
1153
1154 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
1155 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
1156 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
1157 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
1158 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
1159 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
1160 scm_bit_count_star, l2ra), variable.c (prin_var,
1161 scm_make_variable, scm_make_undefined_variable,
1162 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
1163 vports.c (sf_flush, sf_close): Don't use C operators to compare
1164 SCM values.
1165
1166 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
1167 unpack SCM values to access their raw contents.
1168
1169 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
1170
1171 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
1172 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
1173 type information.
1174
1175 * throw.c (printjb): Eliminated unnecessary unpack.
1176
1177 * variable.c (make_vcell_variable): Smob data is of type
1178 scm_bits_t.
1179
5b15c3b4
MD
11802000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1181
1182 * print.c: Removed promise to rewrite printer code before next
1183 release. :)
1184
395c8567
MD
11852000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1186
1187 * iselect.c (add_fd_sets): Insert empty statement after label.
1188 (Thanks to Tim Mooney.)
1189
50fecba9
ML
11902000-04-03 Michael Livshin <mlivshin@bigfoot.com>
1191
1192 * guardians.c (scm_guardian_zombify): mark all zombies in a
1193 separate loop after processing all the currently known live
1194 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 1195 Gary Houston). note that the order problems are still there if
843e4e9d 1196 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
1197 I'm not going to worry about.
1198 also, make another outer loop to process zombified
50fecba9
ML
1199 guardians (which are uncovered while marking zombies).
1200
54778cd3
DH
12012000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
1202
1203 * evalext.c (scm_definedp, scm_m_undefine), gc.c
1204 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
1205 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
1206 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
1207 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
1208 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
1209 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
1210 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
1211 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
1212 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
1213 scm_stand_in_scm_proc, scm_procedure_property,
1214 scm_set_procedure_property_x), procs.c
1215 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
1216 scm_lreadrecparen, scm_read_hash_extend), script.c
1217 (scm_compile_shell_switches), srcprop.c (scm_source_property,
1218 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
1219 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
1220 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
1221 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
1222 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
1223 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
1224 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
1225
1226 * feature.c (make_hook), keywords.c
1227 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
1228 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
1229 scm_printer_apply, scm_port_with_print_state): Smob data is of type
1230 scm_bits_t.
1231
1232 * feature.c (print_hook), gc.c (scm_object_address), hash.c
1233 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 1234 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
1235 SCM values to access their raw contents.
1236
1237 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
1238 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
1239 values via void * requires unpacking / packing.
1240
1241 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
1242 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
1243 Read and modify data bits in cell entry #0 using
1244 SCM_{SET_}?CELL_WORD_0.
1245
1246 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
1247 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
1248 (scm_void_port), procs.c (scm_make_subr_opt,
1249 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
1250 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
1251 SCM_SET_CELL_TYPE to write the cell type information.
1252
1253 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
1254 from cells that are no scheme pairs.
1255
1256 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
1257 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
1258 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
1259 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
1260 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
1261 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
1262 entries with raw data.
1263
1264 * gc.c (scm_init_storage), sort.c (applyless), strop.c
1265 (scm_string_to_list): Eliminate unnecessary casts to SCM.
1266
1267 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
1268 data.
1269
1270 * ports.c (scm_close_all_ports_except): Duplicate documentation
1271 text removed.
1272
1273 * print.c (scm_iprin1): Use SCM_ITAG3.
1274
1275 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
1276
1277 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
1278 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
1279 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
1280 and static variables at their point of declaration, but rather in
1281 the init function.
1282
1283 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
1284
abeed821
GH
12852000-04-02 Gary Houston <ghouston@arglist.com>
1286
1287 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
1288 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
1289 use of an improper list (which breaks g_print. g_print isn't
1290 used).
1291 guardians.c: Added more comments and modified the make-guardian
1292 docstring. Reordered a few procedures.
1293
cf498326
DH
12942000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
1295
1296 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
1297 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
1298 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
1299 compare SCM values.
1300
1301 (scm_makprom): Smob data is of type scm_bits_t.
1302
cffcab30
DH
13032000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1304
1305 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
1306 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
1307 operators to compare SCM values.
1308
1309 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
1310 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
1311 access raw cell data with SCM_{SET_}?CELL_WORD_1.
1312
1313 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
1314
1315 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
1316 data is of type scm_bits_t.
1317
7fa93bf8
DH
13182000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1319
1320 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
1321 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
1322
1323 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
1324
74a16888
DH
13252000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1326
1327 * ports.h (scm_port): Change type of stream member to scm_bits_t.
1328
1329 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
1330 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
1331 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
1332 streams are now of type scm_bits_t, SCM streams have to be
1333 unpacked/packed.
1334
1335 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
1336 scm_bits_t.
1337
b6cc0ef6
MD
13382000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1339
6a878357
MD
1340 * coop-defs.h (struct coop_t): Added `sto'-field again because of
1341 binary compatibility---let's remove it next time we alter some
1342 major structure.
1343
b6cc0ef6
MD
1344 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
1345 coop_mother, coop_child): New variables.
1346 (mother): New function.
1347 (coop_create): New thread spawning mechanism which uses a "mother
1348 thread". The "dummy" pthreads aren't healthy enough to give birth
1349 to new threads since Linux threads thinks they are asleep.
1350
1351 * coop-defs.h (struct coop_t): Removed dummy_mutex.
1352
1353 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
1354 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
1355
843524cc
DH
13562000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1357
1358 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
1359 (scm_internal_dynamic_wind): Smob data is always of type
1360 scm_bits_t.
1361
1362 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
1363 Access the locking information in cell entry 0 with
1364 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
1365
1366 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
1367 list.
1368
1369 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
1370
1371 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
1372 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
1373
fbd485ba
DH
13742000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1375
1376 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
1377 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
1378 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
1379 Don't use C operators == and != to compare SCM values, use
1380 SCM_EQ_P instead.
1381
1382 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
1383 SCM value is equal to #t or #f.
1384
1385 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
1386 cell type entry of non immediate objects of unknown type. Use
1387 SCM_CELL_TYPE instead.
1388
1389 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
1390 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
1391 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
1392 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
1393 #t.
1394
1395 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
1396 scheme value.
1397
64e3bf6c
MD
13982000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1399
0208baa0
MD
1400 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
1401 scm_make_mutex, scm_make_condition_variable): Cast data to
1402 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
1403
64e3bf6c
MD
1404 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
1405
94113249
DH
14062000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1407
1408 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
1409 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
1410 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
1411
1412 Note that this implies that smob data has always to be passed as
1413 values of type scm_bits_t.
1414
1978b33e
MD
14152000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1416
1417 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
1418 for scm_tc16_thread. As the current COOP threads are written, GC
1419 is not supposed to manage storage for threads.
1420
1421 * error.c (scm_error): Don't try to throw an error if
1422 scm_gc_heap_lock is true.
1423
1424 * coop.c (coop_finish): New function. Called at exit.
1425 (coop_aborthelp): Free thread structures when threads die.
1426 Finished LinuxThreads compatibility support => COOP threads now
1427 mesh with LinuxThreads.
843e4e9d 1428
1978b33e
MD
1429 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
1430 Changed SETCDR --> SET_CELL_WORD_1.
1431
1432 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
1433 when thread dies.
1434
dd039d6d
DH
14352000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1436
1437 * boolean.h (SCM_TRUE_P): New macro.
1438
1439 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
1440 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
1441
8b3bda20
DH
14422000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1443
1444 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
1445 access continuation data.
1446
1447 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
1448
1449 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
1450 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
1451 continuation data.
1452
843e4e9d 1453 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
1454 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
1455 SCM_SETJMPBUF.
1456
3210f49a
DH
14572000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1458
1459 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
1460 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
1461
1462 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
1463 to access the char * field of strings and symbols.
1464
2d67e390
DH
14652000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1466
1467 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
1468 the type entry of a new cell. Added a comment about things to
1469 remember when updating the list of free cells.
1470
1471 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
1472 entry of a cell.
1473
76a369d9
DH
14742000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1475
1476 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
1477 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
1478 with strict type checking enabled these macros will only work if
1479 given valid SCM parameters.
1480
3210f49a 1481 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
1482
1483 * tags.h (SCM_GCCDR): Moved here from pairs.h.
1484
2549a709
DH
14852000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1486
1487 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
1488
1489 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
1490 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
1491 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
1492 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
1493 SCM_NEWCELL2): Moved to gc.h.
1494
1495 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
1496 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
1497 be changed, though, since the macros are not only pair related.
1498
1499 (SCMPTR): Deleted.
1500
1501 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
1502 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
1503 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
1504 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
1505 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
1506 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
1507 tags.h and pairs.h.
1508
8d3356e7
DH
15092000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1510
1511 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
1512 activates strict compile time type checking for variables of
1513 type SCM.
1514 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
1515 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
1516 (SCM_EQ_P): Defined as a macro equivalent for eq?.
1517
96f6f4ae
DH
15182000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1519
1520 * tags.h (SCM_POINTERS_MUNGED): Removed.
1521
1522 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
1523 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
1524
0cbaaf0b
DH
15252000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1526
1527 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
1528 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
1529 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
1530 cell entries.
1531 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
1532
1533 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
1534 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
1535
7284d584
MD
15362000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1537
1538 * tags.h: Disabled definition of SCM_VOIDP_TEST.
1539
1540 Defining SCM as void * introduces problems which haven't been
1541 handled yet. Developers who work with these issues can enable it
1542 in their working copies.
1543
1544 Disabling this definition exposes a set of newly introduced and
1545 older misuses of types which causes warning messages during
1546 compilation. We'll fix this successively.
1547
1548 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
1549 in order to obtain a value of type SCM.
1550 (scm_cellp): Updated with new changes to scm_mark_locations.
1551
1552 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
1553
2f9055ea
MD
1554 * continuations.c (scm_make_cont): Removed cast of size_t into
1555 long.
1556
7284d584
MD
1557 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
1558
f81e080b
DH
15592000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1560
1561 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
1562 shifting, not constant. Thanks to Dale P. Smith.
1563
1564 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
1565 for being less than zero. Decode it to a C value first. Again,
1566 thank you Dale.
1567
1ff2fa6e
DH
15682000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1569
1570 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
1571 non scheme values. If raw data is stored in SCM variables, it has
1572 to be accessed using SCM_UNPACK until a better solution is found.
1573
3920465b
MD
15742000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1575
6f29dc6d
MD
1576 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
1577 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
1578
1579 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
1580
1581 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
1582
1583 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
1584
1585 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
1586
3920465b
MD
1587 * async.c, __scm.h: Removed lots of the old async click logic. It
1588 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
1589 __scm.h. Let's try this out and dump the old code after the
1590 threads reorganization.
1591 (set-tick-rate, set-switch-rate): Conditionally removed.
1592
90cca6f9
MD
15932000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1594
1595 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
1596 made SCM values into pointers. This turned an arithmetic
1597 computation of the address of the vcell into a pointer-arithmetic
1598 one, thereby screwing up marking of structs.
1599 Bugfix 2: Removed incompletely introduced loop variable `j' used
1600 when protecting the tail array of a struct.
1601
8246bf3e
DH
16022000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1603
1604 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
1605
95c9e176
DH
16062000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1607
1608 * symbols.h, symbols.c (scm_strhash): Declare the string
1609 parameter as constant, since it is not modified.
1610
1611 * symbols.c (scm_intern_obarray_soft,
1612 scm_sysintern0_no_module_lookup): Can now pass constant strings
1613 to scm_strhash without need for casting.
1614
7352d0b2
DH
16152000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1616
1617 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
1618 values to pointers. Use SCM2PTR instead.
1619
b00c8cdc 16202000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
1621
1622 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
1623 results of SCM_INUM.
1624
df2d5178
MD
16252000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1626
bd54e664
MD
1627 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
1628 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
1629 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
1630
1631 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
1632 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
1633 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
1634 gc_trigger, adjust_gc_trigger.
1635
df2d5178
MD
1636 * gc.c (alloc_some_heap): Further improvement of minimal heap size
1637 prediction.
1638 (SCM_MAX): New macro.
1639 (scm_freelist_t): New field: collected_1. Previous amount of
1640 collected cells.
1641 (gc_sweep_freelist_finish): Trigger based on two last values of
1642 freelist->collected to avoid unnecessary allocation due to
1643 temporary peaks.
bd54e664
MD
1644 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
1645 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
1646 without extra heap allocation.
df2d5178 1647
f2961ccd
DH
16482000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1649
1650 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
1651 already be a C value. No need to unpack it.
1652
3210f49a 1653 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
1654 if we know it fits into an inum.
1655
1656 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
1657 field of long values. In contrast, SCM_VELTS accesses a field of
1658 SCM values.
1659
7b4cc831
MD
16602000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1661
f1d316dd
MD
1662 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
1663 etc.
80770ddc
MD
1664 (scm_gc_yield_1): New variable: Holds previous yield. Used to
1665 make better judgements.
f1083dd7
MD
1666 (gc_sweep_freelist_finish): Inserted explanation of use of
1667 gc_trigger.
f1d316dd
MD
1668
1669 * print.h, stacks.h, options.c, options.h: Changed C++
1670 commentaries to C.
7b4cc831 1671
7a710745
DH
16722000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1673
1674 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
1675
1676 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
1677 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
1678 SCM_UNPACK / SCM2PTR correctly.
1679
1ef20c80
MD
16802000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1681
1682 * gc.c (adjust_gc_trigger): Improved documentation.
1683 (alloc_some_heap): Since gc_trigger is used against
1684 freelist->collected, this is the value which should be used to
1685 predict minimum growth.
1686
b464b970
DH
16872000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1688
1689 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
1690 Thien-Thi Nguyen for the patch.)
1691
3ab9f56e
DH
16922000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1693
1694 * numbers.c (scm_ash): Fixed typing problems with the second
1695 parameter and added some documentation. (Thanks Thien-Thi Nguyen
1696 for indicating the problem.)
1697
05bc3265
MD
16982000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1699
78a4915a
MD
1700 * gc.c, gc.h (scm_gc_yield): New variable.
1701 (adjust_gc_trigger): Use scm_gc_yield.
1702 (alloc_some_heap): Use scm_gc_yield instead of
1703 scm_gc_cells_collected.
1704
05bc3265
MD
1705 * coop-threads.c: Addd #include "root.h", #include "strings.h".
1706
1707 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
1708
1709 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
1710 trigger adjustmeant: Take yield (freed cells) for all freelists
1711 into account.
1712 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
1713 to 50000 cell heap with 45% trigger.
1714 (scm_gc_cells_collected): Reintroduced.
1715 (SCM_HEAP_SIZE): New macro.
1716 (scm_gc_sweep): Reintroduced correct computation of
1717 scm_cells_allocated.
1718 (scm_freelist_t): Corrected commentary for field `cluster_size':
1719 Clustersize counts objects, not cells; New member
1720 `clusters_allocated'.
1721
89e00824
ML
17222000-03-19 Michael Livshin <mlivshin@bigfoot.com>
1723
1724 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
1725 indentation style.
1726
afcfc5bb
MD
17272000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1728
1729 * threads.h: Added #include "libguile/throw.h". (Thanks to
1730 Thien-Thi Nguyen.)
1731
a00c95d9
ML
17322000-03-18 Michael Livshin <mlivshin@bigfoot.com>
1733
50fecba9
ML
1734 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
1735 names, anyone got any better ones?)
a00c95d9
ML
1736
1737 * gc.h: (typedef struct scm_freelist_t) remove from here.
1738
50fecba9 1739 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
1740 parameter (the span).
1741 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 1742 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
1743 business being externally visible.
1744 (typedef struct scm_heap_seg_data_t) renamed from
1745 scm_heap_seg_data, to be style-compliant.
1746 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
1747 double-cell, check that it's properly aligned.
1748 (init_heap_seg) align double-cells properly, work with the
1749 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
1750 (round_to_cluster_size) new function.
1751 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
1752 to satisfy the new init_heap_seg invariant.
1753
28b3236d
DH
17542000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1755
1756 * _scm.h: Don't include async.h everywhere...
1757
1758 * eq.c eval.c iselect.c: ... only include it here.
1759
ba11fd4c
DH
17602000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1761
1762 * _scm.h: Don't include root.h everywhere...
1763
1764 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
1765 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
1766 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
1767 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
1768 variable.c vectors.c vports.c: ... only include it here.
1769
7ab3fdd5
DH
17702000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1771
1772 * _scm.h: Don't include strings.h everywhere...
1773
1774 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
1775 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
1776 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
1777 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
1778 symbols.c unif.c vectors.c version.c vports.c: ... only include it
1779 here.
1780
f04d8caf
DH
17812000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1782
1783 * _scm.h: Don't include ports.h everywhere...
1784
1785 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
1786 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
1787 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
1788 stackchk.c strports.c struct.c throw.c variable.c: ... only
1789 include it here.
1790
003d1fd0
DH
17912000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1792
1793 * _scm.h: Don't include vectors.h everywhere...
1794
1795 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
1796 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
1797 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
1798 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
1799 here.
1800
0fa27efa
DH
18012000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1802
1803 * genio.h: removed. (Only content was '/* delete me */'.)
1804
1805 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
1806 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
1807 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
1808 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
1809 Removed reference to genio.h
1810
148f31de
MD
18112000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1812
1813 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
1814 Cluster sizes are now independent of GC trigger values.
1815 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
1816 A negative integer gives fraction of total heap size in percent.
1eb489a2 1817 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
1818
1819 * init.c (scm_boot_guile_1): Introduced new variable
1820 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
1821 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
1822 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
1823
6d0f81dd 18242000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 1825
6d0f81dd
MD
1826 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
1827 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
1828 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
1829 the default, but I'll let this change stay in CVS Guile since this
1830 code is not expected to contain serious bugs.
a00c95d9 1831
17351a6f 18322000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 1833
6c7c449e
MD
1834 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
1835 defined.
5a551542
MD
1836 (scm_free_list_length): New procedure (GUILE_DEBUG).
1837 Fixed a small but serious bug introduced by the previous change.
1838
17351a6f
MD
1839 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
1840 loop and declare as register.
6c7c449e 1841
c5133dc9
MD
1842 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
1843 after GC.
1844
3820581c
GB
1845Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1846
1847 * fluids.c: Docstring patch from Keisuke Nishida. Some
1848 reindentation, too, and a couple formals renamed. Should
1849 fluid-set! return UNSPECIFIED instead of a value?
1850
1851Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1852
1853 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 1854 generate the latter from the concrete listing of the former. Then
3820581c
GB
1855 make guile-procedures.txt depend on DOT_DOC_FILES instead of
1856 *.doc, so that rebuilding it works.
1857
dd6390bf
GB
1858Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
1859
1860 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
1861
1862 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
1863 with nothing and \n, respectively. Thanks Keisuke Nishida for
1864 noticing this problem.
1865
4fdb0ae2
MD
18662000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1867
1868 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
1869 new way of allocating heap. It makes Guile fast, but still
1870 contains bugs.
1871
1872 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
1873 allocating heap. The basic idea is to trigger GC every Nth
1874 allocated cell and grow heap when free list runs out. The scheme
1875 has been extended so that GC isn't triggered until all remaining
1876 cells are used. The implementation is also prepared for
1877 development in the direction of POSIX threads.
1878
1879 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
1880 SCM_EXPHEAP should return half of the heap size.
1881
3d8d1283
MD
18822000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1883
5f4edb86
MD
1884 The following change to init.c is only enabled if Guile was
1885 configured with --enable-guile-debug.
a00c95d9 1886
5f4edb86
MD
1887 * init.c (scm_i_getenv_int): New function.
1888 (scm_boot_guile_1): Use the environment variables
1889 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
1890 they exist. (This may be replaced by a Scheme level mechanism in
1891 the future.)
1892
3d8d1283 1893 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 1894 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 1895
b0e37c83
MD
18962000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1897
1898 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 1899 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 1900
16d35552
MD
19012000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1902
5ebf0091
MD
1903 * init.c (scm_boot_guile_1): Use same initial segment size for
1904 1-word and 2-word segments. Having the smaller size causes Guile
1905 to GC too often. Obviously something needs to be done to allow
1906 for a smaller 2-word segment without this to happen. (The amount
1907 of heap for each type should be automatically adapted to the
1908 application somehow.)
1909
31ed4cff
MD
1910 [Almost all of these changes should be documented in the NEWS
1911 file.]
1912
cf2c7413
MD
1913 * gc.h (scm_freelist_t): New type.
1914
1915 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
1916
1917 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
1918 all of Guile basics fits into one segment and there suitable room
1919 for work.
1920 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
1921 instead of 2.
1922 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
1923 Freelists now contains information about object span, cells
1924 collected and amount of cells in heap segments belonging to the
1925 list.
1926 (scm_heap_size, scm_gc_cells_collected): Removed.
1927
1928 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
1929
16d35552
MD
1930 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
1931 number.
1932
cf2c7413 1933 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
1934 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
1935 rewrite of handling of real and complex numbers.
1936 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
1937 removed along with the support for floats. (Float vectors are
1938 still supported.)
1939
1940 * tags.h (scm_tcs_bignums): Removed.
1941 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
1942 Use SCM_BIGSIGN(x) to test for sign!
1943 (scm_tc16_big): The new bignum type.
1944 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
1945
1946 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
1947 (scm_makdbl): Deprecated.
1948 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
1949 (SCM_SINGP): Deprecated.
1950 (SCM_FLO): Removed.
1951 (SCM_INEXP, SCM_CPLXP): Deprecated.
1952 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
1953 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
1954 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
1955 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
1956 for doubles and complex numbers.
1957 (SCM_REAL_VALUE): New selector for doubles.
1958 (scm_double_t, scm_complex_t): New types.
1959 (scm_dbl): Removed.
1960
1961 * numbers.c (scm_floprint, scm_floequal): Removed.
1962 (scm_print_real, scm_print_complex, scm_real_equalp,
1963 scm_complex_equalp): New functions.
1964
1965 * unif.c (scm_makflo): Removed.
1966
1967 * smob.h (SCM_SMOB_PREDICATE): New macro.
1968 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
1969 SCM_RETURN_NEWSMOB3): New macros.
1970
19711999-11-21 Michael Livshin <mlivshin@bigfoot.com>
1972
1973 The following changes implement primitive support for double cells
1974 (i.e. four-word cells) and change the representation of some
1975 things to multi-cells instead of cons+malloc. (Applied and
1976 modified by mdj.)
1977
1978 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
1979 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
1980 multi-cell access macros (used by the ones below).
1981 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
1982 macros.
1983
1984 * gc.c (scm_freelist2): multi-cell freelists.
1985 (inner_map_free_list): map_free_list, parameterized on ncells.
1986 "nn cells in segment mm" was misleading for ncells > 1; changed to
1987 "objects". still print cells too, though.
1988 (scm_map_free_list): rewritten using inner_map_free_list.
1989 (scm_check_freelist): get freelist as parameter, since now we have
1990 more than one.
1991 (scm_debug_newcell2): multi-cell variants of
1992 scm_debug_newcell.
1993 (scm_gc_for_newcell): take ncells and freelist pointer as
1994 parameters.
1995 (scm_gc_mark): add case for tc7_pws (procedures with setters are
1996 now double cells).
1997 (scm_gc_sweep): don't free the float data, since it's not malloced
1998 anymore.
1999 (init_heap_seg): didn't understand what n_new_objects stood for,
2000 so changed to n_new_cells.
2001 (make_initial_segment): new function, makes an initial segment
2002 according to given ncells.
2003 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
2004
2005 * numbers.c (scm_makdbl): no malloc'ing needed, so the
2006 {DEFER,ALLOW}_INTS thing removed.
2007
2008 * numbers.h (struct scm_dbl): changed to represent a double cell,
2009 with the number in the second half.
16d35552
MD
2010
2011 * dynwind.c: changed the wind-guards representation to double
2012 cell.
2013
2014 * procs.c, procs.h: changed the procedure-with-setter representation
2015 to double cell.
2016
2017 * async.c, async.h: made async representation a double cell.
2018
16d35552 2019 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 2020
b70ecbd0
GH
20212000-03-13 Gary Houston <ghouston@arglist.com>
2022
2023 * ports.c (flush_void_port): renamed to flush_port_default.
2024 (end_input_void_port): renamed to end_input_default.
2025
2026 * init.c (scm_standard_stream_to_port): create a void port instead
2027 of opening /dev/null if the standard file descriptors are bad.
2028 advantages: no portability problems, doesn't waste a file descriptor,
2029 simplifies the code (thanks to Marius for the idea).
2030
2031 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
2032
2033 * void ports: make reading from a void port give EOF instead of
2034 segv:
2035 * ports.c (s_scm_sys_make_void_port): modified docstring.
2036 (fill_input_void_port): new proc.
2037 (scm_init_ports): set up fill_input_void_port.
2038 * ports.c (scm_port_non_buffer): new proc.
2039 (scm_void_port): call scm_port_non_buffer.
2040
2041 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
2042 which was incorrectly appended.
2043
fdc7ea2d
MD
20442000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2045
2046 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
2047 that we can't use autoconf for this. Autoconf itself relies on
26fba922 2048 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 2049 Herrman.)
a00c95d9 2050
68933ba3
MD
20512000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2052
b44a555a
MD
2053 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
2054 EXTRA_libguile_la_SOURCES.
2055
2056 * iselect.h: Always declare scm_internal_select.
2057
2058 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
2059 end. Also let scm_internal_select be a real function also when
2060 not using threads.
2061
68933ba3
MD
2062 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
2063
c7f6ea11
MD
20642000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2065
2066 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
2067 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
2068 and kind of an experiment: Will this cause problems?)
2069
62dbc244
GB
2070Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
2071
2072 * Makefile.am: Added *.doc to DISTCLEANFILES.
2073
4f2f645d
GH
20742000-03-12 Gary Houston <ghouston@arglist.com>
2075
2076 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
2077 the fdes is valid before doing anything else. check that
2078 the file descriptor supports the modes required.
2079 (scm_fport_buffer_add): don't throw an error if fstat doesn't
2080 work: just use the default buffer size.
2081
2082 * throw.c: change an outdated comment about scm_internal_catch
2083 BODY: it doesn't take a jumpbuf arg.
2084
2085 * init.c (scm_standard_stream_to_port): install a handler in case
2086 scm_fdes_to_port throws an error. don't check here whether the
2087 file descriptor is valid, since scm_fdes_to_port will do that.
2088 set the revealed count depending on whether the port got the
2089 standard file descriptor.
2090 (stream_body_data): new type.
2091 (stream_body, stream_handler): new procs.
2092
7f782a0a
MD
20932000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2094
67673f75
MD
2095 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
2096 Renamed from SCMWORD.
2097
2098 * tags.h (SCM_NCELLP): Removed (SCMWORD).
2099
f1267706 2100 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 2101
74a426ae
MD
2102 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
2103 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
2104 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
2105 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
2106 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
2107 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
2108 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 2109 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
2110 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
2111
7f782a0a
MD
2112 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
2113
2114 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
2115 tags.h: Fixed copyright notices.
2116
2117 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 2118
7f782a0a 21192000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 2120
0cd87628
MV
2121 * init.c (scm_standard_stream_to_port): Check whether the file
2122 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 2123
f3b5e185
MD
21242000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2125
2126 * coop-defs.h (struct timespec): Conditionally defined.
2127
2128 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
2129 instead of ETIME.
38eca29b
MD
2130
2131 * readline.c (match_paren): Bugfix: First arg to select is not
2132 number of descriptors but the number of the highest descriptor +
2133 1.
2134
2135 This is a preliminary attempt at a cleanup of the threads support
2136 code. It moves things to better places, makes arguments more
2137 consistent with the POSIX API (which is used in GNOME's glib), and
2138 adds new functionality.
a00c95d9 2139
38eca29b
MD
2140 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
2141
2142 * coop-defs.h (scm_mutex_trylock): New macro: alias for
2143 coop_mutex_trylock.
2144 (scm_cond_init): Changed definition to
2145 coop_new_condition_variable_init.
a00c95d9 2146
38eca29b
MD
2147 * coop.c: #include <errno.h>
2148 (coop_timeout_qinsert): Moved here from iselect.c
2149 (coop_new_mutex_init, coop_new_condition_variable_init): New
2150 functions. The strange names are temporary. Use scm_mutex_init
2151 and scm_cond_init instead.
2152 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
2153 is ANSI C, but should we check for individual error codes in
2154 configure.in?
2155 (coop_condition_variable_timed_wait_mutex): New function.
2156 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 2157 coop_key_delete): New functions.
38eca29b
MD
2158
2159 * iselect.c (coop_timout_qinsert): Moved to coop.c
2160
32e1616c
MD
21612000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2162
2163 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
2164 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
2165
2166 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
2167 Layout cleanups.
2168
2169 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
2170 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
2171 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
2172
2173 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
2174 dealing with ilocs.
2175
d5c39069
GB
21762000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
2177
2178 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
2179 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
2180 logical functions from SCM.
2181
2182 (logand, logior, logxor, logtest, logbit?): Extended scheme
2183 logical functions to use bignums from SCM.
2184
2185 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
2186 lognot from using bignums.
2187
3e892913
GB
2188Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2189
a00c95d9 2190 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
2191 eliminating some warnings.
2192
2193 * unif.c, strports.c, print.c, options.c: Fix some warnings on
2194 mis-use of SCM/long
2195
2196 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
2197 what the scm_return_first* functions do.
2198
7ac030d6
GB
21992000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
2200
2201 * libguile/*.[ch]: make a distinction between SCM as a generic
2202 name for a Scheme object (now a void*), and SCM as 32 bit word for
2203 storing tags and immediates (now a long int). Introduced
2204 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
2205 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 2206
f635d2d4
GB
2207Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
2208
2209 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
2210 various logXXX primitives. Thanks Eric Moore!
2211
9eaa7fb6
GB
2212Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
2213
2214 * run-test, remaining-docs-needed: Added these scripts. The
2215 second one is only temporary until the docstring additions are
2216 complete. run-test may best live on, but is here mostly for
2217 convenience and awareness for now.
2218
2219 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
2220
49673698
GB
2221Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
2222
2223 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
2224 displaying the expected type. Use SCM_LISTn in a couple places
2225 instead of scm_cons-ing by hand.
2226
2227 * __scm.h: Added SCM_ASSERT_TYPE macro.
2228
2229 * validate.h, scm_validate.h: Added the former, as a renamed
2230 version of the latter with SCM_ASSERT_TYPE used in
2231 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
2232
2233 * Makefile.am: Rename scm_validate.h to validate.h.
2234
2235 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
2236 prefix was superfluous).
2237
417bdef8
GB
2238Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
2239
2240 * hashtab.c: Improved documentation for lots of functions. Added
2241 handwritten docs for `hash-fold'.
2242
2243Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2244
2245 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
2246
26a760c6
GB
2247Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
2248
a00c95d9 2249 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
2250 added append docs from R4RS.
2251
2252 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
2253 Thanks Dirk Hermann!
2254
2255 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
2256 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 2257
26a760c6
GB
2258 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
2259 Drop use of SCM_P for function prototypes... assume an ANSI C
2260 compiler. Thanks Dirk Hermann!
2261
898942f8
GB
2262Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
2263
2264 * ports.c: Made `set-port-column!' and `set-port-line!' each
2265 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
2266 that caused a seg fault. Also fixed `set-port-column!'s
2267 docstring. Thanks Han-Wen Nienhuys for finding the bug!
2268
84a3df2c
GB
2269Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
2270
2271 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 2272 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
2273 strings.c, variable.c: Added lots of documentation, cleaned up
2274 some existing documentation. Occasionally changed formal params
2275 to match docs. Also folded an #ifdef into the inners of a
2276 primitive instead of having two copies of the primitive
2277 (`get-internal-real-time', from stime.c)
2278
2279Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2280
2281 * ports.c: Added docs for primitives missing them. Written by
2282 hand.
2283
3f557de6
GB
2284Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
2285
2286 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
2287 just execing guile-func-name-check. Thanks Michael Livshin!
2288
ddcccdb3
GB
2289Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2290
2291 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
2292 dead code. Patch from Michael Livshin.
2293
2294 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
2295 Michael Livshin.
2296
720e8692
GH
22972000-02-09 Gary Houston <ghouston@arglist.com>
2298
2299 * init.c (scm_init_standard_ports): when stdout is a tty, make the
2300 current-output-port unbuffered by default. this is less confusing
2301 for interactive use. it was line-buffered because of a
2302 performance problem with unbuffered ports, but I think it will be
2303 OK now.
2304
43ff3170
GH
23052000-02-08 Gary Houston <ghouston@arglist.com>
2306
2307 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
2308 is not defined.
2309
2310 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
2311 HAVE_TZNAME are defined, use an empty string instead of giving two
2312 spurious compile-time errors.
2313
4ba47302
GB
2314Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2315
2316 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
2317 Thanks Richard!
2318
09a617f7
GB
2319Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
2320
2321 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
2322
9dbcf010
GB
2323Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
2324
2325 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
2326 (which is GNU GPL'd).
2327
bd9e24b3
GH
23282000-01-31 Gary Houston <ghouston@arglist.com>
2329
2330 * strings.h: don't use SCM_P. don't include <string.h>.
2331 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 2332
bd9e24b3
GH
2333 * strings.c (scm_string_ref): make the 2nd argument compulsory.
2334 previously it defaulted to zero for no good reason that I can see.
2335 use a local variable for SCM_INUM (k). replace
2336 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
2337
2338 (scm_makfromstr): cosmetic changes.
2339
2340 (scm_string): Accept only chars in the list, not strings, for
2341 conformance to R5RS (particularly for list->string, which is
2342 supposed to be the inverse of string->list.) remove
2343 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
2344 scm_makstr handles the cell allocation. when reporting wrong-type
2345 arg, don't report the position as 1.
2346
2347 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
2348
28d77376
GH
23492000-01-29 Gary Houston <ghouston@arglist.com>
2350
ae1b098b
GH
2351 * posix.c (scm_pipe): rewrote the docstring.
2352
28d77376
GH
2353 * filesys.c (scm_select, retrieve_select_type, get_element,
2354 fill_select_type, set_element): modified so that Scheme
2355 "select" tests port buffers for the ability to provide input
2356 or accept output. Previously only the underlying file descriptors
2357 were checked. Rewrote the docstring.
a00c95d9 2358
7f1497ce
GB
2359Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2360
2361 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
2362 from Gregg Reynolds. Thanks Gregg!
2363
2288ff9b
GB
2364Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2365
2366 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
2367 adding "x" prefix to the line so that guile-func-name-check
2368 doesn't complain unnecessarily.
2369
349af6dd
GB
2370Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
2371
2372 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
2373 for maintainability.
2374
2375 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
2376 from qdocs, RnRs.
2377
a28eb127
GB
2378Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
2379
a00c95d9 2380 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
2381 suggests removing tag.c altogether (and using a new `class-of'
2382 instead).
2383
2384 * strings.c: Added documentation from Gregg A. Reynolds. Edited
2385 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 2386 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
2387 (rnrs) note.
2388
2389 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
2390 function with scm_make_subr_opt w/ last arg of 0 so it is not
2391 visible at the Scheme level. Mikael says that this is the right
2392 thing because the first arg to the proc is the guts of a compiled
2393 closure and shouldn't be exposed to the Scheme level.
2394
ac2259fc
GB
2395Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
2396
2397 * sort.c: typo in comment fixed.
2398
2399 * keywords.c: Added documentation.
2400
2401 * guardians.c: Added documentation (could be better).
2402
2403 * gc.c: Added docs for gc-set-debug-check-freelist.
2404
2405 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
2406
2407 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 2408
d928e0b4
GB
2409Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
2410
2411 * random.c: Added documentation, from SLIB page:
2412 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
2413
2414Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
2415
2416 * variable.c, version.c: Added documentation, written by hand
2417 since I could not find anything already written that was
2418 relevant.
2419
d831b039
GH
24202000-01-23 Gary Houston <ghouston@arglist.com>
2421
a00c95d9 2422 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
2423 not defined (thanks to Richard Y. Kim).
2424
88ec97ad
GB
2425Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2426
2427 * Makefile.in: Removed, this is auto-generated.
2428
078e9092
GB
2429Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
2430
2431 * list.c: Put some variable initialization code at the point of
2432 declaration; Added a comment for list*; Formatting changes.
2433
2434 * load.c: use SCM_NNULLP to make sure the end of a list is not
2435 reached yet.
2436
e7a96050
MD
24372000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2438
a177af34
MD
2439 * backtrace.c (scm_display_error_message): Bugfix: Don't use
2440 result of scm_list_p as C boolean.
2441 (scm_display_error_message, scm_set_print_params_x): Use new
2442 validation macros. (Thanks to Dirk Herrmann.)
2443
d06bcb02
MD
2444 * net_db.c (scm_resolv_error): Cast result from hstrerror.
2445
2446 * strports.c (st_end_input): Inserted parenthesis to get operator
2447 grouping correct.
2448
2449 * list.h (scm_init_list): Removed SCM_P around prototypes.
2450
2451 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
2452 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
2453 escaped " occurring inside string literals.
2454
682eefe9
MD
2455Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
2456
2457 * posix.c (scm_mknod): Escape " occuring inside docstring.
2458
56cfe22b
MD
24592000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2460
2461 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
2462 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
2463 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
2464 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
2465 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
2466 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
2467 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
2468 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 2469
56cfe22b
MD
2470 * filesys.c (scm_chmod), simpos.c (scm_system), version
2471 (scm_version), vports (scm_make_soft_port): Escape " occuring
2472 inside docstring.
2473
fcb1720f
GB
2474Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
2475
2476 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
2477 SCM_VALIDATE_LONG_COPY
2478
2479 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
2480 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
2481 couple of formal arguments (and fix their uses) to make arguments
2482 match the documentation.
2483
b9af3d0e
MS
24842000-01-14 <mstachow@alum.mit.edu>
2485
2486 * Makefile.am: Augment path when running guile-doc-snarf so
2487 guile-func-name-check is found.
2488
153511a7
GB
2489Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
2490
2491 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
2492 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
2493
59d5245f
GB
2494Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2495
2496 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
2497 the way guile-1.3.4 worked, but #if 0 out the version using
2498 SCM_VALIDATE_INUM_COPY for stricter testing.
2499
95aec69f
GB
2500Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
2501
2502 * guile-doc-snarf.in: Use new $fullfilename for running
2503 guile-func-name-check, and put "$fullfilename" and "$filename" in
2504 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 2505 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
2506 I sure hope we never have to deal with that! :-) ). Thanks to
2507 Mikael for pointing out the source_dir != build_dir was broken.
2508
b7ac2837
GB
2509Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
2510
2511 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
2512 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
2513 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
2514 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
2515 variants.
2516
2517 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
2518 then return whether it's an open port (was validating that it was
2519 an open port -- this was a bug I introduced back in December, but
2520 my careful reading of diffs caught it).
2521
2522 * numbers.c: Recombine the two conditional-compilation paths for
2523 all the log* primitives -- they were split based on #ifndef
2524 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
2525 some bugs and inconsistencies in the two sets of implementations.
2526 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
2527
2528 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
2529 SCM_VALIDATE_INUM_COPY once where it should've been used.
2530
2531 * fluids.c (scm_internal_with_fluids): Use
2532 SCM_VALIDATE_LIST_COPYLEN.
2533
2534 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
2535 this is questionable as it relaxes type safety, but other changes
2536 were useful and all SCM_NUM2LONG's should probably be
2537 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
2538
2539 * evalext.c: line-break change on 1 line.
2540
2541 * eval.c (nconc2last): Takes a non-empty list as its first
2542 argument, not just a list.
2543
2544 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
2545
2546Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2547
2548 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
2549 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
2550 where possible.
2551
2552 * symbols.c (scm_sysintern0): Fixed the function name in a
2553 scm_misc_error invocation.
2554
2555 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
2556 use scm_return_first to ward off latent GC bug that Mikael caught.
2557
2558 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
2559 used before but should've been.
2560
d61f6b02
MD
25612000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2562
2563 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
2564 SCM_FUNC_CAST_ARBITRARY_ARGS.
2565
88423ab1
GB
2566Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2567
2568 * guile-func-name-check.in: Added this script to statically check
2569 #define FUNC_NAME, #undef FUNC_NAME in the source.
2570
2571 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
2572 redundant comment, semicolon; caught by new guile-func-name-check
2573 script.
2574
2575 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
2576 Caught by new guile-func-name-check-script.
2577
2578 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
2579
2580 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
2581 guile-func-name-check.
2582
a00c95d9 2583 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
2584 doing the snarf.
2585
7f15e635
GB
2586Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
2587
2588 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
2589 port function take const void*, not void*.
2590
bf121b59
GB
2591Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2592
2593 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
2594 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
2595 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
2596 consistency with the other macros dealing with immediate
2597 characters. (Similar to INT -> INUM change a week or so ago).
2598
7965d98f
GB
2599Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2600
2601 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
2602 net_db.c, read.c, socket.c: Update error messages to use ~A for
2603 %s, ~S for %S to work with new `simple-format' format and be
2604 standardized better.
2605
2606 * print.h, print.c (scm_simple_format): Added `simple-format'
2607 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 2608 parameter, and the destination first instead of last (and a couple
7965d98f
GB
2609 new capabilities inspired by `format' -- #t as destination means
2610 current-output-port, #f means return the formatted text as a
2611 string.
2612
2613 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
2614
2615 * backtrace.c (scm_display_error_message): Rewrote to use
2616 scm_simple_format() procedure.
2617
2618 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
2619
f73d2411
MV
26202000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
2621
2622 Finally applied the libltdl patch from Thomas Tanner, with slight
2623 modifications.
2624
2625 * DYNAMIC-LINKING: Removed because it is obsolete.
2626 * dynl.c: Use ANSI prototypes.
2627 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
2628 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 2629
f73d2411
MV
2630 1999-07-25 Thomas Tanner <tanner@ffii.org>
2631
2632 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
2633 (obsolete)
2634 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
2635 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
2636 against libltdl
2637 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
2638 * guile.c: register preloaded modules
2639 * scmconfig.h.in: remove obsolete symbols
2640
38c1d3c4
GH
26412000-01-09 Gary Houston <ghouston@arglist.com>
2642
2643 * These changes should make it unnecessary to call tzset from
2644 Scheme after modifying the TZ environment variable, even if the
2645 system date facilities cache the value.
2646 * stime.c (setzone, scm_localtime): added comments.
2647 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
2648 (setzone): don't call tzset.
2649 (restorezone): call tzset only if HAVE_TZSET is defined.
2650 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
2651 doc string to indicate that this procedure isn't likely to do
2652 anything useful.
2653 (scm_localtime, scm_strftime, scm_mktime): call tzset if
2654 LOCALTIME_CACHE is defined.
2655
9359d657
MD
26562000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2657
2658 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
2659
f25f761d
GH
26602000-01-09 Gary Houston <ghouston@arglist.com>
2661
2662 * eval.c: define scm_unbound_variable_key ('unbound-variable).
2663 scm_lookupcar1: throw an error with key 'unbound-variable instead
2664 of 'misc-error when an unbound variable is encountered.
2665
a00c95d9 2666 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
2667 scm_symlink, scm_readlink, scm_lstat),
2668 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
2669 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
2670 scm_sync),
a00c95d9 2671 simpos.c (scm_system),
f25f761d
GH
2672 stime.c (scm_times, scm_strptime):
2673 move the HAVE_XXX feature tests out of the procedure bodies.
2674 don't use SCM_SYSMISSING.
2675 scm_validate.h (SCM_SYSMISSING): removed.
2676 error.h, error.c (scm_sysmissing): comment that this is deprecated.
2677 see ChangeLog entry for 1999-12-28.
2678
a4dd2611
GB
2679Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2680
2681 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
2682
2683Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2684
2685 * backtrace.c: Fix spelling typo in a comment.
2686
2687 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
2688 text. Reformatted some of the expansions.
2689
5ac36451
GB
2690Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2691
2692 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
2693 report the position of the argument.
2694
a00c95d9 2695 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 2696 take extra "pos" argument, the position number of the errant
a00c95d9 2697 argument.
5ac36451
GB
2698
2699 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
2700
2701 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
2702 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
2703 prefers that and I'm reasonably indifferent.
2704
2705Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
2706
2707 * snarf.h: Factor out differences between C++ and non-C++ into
2708 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
2709 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
2710 Mikael's macros, below, but changed names and SCM_SNARFING no
2711 longer expands to include %%% -- that must appear in the argument
2712 so that the token appears at the call-site as a reminder).
2713
088bb1d4
MD
27142000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2715
2716 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
2717 snarf macro definitions.
2718
636480e6
MD
27192000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2720
2721 * chars.c (scm_integer_to_char): Use Greg's nice
2722 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
2723 adherence to R5RS.
2724
7c5628e2
GB
2725Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2726
2727 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
2728
2cc0f8cb
GB
2729Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2730
2731 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
2732 instead of GUILE_PROC.
2733
2734Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2735
a00c95d9 2736 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
2737 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
2738 macro call.
2739
9179dcdd
GB
2740Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
2741
2742 * scm_validate.h: Remove some redundant NIMP tests.
2743
2744 * alist.c: minimize scope of the tmp variables, and initialize
2745 them when declared. The strange SCM_NIMP tests are replaced by
2746 SCM_CONSP tests that more closely reflect the intended semantics.
2747 However, we don't get a performance penalty here, because the
2748 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
2749 extremely ugly use of ASRTGO macros was removed: The calls to
2750 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
2751 label parameter that only exists when SCM_RECKLESS is not defined.
2752 This works, because ASRTGO itself is defined in a way that it only
2753 makes use of the label parameter if SCM_RECKLESS is not defined
2754 (shudder!). Does guile make at all use of the possibility to
2755 define SCM_RECKLESS? * Codesize is likely to be reduced, since
2756 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
2757 we now only get one test.
2758
2759 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
2760 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
2761 some variables in `list?'. Fix `reverse' and `reverse!'
2762 primitives to handle improper lists better.
2763
15b33280
GB
2764Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2765
2766 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
2767 macros and SCM_DEFINE macros to match GNU coding standards.
2768
ca8cd130
GB
2769Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
2770
2771 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
2772
fb764465
GB
2773Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
2774
2775 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
2776 better consistency with the names of other SCM_VALIDATE_ macros
2777 and better conformance to guile naming policy.
2778
2779Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
2780
2781 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
2782 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
2783 it's not the actual name of the formal).
1e484823
GB
2784
2785 * guile-snarf.awk.in: Do argument/number mismatch checking and
2786 print warnings in an Emacs compile-mode parseable format.
2787
2788 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
2789 SCM_OUTOFRANGE as 3rd argument.
2790
2791 * random.c: Fix argument/number mismatch (that I introduced :-( ).
2792
2793 * __scm.h: Do not #define SCM_ARG* when snarfing;
2794 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
2795 the former (using the number) requires the argument to match the
2796 formal in the current argument snarfing check.
2797
2798 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 2799 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
2800 guile-snarf.awk script uses to verify argument/position matching.
2801
2802 * ramap.c: Remove extraneous #undef FUNC_NAME.
2803
53fc4636
GB
2804Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2805
2806 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 2807 current version of the same functionality; it writes the .x output
53fc4636
GB
2808 to stdout instead of directly into the file.
2809
2810Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2811
2812 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
2813 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
2814 redundant with the safer macros. Patch from Dirk Hermann applied
2815 by hand. Thanks Dirk!
2816
2817 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
2818 uses in random.c.
2819
2820 * ramap.c: whitespace change.
2821
3b5345d9
GB
2822Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
2823
2824 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
2825 removals from Dirk Hermann.
2826
2827 * alist.c: Rename formals to match the parameter names in the
2828 documentation, updates to documentation. Thanks Dirk Hermann!
2829
169aec65
MD
28302000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2831
db62436e
MD
2832 * eval.c (SCM_CEVAL): Reverse order of
2833 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
2834 (Thanks to Brad Knotwell.)
169aec65 2835
da43d822
GB
2836Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
2837
2838 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 2839 allocated cell.
da43d822
GB
2840
2841 * pairs.h: Added a comment about the need for the SCM_SETCAR in
2842 SCM_NEWCELL macro.
2843
2844Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2845
2846 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
2847 SCM_NIMP tests that were redundant are now eliminated. Patches
2848 from Dirk Hermann applied by hand.
2849
339999c7 2850The ChangeLog continues in the file: "ChangeLog-1996-1999"