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