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