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