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