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