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