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