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