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