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