* Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
f8de44c1
DH
12000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * numbers.c (scm_logtest, scm_division): Reordered dispatch
4 sequence, thereby fixing some comparisons of SCM values with
5 integer constants.
6
7 * numbers.h (scm_makdbl): Mark as deprecated at the point of
8 declaration.
9
10 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
11 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
12 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
13 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
14 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
15 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
16 (ramap_rp, scm_array_map_x), random.c (scm_random,
17 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
18 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
19 call to scm_makdbl with a call to scm_make_real or
20 scm_make_complex, depending on whether the imaginary part is known
21 to be zero.
22
7f5fa419
GH
232000-05-01 Gary Houston <ghouston@arglist.com>
24
0607c109
GH
25 * scmsigs.c: fix the definition of orig_handlers for the case
26 that HAVE_SIGACTION is not defined (thanks to
27 Kalle Olavi Niemitalo).
28
7f5fa419
GH
29 * Makefile.am: remove include_HEADERS (was libguile.h)
30 libguile.h: moved to top level directory.
31
09fb7599
DH
322000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
33
34 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
35 a wider use.
36
37 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
38 scm_logxor): Reordered dispatch sequence, thereby fixing some
39 comparisons of SCM values with integer constants.
40
41 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
42 tests.
43
89a7e495
DH
442000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
45
46 * numbers.c (scm_quotient, scm_remainder): Removed code that was
47 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
48 occur anywhere else throughout guile.
49
50 * numbers.c (scm_quotient): Fixed parameter number in error
51 message.
52
53 * numbers.c (scm_remainder): Reordered dispatch sequence.
54
a4fbabb3
GH
552000-04-25 Gary Houston <ghouston@arglist.com>
56
57 * posix.c (scm_execlp): docstring fix (thanks to Martin
58 Grabmueller).
59
09e4d064
DH
602000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
61
62 * eval.c (undef_object): Made into a local static variable
63 (suggested by Jost Boekemeier).
64
e59bb516
DH
652000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
66
67 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
68 c[ad]+r functions.
69
70 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
71 scm_dsubr, scm_init_iprocs): Removed.
72
73 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
74 directly instead of casting a cell to a C struct.
75
820920e6
MD
762000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
77
78 Better modularization of GC extensions through new C level GC
79 hooks:
80
81 * weaks.c (scm_weaks_prehistory): New function: Add
82 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
83 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
84 (scm_scan_weak_vectors): New function; added to
85 scm_after_sweep_c_hook.
86
87 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
88 declarations.
89
90 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
91 now static.
92
93 * guardians.c (scm_guardian_gc_init): Turned into a hook function
94 and added to scm_before_mark_c_hook.
95 (scm_guardian_zombify): Turned into a hook function and added to
96 scm_before_sweep_c_hook.
97
98 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
99 Added #include "libguile/gc.h".
100
101 * gc.h: Added #include "libguile/hooks.h".
102
103 * gc.c: Removed #include "libguile/guardians.h".
104 (scm_before_gc_c_hook, scm_before_mark_c_hook,
105 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
106 scm_after_gc_c_hook): New C level hooks.
107 (scm_after_gc_hook): New Scheme level hook.
108 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
109 (scm_igc): Moved initialization of scm_weak_vectors and the call
110 to scm_guardian_gc_init to respective module.
111 (scm_mark_weak_vector_spines): Moved to weaks.c;
112 Call to scm_guardian_zombify moved to guardians.c;
113 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
114 scm_after_gc_c_hook at appropriate places.
115 (scm_init_gc): Initialize scm_after_gc_hook.
116
117 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
118 function.
119
120 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
121
122 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
123
124 * feature.c, feature.h: Broke out hook code into separate files.
125
126 * hooks.c, hooks.h: New files.
9764c29b 127
a0599745
MD
128 * *.*: Change includes so that they always use the "prefixes"
129 libguile/, qt/, guile-readline/, or libltdl/.
130 (Thanks to Tim Mooney.)
131
132 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
133 (DEFS): Added. automake adds -I options to DEFS, and we don't
134 want that.
135 Removed all -I options except for the root source directory and
136 the root build directory.
137
f4b0c568
MD
138 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
139 instead of SCM_ASSERT (0, ...). (Some compilers will complain
140 about control reaching end of function otherwise, and, besides,
141 the new code is not less clear.)
142
9764c29b
MD
143 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
144 calls to malloc debugging functions.
145
146 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
147 functions.
148
149 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
150 debug-malloc.x.
151
152 * debug-malloc.c, debug-malloc.h: New files.
153
4219f20d
DH
1542000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
155
156 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
157 documentation strings.
158
159 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
160 scm_quotient): Reordered dispatch sequence to first handle
161 immediates, second handle bignums and finally handle generic
162 functions respectively signal wrong type arguments. Hopefully
163 this will allow for easier separation when goops is integrated.
164
195e6201
DH
1652000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
166
167 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
168 variable into a pointer to a heap cell.
169
170 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
171 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
172
9e882eec
DH
1732000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
174
175 * print.c (scm_iprin1): Don't assign zero to SCM values, use
176 SCM_UNDEFINED instead.
177
178 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
179 vector element. (Still to be improved)
180
3201d763
DH
1812000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
182
183 * eval.c (undef_cell): Removed, replaced by:
184
185 (undef_object): Added to replace undef_cell.
186
187 (scm_lookupcar, scm_lookupcar1): Use undef_object.
188
189 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
190 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
191 Don't perform arithmetic operations with SCM values.
192
193 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
194 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
195 symbolic names for the tc3 type codes.
196
197 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
198 cast to SCM.
199
200 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
201 access of the struct vcell element explicit.
202
f7c38587
MD
2032000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
204
205 * struct.c (scm_struct_free_light, scm_struct_free_standard,
206 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
207
208 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
209 realloc:ing scm_subr_table ("what" instead of "who").
210
211 * numbers.c (scm_adjbig): Ditto.
212
baa702c8
DH
2132000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
214
215 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
216 itself, as was done in the previous 'patch'. (Thanks to Radey
217 Shouman)
218
fee7ef83
DH
2192000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
220
221 * options.c (scm_options), read.c (recsexpr): Remove redundant
222 SCM_IMP test.
223
224 * print.c (scm_iprin1): Made the access of the struct vcell
225 element explicit.
226
227 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
228
229 * ramap.c (scm_ra_eqp, ra_compare), unif.c
230 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
231 unsigned long and signed long arrays and clarified the way the
232 access is performed.
233
234 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
235 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
236 scm_raprin1): Use SCM_EQ_P to compare SCM values.
237
238 * strings.c (scm_makstr): Treat the msymbol slots as a field of
239 scm_bits_t values.
240
241 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
242 a field of scm_bits_t values.
243
244 * unif.c (l2ra): Don't test result of scm_array_set_x against
245 zero: It is always SCM_UNSPECIFIED.
246
9d0633a8
MD
2472000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
248
249 * script.c (scm_compile_shell_switches): Also enable
250 record-positions when given the --debug option. (Thanks to Diego
251 Dainese.)
252
230d095f
DH
2532000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
254
255 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
256 Compare SCM's with SCM_EQ_P.
257
258 * print.c (scm_make_print_state), srcprop.c
259 (scm_source_properties): Use valid scheme object to initialize
260 SCM variable.
261
262 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
263
c8045e8d
DH
2642000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
265
266 * struct.c (scm_alloc_struct, scm_struct_free_0,
267 scm_struct_free_light, scm_struct_free_standard,
268 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
269 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
270 scm_struct_free_light, scm_struct_free_standard,
271 scm_struct_free_entity): Struct data regions (and thus also
272 vtable data regions) are now C arrays of scm_bits_t elements.
273
274 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
275 mixup of glocs and structs explicit.
276
277 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
278
b0c54567
DH
2792000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
280
281 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
282 Minimize scope of variable 'ir'.
283
284 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
285 Added missing call to SCM_UNPACK.
286
b9c90f11
MD
2872000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
288
7aac9824 289 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 290 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 291
9ae58e2d
MD
2922000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
293
294 * script.c (scm_compile_shell_switches): Added --debug option.
295
49e12eb3
MD
2962000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
297
298 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
299 specified by R5RS).
300
7c1e0b12
MD
3012000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
302
303 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
304 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
305
306 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
307 New macros.
308 Cleanup of code layout.
309
310 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
311 procedures.
312
01c8a3dd
DH
3132000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
314
315 * continuations.c (scm_make_cont, scm_dynthrow): Completely
316 separated implementations for defined (CHEAP_CONTINUATIONS) and
317 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
318 copying.
319
320 * continuations.c (grow_stack): Renamed from grow_throw.
321
322 * continuations.c (copy_stack_and_call): New static function.
323
324 * continuations.c (scm_dynthrow): Simplified and made static.
325
326 * continuations.h (scm_dynthrow): Made static.
327
553f4414
MD
3282000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
329
330 * unif.c, unif.h (shared-array-root, shared-array-offset,
331 shared-array-increments): New primitives.
332
cf551a2b
DH
3332000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
334
335 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
336 size for msymbols.
337
338 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
339 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
340 values.
341
342 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
343 macros.
344
345 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
346 scm_symbol_pset_x): Use them.
347
348 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
349
12a8b769
DH
3502000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
351
352 * ports.c (scm_port_print): The port data is read as raw data.
353
354 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
355 mismatch.
356
d8c40b9f
DH
3572000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
358
359 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
360 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
361 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
362 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
363 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
364 The struct data is now an array of scm_bits_t variables.
365
366 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
367
cf551a2b 368 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
369
370 * struct.c (scm_struct_init): Unused variable 'data' removed.
371
372 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
373
1c3e63f0
DH
3742000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
375
376 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
377 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
378 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
379 scm_bits_t variables.
380
381 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
382
cf551a2b 383 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 384
bc66755e
DH
3852000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
386
387 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
388 scm_intern_obarray_soft, scm_sysintern0,
389 scm_string_to_obarray_symbol, scm_intern_symbol,
390 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
391 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
392 compare SCM values.
393
828865c3
DH
3942000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
395
396 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
397 case of immediate numbers parameters first. Also, only use
398 decoded numbers for numerical comparison.
399
1cf49a85
MD
4002000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
401
402 * objects.h: Don't redeclare scm_call_generic_0 and
403 scm_apply_generic. (Thanks to Tal Tversky.)
404
dba97178
DH
4052000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
406
407 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
408 Unpack SCM value to use it as a switch parameter. Don't cast SCM
409 values to int values.
410
3da01fa3
MD
4112000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
412
413 * coop.c (mother): Handled EINTR (the wait has been interrupted by
414 a signal).
415
451e591c
DH
4162000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
417
418 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
419 contains a raw zero value it has to be unpacked.
420
421 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
422 via void * requires unpacking / packing.
423
424 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
425 SCM_EQ_P to compare SCM values.
426
427 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
428 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
429 call to SCM_UNPACK.
430
431 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
432
433 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
434 quite ugly.
435
e94e3f21
ML
4362000-04-05 Michael Livshin <mlivshin@bigfoot.com>
437
438 * async.[ch]: unexpose low-level async access macros (thanks to
439 Dirk Herrmann).
440
441 * validate.h: move async validation macros to async.c (nobody else
442 needs them anyway), and rename them.
443
843e4e9d
ML
4442000-04-04 Michael Livshin <mlivshin@bigfoot.com>
445
446 * async.h: kill the scm_async_t struct. having a heap cell
447 pretending to be a C struct is not helthy, and is not needed here
448 anyway, as asyncs happily fit in one heap cell.
449
450 * async.c: reflect the fact that asyncs are now represented by
451 single heap cell each.
452
873c35ee
GH
4532000-04-04 Gary Houston <ghouston@arglist.com>
454
455 * error.c (scm_syserror): save errno before doing anything else,
456 since it's used in two expressions and may get mutated (thanks to
457 Dirk Herrmann).
458
4260a7fc
DH
4592000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
460
461 * debug.c (scm_procedure_source, scm_procedure_environment),
462 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
463 (scm_procedure, scm_setter): Return valid scheme value as dummy.
464
465 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
466 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
467 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
468 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
469 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
470 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
471 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
472 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
473
474 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
475 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
476 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
477 SCM_{SET_}?CELL_WORD_0.
478
479 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
480 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
481 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
482 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
483 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
484 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
485 scm_bit_count_star, l2ra), variable.c (prin_var,
486 scm_make_variable, scm_make_undefined_variable,
487 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
488 vports.c (sf_flush, sf_close): Don't use C operators to compare
489 SCM values.
490
491 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
492 unpack SCM values to access their raw contents.
493
494 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
495
496 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
497 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
498 type information.
499
500 * throw.c (printjb): Eliminated unnecessary unpack.
501
502 * variable.c (make_vcell_variable): Smob data is of type
503 scm_bits_t.
504
5b15c3b4
MD
5052000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
506
507 * print.c: Removed promise to rewrite printer code before next
508 release. :)
509
395c8567
MD
5102000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
511
512 * iselect.c (add_fd_sets): Insert empty statement after label.
513 (Thanks to Tim Mooney.)
514
50fecba9
ML
5152000-04-03 Michael Livshin <mlivshin@bigfoot.com>
516
517 * guardians.c (scm_guardian_zombify): mark all zombies in a
518 separate loop after processing all the currently known live
519 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 520 Gary Houston). note that the order problems are still there if
843e4e9d 521 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
522 I'm not going to worry about.
523 also, make another outer loop to process zombified
50fecba9
ML
524 guardians (which are uncovered while marking zombies).
525
54778cd3
DH
5262000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
527
528 * evalext.c (scm_definedp, scm_m_undefine), gc.c
529 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
530 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
531 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
532 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
533 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
534 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
535 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
536 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
537 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
538 scm_stand_in_scm_proc, scm_procedure_property,
539 scm_set_procedure_property_x), procs.c
540 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
541 scm_lreadrecparen, scm_read_hash_extend), script.c
542 (scm_compile_shell_switches), srcprop.c (scm_source_property,
543 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
544 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
545 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
546 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
547 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
548 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
549 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
550
551 * feature.c (make_hook), keywords.c
552 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
553 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
554 scm_printer_apply, scm_port_with_print_state): Smob data is of type
555 scm_bits_t.
556
557 * feature.c (print_hook), gc.c (scm_object_address), hash.c
558 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 559 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
560 SCM values to access their raw contents.
561
562 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
563 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
564 values via void * requires unpacking / packing.
565
566 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
567 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
568 Read and modify data bits in cell entry #0 using
569 SCM_{SET_}?CELL_WORD_0.
570
571 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
572 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
573 (scm_void_port), procs.c (scm_make_subr_opt,
574 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
575 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
576 SCM_SET_CELL_TYPE to write the cell type information.
577
578 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
579 from cells that are no scheme pairs.
580
581 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
582 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
583 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
584 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
585 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
586 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
587 entries with raw data.
588
589 * gc.c (scm_init_storage), sort.c (applyless), strop.c
590 (scm_string_to_list): Eliminate unnecessary casts to SCM.
591
592 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
593 data.
594
595 * ports.c (scm_close_all_ports_except): Duplicate documentation
596 text removed.
597
598 * print.c (scm_iprin1): Use SCM_ITAG3.
599
600 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
601
602 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
603 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
604 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
605 and static variables at their point of declaration, but rather in
606 the init function.
607
608 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
609
abeed821
GH
6102000-04-02 Gary Houston <ghouston@arglist.com>
611
612 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
613 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
614 use of an improper list (which breaks g_print. g_print isn't
615 used).
616 guardians.c: Added more comments and modified the make-guardian
617 docstring. Reordered a few procedures.
618
cf498326
DH
6192000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
620
621 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
622 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
623 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
624 compare SCM values.
625
626 (scm_makprom): Smob data is of type scm_bits_t.
627
cffcab30
DH
6282000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
629
630 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
631 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
632 operators to compare SCM values.
633
634 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
635 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
636 access raw cell data with SCM_{SET_}?CELL_WORD_1.
637
638 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
639
640 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
641 data is of type scm_bits_t.
642
7fa93bf8
DH
6432000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
644
645 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
646 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
647
648 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
649
74a16888
DH
6502000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
651
652 * ports.h (scm_port): Change type of stream member to scm_bits_t.
653
654 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
655 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
656 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
657 streams are now of type scm_bits_t, SCM streams have to be
658 unpacked/packed.
659
660 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
661 scm_bits_t.
662
b6cc0ef6
MD
6632000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
664
6a878357
MD
665 * coop-defs.h (struct coop_t): Added `sto'-field again because of
666 binary compatibility---let's remove it next time we alter some
667 major structure.
668
b6cc0ef6
MD
669 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
670 coop_mother, coop_child): New variables.
671 (mother): New function.
672 (coop_create): New thread spawning mechanism which uses a "mother
673 thread". The "dummy" pthreads aren't healthy enough to give birth
674 to new threads since Linux threads thinks they are asleep.
675
676 * coop-defs.h (struct coop_t): Removed dummy_mutex.
677
678 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
679 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
680
843524cc
DH
6812000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
682
683 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
684 (scm_internal_dynamic_wind): Smob data is always of type
685 scm_bits_t.
686
687 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
688 Access the locking information in cell entry 0 with
689 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
690
691 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
692 list.
693
694 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
695
696 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
697 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
698
fbd485ba
DH
6992000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
700
701 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
702 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
703 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
704 Don't use C operators == and != to compare SCM values, use
705 SCM_EQ_P instead.
706
707 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
708 SCM value is equal to #t or #f.
709
710 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
711 cell type entry of non immediate objects of unknown type. Use
712 SCM_CELL_TYPE instead.
713
714 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
715 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
716 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
717 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
718 #t.
719
720 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
721 scheme value.
722
64e3bf6c
MD
7232000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
724
0208baa0
MD
725 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
726 scm_make_mutex, scm_make_condition_variable): Cast data to
727 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
728
64e3bf6c
MD
729 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
730
94113249
DH
7312000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
732
733 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
734 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
735 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
736
737 Note that this implies that smob data has always to be passed as
738 values of type scm_bits_t.
739
1978b33e
MD
7402000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
741
742 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
743 for scm_tc16_thread. As the current COOP threads are written, GC
744 is not supposed to manage storage for threads.
745
746 * error.c (scm_error): Don't try to throw an error if
747 scm_gc_heap_lock is true.
748
749 * coop.c (coop_finish): New function. Called at exit.
750 (coop_aborthelp): Free thread structures when threads die.
751 Finished LinuxThreads compatibility support => COOP threads now
752 mesh with LinuxThreads.
843e4e9d 753
1978b33e
MD
754 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
755 Changed SETCDR --> SET_CELL_WORD_1.
756
757 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
758 when thread dies.
759
dd039d6d
DH
7602000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
761
762 * boolean.h (SCM_TRUE_P): New macro.
763
764 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
765 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
766
8b3bda20
DH
7672000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
768
769 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
770 access continuation data.
771
772 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
773
774 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
775 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
776 continuation data.
777
843e4e9d 778 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
779 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
780 SCM_SETJMPBUF.
781
3210f49a
DH
7822000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
783
784 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
785 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
786
787 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
788 to access the char * field of strings and symbols.
789
2d67e390
DH
7902000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
791
792 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
793 the type entry of a new cell. Added a comment about things to
794 remember when updating the list of free cells.
795
796 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
797 entry of a cell.
798
76a369d9
DH
7992000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
800
801 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
802 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
803 with strict type checking enabled these macros will only work if
804 given valid SCM parameters.
805
3210f49a 806 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
807
808 * tags.h (SCM_GCCDR): Moved here from pairs.h.
809
2549a709
DH
8102000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
811
812 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
813
814 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
815 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
816 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
817 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
818 SCM_NEWCELL2): Moved to gc.h.
819
820 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
821 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
822 be changed, though, since the macros are not only pair related.
823
824 (SCMPTR): Deleted.
825
826 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
827 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
828 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
829 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
830 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
831 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
832 tags.h and pairs.h.
833
8d3356e7
DH
8342000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
835
836 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
837 activates strict compile time type checking for variables of
838 type SCM.
839 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
840 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
841 (SCM_EQ_P): Defined as a macro equivalent for eq?.
842
96f6f4ae
DH
8432000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
844
845 * tags.h (SCM_POINTERS_MUNGED): Removed.
846
847 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
848 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
849
0cbaaf0b
DH
8502000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
851
852 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
853 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
854 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
855 cell entries.
856 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
857
858 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
859 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
860
7284d584
MD
8612000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
862
863 * tags.h: Disabled definition of SCM_VOIDP_TEST.
864
865 Defining SCM as void * introduces problems which haven't been
866 handled yet. Developers who work with these issues can enable it
867 in their working copies.
868
869 Disabling this definition exposes a set of newly introduced and
870 older misuses of types which causes warning messages during
871 compilation. We'll fix this successively.
872
873 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
874 in order to obtain a value of type SCM.
875 (scm_cellp): Updated with new changes to scm_mark_locations.
876
877 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
878
2f9055ea
MD
879 * continuations.c (scm_make_cont): Removed cast of size_t into
880 long.
881
7284d584
MD
882 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
883
f81e080b
DH
8842000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
885
886 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
887 shifting, not constant. Thanks to Dale P. Smith.
888
889 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
890 for being less than zero. Decode it to a C value first. Again,
891 thank you Dale.
892
1ff2fa6e
DH
8932000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
894
895 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
896 non scheme values. If raw data is stored in SCM variables, it has
897 to be accessed using SCM_UNPACK until a better solution is found.
898
3920465b
MD
8992000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
900
6f29dc6d
MD
901 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
902 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
903
904 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
905
906 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
907
908 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
909
910 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
911
3920465b
MD
912 * async.c, __scm.h: Removed lots of the old async click logic. It
913 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
914 __scm.h. Let's try this out and dump the old code after the
915 threads reorganization.
916 (set-tick-rate, set-switch-rate): Conditionally removed.
917
90cca6f9
MD
9182000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
919
920 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
921 made SCM values into pointers. This turned an arithmetic
922 computation of the address of the vcell into a pointer-arithmetic
923 one, thereby screwing up marking of structs.
924 Bugfix 2: Removed incompletely introduced loop variable `j' used
925 when protecting the tail array of a struct.
926
8246bf3e
DH
9272000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
928
929 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
930
95c9e176
DH
9312000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
932
933 * symbols.h, symbols.c (scm_strhash): Declare the string
934 parameter as constant, since it is not modified.
935
936 * symbols.c (scm_intern_obarray_soft,
937 scm_sysintern0_no_module_lookup): Can now pass constant strings
938 to scm_strhash without need for casting.
939
7352d0b2
DH
9402000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
941
942 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
943 values to pointers. Use SCM2PTR instead.
944
b00c8cdc 9452000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
946
947 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
948 results of SCM_INUM.
949
df2d5178
MD
9502000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
951
bd54e664
MD
952 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
953 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
954 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
955
956 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
957 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
958 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
959 gc_trigger, adjust_gc_trigger.
960
df2d5178
MD
961 * gc.c (alloc_some_heap): Further improvement of minimal heap size
962 prediction.
963 (SCM_MAX): New macro.
964 (scm_freelist_t): New field: collected_1. Previous amount of
965 collected cells.
966 (gc_sweep_freelist_finish): Trigger based on two last values of
967 freelist->collected to avoid unnecessary allocation due to
968 temporary peaks.
bd54e664
MD
969 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
970 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
971 without extra heap allocation.
df2d5178 972
f2961ccd
DH
9732000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
974
975 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
976 already be a C value. No need to unpack it.
977
3210f49a 978 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
979 if we know it fits into an inum.
980
981 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
982 field of long values. In contrast, SCM_VELTS accesses a field of
983 SCM values.
984
7b4cc831
MD
9852000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
986
f1d316dd
MD
987 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
988 etc.
80770ddc
MD
989 (scm_gc_yield_1): New variable: Holds previous yield. Used to
990 make better judgements.
f1083dd7
MD
991 (gc_sweep_freelist_finish): Inserted explanation of use of
992 gc_trigger.
f1d316dd
MD
993
994 * print.h, stacks.h, options.c, options.h: Changed C++
995 commentaries to C.
7b4cc831 996
7a710745
DH
9972000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
998
999 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
1000
1001 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
1002 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
1003 SCM_UNPACK / SCM2PTR correctly.
1004
1ef20c80
MD
10052000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1006
1007 * gc.c (adjust_gc_trigger): Improved documentation.
1008 (alloc_some_heap): Since gc_trigger is used against
1009 freelist->collected, this is the value which should be used to
1010 predict minimum growth.
1011
b464b970
DH
10122000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1013
1014 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
1015 Thien-Thi Nguyen for the patch.)
1016
3ab9f56e
DH
10172000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1018
1019 * numbers.c (scm_ash): Fixed typing problems with the second
1020 parameter and added some documentation. (Thanks Thien-Thi Nguyen
1021 for indicating the problem.)
1022
05bc3265
MD
10232000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1024
78a4915a
MD
1025 * gc.c, gc.h (scm_gc_yield): New variable.
1026 (adjust_gc_trigger): Use scm_gc_yield.
1027 (alloc_some_heap): Use scm_gc_yield instead of
1028 scm_gc_cells_collected.
1029
05bc3265
MD
1030 * coop-threads.c: Addd #include "root.h", #include "strings.h".
1031
1032 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
1033
1034 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
1035 trigger adjustmeant: Take yield (freed cells) for all freelists
1036 into account.
1037 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
1038 to 50000 cell heap with 45% trigger.
1039 (scm_gc_cells_collected): Reintroduced.
1040 (SCM_HEAP_SIZE): New macro.
1041 (scm_gc_sweep): Reintroduced correct computation of
1042 scm_cells_allocated.
1043 (scm_freelist_t): Corrected commentary for field `cluster_size':
1044 Clustersize counts objects, not cells; New member
1045 `clusters_allocated'.
1046
89e00824
ML
10472000-03-19 Michael Livshin <mlivshin@bigfoot.com>
1048
1049 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
1050 indentation style.
1051
afcfc5bb
MD
10522000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1053
1054 * threads.h: Added #include "libguile/throw.h". (Thanks to
1055 Thien-Thi Nguyen.)
1056
a00c95d9
ML
10572000-03-18 Michael Livshin <mlivshin@bigfoot.com>
1058
50fecba9
ML
1059 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
1060 names, anyone got any better ones?)
a00c95d9
ML
1061
1062 * gc.h: (typedef struct scm_freelist_t) remove from here.
1063
50fecba9 1064 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
1065 parameter (the span).
1066 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 1067 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
1068 business being externally visible.
1069 (typedef struct scm_heap_seg_data_t) renamed from
1070 scm_heap_seg_data, to be style-compliant.
1071 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
1072 double-cell, check that it's properly aligned.
1073 (init_heap_seg) align double-cells properly, work with the
1074 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
1075 (round_to_cluster_size) new function.
1076 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
1077 to satisfy the new init_heap_seg invariant.
1078
28b3236d
DH
10792000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1080
1081 * _scm.h: Don't include async.h everywhere...
1082
1083 * eq.c eval.c iselect.c: ... only include it here.
1084
ba11fd4c
DH
10852000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1086
1087 * _scm.h: Don't include root.h everywhere...
1088
1089 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
1090 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
1091 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
1092 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
1093 variable.c vectors.c vports.c: ... only include it here.
1094
7ab3fdd5
DH
10952000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1096
1097 * _scm.h: Don't include strings.h everywhere...
1098
1099 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
1100 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
1101 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
1102 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
1103 symbols.c unif.c vectors.c version.c vports.c: ... only include it
1104 here.
1105
f04d8caf
DH
11062000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1107
1108 * _scm.h: Don't include ports.h everywhere...
1109
1110 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
1111 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
1112 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
1113 stackchk.c strports.c struct.c throw.c variable.c: ... only
1114 include it here.
1115
003d1fd0
DH
11162000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1117
1118 * _scm.h: Don't include vectors.h everywhere...
1119
1120 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
1121 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
1122 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
1123 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
1124 here.
1125
0fa27efa
DH
11262000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1127
1128 * genio.h: removed. (Only content was '/* delete me */'.)
1129
1130 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
1131 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
1132 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
1133 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
1134 Removed reference to genio.h
1135
148f31de
MD
11362000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1137
1138 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
1139 Cluster sizes are now independent of GC trigger values.
1140 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
1141 A negative integer gives fraction of total heap size in percent.
1eb489a2 1142 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
1143
1144 * init.c (scm_boot_guile_1): Introduced new variable
1145 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
1146 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
1147 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
1148
6d0f81dd 11492000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 1150
6d0f81dd
MD
1151 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
1152 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
1153 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
1154 the default, but I'll let this change stay in CVS Guile since this
1155 code is not expected to contain serious bugs.
a00c95d9 1156
17351a6f 11572000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 1158
6c7c449e
MD
1159 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
1160 defined.
5a551542
MD
1161 (scm_free_list_length): New procedure (GUILE_DEBUG).
1162 Fixed a small but serious bug introduced by the previous change.
1163
17351a6f
MD
1164 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
1165 loop and declare as register.
6c7c449e 1166
c5133dc9
MD
1167 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
1168 after GC.
1169
3820581c
GB
1170Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1171
1172 * fluids.c: Docstring patch from Keisuke Nishida. Some
1173 reindentation, too, and a couple formals renamed. Should
1174 fluid-set! return UNSPECIFIED instead of a value?
1175
1176Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1177
1178 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 1179 generate the latter from the concrete listing of the former. Then
3820581c
GB
1180 make guile-procedures.txt depend on DOT_DOC_FILES instead of
1181 *.doc, so that rebuilding it works.
1182
dd6390bf
GB
1183Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
1184
1185 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
1186
1187 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
1188 with nothing and \n, respectively. Thanks Keisuke Nishida for
1189 noticing this problem.
1190
4fdb0ae2
MD
11912000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1192
1193 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
1194 new way of allocating heap. It makes Guile fast, but still
1195 contains bugs.
1196
1197 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
1198 allocating heap. The basic idea is to trigger GC every Nth
1199 allocated cell and grow heap when free list runs out. The scheme
1200 has been extended so that GC isn't triggered until all remaining
1201 cells are used. The implementation is also prepared for
1202 development in the direction of POSIX threads.
1203
1204 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
1205 SCM_EXPHEAP should return half of the heap size.
1206
3d8d1283
MD
12072000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1208
5f4edb86
MD
1209 The following change to init.c is only enabled if Guile was
1210 configured with --enable-guile-debug.
a00c95d9 1211
5f4edb86
MD
1212 * init.c (scm_i_getenv_int): New function.
1213 (scm_boot_guile_1): Use the environment variables
1214 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
1215 they exist. (This may be replaced by a Scheme level mechanism in
1216 the future.)
1217
3d8d1283 1218 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 1219 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 1220
b0e37c83
MD
12212000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1222
1223 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 1224 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 1225
16d35552
MD
12262000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1227
5ebf0091
MD
1228 * init.c (scm_boot_guile_1): Use same initial segment size for
1229 1-word and 2-word segments. Having the smaller size causes Guile
1230 to GC too often. Obviously something needs to be done to allow
1231 for a smaller 2-word segment without this to happen. (The amount
1232 of heap for each type should be automatically adapted to the
1233 application somehow.)
1234
31ed4cff
MD
1235 [Almost all of these changes should be documented in the NEWS
1236 file.]
1237
cf2c7413
MD
1238 * gc.h (scm_freelist_t): New type.
1239
1240 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
1241
1242 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
1243 all of Guile basics fits into one segment and there suitable room
1244 for work.
1245 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
1246 instead of 2.
1247 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
1248 Freelists now contains information about object span, cells
1249 collected and amount of cells in heap segments belonging to the
1250 list.
1251 (scm_heap_size, scm_gc_cells_collected): Removed.
1252
1253 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
1254
16d35552
MD
1255 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
1256 number.
1257
cf2c7413 1258 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
1259 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
1260 rewrite of handling of real and complex numbers.
1261 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
1262 removed along with the support for floats. (Float vectors are
1263 still supported.)
1264
1265 * tags.h (scm_tcs_bignums): Removed.
1266 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
1267 Use SCM_BIGSIGN(x) to test for sign!
1268 (scm_tc16_big): The new bignum type.
1269 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
1270
1271 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
1272 (scm_makdbl): Deprecated.
1273 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
1274 (SCM_SINGP): Deprecated.
1275 (SCM_FLO): Removed.
1276 (SCM_INEXP, SCM_CPLXP): Deprecated.
1277 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
1278 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
1279 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
1280 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
1281 for doubles and complex numbers.
1282 (SCM_REAL_VALUE): New selector for doubles.
1283 (scm_double_t, scm_complex_t): New types.
1284 (scm_dbl): Removed.
1285
1286 * numbers.c (scm_floprint, scm_floequal): Removed.
1287 (scm_print_real, scm_print_complex, scm_real_equalp,
1288 scm_complex_equalp): New functions.
1289
1290 * unif.c (scm_makflo): Removed.
1291
1292 * smob.h (SCM_SMOB_PREDICATE): New macro.
1293 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
1294 SCM_RETURN_NEWSMOB3): New macros.
1295
12961999-11-21 Michael Livshin <mlivshin@bigfoot.com>
1297
1298 The following changes implement primitive support for double cells
1299 (i.e. four-word cells) and change the representation of some
1300 things to multi-cells instead of cons+malloc. (Applied and
1301 modified by mdj.)
1302
1303 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
1304 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
1305 multi-cell access macros (used by the ones below).
1306 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
1307 macros.
1308
1309 * gc.c (scm_freelist2): multi-cell freelists.
1310 (inner_map_free_list): map_free_list, parameterized on ncells.
1311 "nn cells in segment mm" was misleading for ncells > 1; changed to
1312 "objects". still print cells too, though.
1313 (scm_map_free_list): rewritten using inner_map_free_list.
1314 (scm_check_freelist): get freelist as parameter, since now we have
1315 more than one.
1316 (scm_debug_newcell2): multi-cell variants of
1317 scm_debug_newcell.
1318 (scm_gc_for_newcell): take ncells and freelist pointer as
1319 parameters.
1320 (scm_gc_mark): add case for tc7_pws (procedures with setters are
1321 now double cells).
1322 (scm_gc_sweep): don't free the float data, since it's not malloced
1323 anymore.
1324 (init_heap_seg): didn't understand what n_new_objects stood for,
1325 so changed to n_new_cells.
1326 (make_initial_segment): new function, makes an initial segment
1327 according to given ncells.
1328 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
1329
1330 * numbers.c (scm_makdbl): no malloc'ing needed, so the
1331 {DEFER,ALLOW}_INTS thing removed.
1332
1333 * numbers.h (struct scm_dbl): changed to represent a double cell,
1334 with the number in the second half.
16d35552
MD
1335
1336 * dynwind.c: changed the wind-guards representation to double
1337 cell.
1338
1339 * procs.c, procs.h: changed the procedure-with-setter representation
1340 to double cell.
1341
1342 * async.c, async.h: made async representation a double cell.
1343
16d35552 1344 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 1345
b70ecbd0
GH
13462000-03-13 Gary Houston <ghouston@arglist.com>
1347
1348 * ports.c (flush_void_port): renamed to flush_port_default.
1349 (end_input_void_port): renamed to end_input_default.
1350
1351 * init.c (scm_standard_stream_to_port): create a void port instead
1352 of opening /dev/null if the standard file descriptors are bad.
1353 advantages: no portability problems, doesn't waste a file descriptor,
1354 simplifies the code (thanks to Marius for the idea).
1355
1356 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
1357
1358 * void ports: make reading from a void port give EOF instead of
1359 segv:
1360 * ports.c (s_scm_sys_make_void_port): modified docstring.
1361 (fill_input_void_port): new proc.
1362 (scm_init_ports): set up fill_input_void_port.
1363 * ports.c (scm_port_non_buffer): new proc.
1364 (scm_void_port): call scm_port_non_buffer.
1365
1366 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
1367 which was incorrectly appended.
1368
fdc7ea2d
MD
13692000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1370
1371 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
1372 that we can't use autoconf for this. Autoconf itself relies on
26fba922 1373 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 1374 Herrman.)
a00c95d9 1375
68933ba3
MD
13762000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1377
b44a555a
MD
1378 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
1379 EXTRA_libguile_la_SOURCES.
1380
1381 * iselect.h: Always declare scm_internal_select.
1382
1383 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
1384 end. Also let scm_internal_select be a real function also when
1385 not using threads.
1386
68933ba3
MD
1387 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
1388
c7f6ea11
MD
13892000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1390
1391 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
1392 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
1393 and kind of an experiment: Will this cause problems?)
1394
62dbc244
GB
1395Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1396
1397 * Makefile.am: Added *.doc to DISTCLEANFILES.
1398
4f2f645d
GH
13992000-03-12 Gary Houston <ghouston@arglist.com>
1400
1401 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
1402 the fdes is valid before doing anything else. check that
1403 the file descriptor supports the modes required.
1404 (scm_fport_buffer_add): don't throw an error if fstat doesn't
1405 work: just use the default buffer size.
1406
1407 * throw.c: change an outdated comment about scm_internal_catch
1408 BODY: it doesn't take a jumpbuf arg.
1409
1410 * init.c (scm_standard_stream_to_port): install a handler in case
1411 scm_fdes_to_port throws an error. don't check here whether the
1412 file descriptor is valid, since scm_fdes_to_port will do that.
1413 set the revealed count depending on whether the port got the
1414 standard file descriptor.
1415 (stream_body_data): new type.
1416 (stream_body, stream_handler): new procs.
1417
7f782a0a
MD
14182000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1419
67673f75
MD
1420 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
1421 Renamed from SCMWORD.
1422
1423 * tags.h (SCM_NCELLP): Removed (SCMWORD).
1424
f1267706 1425 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 1426
74a426ae
MD
1427 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
1428 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
1429 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
1430 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
1431 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
1432 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
1433 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 1434 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
1435 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
1436
7f782a0a
MD
1437 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
1438
1439 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
1440 tags.h: Fixed copyright notices.
1441
1442 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 1443
7f782a0a 14442000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 1445
0cd87628
MV
1446 * init.c (scm_standard_stream_to_port): Check whether the file
1447 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 1448
f3b5e185
MD
14492000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1450
1451 * coop-defs.h (struct timespec): Conditionally defined.
1452
1453 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
1454 instead of ETIME.
38eca29b
MD
1455
1456 * readline.c (match_paren): Bugfix: First arg to select is not
1457 number of descriptors but the number of the highest descriptor +
1458 1.
1459
1460 This is a preliminary attempt at a cleanup of the threads support
1461 code. It moves things to better places, makes arguments more
1462 consistent with the POSIX API (which is used in GNOME's glib), and
1463 adds new functionality.
a00c95d9 1464
38eca29b
MD
1465 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
1466
1467 * coop-defs.h (scm_mutex_trylock): New macro: alias for
1468 coop_mutex_trylock.
1469 (scm_cond_init): Changed definition to
1470 coop_new_condition_variable_init.
a00c95d9 1471
38eca29b
MD
1472 * coop.c: #include <errno.h>
1473 (coop_timeout_qinsert): Moved here from iselect.c
1474 (coop_new_mutex_init, coop_new_condition_variable_init): New
1475 functions. The strange names are temporary. Use scm_mutex_init
1476 and scm_cond_init instead.
1477 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
1478 is ANSI C, but should we check for individual error codes in
1479 configure.in?
1480 (coop_condition_variable_timed_wait_mutex): New function.
1481 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 1482 coop_key_delete): New functions.
38eca29b
MD
1483
1484 * iselect.c (coop_timout_qinsert): Moved to coop.c
1485
32e1616c
MD
14862000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1487
1488 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
1489 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
1490
1491 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
1492 Layout cleanups.
1493
1494 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
1495 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
1496 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
1497
1498 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
1499 dealing with ilocs.
1500
d5c39069
GB
15012000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1502
1503 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
1504 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
1505 logical functions from SCM.
1506
1507 (logand, logior, logxor, logtest, logbit?): Extended scheme
1508 logical functions to use bignums from SCM.
1509
1510 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
1511 lognot from using bignums.
1512
3e892913
GB
1513Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1514
a00c95d9 1515 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
1516 eliminating some warnings.
1517
1518 * unif.c, strports.c, print.c, options.c: Fix some warnings on
1519 mis-use of SCM/long
1520
1521 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
1522 what the scm_return_first* functions do.
1523
7ac030d6
GB
15242000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1525
1526 * libguile/*.[ch]: make a distinction between SCM as a generic
1527 name for a Scheme object (now a void*), and SCM as 32 bit word for
1528 storing tags and immediates (now a long int). Introduced
1529 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
1530 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 1531
f635d2d4
GB
1532Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
1533
1534 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
1535 various logXXX primitives. Thanks Eric Moore!
1536
9eaa7fb6
GB
1537Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1538
1539 * run-test, remaining-docs-needed: Added these scripts. The
1540 second one is only temporary until the docstring additions are
1541 complete. run-test may best live on, but is here mostly for
1542 convenience and awareness for now.
1543
1544 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
1545
49673698
GB
1546Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1547
1548 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
1549 displaying the expected type. Use SCM_LISTn in a couple places
1550 instead of scm_cons-ing by hand.
1551
1552 * __scm.h: Added SCM_ASSERT_TYPE macro.
1553
1554 * validate.h, scm_validate.h: Added the former, as a renamed
1555 version of the latter with SCM_ASSERT_TYPE used in
1556 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
1557
1558 * Makefile.am: Rename scm_validate.h to validate.h.
1559
1560 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
1561 prefix was superfluous).
1562
417bdef8
GB
1563Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1564
1565 * hashtab.c: Improved documentation for lots of functions. Added
1566 handwritten docs for `hash-fold'.
1567
1568Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1569
1570 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
1571
26a760c6
GB
1572Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1573
a00c95d9 1574 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
1575 added append docs from R4RS.
1576
1577 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
1578 Thanks Dirk Hermann!
1579
1580 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
1581 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 1582
26a760c6
GB
1583 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
1584 Drop use of SCM_P for function prototypes... assume an ANSI C
1585 compiler. Thanks Dirk Hermann!
1586
898942f8
GB
1587Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1588
1589 * ports.c: Made `set-port-column!' and `set-port-line!' each
1590 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
1591 that caused a seg fault. Also fixed `set-port-column!'s
1592 docstring. Thanks Han-Wen Nienhuys for finding the bug!
1593
84a3df2c
GB
1594Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
1595
1596 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 1597 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
1598 strings.c, variable.c: Added lots of documentation, cleaned up
1599 some existing documentation. Occasionally changed formal params
1600 to match docs. Also folded an #ifdef into the inners of a
1601 primitive instead of having two copies of the primitive
1602 (`get-internal-real-time', from stime.c)
1603
1604Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
1605
1606 * ports.c: Added docs for primitives missing them. Written by
1607 hand.
1608
3f557de6
GB
1609Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
1610
1611 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
1612 just execing guile-func-name-check. Thanks Michael Livshin!
1613
ddcccdb3
GB
1614Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
1615
1616 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
1617 dead code. Patch from Michael Livshin.
1618
1619 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
1620 Michael Livshin.
1621
720e8692
GH
16222000-02-09 Gary Houston <ghouston@arglist.com>
1623
1624 * init.c (scm_init_standard_ports): when stdout is a tty, make the
1625 current-output-port unbuffered by default. this is less confusing
1626 for interactive use. it was line-buffered because of a
1627 performance problem with unbuffered ports, but I think it will be
1628 OK now.
1629
43ff3170
GH
16302000-02-08 Gary Houston <ghouston@arglist.com>
1631
1632 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
1633 is not defined.
1634
1635 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
1636 HAVE_TZNAME are defined, use an empty string instead of giving two
1637 spurious compile-time errors.
1638
4ba47302
GB
1639Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1640
1641 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
1642 Thanks Richard!
1643
09a617f7
GB
1644Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
1645
1646 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
1647
9dbcf010
GB
1648Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
1649
1650 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
1651 (which is GNU GPL'd).
1652
bd9e24b3
GH
16532000-01-31 Gary Houston <ghouston@arglist.com>
1654
1655 * strings.h: don't use SCM_P. don't include <string.h>.
1656 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 1657
bd9e24b3
GH
1658 * strings.c (scm_string_ref): make the 2nd argument compulsory.
1659 previously it defaulted to zero for no good reason that I can see.
1660 use a local variable for SCM_INUM (k). replace
1661 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
1662
1663 (scm_makfromstr): cosmetic changes.
1664
1665 (scm_string): Accept only chars in the list, not strings, for
1666 conformance to R5RS (particularly for list->string, which is
1667 supposed to be the inverse of string->list.) remove
1668 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
1669 scm_makstr handles the cell allocation. when reporting wrong-type
1670 arg, don't report the position as 1.
1671
1672 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
1673
28d77376
GH
16742000-01-29 Gary Houston <ghouston@arglist.com>
1675
ae1b098b
GH
1676 * posix.c (scm_pipe): rewrote the docstring.
1677
28d77376
GH
1678 * filesys.c (scm_select, retrieve_select_type, get_element,
1679 fill_select_type, set_element): modified so that Scheme
1680 "select" tests port buffers for the ability to provide input
1681 or accept output. Previously only the underlying file descriptors
1682 were checked. Rewrote the docstring.
a00c95d9 1683
7f1497ce
GB
1684Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1685
1686 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
1687 from Gregg Reynolds. Thanks Gregg!
1688
2288ff9b
GB
1689Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1690
1691 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
1692 adding "x" prefix to the line so that guile-func-name-check
1693 doesn't complain unnecessarily.
1694
349af6dd
GB
1695Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
1696
1697 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
1698 for maintainability.
1699
1700 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
1701 from qdocs, RnRs.
1702
a28eb127
GB
1703Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
1704
a00c95d9 1705 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
1706 suggests removing tag.c altogether (and using a new `class-of'
1707 instead).
1708
1709 * strings.c: Added documentation from Gregg A. Reynolds. Edited
1710 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 1711 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
1712 (rnrs) note.
1713
1714 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
1715 function with scm_make_subr_opt w/ last arg of 0 so it is not
1716 visible at the Scheme level. Mikael says that this is the right
1717 thing because the first arg to the proc is the guts of a compiled
1718 closure and shouldn't be exposed to the Scheme level.
1719
ac2259fc
GB
1720Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
1721
1722 * sort.c: typo in comment fixed.
1723
1724 * keywords.c: Added documentation.
1725
1726 * guardians.c: Added documentation (could be better).
1727
1728 * gc.c: Added docs for gc-set-debug-check-freelist.
1729
1730 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
1731
1732 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 1733
d928e0b4
GB
1734Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
1735
1736 * random.c: Added documentation, from SLIB page:
1737 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
1738
1739Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
1740
1741 * variable.c, version.c: Added documentation, written by hand
1742 since I could not find anything already written that was
1743 relevant.
1744
d831b039
GH
17452000-01-23 Gary Houston <ghouston@arglist.com>
1746
a00c95d9 1747 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
1748 not defined (thanks to Richard Y. Kim).
1749
88ec97ad
GB
1750Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1751
1752 * Makefile.in: Removed, this is auto-generated.
1753
078e9092
GB
1754Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
1755
1756 * list.c: Put some variable initialization code at the point of
1757 declaration; Added a comment for list*; Formatting changes.
1758
1759 * load.c: use SCM_NNULLP to make sure the end of a list is not
1760 reached yet.
1761
e7a96050
MD
17622000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1763
a177af34
MD
1764 * backtrace.c (scm_display_error_message): Bugfix: Don't use
1765 result of scm_list_p as C boolean.
1766 (scm_display_error_message, scm_set_print_params_x): Use new
1767 validation macros. (Thanks to Dirk Herrmann.)
1768
d06bcb02
MD
1769 * net_db.c (scm_resolv_error): Cast result from hstrerror.
1770
1771 * strports.c (st_end_input): Inserted parenthesis to get operator
1772 grouping correct.
1773
1774 * list.h (scm_init_list): Removed SCM_P around prototypes.
1775
1776 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
1777 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
1778 escaped " occurring inside string literals.
1779
682eefe9
MD
1780Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
1781
1782 * posix.c (scm_mknod): Escape " occuring inside docstring.
1783
56cfe22b
MD
17842000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1785
1786 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
1787 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
1788 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
1789 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
1790 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
1791 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
1792 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
1793 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 1794
56cfe22b
MD
1795 * filesys.c (scm_chmod), simpos.c (scm_system), version
1796 (scm_version), vports (scm_make_soft_port): Escape " occuring
1797 inside docstring.
1798
fcb1720f
GB
1799Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1800
1801 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
1802 SCM_VALIDATE_LONG_COPY
1803
1804 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
1805 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
1806 couple of formal arguments (and fix their uses) to make arguments
1807 match the documentation.
1808
b9af3d0e
MS
18092000-01-14 <mstachow@alum.mit.edu>
1810
1811 * Makefile.am: Augment path when running guile-doc-snarf so
1812 guile-func-name-check is found.
1813
153511a7
GB
1814Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
1815
1816 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
1817 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
1818
59d5245f
GB
1819Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1820
1821 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
1822 the way guile-1.3.4 worked, but #if 0 out the version using
1823 SCM_VALIDATE_INUM_COPY for stricter testing.
1824
95aec69f
GB
1825Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
1826
1827 * guile-doc-snarf.in: Use new $fullfilename for running
1828 guile-func-name-check, and put "$fullfilename" and "$filename" in
1829 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 1830 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
1831 I sure hope we never have to deal with that! :-) ). Thanks to
1832 Mikael for pointing out the source_dir != build_dir was broken.
1833
b7ac2837
GB
1834Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
1835
1836 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
1837 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
1838 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
1839 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
1840 variants.
1841
1842 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
1843 then return whether it's an open port (was validating that it was
1844 an open port -- this was a bug I introduced back in December, but
1845 my careful reading of diffs caught it).
1846
1847 * numbers.c: Recombine the two conditional-compilation paths for
1848 all the log* primitives -- they were split based on #ifndef
1849 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
1850 some bugs and inconsistencies in the two sets of implementations.
1851 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
1852
1853 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
1854 SCM_VALIDATE_INUM_COPY once where it should've been used.
1855
1856 * fluids.c (scm_internal_with_fluids): Use
1857 SCM_VALIDATE_LIST_COPYLEN.
1858
1859 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
1860 this is questionable as it relaxes type safety, but other changes
1861 were useful and all SCM_NUM2LONG's should probably be
1862 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
1863
1864 * evalext.c: line-break change on 1 line.
1865
1866 * eval.c (nconc2last): Takes a non-empty list as its first
1867 argument, not just a list.
1868
1869 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
1870
1871Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
1872
1873 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
1874 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
1875 where possible.
1876
1877 * symbols.c (scm_sysintern0): Fixed the function name in a
1878 scm_misc_error invocation.
1879
1880 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
1881 use scm_return_first to ward off latent GC bug that Mikael caught.
1882
1883 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
1884 used before but should've been.
1885
d61f6b02
MD
18862000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1887
1888 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
1889 SCM_FUNC_CAST_ARBITRARY_ARGS.
1890
88423ab1
GB
1891Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1892
1893 * guile-func-name-check.in: Added this script to statically check
1894 #define FUNC_NAME, #undef FUNC_NAME in the source.
1895
1896 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
1897 redundant comment, semicolon; caught by new guile-func-name-check
1898 script.
1899
1900 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
1901 Caught by new guile-func-name-check-script.
1902
1903 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
1904
1905 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
1906 guile-func-name-check.
1907
a00c95d9 1908 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
1909 doing the snarf.
1910
7f15e635
GB
1911Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
1912
1913 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
1914 port function take const void*, not void*.
1915
bf121b59
GB
1916Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1917
1918 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
1919 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
1920 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
1921 consistency with the other macros dealing with immediate
1922 characters. (Similar to INT -> INUM change a week or so ago).
1923
7965d98f
GB
1924Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1925
1926 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
1927 net_db.c, read.c, socket.c: Update error messages to use ~A for
1928 %s, ~S for %S to work with new `simple-format' format and be
1929 standardized better.
1930
1931 * print.h, print.c (scm_simple_format): Added `simple-format'
1932 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 1933 parameter, and the destination first instead of last (and a couple
7965d98f
GB
1934 new capabilities inspired by `format' -- #t as destination means
1935 current-output-port, #f means return the formatted text as a
1936 string.
1937
1938 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
1939
1940 * backtrace.c (scm_display_error_message): Rewrote to use
1941 scm_simple_format() procedure.
1942
1943 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
1944
f73d2411
MV
19452000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
1946
1947 Finally applied the libltdl patch from Thomas Tanner, with slight
1948 modifications.
1949
1950 * DYNAMIC-LINKING: Removed because it is obsolete.
1951 * dynl.c: Use ANSI prototypes.
1952 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
1953 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 1954
f73d2411
MV
1955 1999-07-25 Thomas Tanner <tanner@ffii.org>
1956
1957 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
1958 (obsolete)
1959 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
1960 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
1961 against libltdl
1962 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
1963 * guile.c: register preloaded modules
1964 * scmconfig.h.in: remove obsolete symbols
1965
38c1d3c4
GH
19662000-01-09 Gary Houston <ghouston@arglist.com>
1967
1968 * These changes should make it unnecessary to call tzset from
1969 Scheme after modifying the TZ environment variable, even if the
1970 system date facilities cache the value.
1971 * stime.c (setzone, scm_localtime): added comments.
1972 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
1973 (setzone): don't call tzset.
1974 (restorezone): call tzset only if HAVE_TZSET is defined.
1975 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
1976 doc string to indicate that this procedure isn't likely to do
1977 anything useful.
1978 (scm_localtime, scm_strftime, scm_mktime): call tzset if
1979 LOCALTIME_CACHE is defined.
1980
9359d657
MD
19812000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1982
1983 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
1984
f25f761d
GH
19852000-01-09 Gary Houston <ghouston@arglist.com>
1986
1987 * eval.c: define scm_unbound_variable_key ('unbound-variable).
1988 scm_lookupcar1: throw an error with key 'unbound-variable instead
1989 of 'misc-error when an unbound variable is encountered.
1990
a00c95d9 1991 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
1992 scm_symlink, scm_readlink, scm_lstat),
1993 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
1994 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
1995 scm_sync),
a00c95d9 1996 simpos.c (scm_system),
f25f761d
GH
1997 stime.c (scm_times, scm_strptime):
1998 move the HAVE_XXX feature tests out of the procedure bodies.
1999 don't use SCM_SYSMISSING.
2000 scm_validate.h (SCM_SYSMISSING): removed.
2001 error.h, error.c (scm_sysmissing): comment that this is deprecated.
2002 see ChangeLog entry for 1999-12-28.
2003
a4dd2611
GB
2004Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2005
2006 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
2007
2008Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2009
2010 * backtrace.c: Fix spelling typo in a comment.
2011
2012 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
2013 text. Reformatted some of the expansions.
2014
5ac36451
GB
2015Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2016
2017 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
2018 report the position of the argument.
2019
a00c95d9 2020 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 2021 take extra "pos" argument, the position number of the errant
a00c95d9 2022 argument.
5ac36451
GB
2023
2024 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
2025
2026 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
2027 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
2028 prefers that and I'm reasonably indifferent.
2029
2030Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
2031
2032 * snarf.h: Factor out differences between C++ and non-C++ into
2033 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
2034 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
2035 Mikael's macros, below, but changed names and SCM_SNARFING no
2036 longer expands to include %%% -- that must appear in the argument
2037 so that the token appears at the call-site as a reminder).
2038
088bb1d4
MD
20392000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2040
2041 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
2042 snarf macro definitions.
2043
636480e6
MD
20442000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2045
2046 * chars.c (scm_integer_to_char): Use Greg's nice
2047 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
2048 adherence to R5RS.
2049
7c5628e2
GB
2050Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2051
2052 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
2053
2cc0f8cb
GB
2054Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2055
2056 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
2057 instead of GUILE_PROC.
2058
2059Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2060
a00c95d9 2061 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
2062 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
2063 macro call.
2064
9179dcdd
GB
2065Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
2066
2067 * scm_validate.h: Remove some redundant NIMP tests.
2068
2069 * alist.c: minimize scope of the tmp variables, and initialize
2070 them when declared. The strange SCM_NIMP tests are replaced by
2071 SCM_CONSP tests that more closely reflect the intended semantics.
2072 However, we don't get a performance penalty here, because the
2073 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
2074 extremely ugly use of ASRTGO macros was removed: The calls to
2075 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
2076 label parameter that only exists when SCM_RECKLESS is not defined.
2077 This works, because ASRTGO itself is defined in a way that it only
2078 makes use of the label parameter if SCM_RECKLESS is not defined
2079 (shudder!). Does guile make at all use of the possibility to
2080 define SCM_RECKLESS? * Codesize is likely to be reduced, since
2081 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
2082 we now only get one test.
2083
2084 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
2085 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
2086 some variables in `list?'. Fix `reverse' and `reverse!'
2087 primitives to handle improper lists better.
2088
15b33280
GB
2089Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2090
2091 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
2092 macros and SCM_DEFINE macros to match GNU coding standards.
2093
ca8cd130
GB
2094Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
2095
2096 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
2097
fb764465
GB
2098Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
2099
2100 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
2101 better consistency with the names of other SCM_VALIDATE_ macros
2102 and better conformance to guile naming policy.
2103
2104Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
2105
2106 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
2107 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
2108 it's not the actual name of the formal).
1e484823
GB
2109
2110 * guile-snarf.awk.in: Do argument/number mismatch checking and
2111 print warnings in an Emacs compile-mode parseable format.
2112
2113 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
2114 SCM_OUTOFRANGE as 3rd argument.
2115
2116 * random.c: Fix argument/number mismatch (that I introduced :-( ).
2117
2118 * __scm.h: Do not #define SCM_ARG* when snarfing;
2119 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
2120 the former (using the number) requires the argument to match the
2121 formal in the current argument snarfing check.
2122
2123 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 2124 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
2125 guile-snarf.awk script uses to verify argument/position matching.
2126
2127 * ramap.c: Remove extraneous #undef FUNC_NAME.
2128
53fc4636
GB
2129Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2130
2131 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 2132 current version of the same functionality; it writes the .x output
53fc4636
GB
2133 to stdout instead of directly into the file.
2134
2135Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2136
2137 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
2138 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
2139 redundant with the safer macros. Patch from Dirk Hermann applied
2140 by hand. Thanks Dirk!
2141
2142 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
2143 uses in random.c.
2144
2145 * ramap.c: whitespace change.
2146
3b5345d9
GB
2147Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
2148
2149 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
2150 removals from Dirk Hermann.
2151
2152 * alist.c: Rename formals to match the parameter names in the
2153 documentation, updates to documentation. Thanks Dirk Hermann!
2154
169aec65
MD
21552000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2156
db62436e
MD
2157 * eval.c (SCM_CEVAL): Reverse order of
2158 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
2159 (Thanks to Brad Knotwell.)
169aec65 2160
da43d822
GB
2161Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
2162
2163 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 2164 allocated cell.
da43d822
GB
2165
2166 * pairs.h: Added a comment about the need for the SCM_SETCAR in
2167 SCM_NEWCELL macro.
2168
2169Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2170
2171 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
2172 SCM_NIMP tests that were redundant are now eliminated. Patches
2173 from Dirk Hermann applied by hand.
2174
339999c7 2175The ChangeLog continues in the file: "ChangeLog-1996-1999"