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