* print.c (grow_ref_stack): Pass a INUM to scm_make_vector as the
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
0100535b
MV
12000-10-18 Marius Vollmer <mvo@zagadka.ping.de>
2
3 * gc_os_dep.c (GC_noop1, GC_bool, TRUE, FALSE, VOLATILE):
4 Definitions copied from Boehm collector.
5
daa6ba18
DH
62000-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
7
8 * list.[ch] (scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member):
9 Deprecated.
10
11 (scm_memq, scm_memv, scm_member): Inline the sloppy code.
12
a8a11001
DH
132000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
14
15 * alloca.c: Fixed include file path. Thanks to Bruce Korb for
16 the bug report.
17
66ca9392
MV
182000-10-11 Marius Vollmer <mvo@zagadka.ping.de>
19
20 * gc_os_dep.c: Added real implementation based on code from Boehms
21 collector. This is not well tested yet.
22
23 * gc.h (scm_get_stack_base): Added prototype.
24 * init.c (scm_get_stack_base): Removed prototype.
25
b7ead2ae
DH
262000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
27
28 * random.c (scm_seed_to_random_state): Replace SCM_LENGTH with
29 the appropriate SCM_<type>_LENGTH macro.
30
31 (vector_scale, vector_sum_squares, scm_random_solid_sphere_x,
32 scm_random_normal_vector_x): Use scm_uniform_vector_length to
33 determine the length of a vector object generically.
34
b226e5f6
DH
352000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
36
37 * ramap.c (scm_array_fill_int, scm_array_index_map_x): Replace
38 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
39
40 (scm_ra_matchp, scm_ramapc, ramap, rafe, scm_array_index_map_x,
41 raeql_1, raeql): Use scm_uniform_vector_length to determine the
42 length of a vector object generically.
43
74014c46
DH
442000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
45
46 * unif.c (scm_make_uve, scm_uniform_vector_length, scm_array_p,
47 scm_transpose_array, scm_array_contents, scm_ra2contig,
48 scm_uniform_array_read_x, scm_uniform_array_write, scm_bit_count,
49 scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
50 scm_bit_invert_x, scm_array_to_list, scm_raprin1): Replace
51 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
52
53 (scm_array_dimensions, scm_make_shared_array, scm_enclose_array,
54 scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x,
55 scm_array_contents, scm_uniform_array_read_x,
56 scm_uniform_array_write, scm_list_to_uniform_array, rapr1): Use
57 scm_uniform_vector_length to determine the length of a vector
58 object generically.
59
60 (scm_bit_count, scm_bit_set_star_x, scm_bit_count_star,
61 scm_bit_invert_x): Eliminated dummy type dispatch.
62
63 (scm_ra2contig): Fixed array vector access.
64
b5c2579a
DH
652000-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
66
67 * unif.h (SCM_BITVECTOR_P, SCM_BITVECTOR_BASE): Added.
68
69 * eval.c (iqq, SCM_CEVAL, SCM_APPLY, check_map_args, scm_map,
70 scm_for_each, scm_copy_tree), gc.c (scm_igc, scm_gc_mark,
71 scm_gc_sweep), gh_data.c (gh_scm2chars), sort.c
72 (scm_restricted_vector_sort_x, scm_sorted_p, scm_sort_x,
73 scm_sort, scm_stable_sort_x, scm_stable_sort), vectors.c
74 (scm_vector_length, scm_vector_ref, scm_vector_set_x,
75 scm_vector_to_list, scm_vector_fill_x, scm_vector_equal_p,
76 scm_vector_move_left_x, scm_vector_move_right_x, ): Replace
77 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
78
79 * gc.c (scm_gc_sweep): Use SCM_BITVECTOR_BASE for bitvectors.
80
81 * sort.c (scm_restricted_vector_sort_x, scm_sorted_p): Eliminated
82 dummy type dispatch.
83
84 (scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort):
85 Eliminated redundant NIM test.
86
9fd38a3d
DH
872000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
88
89 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
90 gh_data.c (gh_set_substr, gh_scm2chars, gh_scm2shorts,
91 gh_scm2longs, gh_scm2floats, gh_scm2doubles, gh_symbol2newstr),
92 stime.c (bdtime2c), symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
93 scm_intern_obarray_soft, scm_symbol_to_string, scm_intern_symbol,
94 scm_unintern_symbol, copy_and_prune_obarray, scm_builtin_bindings,
95 scm_builtin_weak_bindings), validate.h (SCM_VALIDATE_VECTOR_LEN):
96 Replace SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
97
98 * filesys.c (scm_dirname, scm_basename), gh_data.c (gh_scm2newstr,
99 gh_get_substr), posix.c (scm_putenv), regex-posix.c
100 (scm_regexp_exec), stime.c (setzone), symbols.c
101 (scm_string_to_symbol): Don't accept symbols as input parameters
102 any more.
103
bfa974f0
DH
1042000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
105
106 * continuations.c (scm_make_cont, copy_stack_and_call,
107 scm_dynthrow), environments.c (obarray_enter, obarray_replace,
108 obarray_retrieve, obarray_remove, obarray_remove_all,
109 leaf_environment_fold), fluids.c (grow_fluids, scm_copy_fluids,
110 scm_fluid_ref, scm_fluid_set_x), hash.c (scm_hasher), hashtab.c
111 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
112 scm_hash_fn_remove_x, scm_internal_hash_fold), ioext.c
113 (scm_read_delimited_x), objects.c (scm_mcache_lookup_cmethod,
114 scm_make_subclass_object), ports.c (scm_unread_string), socket.c
115 (scm_recv, scm_recvfrom), stacks.c (scm_make_stack, scm_stack_id,
116 scm_last_stack_frame), strings.c (scm_string_length,
117 scm_string_set_x), strop.c (scm_substring_move_x,
118 scm_substring_fill_x, scm_string_fill_x, scm_string_upcase_x,
119 scm_string_downcase_x, scm_string_capitalize_x), struct.c
120 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
121 scm_make_vtable_vtable, scm_struct_ref, scm_struct_set_x), weaks.c
122 (scm_mark_weak_vector_spines, scm_scan_weak_vectors): Replace
123 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
124
b17004b8
DH
1252000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
126
127 * print.c (make_print_state, scm_iprin1): Replace SCM_LENGTH with
128 the appropriate SCM_<type>_LENGTH macro.
129
130 (grow_ref_stack): Don't call scm_vector_set_length_x to resize
131 the print stack.
132
aa3188a7
DH
1332000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
134
135 * numbers.c (big2str): Avoid redundant copying.
136
137 (scm_bigprint): Use SCM_STRING_LENGTH instead of SCM_LENGTH.
138
94115ae3
DH
1392000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
140
141 * numbers.c (big2str), read.c (scm_grow_tok_buf), strports.c
142 (st_resize_port): Don't call scm_vector_set_length_x to resize
143 strings.
144
145 * read.c (scm_lreadr, scm_read_token): Use SCM_STRING_LENGTH for
146 string arguments (instead of SCM_LENGTH).
147
2d349e67
DH
1482000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
149
150 * continuations.h (SCM_CONTINUATION_LENGTH), strings.h
151 (SCM_STRING_LENGTH), symbols.h (SCM_SYMBOL_LENGTH), unif.h
152 (SCM_UVECTOR_LENGTH, SCM_BITVECTOR_LENGTH), vectors.h
153 (SCM_VECTOR_LENGTH): Added as replacements for SCM_LENGTH.
154
4fd03f43
MV
1552000-10-02 Marius Vollmer <mvo@zagadka.ping.de>
156
157 * coop-defs.h (coop_key_create): Don't use the C++ keyword
158 `destructor' in prototype. Thanks to Martin Baulig!
159
77cd7f80
ML
1602000-10-02 Michael Livshin <mlivshin@bigfoot.com>
161
162 * guile-func-name-check.in: now should not confuse SCO nawk
163 anymore. thanks to Bruce Korb for the fix!
164
ed0e0e30
GH
1652000-10-01 Gary Houston <ghouston@arglist.com>
166
0d26a8bc 167 * net_db.c: declare inet_aton only if HAVE_INET_ATON is not
ed0e0e30
GH
168 defined. thanks to Han-Wen Nienhuys.
169
e655d034
GH
1702000-09-30 Gary Houston <ghouston@arglist.com>
171
172 * filesys.c (scm_stat2scm), posix.c (s_scm_mknod): don't use
173 S_ISSOCK or S_IFSOCK if not defined. thanks to Bruce Korb.
174
6ec589e2
NJ
1752000-09-29 Neil Jerram <neil@ossau.uklinux.net>
176
9d29e990
NJ
177 * Makefile.am (guile-procedures.txt): Insert a new rule such that
178 the output from guile-snarf.awk is processed by makeinfo to
179 produce guile-procedures.txt.
180
181 * guile-snarf.awk.in: Modify the way we snarf docstrings such that
182 the output is Texinfo-compliant and suitable for post-processing
183 with makeinfo. (Trim leading "./" from C file name if
184 present; reformat procedure prototype line in @deffn format;
185 improve representation of args to show optional and rest args;
186 explicitly quote quotation marks where they are used inside an AWK
187 regexp.)
188
6ec589e2
NJ
189 * net_db.c (scm_inet_ntoa): Docstring fix: missing newline
190 inserted.
191
192 * hashtab.c (scm_hashx_create_handle_x, scm_hashx_ref): Insert
193 spaces between C parameters so that the snarfer doesn't coalesce
194 them all into a single very long-named parameter.
195
1962000-09-27 Neil Jerram <neil@ossau.uklinux.net>
197
198 * list.c (scm_append): Use @example texinfo markup in docstring.
199
bbe4e612
DH
2002000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
201
202 * strings.c (scm_string, scm_make_string, scm_string_set_x,
203 scm_string_append), strop.c (scm_string_upcase_x,
204 scm_string_downcase_x), strports.c (st_resize_port), symbols.c
205 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft,
206 scm_intern_symbol, scm_unintern_symbol), unif.c (scm_cvref,
207 scm_uniform_vector_ref, scm_array_set_x, rapr1): Replace calls to
208 SCM_UCHARS with SCM_STRING_UCHARS or SCM_SYMBOL_UCHARS.
209
210 * symbols.h (SCM_UCHARS): Deprecated.
211
405aaef9
DH
2122000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
213
214 * gc.c (scm_gc_sweep): Replace SCM_CHARS by SCM_COMPLEX_MEM.
215
216 * numbers.h (SCM_COMPLEX_MEM): Added as a replacement for
217 SCM_CHARS.
218
219 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Use it.
220
221 * ramap.c (scm_array_fill_int, racp, raeql_1): Replace SCM_CHARS
222 with SCM_STRING_CHARS or SCM_UVECTOR_BASE.
223
224 (racp): Fix: Make sure that src and dst types match.
225
226 * read.c (scm_grow_tok_buf, scm_lreadr, scm_read_token): Replace
227 SCM_CHARS with SCM_STRING_CHARS.
228
229 * symbols.h (SCM_CHARS): Deprecated.
230
231 * unif.c (scm_enclose_array, scm_uniform_vector_ref, scm_cvref,
232 scm_array_set_x, scm_uniform_array_read_x, rapr1, freera,
233 scm_uniform_array_write): Replace SCM_CHARS with
234 SCM_STRING_CHARS, SCM_UVECTOR_BASE or SCM_ARRAY_MEM.
235
236 * unif.h (SCM_ARRAY_MEM): Added as a replacement for SCM_CHARS.
237
238 (SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS): Use it.
239
240 * validate.h (SCM_COERCE_ROSTRING): Removed.
241
06ee04b2
DH
2422000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
243
244 * gc.c (scm_igc): : Eliminate references to SCM_LENGTH and
245 SCM_CHARS from comment.
246
247 (scm_gc_mark, scm_gc_sweep): Replace SCM_CHARS with
248 SCM_SYMBOL_CHARS or SCM_CCLO_BASE or SCM_UVECTOR_BASE or
249 SCM_BDIGITS, and replace SCM_VELTS with SCM_VECTOR_BASE or
250 SCM_CONTREGS, according to the corresponding types.
251
252 (scm_gc_sweep): Simplify sweeping of uniform vectors.
253
74cc8503
DH
2542000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
255
256 * procs.h (SCM_CCLO_LENGTH, SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE,
257 SCM_SET_CCLO_BASE, SCM_CCLO_REF, SCM_CCLO_SET, SCM_CCLO_SUBR,
258 SCM_SET_CCLO_SUBR): Added resp. changed such that none of the
259 macros SCM_CHARS, SCM_SETCHARS, SCM_VELTS and SCM_LENGTH have to
260 be used with compiled closures any more.
261
262 * procs.c (scm_makcclo), gsubr.h (SCM_GSUBR_TYPE, SCM_GSUBR_PROC):
263 Replace uses of SCM_CHARS, SCM_SETCHARS and SCM_VELTS with regards
264 to compiled closures.
265
266 * gsubr.h (SCM_SET_GSUBR_TYPE, SCM_SET_GSUBR_PROC): Added.
267
268 * gsubr.c (scm_make_gsubr): Use them.
269
9eb364fc
DH
2702000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
271
272 * numbers.c (scm_adjbig): Use SCM_BDIGITS instead of SCM_CHARS.
273
274 (big2str, scm_bigprint): Use SCM_STRING_CHARS instead of
275 SCM_CHARS.
276
277 * vectors.c (scm_vector_set_length_x): Distinguish between
278 strings, scheme vectors and uniform vectors, thus getting rid of
279 references to SCM_CHARS. (The code still needs improvement.)
280
3db4adfc
DH
2812000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
282
283 * eval.c (scm_m_letrec1, SCM_CEVAL, SCM_APPLY): Use
284 SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS instead of SCM_U?CHARS.
285
286 * unif.h (SCM_UVECTOR_BASE), vectors.h (SCM_VECTOR_BASE): Added
287 as replacements for SCM_CHARS and SCM_VELTS.
288
a002f1a2
DH
2892000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
290
291 * continuations.c (scm_make_cont, scm_dynthrow), print.c
292 (scm_iprin1), stacks.c (scm_make_stack, scm_stack_id,
293 scm_last_stack_frame): For continuations, use SCM_CONTREGS
294 instead of SCM_CHARS.
295
296 * coop-threads.c (scm_threads_mark_stacks): Eliminate references
297 to SCM_LENGTH and SCM_CHARS from comments.
298
299 * dynl.c (scm_dynamic_link, scm_dynamic_func), symbols.h
300 (SCM_ROCHARS, SCM_ROUCHARS): Cleanly distinguish between string
301 and symbol arguments.
302
303 * hash.c (scm_hasher), keywords.c (prin_keyword), objects.c
304 (scm_make_subclass_object), print.c (scm_iprin1), regex-posix.c
305 (scm_regexp_error_msg), stime.c (bdtime2c, scm_strftime), struct.c
306 (scm_struct_init, scm_struct_vtable_p, scm_struct_ref,
307 scm_struct_set_x): Use SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS
308 instead of SCM_U?CHARS.
309
310 * strings.h (SCM_STRING_UCHARS): Added as a replacement for
311 SCM_UCHARS for string arguments.
312
313 * strorder.c: Include strings.h and symbols.h.
314
315 * symbols.h: Replaced SCM_CHARS in comment.
316
317 (SCM_SYMBOL_UCHARS): Added as a replacement for SCM_UCHARS for
318 symbol arguments.
319
320 (SCM_SLOPPY_SUBSTRP): Deprecated.
321
322 * tags.h: Fixed comments not to reference SCM_LENGTH or
323 SCM_CHARS.
324
1660782e
DH
3252000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
326
327 * gc.c (scm_gc_mark, scm_gc_sweep), tags.h: Removed the
328 scm_tc7_lvector type tag.
329
f151f912
DH
3302000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
331
332 * eval.c (scm_m_define), evalext.c (scm_m_undefine): Removed dead
333 code.
334
335 * gc.c (scm_gc_sweep): Use SCM_STRING_CHARS or SCM_SYMBOL_CHARS
336 instead of SCM_CHARS.
337
86c991c2
DH
3382000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
339
340 * backtrace.c (display_frame_expr), environments.c
341 (print_observer, print_leaf_environment, print_eval_environment,
342 print_import_environment, print_export_environment), gh_data.c
343 (gh_set_substr, gh_symbol2newstr), keywords.c
344 (scm_make_keyword_from_dash_symbol), ports.c (scm_drain_input),
345 posix.c (scm_mknod), print.c (scm_iprin1), regexp-posix.c
346 (scm_regexp_error_msg), script.c (scm_compile_shell_switches),
347 simpos.c (scm_getenv), socket.c (scm_recv, scm_recvfrom),
348 strings.c (scm_makfromstr), strop.c (scm_substring_move_x,
349 scm_substring_fill_x, scm_string_capitalize_x), symbols.c
350 (scm_symbol_to_string), unif.c (scm_make_uve, scm_array_p),
351 validate.h (SCM_VALIDATE_STRING_COPY): Use SCM_STRING_CHARS or
352 SCM_SYMBOL_CHARS instead of SCM_CHARS.
353
c1aef037
DH
3542000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
355
356 * strings.h (SCM_STRING_CHARS): Added, should be used instead of
357 SCM_CHARS whenever the argument is known to be a string.
358
359 (SCM_SLOPPY_STRINGP): Deprecated.
360
361 * symbols.h (SCM_SYMBOL_CHARS): Added, should be used instead of
362 SCM_CHARS whenever the argument is known to be a symbol.
363
1bee0e70
NJ
3642000-09-22 Neil Jerram <neil@ossau.uklinux.net>
365
366 * struct.c (scm_make_struct): Fix texinfo warning in docstring by
367 using @pxref rather than @xref.
368
369 * root.c (scm_call_with_dynamic_root): Fix texinfo warning in
370 docstring by using @code for (thunk) rather than @var.
371
f7b0a8d1 3722000-09-20 Marius Vollmer <mvo@zagadka.ping.de>
216b559a 373
f7b0a8d1
MV
374 * numbers.c (scm_istr2flo): Throw an `out of range' error when
375 exponent is too large instead of returning `#f'. The rationale is
376 that in this case the string represents a valid number but we
377 can't deal with it.
216b559a 378
0f8c9efa
DH
3792000-09-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
380
381 * symbols.c (scm_intern_obarray_soft,
382 scm_sysintern0_no_module_lookup): Make sure that symbol
383 properties initially form an empty list. Thanks to Keisuke
384 Nishida for pointing this out.
385
5a2a5407
DH
3862000-09-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
387
388 * throw.c (scm_handle_by_message): Added a FIXME comment.
389
390 (scm_ithrow): Removed some redundant tests. When compiling on
391 gcc, always add the GCSE bug workaround.
392
57b74422
GH
3932000-09-14 Gary Houston <ghouston@arglist.com>
394
395 * print.c (scm_iprin1): write the ascii delete character as #\del
396 instead of '#\', so it can be read back. like in SCM.
397
02821239
MD
3982000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
399
400 * symbols.c (duplicate_string): Don't try to copy the byte after
401 the string. This might not be `\0' and might even not be
402 allocated memory.
403
8e93e199
DH
4042000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
405
406 * symbols.c (scm_symbol_p): Eliminate redundant SCM_IMP test.
407
28b06554
DH
4082000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
409
410 This patch unifies the formerly distinct ssymbol and msymbol types
411 to a common symbol type scm_tc7_symbol. The representation of the
412 new symbol type uses a double cell with the following layout:
413 <type/length, chars, raw_hash, prop-pair>, where the car of
414 prop-pair holds the symbol's function property and the cdr of
415 prop-pair holds the symbol's other properties. In the long run,
416 these properties will be removed. Then, the generic property
417 functions will be uses.
418
419 * eval.c (SCM_CEVAL), objects.c (scm_class_of), print.c
420 (scm_iprin1), tag.c (scm_tag): Use scm_tc7_symbol instead of
421 scm_tc7_ssymbol, scm_tc7_msymbol or scm_tcs_symbols.
422
423 * gc.c (scm_gc_mark): Mark the symbols property pair.
424
425 (scm_gc_sweep): There are no symbol slots any more.
426
427 * hash.c (scm_hasher): Instead of re-calculating the hash value
428 of a symbol, use the raw_hash value stored in the symbol itself.
429
430 * properties.h: Fix typo.
431
432 * strings.[ch] (scm_makstr, scm_makfromstr): The slot parameter
433 is not used any more.
434
435 * symbols.[ch] (scm_strhash): Deprecated, replaced by a macro.
436
437 (scm_intern_obarray_soft): Made softness parameter unsigned.
438
439 (scm_string_hash): New function with the same functionality as
440 scm_strhash had before, except that the hash value is not adjusted
441 to a hash table size. Instead, the 'raw' hash value is returned.
442
443 * symbols.c (duplicate_string): New static convenience function.
444
445 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft):
446 Renamed local variable from scm_hash to hash.
447
448 (scm_intern_obarray_soft): Don't check for a negative softness
449 any more. When generating symbol cells, use the new layout and
450 store the raw hash value in the symbol's cell.
451
452 (scm_symbol_to_string): Removed unnecessary cast.
453
454 (scm_intern_symbol, scm_unintern_symbol): Use scm_string_hash to
455 determine the hash values.
456
457 (msymbolize): Removed.
458
459 (scm_symbol_fref, scm_symbol_pref, scm_symbol_fset_x,
460 scm_symbol_pset_x, scm_symbol_hash): No need to distinguish
461 between different symbol types any more.
462
463 (scm_symbol_hash): Comment fixed.
464
465 * symbols.h: Comment about the distinction between ssymbols and
466 msymbols removed.
467
468 (SCM_SYMBOLP, SCM_ROSTRINGP): No need to distinguish between
469 different symbol types any more.
470
471 (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Added.
472
473 (SCM_SYMBOL_FUNC, SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
474 SCM_SET_SYMBOL_PROPS, SCM_SYMBOL_HASH, SCM_SET_SYMBOL_HASH): Use
475 the new symbol cell layout.
476
477 * tags.h (scm_tc7_ssymbol, scm_tc7_msymbol, scm_tcs_symbols):
478 Deprecated.
479
302f229e
MD
4802000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
481
482 * symbols.h (scm_gentemp): Declared.
483
484 * symbols.c (scm_gensym): Reimplemented. Now only takes one
485 optional argument which should be a *string*.
486 (scm_gentemp): Reimplemented and moved from boot-9.scm.
487
5bcdfa2e
KN
4882000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
489
490 * modules.c: Use applicable smobs for eval closures instead of
491 compiled closures. Include "libguile/smob.h".
492 (f_eval_closure): Removed.
493 (scm_eval_closure_tag): New variable.
494 (scm_eval_closure_lookup): Renamed from eval_closure.
495 This function now takes a smob instead of a compiled closure.
496 (scm_standard_eval_closure): Create a smob instead of a compiled
497 closure.
498 (scm_init_modules): Initialize the eval closure type as a smob.
499 * modules.h (SCM_EVAL_CLOSURE_P): New macro.
500 (scm_eval_closure_tag, scm_eval_closure_lookup): Declare.
501 * symbols.c: Include "libguile/smob.h".
502 (scm_sym2vcell): Call scm_eval_closure_lookup directly if THUNK
503 is an eval closure.
504
370646da
MD
5052000-09-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
506
4c7cb8ba
MD
507 * Makefile.am (.x.doc): Bugfix: Added $(srcdir) to path in order
508 to allow for builds in separate tree.
509
370646da
MD
510 * symbols.c (scm_gensym): Bugfixed my previous bugfix. (Thanks to
511 Dale P. Smith.)
512
3cbe8373
KN
5132000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
514
515 * eval.c (SCM_APPLY): Fixed bugs in the applicable-smob calls.
516
a2d47b23
DH
5172000-09-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
518
519 * environments.c (obarray_enter, obarray_retrieve,
520 obarray_remove): Make sure the hash value is a valid obarray
521 index.
522
523 (obarray_enter, obarray_remove): Documentation improved.
524
525 (obarray_replace): Added.
526
527 (leaf_environment_define, leaf_environment_undefine): Cleaned up
528 and optimized.
529
a2550d0e
MD
5302000-09-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
531
532 * symbols.c (scm_gensym): Check that argument is a symbol, not a
370646da 533 string. (Thanks to Ralf Mattes.)
a2550d0e 534
f0cb8787
MV
5352000-09-05 Marius Vollmer <mvo@zagadka.ping.de>
536
537 * init.c: Include "libguile/properties.h".
538
539 * gh_data.c (gh_scm2char): Validate that argument is a character.
540
4c199a26
DH
5412000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
542
543 * environments.h (SCM_IMPORT_ENVIRONMENT_P,
544 SCM_EXPORT_ENVIRONMENT_P): Before fetching the environment
545 functions, make sure that we really got an environment.
546
9e9e264f
MD
5472000-09-03 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
548
549 * validate.h (SCM_VALIDATE_NUMBER_DEF_COPY): New macro.
550
468fbf58
MV
5512000-09-03 Marius Vollmer <mvo@zagadka.ping.de>
552
553 * Makefile.am (.x.doc): Pretend to create .doc files from .x files
554 and give explicit dependencies for .x files that depend on
555 generated files. This allows parallel builds. Thanks to Matthias
556 Koeppe!
557
5582000-08-27 Marius Vollmer <mvo@zagadka.ping.de>
559
560 * Makefile.am: Added gc_os_dep.c, properties.c, properties.x,
561 properties.h and properties.doc in the suitable places.
562
563 * init.h (scm_init_guile): New prototype.
564
565 * init.c (scm_init_guile, scm_init_guile_1): New interface for
566 initializing Guile that does return to the caller.
567 (scm_boot_guile_1): Use scm_init_guile_1 to initialize Guile.
568 Do not establish a catch-all, this is no longer needed.
569
570 * root.h (scm_properties_whash): New `sys_protect', used in
571 properties.c.
572
573 * throw.c (scm_ithrow): Perform catch-all handling here when no
574 suitable handler has been found. That way, we don't have to rely
575 on the user establishing a catch-all, which might be difficult for
576 him if he is using scm_init_guile instead of scm_boot_guile.
577
11768c04
NJ
5782000-09-03 Neil Jerram <neil@ossau.uklinux.net>
579
580 * vectors.c (scm_vector): Docstring: add @deffnx line for
581 list->vector.
582
583 * unif.c (scm_uniform_vector_ref): Docstring: add @deffnx line for
584 array-ref.
585 (scm_array_set_x): Docstring: add @deffnx line for
586 uniform-array-set!.
587
588 * symbols.c (scm_symbol_to_string): Docstring: complete an
589 incomplete Texinfo reference to a node in r4rs.texi.
590 (scm_symbol_to_string): Escape double quotes correctly within
591 docstring.
592
593 * struct.c (scm_make_struct, scm_make_vtable_vtable): Docstring
594 fixes: `@dots' changed to `@dots{}'.
595
596 * strop.c (scm_substring_move_x): Docstring: add @deffnx lines for
597 substring-move-left! and substring-move-right!.
598
599 * strings.c (scm_string): Docstring: add @deffnx line for
600 list->string.
601
602 * stime.c (scm_strptime): Fix spelling mistake in docstring.
603 (scm_current_time): Docstring fix: insert missing newline.
604
605 * socket.c (scm_recvfrom): Docstring format fix: missing newline
606 inserted.
607
608 * ramap.c (scm_array_copy_x): Docstring: add @deffnx line for
609 array-copy-in-order!.
610 (scm_array_map_x): Docstring: add @deffnx line for
611 array-map-in-order!.
612
613 * posix.c (scm_mknod): Docstring format fix: missing newlines
614 inserted.
615
616 * modules.c (scm_interaction_environment): Docstring fix: add
617 newlines.
618
619 * eval.c (scm_cons_source): Added newly written docstring.
620
eacb9dc2
ML
6212000-09-03 Michael Livshin <mlivshin@bigfoot.com>
622
623 the following changes let Guile get rid of the `allocated' cell
624 state.
625
626 * smob.c (scm_smob_prehistory): don't init the "allocated" smob
627 type.
628
629 * tags.h (scm_tc16_allocated): removed.
630
631 * gc.h: removed now-obsolete comments about the `allocated' cell
632 state.
633 (SCM_NEWCELL): don't change cell type to `allocated'.
634 (SCM_NEWCELL2): ditto.
635
636 * gc.c (scm_mark_locations): mark freecells too, and don't worry
637 about any possible false positives.
638 (scm_debug_newcell): don't change cell type to `allocated'.
639 (scm_debug_newcell2): ditto.
640 (scm_gc_for_newcell): ditto.
641 (scm_gc_mark): remove the tc16_allocated case.
642
69b5f65a
MD
6432000-08-26 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
644
adf9e959
MD
645 * gdbint.c (gdb_print): Removed superfluous macro definition.
646
0745d387
MD
647 * objects.c (scm_init_objects), print.c (scm_init_print), struct.c
648 (scm_init_struct): First arg to scm_make_vtable_vtable should be a
649 string, not a symbol. (`make-vtable-vtable' needs to append this
650 string to another string and then pass it through
651 `make-struct-layout'.)
652
653 * stacks.c (scm_init_stacks): Pass a string, not a layout object,
654 to scm_make_vtable_vtable. (Thanks to Dale P. Smith.)
655
656 * struct.c (scm_make_struct_layout): Removed reference to
657 "read-only string" in comment; Check that argument is a string.
658 (scm_make_vtable_vtable): Check that argument is a string.
659
69b5f65a
MD
660 * environments.c (scm_init_environments): All internal includes in
661 libguile must use the prefix "libguile/" in path names since inly
662 the top-level source directory is on the include list. (That, in
663 turn, is because we want to distinguish between system header
664 files and hedares files internal to libguile.)
665
666 * strings.c (scm_make_shared_substring, scm_read_only_string_p):
667 Deprecated.
668 (scm_string_length, scm_string_ref, scm_substring,
669 scm_string_append): Don't accept symbols as arguments (R5RS).
670
92ccc1f1
NJ
6712000-08-25 Neil Jerram <neil@ossau.uklinux.net>
672
673 * ports.c (scm_set_port_column_x): Fix docstring so that it
674 mentions set-port-line! rather than set-port-column! twice.
675
676 * guardians.c (scm_make_guardian): Remove spurious . from doc string.
677
5d3e2388
DH
6782000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
679
680 * Makefile.am: Added all necessary environments.* files.
681
682 * init.c: Include environments.h.
683
684 (scm_boot_guile_1): Initialize the environments.
685
686 * environments.[ch]: Added. Most of the credit for these files
687 goes to Jost Boekemeier.
688
28819f62
MD
6892000-08-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
690
167d89cf 691 * procprop.c: #include "libguile/smob.h"; handle applicable smobs.
28819f62 692
14fb1c83
KN
6932000-08-24 Keisuke Nishida <kxn30@po.cwru.edu>
694
695 * smob.h (scm_smob_descriptor): Added `apply' and `gsubr_type'.
696 * smob.c (scm_make_smob_type): Initialize `apply' and `gsubr_type'.
697 (scm_set_smob_apply): New function.
698 (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
699 scm_smob_apply_3): New functions.
700 * eval.c (SCM_CEVAL, SCM_APPLY): Added dispatch for applicable smobs.
28819f62 701 * procs.c (scm_procedure_p): Check applicable smobs.
14fb1c83 702
665fc4e6
MD
7032000-08-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
704
705 * Makefile.am (BUILT_SOURCES): Experimentally added scmconfig.h
706 also here. (This is supposed to make sure that scmconfig.h is
707 built before all sources in order to prevent that everything has
708 to be rebuilt again. Hope it works---I'm just guessing. :)
709
710 * fluids.c (scm_fluid_set_x): Return SCM_UNSPECIFIED.
711
38525772
MD
7122000-08-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
713
714 * gc.c (scm_gc_mark): Don't use GUILE_DEBUG flag to compile in
715 extra tests. (GUILE_DEBUG is only supposed to make extra
716 debugging functions available.)
717
ca55e62c
ML
7182000-08-21 Michael Livshin <mlivshin@bigfoot.com>
719
720 * gc.h (SCM_GC_CARD_N_CELLS): change to be a nice non-confusing
721 constant.
722
005b5978
ML
7232000-08-19 Michael Livshin <mlivshin@bigfoot.com>
724
d8d4d493
ML
725 * gc.c (scm_gc_sweep): added a `continue' statement that have
726 fallen through the cracks in the merge. thanks to Shuji Narazaki!
727
005b5978
ML
728 * gc.h: removed some stuff that broke compilation for people and
729 wasn't actually needed anyway.
730
cdbc7418
NJ
7312000-08-18 Neil Jerram <neil@ossau.uklinux.net>
732
55892d87
NJ
733 * filesys.c (scm_fcntl): Docstring fix - missing newlines inserted.
734
d46e4713
NJ
735 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_sethost,
736 scm_setnet, setproto, setserv): Argument names changed to match
737 doc string.
005b5978 738
d46e4713
NJ
739 * feature.c (scm_program_arguments): New docstring.
740
741 * simpos.c (scm_getenv): Reflow docstring.
742
cdbc7418
NJ
743 * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Add texinfo markup to
744 docstrings.
005b5978 745
cdbc7418
NJ
746 * chars.c (scm_char*): Docstring fixes - texinfo markup.
747
7482000-08-18 Neil Jerram <neil@ossau.uklinux.net>
749
750 * boolean.c (scm_not, scm_boolean_p): Docstring fixes - add
751 texinfo markup and remove trailing newlines.
752
dc16aa36
ML
7532000-08-17 Michael Livshin <mlivshin@bigfoot.com>
754
755 this changes the Guile GC to use cards (aka "chunklets").
005b5978 756 (most of the ideas and some of the code are by Greg Harvey, though
bbe6d8db
ML
757 the code is probably unrecognizable now. the original chunklet
758 proposal, way back, is by Dale Jordan).
dc16aa36
ML
759
760 * tags.h: (SCM_GCTYPE16, SCM_GCCDR, SCM_GC[8]MARKP,
761 SCM_SETGC[8]MARK, SCM_CLRGC[8]MARK): moved from here into gc.h.
762 some (most) of these are probably going to be deprecated.
763
764 * gc.h (SCM_MARKEDP): simplified, there are no different mark bit
765 locations anymore.
766 (SCM_GC_CARD_*, SCM_C_BVEC_*): lots of new macros to deal with
767 cards and bvecs (bit-vectors).
768
769 * gc.c: (scm_default_init_heap_size_*): defined to take cards into
770 account, but keeping more or less the same values as previously.
771 added some simple helper macros.
772 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK): defined to take cards
773 into account.
774 (BVEC_*, scm_mark_space_t, current_mark_space, mark_space_ptr,
775 current_mark_space_offset, mark_space_head, get_bvec,
776 clear_mark_space): new functions and supporting variables, types
777 and macros that implement mark space management.
778 (scm_igc): clear the mark space (all of it) before beginning the
779 mark phase.
780 (scm_gc_mark): changed the tests for rogue cells, much simplified
781 throughout (no different mark bit locations to worry about now).
782 (scm_mark_locations): don't consider card header cells.
783 (scm_cellp): ditto.
784 (scm_gc_sweep): simplified.
785 (init_heap_seg): changed to take cards into account.
786
83238bc1
ML
7872000-08-16 Michael Livshin <mlivshin@bigfoot.com>
788
789 * stime.c (scm_c_get_internal_run_time): new function, same as
790 scm_get_internal_run_time but returns a long. it's used by the GC
791 for timekeeping, since with scm_get_internal_run_time there is a
792 (extremely theoretical) possibility of consing.
793 (scm_get_internal_run_time): redefined in terms of
794 scm_c_get_internal_run_time.
795
796 * stime.h: added prototype for scm_c_get_internal_run_time.
797
798 * gc.c (scm_gc_stats): add more obscure stats, such as: mark time,
799 sweep time, total marked cells, total swept cells, and number of
800 times GC was invoked.
801 (gc_start_stats): renamed from scm_gc_start, made static, taught
802 to init the new stats.
803 (gc_end_stats): renamed from scm_gc_end, made static, taught to
804 calculate the new stats.
805 (scm_igc): don't call gc_start_stats unless we are sure that we
806 are indeed going to collect. also, added some timekeeping between
807 the mark and sweep phases.
808 (scm_gc_sweep): count number of cells we sweep as we go.
809
810 * gc.h: removed prototypes for scm_gc_{start,end}.
811
a94da0e0
MD
8122000-08-13 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
813
814 * alist.c (scm_assq, scm_assv, scm_assoc): Report argument type
815 error for the alist rather than the sublist where the type
816 mismatch is discovered.
817
2a2a730b
NJ
8182000-08-13 Neil Jerram <neil@ossau.uklinux.net>
819
820 * root.c (s_scm_call_with_dynamic_root): Docstring fix - rogue
821 newline.
83238bc1 822
f0a7af1a
NJ
8232000-08-12 Neil Jerram <neil@ossau.uklinux.net>
824
2a2a730b
NJ
825 * numbers.c (scm_ash): Docstring fix - missing newlines.
826
827 * ports.c (scm_port_filename): Docstring fix - missing newline.
828
829 * strports.c (scm_eval_string): Docstring fix - missing newline.
830
ee826bae
NJ
831 * vports.c (s_scm_make_soft_port): Docstring updated so that
832 example is correct.
833
1670bef9
NJ
834 * strop.c: Docstring fixes - quotation marks and backslashes
835 needed quoting.
836
f0a7af1a
NJ
837 * numbers.c (s_scm_logand): Docstring fix - "@end lisp" inserted.
838
872e0c72
NJ
8392000-08-11 Neil Jerram <neil@ossau.uklinux.net>
840
841 * macros.c: Remove surplus newlines from end of docstrings.
842
843 * list.c (scm_list_tail): Add @deffnx line to docstring for
844 list-cdr-ref.
83238bc1 845
872e0c72
NJ
846 * keywords.c: Docstring improvements in conjunction with new
847 reference manual doc on keywords.
848
849 * error.c (scm_error_scm): Fix texinfo syntax error in
850 docstring. (@code(~S) should be @code{~S}.)
851
852 * dynl.c: Remove surplus newlines from end of docstrings.
853
3a33a9b1
MD
8542000-08-11 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
855
856 * eval.c (scm_eval): Backward incompatible change: Now takes an
857 environment specifier as second arg. `eval' hereby becomes R5RS
858 compatible.
859 (scm_i_eval_x, scm_i_eval): New functions (replace
860 scm_eval_3).
861 (scm_eval2, scm_eval_3): Deprecated.
862 (scm_top_level_lookup_closure_var): Deprecated.
863
864 * eval.h: #include "struct.h".
865
866 * evalext.c (scm_definedp): Have to work before module system is
867 booted.
868
869 * modules.h (SCM_MODULEP, SCM_VALIDATE_MODULE,
870 SCM_MODULE_OBARRAY, SCM_MODULE_USES, SCM_MODULE_BINDER,
871 SCM_MODULE_EVAL_CLOSURE): New macros.
872 (scm_module_index_obarray, scm_module_index_uses,
873 scm_module_index_binder, scm_module_index_eval_closure): New
874 constants; #include "validate.h".
83238bc1 875
3a33a9b1
MD
876 * modules.c (scm_module_tag, scm_module_system_booted_p): New
877 globals.
878 (scm_post_boot_init_modules): Initialize scm_module_tag.
879 (scm_interaction_environment): New primitive.
880
881 * symbols.c (scm_can_use_top_level_lookup_closure_var): Removed.
882 #include "modules.h".
883
884 * strports.c (scm_eval_string): Evaluate in
885 scm_interaction_environment ().
886
887 * script.c (scm_shell): Pass scm_the_root_module () as second arg
888 to new scm_eval_x.
889
890 * load.c (load): Use `scm_selected_module' to compute second arg
891 to new scm_i_eval_x; Don't call it if module system hasn't booted.
892 (scm_read_and_eval_x): Deprecated.
893 #include "modules.h".
894
895 * debug.c (scm_local_eval): Use scm_i_eval and scm_i_eval_x.
896 (scm_start_stack): Use scm_i_eval.
897
898 * strports.c: #include "modules.h".
1807c7b8
MD
899
900 * print.c (scm_simple_format): Be case-insensitive for ~A and ~S
901 directives.
902
1a2f1b90
MD
9032000-08-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
904
905 The following changes are intended to ensure that struct instances
906 are freed before their vtables. It's optimized for the most
907 common case, which is freeing of struct instances.
908
909 * gc.c (scm_gc_mark, scm_gc_sweep): Remove vcell = 1 magic.
910 (scm_structs_to_free): New variable.
911 (scm_gc_sweep): Hook up structs to free on the scm_structs_to_free
912 chain.
913
914 * struct.h (SCM_STRUCT_GC_CHAIN, SCM_SET_STRUCT_GC_CHAIN): New
915 macros.
916 (scm_structs_to_free, scm_struct_prehistory): Declare.
917
918 * struct.c (scm_make_struct, scm_make_vtable_vtable): Structs
919 handles are now double cells; Initialize SCM_STRUCT_GC_CHAIN to
920 0.
921 (scm_struct_gc_init, scm_free_structs): New GC C hooks.
922 (scm_struct_prehistory): Install them.
923
924 * init.c (scm_boot_guile_1): Call scm_struct_prehistory.
925
b054684d
MV
9262000-08-06 Marius Vollmer <mvo@zagadka.ping.de>
927
928 * read.c (scm_flush_ws): Include filename in error message when it
929 is not `#f'.
930
7ca38734
MV
9312000-08-05 Marius Vollmer <mvo@zagadka.ping.de>
932
933 * iselect.c: Include <unistd.h>. Thanks to Bertrand Petit!
934
b62cc1c2
MD
9352000-08-02 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
936
89e941f1
MD
937 * struct.c (scm_make_struct_layout, scm_make_struct,
938 scm_make_vtable_vtable): Updated documentation.
939
b62cc1c2
MD
940 * print.c (scm_simple_format): Bugfix: Coerce port before using
941 it.
942
3bc0c6df
GH
9432000-07-31 Gary Houston <ghouston@arglist.com>
944
cdaf0a20 945 * net_db.c: declare h_errno only if HAVE_H_ERRNO is not defined
3bc0c6df
GH
946 (thanks to Richard Kim for the bug report).
947
3ccd1860
MV
9482000-07-30 Marius Vollmer <mvo@zagadka.ping.de>
949
950 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
951 scm_assoc_remove_x): Use scm_delq1_x instead of scm_delq_x, since
952 using the latter is pointless.
953
11102992
DH
9542000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
955
956 * gc.c (scm_gc_sweep): Renamed local variable from 'free' to
957 'free_struct_data' to avoid confusion with stdlib's 'free'.
958
a75923bb
DH
9592000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
960
961 * vectors.c (scm_make_vector): Fix the initialization order of
962 the vector such that the type cell is initialized last.
963
f7620510
DH
9642000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
965
966 * struct.[ch] (scm_struct_init): Made static. Fixed not to rely
967 on the struct cell to be fully initialized.
968
969 * struct.c (scm_make_struct, scm_make_vtable_vtable): Fix the
970 initialization order of the struct such that the type cell is
971 initialized last.
972
17dd060d
MV
9732000-07-25 Marius Vollmer <mvo@zagadka.ping.de>
974
975 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
976 scm_assoc_remove_x): Remove only the first cell with a matching
977 key, not all.
978
b73bde31
MV
9792000-07-24 Marius Vollmer <mvo@zagadka.ping.de>
980
981 * stime.c (scm_strftime): Recognize a return value of zero from
982 strftime as buffer overflow and take care to detect a valid zero
983 length result regardless. Thanks to David Barts!
984
e85da7d9
MV
9852000-07-23 Marius Vollmer <mvo@zagadka.ping.de>
986
987 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
988 scm_assoc_remove_x): Remove all cells whose key is eq, eqv, or
989 equal (respectively) to the argument key, not all cells that are
990 eq, eqv, or equal to the first cell with the argument key. Thanks
991 to Neil Jerram!
83238bc1 992
78a3503e
DH
9932000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
994
995 * gc.h (SCM_FREE_CELL_CDR, SCM_SET_FREE_CELL_CDR), hooks.c
996 (make_hook), modules.c (OBARRAY, USES, BINDER): Pack and unpack
997 SCM values appropriately.
998
999 * modules.c (scm_standard_eval_closure): Don't pass an inum to
1000 scm_makcclo, but rather a long value.
1001
62850ef3
DH
10022000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1003
1004 read.c (scm_lreadrecparen), srcprop.c (scm_set_source_property_x):
1005 SCM_SETCDR and SCM_WHASHSET macros don't deliver a return value.
1006 Thanks to Han-Wen Nienhuys for the bug report.
1007
cc4feeca
DH
10082000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1009
1010 * root.[ch] (scm_call_catching_errors): Deprecated.
1011
1012 * root.c (scm_init_root): Initialize the root smob type using the
1013 standard initialization functions.
1014
007e7c35
MV
10152000-07-17 Marius Vollmer <mvo@zagadka.ping.de>
1016
1017 * eval.c (unmemocopy): Don't rely on V being a list of at least
1018 one element. Thanks to Bill Schottstaedt!
1019
9d47a1e6
ML
10202000-07-15 Michael Livshin <mlivshin@bigfoot.com>
1021
1022 * gc.c (scm_done_free): new.
1023 expanded comments about scm_done_malloc.
1024
1025 * gc.h: added prototype for scm_done_free
1026
406c7d90
DH
10272000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1028
1029 * gc.h (scm_take_stdin): Removed.
1030
1031 * gc.h (SCM_VALIDATE_CELL): Delegate cell checks to function
1032 scm_assert_cell_valid to allow extensions to the checking
1033 functionality without need to recompile everything.
1034
1035 * gc.[ch] (scm_assert_cell_valid, scm_set_debug_cell_accesses_x):
1036 Added as conditionally compiled functions for the case that
1037 SCM_DEBUG_CELL_ACCESSES is enabled.
1038
1039 * gc.c (debug_cells_p): Added to indicate whether compile-time
1040 included cell access debugging is run-time enabled.
1041
1042 * gc.[ch] (scm_gc_running_p): Added to indicate that scm_igc is
1043 being executed. Intended to be used instead of scm_gc_heap_lock
1044 at most places.
1045
1046 * error.c (scm_error), gdbint.c (SCM_GC_P): Use scm_gc_running_p
1047 instead of scm_gc_heap_lock.
1048
1049 * gc.c (scm_igc): Set scm_gc_running_p to true while running.
1050
1051 * gc.c (scm_mark_locations): Don't mark free cells.
1052
1053 * weaks.c (scm_scan_weak_vectors): Use SCM_FREE_CELL_P instead of
1054 SCM_FREEP.
1055
c4da09e2
DH
10562000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1057
1058 * gc.c (scm_mark_locations): Minimized some variable scopes and
1059 simplified the code a bit.
1060
3f5d82cd
DH
10612000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1062
1063 * gc.h (SCM_SET_FREE_CELL_TYPE, SCM_SET_FREE_CELL_CDR,
1064 SCM_FREE_CELL_P, SCM_FREE_CELL_CDR): Added since free cells
1065 should not be accessed via SCM_C[AD]R. Further, using dedicated
1066 macros to access free cells allows all other cell accessing macros
1067 to treat acesses to free cells as errors, thus enabling better
1068 error checks for cell accesses. SCM_FREE_CELL_P is supposed to
1069 replace SCM_FREEP some time.
1070
1071 * gc.h (SCM_NEWCELL, SCM_NEWCELL2), gc.c (map_free_list,
1072 free_list_length, scm_check_freelist, scm_debug_newcell,
1073 scm_debug_newcell2, freelist_length, scm_gc_for_newcell,
1074 scm_gc_mark, scm_gc_sweep, init_heap_seg): Only use the dedicated
1075 cell accessors when accessing free cells.
1076
f706a58b
DH
10772000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1078
1079 * gc.h (SCM_CELL_WORD, SCM_CELL_OBJECT): Treat the referenced
1080 object as const in order to make the compiler warn about code like
1081 SCM_CELL_WORD (x, n) = y. Instead, SCM_SET_CELL_WORD (x, n, y)
1082 should be used.
1083
1084 (SCM_CELL_WORD_LOC, SCM_CARLOC, SCM_CDRLOC): Return the address
1085 as an address to a non-const object, since these macros are used
1086 to allow direct write access to objects.
1087
cbaadf02
DH
10882000-07-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1089
1090 * hashtab.c (scm_hash_fn_create_handle_x): Signal an error if the
1091 given hash table has no slots.
1092
a6c12a04
DH
10932000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1094
b6efc951
DH
1095 * gc.c (policy_on_error): Added in order to allow alloc_some_heap
1096 to react to malloc failures in a context dependent way.
1097
1098 (scm_check_freelist): No need to flush streams before abort().
1099
1100 (scm_gc_for_newcell): Try to allocate new memory in three phases:
1101 grow heap if preferred, if still no memory available collect
1102 garbage, if still no memory available grow heap.
1103
1104 (heap_segment_table_size): Added to always reflect the actual
1105 size of the heap segment table, because scm_n_heap_segs may differ
1106 from the heap segment table size.
1107
1108 (alloc_some_heap): In case of malloc failure, react according to
1109 the new policy_on_error parameter (either return to caller or
1110 abort immediately). Further, keep heap_segment_table_size up to
1111 date.
1112
1113 (scm_init_storage): Initialize heap_segment_table_size.
1114
11152000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1116
1117 * gh.h: Don't include <stdio.h>. Thanks to Han-Wen Nienhuys for
a6c12a04
DH
1118 the hint.
1119
b63a956d
DH
11202000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1121
1122 * __scm.h (SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
1123 SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
1124 SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
1125 SCM_ORD_SIG, SCM_NUM_SIGS): Re-introduce these as deprecated
1126 symbols.
1127
1128 * error.c (scm_wta): Re-introduce dispatching for SCM_OUTOFRANGE
1129 and SCM_NALLOC, but as a deprecated feature.
1130
a75a7aff
MD
11312000-06-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1132
38ec519c
MD
1133 * debug.c: Added #include fluids.h.
1134
a75a7aff
MD
1135 * numbers.c (scm_gr_p, scm_leq_p, scm_geq_p): Turned into
1136 primitive generics. (Thanks to Nicolas Neuss.)
1137
c7387918
DH
11382000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1139
1140 * gc.c (alloc_some_heap): Use scm_memory_error to indicate a
1141 failed attempt to get additional memory from the system.
1142
1143 (scm_gc_for_newcell): Changed the control structure to make the
1144 behaviour explicit for the case that gc is not able to free any
1145 cells.
1146
685c0d71
DH
11472000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1148
1149 * __scm.h (SCM_OUTOFRANGE): Removed.
1150
1151 * error.c (scm_wta): Removed sick dispatch code for range
1152 errors. (More sick dispatches still to be removed.)
1153
1154 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
1155 scm_hash_fn_remove_x): Eliminate redundant test for if unsigned
1156 value is non-negative. Use scm_out_of_range to signal range
1157 errors.
1158
1159 * hooks.c (make_hook), unif.c (scm_aind): Use scm_out_of_range to
1160 signal range errors.
1161
1162 * list.c (scm_list_ref, scm_list_set_x, scm_list_cdr_set_x): Fix
1163 error reporting (now uses original input parameter to report wrong
1164 type argument errors). Use SCM_OUT_OF_RANGE to report range
1165 errors and SCM_WRONG_TYPE_ARG to report type errors.
1166
1167 * strings.c (scm_substring): Make range checks for negative
1168 values explicit (former behaviour relied on an implicit
1169 conversion from signed to unsigned). Don't use SCM_ASSERT for
1170 range checks.
1171
1172 * unif.c (scm_aind, scm_transpose_array, scm_bit_set_star_x,
1173 scm_bit_count_star): Use scm_out_of_range to signal range
1174 errors.
1175
1176 * unif.c (scm_transpose_array, scm_bit_position), vectors.c
1177 (scm_vector_ref, scm_vector_set_x, scm_vector_move_left_x,
1178 scm_vector_move_right_x): Use SCM_ASSERT_RANGE to check ranges.
1179
fdf25853
DH
11802000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1181
1182 * validate.h (SCM_VALIDATE_INUM_MIN_COPY,
1183 SCM_VALIDATE_INUM_MIN_DEF_COPY, SCM_VALIDATE_INUM_RANGE_COPY):
1184 Perform all range checks based on the input value. The former way
1185 of using the value that is assigned to the target variable fails
1186 if the assignment to the target variable itself can change the
1187 value because of type conversion.
1188
1189 (SCM_ASSERT_RANGE): Use scm_out_of_range to signal range errors.
1190
627df128
MD
11912000-06-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1192
1193 * gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
1194 doesn't yield any new cells. In theory this could happen if all
1195 cells allocated with NEWCELL are either in use or conservatively
1196 marked and all cluster spine cells are conservatively marked.
1197 (Thanks to Dirk.)
1198
2500356c
DH
11992000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1200
1201 * __scm.h (SCM_NALLOC): Removed.
1202
1203 * error.c (scm_wta): Removed sick dispatch code for memory
1204 errors. (More sick dispatches still to be removed.)
1205
1206 * numbers.c (scm_mkbig, scm_adjbig), ports.c (scm_make_port_type),
1207 random.c (scm_i_copy_rstate, scm_c_make_rstate), smob.c
1208 (scm_make_smob_type), srcprop.c (scm_make_srcprops), vectors.c
1209 (scm_vector_set_length_x): Now using scm_memory_error to signal
1210 memory errors.
1211
9b166f12
DH
12122000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1213
1214 * __scm.h: Removed some commented code and fixed some comments.
1215
1216 (SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL,
1217 SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL,
1218 SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS): Removed.
1219
1220 * async.c: Removed some commented code.
1221
acf4331f
DH
12222000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1223
1224 * gc.c (scm_gc_mark, scm_gc_sweep, scm_must_malloc,
1225 scm_must_realloc, scm_must_free, alloc_some_heap): Use the
1226 appropriate error signalling function.
1227
fc3d7778
DH
12282000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1229
1230 * root.h (scm_first_type): Removed.
1231
12322000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
0a7a7445
DH
1233
1234 * gc.c (MIN_GC_YIELD): Removed.
1235
150c200b
ML
12362000-06-28 Michael Livshin <mlivshin@bigfoot.com>
1237
1238 * gc.c (scm_gc_for_newcell): don't try to do GC if it's blocked,
1239 allocate instead.
1240
939794ce
DH
12412000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1242
1243 * async.c (scm_gc_async, scm_gc_vcell, scm_sys_gc_async_thunk):
1244 Moved to gc.c.
1245
1246 (scm_init_async): Moved initialization for scm_gc_async and
1247 scm_gc_vcell to gc.c. Moved initialization of scm_asyncs here
1248 from gc.c.
1249
1250 * async.h (scm_gc_async): Not globally visible any more.
1251
1252 * gc.c (scm_gc_stats): Made callable even from within regions
1253 where gc is blocked.
1254
1255 (scm_gc_end): Eliminate the hardcoding of the marking of the
1256 scm_gc_async from the gc core.
1257
1258 (scm_init_storage): Don't initialize the scm_asyncs list here.
1259 This is now done in asyncs.c.
1260
1261 (scm_gc_vcell): Moved here from async.c.
1262
1263 (gc_async): Renamed from scm_gc_async, moved here from async.c
1264 and made static.
1265
1266 (gc_async_thunk): Renamed from scm_sys_gc_async_thunk and moved
1267 here from async.c.
1268
1269 (mark_gc_async): New hook function for scm_after_gc_c_hook.
1270
1271 (scm_init_gc): Added initialization of scm_gc_vcell and
1272 gc_async. Further, add mark_gc_async to scm_after_gc_c_hook.
1273
1274 * init.c (scm_boot_guile_1): scm_init_gc requires asyncs to be
1275 initialized.
1276
12acbbef
DH
12772000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1278
1279 * gc.c (scm_igc): Removed commented code that once was intended
1280 to unprotect struct types with no instances.
1281
1282 * root.h (scm_type_obj_list): Removed.
1283
73ea78af
DH
12842000-06-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1285
1286 * async.c (scm_init_async): Switch to standard way of smob
1287 initialization.
1288
7f40b48a
ML
12892000-06-21 Michael Livshin <mlivshin@bigfoot.com>
1290
1291 * guile-doc-snarf.in: use cut instead of sed, that's much much
83238bc1
ML
1292 faster. also, don't call basename more than needed. and, to gain
1293 a couple of microseconds more, don't call cat needlessly. (thanks
7f40b48a
ML
1294 to Brad Knotwell).
1295
3c6d9d71
DH
12962000-06-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1297
1298 * guile-snarf.awk.in, guile-snarf.in, snarf.h: Rename SCM__I to
1299 SCM_SNARF_INIT_START, SCM__D to SCM_SNARF_DOC_START, SCM__S to
1300 SCM_SNARF_DOCSTRING_START and SCM__E to SCM_SNARF_DOCSTRING_END.
1301
2b6e0d2b
MD
13022000-06-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1303
1304 * eval.c, eval.h (scm_top_level_lookup_closure_var): Added.
1305 #include "libguile/fluids.h".
1306
1307 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): New macro which replaces
1308 SCM_CDR (scm_top_level_lookup_closure_var) everywhere.
1309
1310 * root.h (scm_top_level_lookup_closure_var,
1311 scm_system_transformer): Removed. (It's no sense in having the
1312 *variable* be a "fluid".)
1313
1314 * root.c (mark_root): Removed marking of
1315 s->top_level_lookup_closure_var and s->system_transformer.
1316
1317 * modules.c (scm_selected_module): the_module is now a fluid.
1318
5bc9cbd2
MD
13192000-06-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1320
1321 * gc.h, tags.h: Be kind to compilers which must see hash signs in
1322 column 0. (Thanks to Ian Grant.)
1323
1324 * numbers.h: Put #ifdef HAVE_LONG_LONGS around declarations using
1325 the long_long type. (Thanks to Bernard Urban.)
1326
b5074b23
MD
13272000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1328
1329 * gc.c, gc.h (scm_default_init_heap_size_1,
1330 scm_default_min_yield_1, scm_default_init_heap_size_2,
1331 scm_default_min_yield_2, scm_default_max_segment_size): New global
1332 variables. Can be customized by the application before booting
1333 Guile. (We might want to be able to control these parameters
1334 dynamically through the "options interface" in the future, but
1335 note that that is additional functionality. Here we're giving
1336 default values which the environment variables can override.)
1337
1338 * list.c (scm_cons_star): Updated comment.
1339
1340 * smob.h: Changed comments for scm_make_smob_type and
1341 scm_make_smob_type_mfpe, warning that the latter might be
1342 deprecated in a future release.
1343
0a9e521f
MD
13442000-06-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1345
1346 * list.[ch] (scm_cons_star/cons*): Renamed from
1347 scm_list_star/list*.
1348
1349 * list.[ch] (scm_list_star/list*): Provided as a deprecated alias
1350 for scm_cons_star/cons*.
1351
1352 * gc.c (scm_protect_object): Updated comment.
1353
1354 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX): Removed.
1355
1356 * tags.h (SCM_UNPACK_CAR, SCM_NDOUBLE_CELLP): Removed.
1357
264871aa
MD
13582000-06-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1359
1360 * init.c, init.h (scm_initialized_p): Renamed from `initialized'
1361 and made global.
1362
1363 * gdbint.c (gdb_print): Print warning instead of calling scm_write
1364 if Guile isn't yet initialized.
1365
1366 * print.c (scm_current_pstate, scm_make_print_state): Simplified
1367 tests, using the assumption that Guile has been initialized.
1368
3785f317
GB
1369Sun Jun 18 14:45:21 2000 Greg J. Badros <gjb@cs.washington.edu>
1370
1371 * print.c (s_scm_current_pstate): Do not segfault when the
1372 print_state_pool is unitialized in `current-pstate', and better
1373 verify its state before altering it in scm_make_print_state().
1374
6732de1b
ML
13752000-06-18 Michael Livshin <mlivshin@bigfoot.com>
1376
1377 * scmsigs.c (s_scm_sigaction): guard the SIGIOT case with an
1378 #ifdef -- it's missing on at least one platform. (thanks to
1379 Jan Nieuwenhuizen).
1380
79494f15
DH
13812000-06-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1382
1383 * list.c (list*): Added documentation from common-list.scm.
1384
6a199940
DH
13852000-06-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1386
1387 * gc.c (scm_unprotect_object): The reference count is guaranteed
1388 to be a positive number.
1389
3243bcc0
MD
13902000-06-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1391
1392 * eval.c: Updated comment above scm_map.
1393
26c9c3ce
MD
13942000-06-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1395
1396 * gc.c (scm_protect_object): Avoid looking up the object handle
1397 twice.
1398 (scm_unprotect_object): Abort if scm_unprotect_object is called on
1399 an unprotected object.
1400
2dd6a83a
ML
14012000-06-14 Michael Livshin <mlivshin@bigfoot.com>
1402
1403 * gc.c (scm_unprotect_object): fix a nasty typo bug (thanks to
1404 Dirk Herrmann).
1405
97ebbbca
MD
14062000-06-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1407
43fbd20f
MD
1408 * socket.c (scm_getsockopt): Changed type for `optlen' from int to
1409 size_t.
1410 (scm_accept, scm_getsockname, scm_getpeername, scm_recvfrom):
1411 Ditto for `tmp_size'.
1412 (scm_addr_buffer_size): Changed type from int to size_t.
1413
1414 * random.c: #include <string.h>. (Needed by memcpy.)
1415
97ebbbca
MD
1416 * guile-snarf.awk.in: Replace the dot_doc_file arg with "-",
1417 indicating stdin, instead of "" and don't reset ARGC. This is a
1418 workaround for `nawk' in AIX 4.3 on RS6000 but, as far as I know,
1419 it is correct, and perhaps even better.
1420
14d72d48
GH
14212000-06-14 Gary Houston <ghouston@arglist.com>
1422
1423 * scmsigs.c (scm_init_scmsigs): if HAVE_SIGINTERRUPT is not
1424 defined, add SA_RESTART to the sigaction flags correctly
1425 (thanks to Dale P. Smith).
1426
d99783cb
MD
14272000-06-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1428
010d1e9d
MD
1429 * strings.c: #include <string.h>. (Thanks to Bill Schottstaedt.)
1430
1431 * net_db.c (scm_resolv_error): Only use macro NETDB_INTERNAL if
1432 defined. It isn't on sgi irix 5.3. (Thanks to Bill Schottstaedt.)
1433
d99783cb
MD
1434 * Makefile.am (.c.doc): Pipe output (the .x contents) to /dev/null.
1435
c47e8cc1
MD
14362000-06-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1437
e36a0870
MD
1438 * fports.c (scm_setvbuf): Use `free' instead of `scm_must_free'
1439 since read and write buffers are allocated by `malloc'.
1440
c47e8cc1
MD
1441 * Makefile.am: Removed old test code.
1442
1443 * gh_test_c.c, gh_test_repl.c: Removed.
1444
341f78c9
MD
14452000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1446
a8861fa0
MD
1447 * iselect.c (SCM_NLONGBITS): Add workaround for the Sun 4.2
1448 compiler.
1449
1450 * inet_aton.c (inet_aton): Cast init value for `cp'.
1451
1452 * ramap.c (s_scm_array_fill_x): Cast `ve' properly in case
1453 `scm_tc7_uvect'.
1454
1455 * symbols.c (scm_intern_obarray_soft,
1456 scm_sysintern0_no_module_lookup): Cast `name' to unsigned char ptr
1457 in calls to scm_strhash.
1458
1459 * strports.c (st_resize_port): Substituted SCM_UCHARS for
1460 SCM_CHARS.
1461 (st_write): Cast argument to strncpy to char ptr.
1462 (scm_mkstrport): Substituted SCM_ROUCHARS for SCM_ROCHARS.
1463 (scm_strport_to_string): Cast argument to scm_makfromstr to char
1464 ptr.
1465
1466 * ports.c (scm_ungetc): Cast value to unsigned char ptr before
1467 storing in putback_buf.
1468 (scm_unread_string): Substituted SCM_ROCHARS for SCM_ROUCHARS.
1469
1470 * ioext.c (s_scm_read_line): Cast result of call to
1471 scm_do_read_line to unsigned char ptr.
1472
d230c130
MD
1473 * gdbint.c (SEND_STRING): Cast argument to char pointer.
1474
1475 * fports.c (fport_flush): Declare `ptr' as unsigned char (was
1476 char).
1477
9c8dca4e
MD
1478 * Makefile.am (DOT_DOC_FILES): List doc-files explicitly. (We
1479 shouldn't use Make rules which aren't supported by most Make
1480 programs.)
d230c130
MD
1481 (OMIT_DEPENDENCIES): Defined to "libguile.h ltdl.h". (We don't
1482 want these dependencies recorded, since they would get bogus
1483 relative paths; libguile.h is only used in gh.h and guile.c.)
9c8dca4e
MD
1484 (EXTRA_DOT_X_FILES, EXTRA_DOT_DOC_FILES): New variables.
1485 (guile-procedures.txt): Depend on EXTRA_DOT_DOC_FILES.
1486 (modinclude_HEADERS): Removed kw.h.
1487
69fc343a
MD
1488 * guile-snarf.in: Change regexp "^SCM__I" --> "^ *SCM__I".
1489 (The preprocessor might insert spaces before the identifier.)
1490
341f78c9
MD
1491 * snarf.h (SCM_SNARF_HERE, SCM_SNARF_INIT, SCM_SNARF_DOCS):
1492 Renamed from SCM_HERE, SCM_INIT, SCM_DOCS.
1493
1494 * smob.h (scm_smobfuns): Removed deprecated type.
1495
1496 * smob.c, smob.h (scm_newsmob): Removed deprecated function.
1497 (Replaced by `scm_make_smob_type'.)
1498
1499 * keywords.c (scm_tc16_kw): Removed deprecated type.
1500 (Replaced by scm_tc16_keyword.)
1501
341f78c9
MD
1502 * kw.h: Removed deprecated header file.
1503
1504 * evalext.c (serial-map): Removed deprected alias for scm_map.
1505 (Has been replaced by `map-in-order'.)
1506
1507 * ramap.c (serial-array-copy!, serial-array-map!): Removed
1508 depracted aliases. (Replaced by `array-copy-in-order!' and
1509 `array-map-in-order'.)
1510
4f60fa74
MD
15112000-06-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1512
1513 * gc.h (SCM_VALIDATE_CELL): Rewritten.
1514 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
1515 SCM_SET_CELL_OBJECT): Use new version of SCM_VALIDATE_CELL.
1516 (Thanks to Han-Wen Nienhuys.)
1517
adb2c53b
ML
15182000-06-10 Michael Livshin <mlivshin@bigfoot.com>
1519
1520 * guile-doc-snarf.in: don't pipe the CPP output right into sed --
1521 write it to the temp file first and check the CPP return code.
1522 (I introduced this bug earlier, and this probably caused people
1523 with non-GNU C preprocessors to get empty *.x files and not to
1524 have the build fail right away...).
1525
1526 * scmsigs.c (s_scm_sigaction): guard the SIGSYS case with an ifdef
1527 -- at least my libc5-based Linux system doesn't define SIGSYS.
1528
0abbd8f4
MD
15292000-06-08 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1530
aa169af8
MD
1531 * snarf.h, guile-snarf.awk.in, guile-snarf.in: Replaced snarf
1532 markers with identifiers (SCM__I, SCM__D, SCM__S, SCM__E).
1533 (Thanks to Bernard Urban.)
0abbd8f4 1534
a6596faa
MD
15352000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1536
1537 * modules.c (scm_system_module_env_p): Fixed detection of system
1538 modules.
1539
c29ee3e5
MV
15402000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
1541
1542 * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
1543 `program error signals' because they can't currently be handled by
1544 Scheme code.
1545
2d9cdf4e
DH
15462000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1547
1548 * procs.h (SCM_SET_SUBRF): Added.
1549
1550 * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
1551 SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
1552 report.
1553
4b479d98
DH
15542000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1555
1556 * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
1557 value.
1558
1559 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
1560 scm_merge_list_step): Don't take the address of SCM_CAR. Use
1561 SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
1562
9a09deb1
DH
15632000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1564
1565 * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
1566 replacement for !SCM_FALSEP.
1567
1568 * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
1569 (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
1570 (scm_primitive_load), print.c (scm_simple_format), procs.c
1571 (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
1572 (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
1573 (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
1574 (scm_string_to_obarray_symbol), throw.c (scm_catch,
1575 scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
1576 scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
1577 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
1578 uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
1579
2c4fc472
MD
15802000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1581
542bfe1d
MD
1582 * eval.c (scm_badformalsp): New static function.
1583 (SCM_CEVAL): Check arguments for procedure-with-setter closures.
1584 (Thanks to Keisuke Nishida.)
1585
2c4fc472
MD
1586 The major reason for Guile's slow loading speed has been the fact
1587 that a chain of Scheme level procedures has been evaluated for
1588 every top-level symbol lookup during the first pass through the
1589 code.
83238bc1 1590
2c4fc472
MD
1591 The following is a kludge which I suggested four years ago, and
1592 which I've repeatedly suggested since. Personally, I've never
1593 been bothered by Guile's slow loading speed, so I thought I would
1594 let someone else do it...
1595
1596 But since the new environments will be included first in
1597 Guile-1.5, I thought it would make people happy to get the kludge
1598 into 1.4.
83238bc1 1599
2c4fc472
MD
1600 * modules.c: Added #include "libguile/vectors.h";
1601 Added #include "libguile/hashtab.h";
1602 Added #include "libguile/struct.h";
1603 Added #include "libguile/variable.h";
1604 Capture Scheme level `module-make-local-var!' to be used in the
1605 standard eval closure.
1606 (scm_standard_eval_closure): New primitive.
1607
1608 * modules.h (scm_standard_eval_closure): Declare.
1609
1610 * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
1611 instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
1612
1613 * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
1614 standard eval closures.
1615
1616 * variable.c: Code layout fixes.
1617
96372e45
MD
16182000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1619
1620 * Makefile.am: Added LIBS line to libpath which accidentally
1621 disappeared in the change of 2000-06-01.
1622 (Thanks to Dale P. Smith.)
1623
cc0bb1ef
MD
16242000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1625
6784d5c0
MD
1626 * scmsigs.c (scm_segfault): Removed. (Was probably added by
1627 mistake since it is not mentioned in ChangeLog.)
1628
cc0bb1ef
MD
1629 * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
1630 avoid compiler warnings in gcc. (Does this work for other
1631 compilers?)
1632
f8d4d8e5
MD
16332000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1634
4ecf5aa3
MD
1635 * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
1636 abort ().
1637 (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
1638 SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
1639 the address of these expressions since they use SCM_VALIDATE_CELL.
1640 (Thanks to Bernard Urban.)
1641
f8d4d8e5
MD
1642 * dynl.c: Changed #include <ltdl.h> --> #include
1643 "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
1644
b6fae158
CB
16452000-06-01 Craig Brozefsky <craig@red-bean.com>
1646
1647 * Makefile.am: libguile_la_LDFLAGS gets -version-info args
1648 from GUILE-VERSION definition of LIBGUILE version. Added to
1649 libpath.h definitions for guileversion and libguileversion which
1650 both get their values from GUILE-VERSION definition.
1651
7272f6d8
DH
16522000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1653
1654 * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
1655 file: Code using numbers should not be required to include
1656 smob.h.
1657
b2728432
DH
16582000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1659
1660 * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
1661 mit-pthreads.c, mit-pthreads.h: Deleted.
1662
1663 * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
1664 references to deleted files and fsu/mit thread support in
1665 general.
1666
f8eaf8b9
DH
16672000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1668
1669 * hooks.c (symbol_name, scm_create_hook): Restored the original
1670 behaviour of scm_create_hook. Changing it was bad as Carl
1671 R. Witty has pointed out.
1672
1673 * gc.c (scm_init_gc): We can still rely on scm_create_hook to
1674 protect the object.
1675
e11f8b42
DH
16762000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1677
1678 * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
1679 soon not be done by scm_create_hook any longer.
1680
1681 * hooks.c (make_hook, print_hook, scm_create_hook,
1682 scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
1683 SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
1684 scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
1685 longer have names. As an intermediate solution, the name
1686 predicate is emulated via object properties, but use of this
1687 feature is deprecated.
1688
1689 * hooks.h (scm_free_hook): Removed, as it is never defined.
1690
47457e8a
DH
16912000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1692
894a712b
DH
1693 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
1694 Un-deprecated since otherwise user code can't determine whether a
1695 number fits into an inum any longer. The names should be changed
1696 some time, though.
1697
1698 * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
1699
1700 * tags.h (SCM_UNPACK_CAR): Deprecated.
1701
17022000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1703
1704 * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
47457e8a
DH
1705 fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
1706 (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
83238bc1 1707 numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
47457e8a
DH
1708 Replace SCM_UNPACK_CAR appropriately. Don't access cells via
1709 SCM_{SET}?C[AD]R unless they are known to be cons cells.
1710
1711 * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
1712 init_heap_seg): Remove unused struct member variable 'valid'.
1713
f9a64404
DH
17142000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1715
1716 * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
1717 scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
1718 SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
1719 procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
1720 variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
1721 appropriately.
1722
206d3de3
DH
17232000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1724
1725 * gc.c (free_list_length), hash.c (scm_hasher), macros.c
1726 (scm_macro_type), objects.c (scm_class_of), options.c
1727 (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
1728 (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
1729
445f675c
DH
17302000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1731
1732 * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
1733 SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
1734
1735 * eval.c (scm_force): Add documentation.
1736
1737 * eval.c (scm_force, scm_cons_source): Don't access cells via
1738 SCM_{SET}?C[AD]R unless they are known to be cons cells.
1739
6ba93e5e
DH
17402000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1741
1742 * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
1743 (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
1744
1745 * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
1746 nosve #endif conditionally compiled code.
1747
fe517a7d
ML
17482000-05-23 Michael Livshin <mlivshin@bigfoot.com>
1749
1750 * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
1751
a564e775
ML
17522000-05-22 Michael Livshin <mlivshin@bigfoot.com>
1753
1754 * guile-doc-snarf.in: put the preprocessed file through sed to
cf00e803
ML
1755 trim all lines to 1024 chars. I hope it doesn't break anybody's
1756 sed. we'll see. (note: this is lossy trimming, i.e. the spill
1757 isn't wrapped around but actually chopped off. this seemed to me
1758 safe because the current snarfer doesn't understand multi-line
1759 cookies anyway. in the long term, it would be nice not to depend
1760 on AWK for anything.)
a564e775 1761
83238bc1 1762 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
a564e775
ML
1763 the previous change to this macros, after deciding to torture the
1764 snarfer instead.
1765
686765af
ML
17662000-05-21 Michael Livshin <mlivshin@bigfoot.com>
1767
1768 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
1769 the yucky, ugly and nasty conditional compilation back. sorry,
1770 but it was either that or requiring GAWK to build Guile.
1771 (lots of places): removed the code that implemented the old GC
1772 scheme.
686765af
ML
1773
1774 * init.c (scm_boot_guile_1): removed the code conditioned on
1775 !GUILE_NEW_GC_SCHEME.
1776
1777 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
1778
1779 * gc.c (scm_protect_object, scm_unprotect_object): change the
1780 implementation to more efficient (at least in the time complexity
1781 sense). the calls should now also be thread-safe -- I suspect
1782 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
1783 (lots of places): removed the code that implemented the old GC
1784 scheme.
686765af
ML
1785
1786 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
1787 SCM_REALLOW_INTS before return. I really wonder about the
1788 possible interactions between hashtables, threads & GC. it
83238bc1 1789 doesn't look healthy at all.
686765af 1790
44e47754
DH
17912000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1792
1793 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
1794 Dale P. Smith.
1795
46d53380
DH
17962000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1797
1798 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
1799 debug option to verify all accesses to cells actually access
1800 objects on the heap.
1801
1802 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
1803 SCM_DEBUG_CELL_ACCESSES is set to 1.
1804
1805 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
1806 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
1807 that is accessed.
1808
1a548472
DH
18092000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1810
1811 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
1812 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
1813
1814 * gc.c (scm_cellp): Fixed and simplified.
1815
1816 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
1817 make_jmpbuf, scm_init_throw): Now using double cells to represent
1818 jump buffers when using debug extensions.
1819
1820 (freejb): Removed.
1821
bcee10dd
DH
18222000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1823
1824 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
1825 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
1826 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
1827 gh_module_lookup): Accept const pointers as parameters.
1828
1829 * gh.h gh_data.c (gh_int2scmb): Deprecated.
1830
18312000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
1832
1833 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
1834 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
1835 the actual arguments in the list, but rather the rest argument as
1836 a list of arguments.
1837
1838 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
1839
1840 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
1841 (scm_list_star, scm_append, scm_append_x), ports.c
1842 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
1843 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
1844 (scm_make_stack), strings.c (scm_string_append), struct.c
1845 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
1846
1847 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
1848 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
1849 (scm_dynamic_link): Removed possibility to pass flags to
1850 scm_dynamic_link, as it had no effect anyway.
1851
1852 * filesys.c (scm_fcntl): Made single optional rest argument into
1853 a standard optional argument.
1854
1855 * hooks.c (scm_run_hook): A list of rest arguments is never
1856 SCM_UNBNDP.
1857
1858 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
1859 strings.c (scm_string_append): Don't perform half-hearted checks
1860 to see whether the rest argument forms a proper list any more, use
1861 SCM_VALIDATE_REST_ARGUMENTS instead.
1862
1863 * ports.c (scm_close_all_ports_except): Accept empty list of rest
1864 arguments.
1865
1866 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
1867 Simplify verification of rest argument.
1868
1869 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
1870 (ss_handler, handler_message): Make first mandatory rest argument
83238bc1 1871 of scm_make_stack into a standard mandatory argument.
af45e3b0
DH
1872
1873 * unif.c (scm_transpose_array, scm_enclose_array,
1874 scm_array_in_bounds_p), unif.h (scm_transpose_array,
1875 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
1876 rest argument into a standard mandatory argument.
1877
c8a54c4b
DH
18782000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1879
1880 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
1881 Keisuke Nishida for the suggestion.) Added debug option
1882 SCM_DEBUG_REST_ARGUMENTS.
1883
1884 * eval.c (scm_map, scm_for_each): Make sure all lists have the
1885 same length. Also, removed redundant parameter checks.
1886
56100716
DH
18872000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1888
1889 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
1890
1891 * __scm.h: Improved explanation of giving options to make.
1892
1893 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
1894 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
1895 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
1896 corresponding declaration and comment to __scm.h.
1897
1898 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
1899 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
1900 SCM_INUM): Removed conditionally compiled code for Turbo C.
1901
1902 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
1903 That check can be assumed to be redundant except for very rare
1904 conditions that actually indicate broken heap data.
1905
3c9f20f8
DH
19062000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1907
1908 * numbers.c (scm_logcount, scm_integer_length): Reordered
1909 dispatch sequence.
1910
8536a982
GH
19112000-05-15 Gary Houston <ghouston@arglist.com>
1912
1913 * stime.c (scm_strftime): don't reset TZ if zone is an empty
1914 string. append a "0" to the zone for TZ.
c8a54c4b 1915
78166ad5
DH
19162000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1917
1918 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
1919 sequence.
1920
1921 (scm_bit_extract): Fixed handling of bignums.
1922
f5f2dcff
DH
19232000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1924
1925 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
1926 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
1927 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
1928 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
1929 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
1930 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
1931 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
1932 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
1933 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
1934 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
1935
1936 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
1937 scm_output_port_p), print.c (scm_get_print_state), validate.h
1938 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
1939 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
1940 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
1941
07ccd85d
GH
19422000-05-14 Gary Houston <ghouston@arglist.com>
1943
32f1b9fd
GH
1944 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
1945 TZ environment variable so that the %Z format returns the zone
1946 from the input vector instead of the system default.
1947
07ccd85d
GH
1948 from Keisuke Nishida:
1949 * fports.c (scm_setvbuf): minor docstring fix.
1950 * ports.h (scm_generic_fgets): obsolete prototype deleted.
1951
3a9809df
DH
19522000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1953
1954 * __scm.h: Added new section for debugging options.
1955
1956 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
1957 help developers to get rid of references to deprecated code.
1958
1959 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
1960 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
1961 as part of the interface and are marked as deprecated in the
1962 header file.
1963
1964 * numbers.c (scm_make_real, scm_make_complex): Inlined the
1965 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
1966 respectively.
1967
1968 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
1969 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
1970 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
1971
e828cb75
DH
19722000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1973
1974 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
1975 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
1976 of two scm_bits_t values instead of two SCM values, because it is
1977 legal for cell entries to hold values that are not scheme objects.
1978
1979 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
1980 Use SCM_SETC[AD]R to modify contents of pairs.
1981
5986c47d
DH
19822000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1983
1984 * numbers.c (IS_INF, isfinite): Added FIXME comment.
1985
1986 (scm_abs, scm_magnitude): Make these two independent of each
1987 other. scm_abs now reports an error if given a complex argument.
1988
1989 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
1990 SCM_REALPART if the object is known to be real.
1991
1992 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
1993 here.
1994
1995 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
1996
eb42e2f0
DH
19972000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1998
1999 * eq.c (scm_eqv_p): Separate handling of real and complex
2000 values. Remove #ifdef SCM_BIGDIG #endif test.
2001
2002 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
2003 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
2004 ramap_rp, scm_array_map_x), random.c (vector_scale,
2005 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
2006 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
2007 the object is known to be real. Use SCM_COMPLEXP instead of
2008 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
2009 SCM_INEXP.
2010
7235ee58
DH
20112000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2012
2013 * numbers.c: No need to include unif.h.
2014
2015 (IS_INF): Returned to old test for now: x == x + 1 will not work
2016 for large numbers due to rounding errors.
2017 Thanks to Kalle Olavi Niemitalo.
2018
bb628794
DH
20192000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2020
2021 * numbers.c (scm_divbigdig): Removed outdated comment.
2022
2023 (scm_number_to_string, scm_string_to_number, scm_number_p,
2024 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
2025 scm_geq_p, scm_make_rectangular, scm_make_polar,
2026 scm_inexact_to_exact): Added comments.
2027
2028 (add1, scm_init_numbers): Removed add1.
2029
98cb6e75
DH
20302000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2031
2032 * numbers.c (IS_INF): The new test is x == x + 1. The old test
2033 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
2034 and Ivan Toshkov.
2035
2036 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
2037 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
2038 dispatch sequence.
2039
c45c2b6b
MV
20402000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
2041
2042 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
2043 SIGILL and SIGBUS signals. These signals are not continuable and
2044 must be handled for real right away.
2045
c2ff8ab0
DH
20462000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2047
2048 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
2049 scm_real_part, scm_imag_part, scm_magnitude,
2050 scm_inexact_to_exact): Reordered dispatch sequence.
2051
1a450153
DH
20522000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2053
2054 * feature.c: No need to include "libguile/smob.h"
2055
2056 (scm_loc_features, features, scm_add_feature, scm_init_feature):
2057 Removed variable 'scm_loc_features' as a pointer to the SCM value
2058 holding the features list. Using variable 'features' instead,
2059 which holds the interned pair. Thus, SCM_SETCDR can be used
2060 instead of pointer trickery.
2061
665aeda3
DH
20622000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2063
2064 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
2065 cell is not known to be a valid pair.
2066
ab66ae47
DH
20672000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2068
2069 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
2070 ASRTSYNTAX. Using SCM_ASSYNT instead.
2071
2072 (scm_m_body): Don't create a redundant cons cell.
2073
2074 (scm_m_do): Removed redundant test 'bodycheck'.
2075
2076 (bodycheck): Removed.
2077
2078 * stacks.c (stack_depth, read_frame, read_frames): Removed
2079 redundant calculation of size, minimized some variable scopes.
2080
4983cbe4
DH
20812000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2082
2083 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
2084 long as a cell is not known to be a valid pair.
2085
2086 (scm_pair_p): Eliminated redundant SCM_IMP test.
2087
44d3cb0d
DH
20882000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2089
2090 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
2091 scm_deval_args): Eliminated redundant SCM_IMP tests.
2092
2093 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
2094 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
2095 scm_make_doubly_weak_hash_table): Fixed critical sections.
2096 Thanks to Keisuke Nishida.
2097
9a00c9fc
DH
20982000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2099
2100 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
2101 Fixed some goto-related initialization bugs (introduced by me).
2102
b82c6ce0
DH
21032000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2104
2105 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
2106
2107 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
2108
2109 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
2110 pointer trickery.
2111
2112 (SET_DYNL_HANDLE): Added.
2113
2114 (scm_dynamic_object_p): Simplified.
2115
2116 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
2117 better error message when accessing unlinked dynamic objects.
2118 Eliminated call to get_dynl_obj.
2119
106428b3
MV
21202000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
2121
7eea5296 2122 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
2123 be an array of function pointers instead of being a pointer to an
2124 array returning function. Thanks to Kalle Olavi Niemitalo!
2125
f4c627b3
DH
21262000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
2127
2128 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
2129 (scm_divbigbig, scm_divbigint): Don't return zero any more to
2130 indicate that a division has a remainder, return SCM_UNDEFINED
2131 instead. It is improbable that anyone actually used these
2132 functions outside of numbers.c. For this reason and due to the
2133 change in behaviour the functions are static now. Thus, if
2134 surprisingly there are users of these functions they will at least
2135 get alarmed.
2136
2137 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
2138 that already have a clean dispatch order. Note: SCM_BIGDIG is
2139 always defined.
2140
2141 * numbers.c (scm_inexact_p): Simplified.
2142
2143 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
2144 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
2145 sequence, thereby fixing some comparisons of SCM values with
2146 integer constants.
2147
2148 * numbers.c (scm_divide): Division by zero of inums leads to an
2149 error now. (Formerly, an infinite number was returned.)
2150
2151 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
2152 if a division has a remainder.
2153
3a6e6616
GH
21542000-05-02 Gary Houston <ghouston@arglist.com>
2155
2156 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
2157
f8de44c1
DH
21582000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2159
2160 * numbers.c (scm_logtest, scm_division): Reordered dispatch
2161 sequence, thereby fixing some comparisons of SCM values with
2162 integer constants.
2163
2164 * numbers.h (scm_makdbl): Mark as deprecated at the point of
2165 declaration.
2166
2167 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
2168 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
2169 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
2170 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
2171 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
2172 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
2173 (ramap_rp, scm_array_map_x), random.c (scm_random,
2174 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
2175 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
2176 call to scm_makdbl with a call to scm_make_real or
2177 scm_make_complex, depending on whether the imaginary part is known
2178 to be zero.
2179
7f5fa419
GH
21802000-05-01 Gary Houston <ghouston@arglist.com>
2181
0607c109
GH
2182 * scmsigs.c: fix the definition of orig_handlers for the case
2183 that HAVE_SIGACTION is not defined (thanks to
2184 Kalle Olavi Niemitalo).
2185
7f5fa419
GH
2186 * Makefile.am: remove include_HEADERS (was libguile.h)
2187 libguile.h: moved to top level directory.
2188
09fb7599
DH
21892000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2190
2191 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
2192 a wider use.
2193
2194 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
2195 scm_logxor): Reordered dispatch sequence, thereby fixing some
2196 comparisons of SCM values with integer constants.
2197
2198 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
83238bc1 2199 tests.
09fb7599 2200
89a7e495
DH
22012000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2202
2203 * numbers.c (scm_quotient, scm_remainder): Removed code that was
2204 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
2205 occur anywhere else throughout guile.
2206
2207 * numbers.c (scm_quotient): Fixed parameter number in error
2208 message.
2209
2210 * numbers.c (scm_remainder): Reordered dispatch sequence.
2211
a4fbabb3
GH
22122000-04-25 Gary Houston <ghouston@arglist.com>
2213
2214 * posix.c (scm_execlp): docstring fix (thanks to Martin
2215 Grabmueller).
2216
09e4d064
DH
22172000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2218
2219 * eval.c (undef_object): Made into a local static variable
2220 (suggested by Jost Boekemeier).
2221
e59bb516
DH
22222000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2223
2224 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
2225 c[ad]+r functions.
2226
2227 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
2228 scm_dsubr, scm_init_iprocs): Removed.
2229
2230 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
2231 directly instead of casting a cell to a C struct.
2232
820920e6
MD
22332000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2234
2235 Better modularization of GC extensions through new C level GC
2236 hooks:
83238bc1 2237
820920e6
MD
2238 * weaks.c (scm_weaks_prehistory): New function: Add
2239 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
2240 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
2241 (scm_scan_weak_vectors): New function; added to
2242 scm_after_sweep_c_hook.
2243
2244 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
2245 declarations.
2246
2247 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
2248 now static.
2249
2250 * guardians.c (scm_guardian_gc_init): Turned into a hook function
2251 and added to scm_before_mark_c_hook.
2252 (scm_guardian_zombify): Turned into a hook function and added to
2253 scm_before_sweep_c_hook.
2254
2255 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
2256 Added #include "libguile/gc.h".
2257
2258 * gc.h: Added #include "libguile/hooks.h".
2259
2260 * gc.c: Removed #include "libguile/guardians.h".
2261 (scm_before_gc_c_hook, scm_before_mark_c_hook,
2262 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
2263 scm_after_gc_c_hook): New C level hooks.
2264 (scm_after_gc_hook): New Scheme level hook.
2265 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
2266 (scm_igc): Moved initialization of scm_weak_vectors and the call
2267 to scm_guardian_gc_init to respective module.
2268 (scm_mark_weak_vector_spines): Moved to weaks.c;
2269 Call to scm_guardian_zombify moved to guardians.c;
2270 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
2271 scm_after_gc_c_hook at appropriate places.
2272 (scm_init_gc): Initialize scm_after_gc_hook.
2273
2274 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
2275 function.
2276
2277 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
2278
2279 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
2280
2281 * feature.c, feature.h: Broke out hook code into separate files.
2282
2283 * hooks.c, hooks.h: New files.
9764c29b 2284
a0599745
MD
2285 * *.*: Change includes so that they always use the "prefixes"
2286 libguile/, qt/, guile-readline/, or libltdl/.
2287 (Thanks to Tim Mooney.)
2288
2289 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
2290 (DEFS): Added. automake adds -I options to DEFS, and we don't
2291 want that.
2292 Removed all -I options except for the root source directory and
2293 the root build directory.
2294
f4b0c568
MD
2295 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
2296 instead of SCM_ASSERT (0, ...). (Some compilers will complain
2297 about control reaching end of function otherwise, and, besides,
2298 the new code is not less clear.)
2299
9764c29b 2300 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
83238bc1 2301 calls to malloc debugging functions.
9764c29b
MD
2302
2303 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
2304 functions.
2305
2306 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
2307 debug-malloc.x.
2308
2309 * debug-malloc.c, debug-malloc.h: New files.
2310
4219f20d
DH
23112000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2312
2313 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
2314 documentation strings.
2315
2316 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
2317 scm_quotient): Reordered dispatch sequence to first handle
2318 immediates, second handle bignums and finally handle generic
2319 functions respectively signal wrong type arguments. Hopefully
2320 this will allow for easier separation when goops is integrated.
2321
195e6201
DH
23222000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2323
2324 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
2325 variable into a pointer to a heap cell.
2326
2327 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
2328 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
2329
9e882eec
DH
23302000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2331
2332 * print.c (scm_iprin1): Don't assign zero to SCM values, use
2333 SCM_UNDEFINED instead.
2334
2335 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
2336 vector element. (Still to be improved)
2337
3201d763
DH
23382000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2339
2340 * eval.c (undef_cell): Removed, replaced by:
2341
2342 (undef_object): Added to replace undef_cell.
2343
2344 (scm_lookupcar, scm_lookupcar1): Use undef_object.
2345
2346 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
2347 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
2348 Don't perform arithmetic operations with SCM values.
2349
2350 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
2351 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
2352 symbolic names for the tc3 type codes.
2353
2354 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
2355 cast to SCM.
2356
2357 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
2358 access of the struct vcell element explicit.
2359
f7c38587
MD
23602000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2361
2362 * struct.c (scm_struct_free_light, scm_struct_free_standard,
2363 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
2364
2365 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
2366 realloc:ing scm_subr_table ("what" instead of "who").
2367
2368 * numbers.c (scm_adjbig): Ditto.
2369
e8293eb6
GB
2370Tue Apr 18 08:22:41 2000 Greg J. Badros <gjb@cs.washington.edu>
2371
83238bc1
ML
2372 * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE
2373 when testing high-end of the range. Mikael Djurfeldt noticed this
e8293eb6
GB
2374 anomaly -- thanks Mikael!
2375
baa702c8
DH
23762000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2377
2378 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
2379 itself, as was done in the previous 'patch'. (Thanks to Radey
2380 Shouman)
2381
fee7ef83
DH
23822000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2383
2384 * options.c (scm_options), read.c (recsexpr): Remove redundant
2385 SCM_IMP test.
2386
2387 * print.c (scm_iprin1): Made the access of the struct vcell
2388 element explicit.
2389
2390 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
2391
2392 * ramap.c (scm_ra_eqp, ra_compare), unif.c
2393 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
2394 unsigned long and signed long arrays and clarified the way the
2395 access is performed.
2396
2397 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
2398 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
2399 scm_raprin1): Use SCM_EQ_P to compare SCM values.
2400
2401 * strings.c (scm_makstr): Treat the msymbol slots as a field of
2402 scm_bits_t values.
2403
2404 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
2405 a field of scm_bits_t values.
2406
2407 * unif.c (l2ra): Don't test result of scm_array_set_x against
2408 zero: It is always SCM_UNSPECIFIED.
2409
9d0633a8
MD
24102000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2411
2412 * script.c (scm_compile_shell_switches): Also enable
2413 record-positions when given the --debug option. (Thanks to Diego
2414 Dainese.)
2415
230d095f
DH
24162000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2417
2418 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
2419 Compare SCM's with SCM_EQ_P.
2420
2421 * print.c (scm_make_print_state), srcprop.c
2422 (scm_source_properties): Use valid scheme object to initialize
2423 SCM variable.
2424
2425 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
2426
c8045e8d
DH
24272000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2428
2429 * struct.c (scm_alloc_struct, scm_struct_free_0,
2430 scm_struct_free_light, scm_struct_free_standard,
2431 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
2432 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
2433 scm_struct_free_light, scm_struct_free_standard,
2434 scm_struct_free_entity): Struct data regions (and thus also
2435 vtable data regions) are now C arrays of scm_bits_t elements.
2436
2437 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
2438 mixup of glocs and structs explicit.
2439
2440 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
2441
b0c54567
DH
24422000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2443
2444 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
2445 Minimize scope of variable 'ir'.
2446
2447 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
2448 Added missing call to SCM_UNPACK.
2449
b9c90f11
MD
24502000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2451
7aac9824 2452 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 2453 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 2454
9ae58e2d
MD
24552000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2456
2457 * script.c (scm_compile_shell_switches): Added --debug option.
2458
49e12eb3
MD
24592000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2460
2461 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
2462 specified by R5RS).
2463
7c1e0b12
MD
24642000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2465
2466 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
2467 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
2468
2469 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
2470 New macros.
2471 Cleanup of code layout.
2472
2473 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
2474 procedures.
2475
01c8a3dd
DH
24762000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
2477
2478 * continuations.c (scm_make_cont, scm_dynthrow): Completely
2479 separated implementations for defined (CHEAP_CONTINUATIONS) and
2480 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
2481 copying.
2482
2483 * continuations.c (grow_stack): Renamed from grow_throw.
2484
2485 * continuations.c (copy_stack_and_call): New static function.
2486
2487 * continuations.c (scm_dynthrow): Simplified and made static.
2488
2489 * continuations.h (scm_dynthrow): Made static.
2490
553f4414
MD
24912000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2492
2493 * unif.c, unif.h (shared-array-root, shared-array-offset,
2494 shared-array-increments): New primitives.
2495
cf551a2b
DH
24962000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
2497
2498 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
2499 size for msymbols.
2500
2501 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
2502 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
2503 values.
2504
2505 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
2506 macros.
2507
2508 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
2509 scm_symbol_pset_x): Use them.
2510
83238bc1 2511 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
cf551a2b 2512
12a8b769
DH
25132000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
2514
2515 * ports.c (scm_port_print): The port data is read as raw data.
2516
2517 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
2518 mismatch.
2519
d8c40b9f
DH
25202000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2521
2522 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
2523 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
2524 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
2525 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
2526 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
2527 The struct data is now an array of scm_bits_t variables.
2528
2529 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
2530
cf551a2b 2531 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
2532
2533 * struct.c (scm_struct_init): Unused variable 'data' removed.
2534
2535 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
2536
1c3e63f0
DH
25372000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2538
2539 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
2540 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
2541 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
2542 scm_bits_t variables.
2543
2544 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
2545
cf551a2b 2546 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 2547
bc66755e
DH
25482000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2549
2550 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
2551 scm_intern_obarray_soft, scm_sysintern0,
2552 scm_string_to_obarray_symbol, scm_intern_symbol,
2553 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
2554 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
2555 compare SCM values.
2556
828865c3
DH
25572000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2558
2559 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
2560 case of immediate numbers parameters first. Also, only use
2561 decoded numbers for numerical comparison.
83238bc1 2562
1cf49a85
MD
25632000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2564
2565 * objects.h: Don't redeclare scm_call_generic_0 and
2566 scm_apply_generic. (Thanks to Tal Tversky.)
2567
dba97178
DH
25682000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2569
2570 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
2571 Unpack SCM value to use it as a switch parameter. Don't cast SCM
2572 values to int values.
2573
3da01fa3
MD
25742000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2575
2576 * coop.c (mother): Handled EINTR (the wait has been interrupted by
2577 a signal).
2578
451e591c
DH
25792000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
2580
2581 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
2582 contains a raw zero value it has to be unpacked.
2583
2584 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
2585 via void * requires unpacking / packing.
2586
2587 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
2588 SCM_EQ_P to compare SCM values.
2589
2590 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
2591 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
2592 call to SCM_UNPACK.
2593
2594 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
2595
2596 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
2597 quite ugly.
2598
e94e3f21
ML
25992000-04-05 Michael Livshin <mlivshin@bigfoot.com>
2600
2601 * async.[ch]: unexpose low-level async access macros (thanks to
2602 Dirk Herrmann).
2603
2604 * validate.h: move async validation macros to async.c (nobody else
2605 needs them anyway), and rename them.
2606
843e4e9d
ML
26072000-04-04 Michael Livshin <mlivshin@bigfoot.com>
2608
2609 * async.h: kill the scm_async_t struct. having a heap cell
2610 pretending to be a C struct is not helthy, and is not needed here
2611 anyway, as asyncs happily fit in one heap cell.
2612
2613 * async.c: reflect the fact that asyncs are now represented by
2614 single heap cell each.
2615
873c35ee
GH
26162000-04-04 Gary Houston <ghouston@arglist.com>
2617
2618 * error.c (scm_syserror): save errno before doing anything else,
2619 since it's used in two expressions and may get mutated (thanks to
2620 Dirk Herrmann).
2621
4260a7fc
DH
26222000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2623
2624 * debug.c (scm_procedure_source, scm_procedure_environment),
2625 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
2626 (scm_procedure, scm_setter): Return valid scheme value as dummy.
2627
2628 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
2629 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
2630 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
2631 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
2632 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
2633 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
2634 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
2635 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
2636
2637 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
2638 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
2639 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
2640 SCM_{SET_}?CELL_WORD_0.
2641
2642 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
2643 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
2644 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
2645 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
2646 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
2647 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
2648 scm_bit_count_star, l2ra), variable.c (prin_var,
2649 scm_make_variable, scm_make_undefined_variable,
2650 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
2651 vports.c (sf_flush, sf_close): Don't use C operators to compare
2652 SCM values.
2653
2654 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
2655 unpack SCM values to access their raw contents.
2656
2657 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
2658
2659 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
2660 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
2661 type information.
2662
2663 * throw.c (printjb): Eliminated unnecessary unpack.
2664
2665 * variable.c (make_vcell_variable): Smob data is of type
2666 scm_bits_t.
2667
5b15c3b4
MD
26682000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2669
2670 * print.c: Removed promise to rewrite printer code before next
2671 release. :)
2672
395c8567
MD
26732000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2674
2675 * iselect.c (add_fd_sets): Insert empty statement after label.
2676 (Thanks to Tim Mooney.)
2677
50fecba9
ML
26782000-04-03 Michael Livshin <mlivshin@bigfoot.com>
2679
2680 * guardians.c (scm_guardian_zombify): mark all zombies in a
2681 separate loop after processing all the currently known live
2682 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 2683 Gary Houston). note that the order problems are still there if
843e4e9d 2684 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
2685 I'm not going to worry about.
2686 also, make another outer loop to process zombified
50fecba9
ML
2687 guardians (which are uncovered while marking zombies).
2688
54778cd3
DH
26892000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
2690
2691 * evalext.c (scm_definedp, scm_m_undefine), gc.c
2692 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
2693 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
2694 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
2695 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
2696 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
2697 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
2698 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
2699 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
2700 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
2701 scm_stand_in_scm_proc, scm_procedure_property,
2702 scm_set_procedure_property_x), procs.c
2703 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
2704 scm_lreadrecparen, scm_read_hash_extend), script.c
2705 (scm_compile_shell_switches), srcprop.c (scm_source_property,
2706 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
2707 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
2708 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
2709 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
2710 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
2711 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
2712 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
2713
2714 * feature.c (make_hook), keywords.c
2715 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
2716 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
2717 scm_printer_apply, scm_port_with_print_state): Smob data is of type
2718 scm_bits_t.
2719
2720 * feature.c (print_hook), gc.c (scm_object_address), hash.c
2721 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 2722 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
2723 SCM values to access their raw contents.
2724
2725 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
2726 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
2727 values via void * requires unpacking / packing.
2728
2729 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
2730 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
2731 Read and modify data bits in cell entry #0 using
2732 SCM_{SET_}?CELL_WORD_0.
2733
2734 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
2735 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
2736 (scm_void_port), procs.c (scm_make_subr_opt,
2737 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
2738 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
2739 SCM_SET_CELL_TYPE to write the cell type information.
2740
2741 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
2742 from cells that are no scheme pairs.
2743
2744 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
2745 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
2746 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
2747 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
2748 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
2749 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
2750 entries with raw data.
2751
2752 * gc.c (scm_init_storage), sort.c (applyless), strop.c
2753 (scm_string_to_list): Eliminate unnecessary casts to SCM.
2754
2755 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
2756 data.
2757
2758 * ports.c (scm_close_all_ports_except): Duplicate documentation
2759 text removed.
2760
2761 * print.c (scm_iprin1): Use SCM_ITAG3.
2762
2763 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
2764
2765 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
2766 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
2767 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
2768 and static variables at their point of declaration, but rather in
2769 the init function.
2770
2771 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
2772
abeed821
GH
27732000-04-02 Gary Houston <ghouston@arglist.com>
2774
2775 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
2776 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
2777 use of an improper list (which breaks g_print. g_print isn't
2778 used).
2779 guardians.c: Added more comments and modified the make-guardian
2780 docstring. Reordered a few procedures.
2781
cf498326
DH
27822000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
2783
2784 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
2785 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
2786 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
2787 compare SCM values.
2788
2789 (scm_makprom): Smob data is of type scm_bits_t.
2790
cffcab30
DH
27912000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
2792
2793 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
2794 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
2795 operators to compare SCM values.
2796
2797 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
2798 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
2799 access raw cell data with SCM_{SET_}?CELL_WORD_1.
2800
2801 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
2802
2803 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
2804 data is of type scm_bits_t.
2805
7fa93bf8
DH
28062000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
2807
2808 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
2809 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
2810
2811 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
2812
74a16888
DH
28132000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
2814
2815 * ports.h (scm_port): Change type of stream member to scm_bits_t.
2816
2817 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
2818 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
2819 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
2820 streams are now of type scm_bits_t, SCM streams have to be
2821 unpacked/packed.
2822
2823 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
2824 scm_bits_t.
2825
b6cc0ef6
MD
28262000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2827
6a878357
MD
2828 * coop-defs.h (struct coop_t): Added `sto'-field again because of
2829 binary compatibility---let's remove it next time we alter some
2830 major structure.
2831
b6cc0ef6
MD
2832 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
2833 coop_mother, coop_child): New variables.
2834 (mother): New function.
2835 (coop_create): New thread spawning mechanism which uses a "mother
2836 thread". The "dummy" pthreads aren't healthy enough to give birth
2837 to new threads since Linux threads thinks they are asleep.
2838
2839 * coop-defs.h (struct coop_t): Removed dummy_mutex.
2840
2841 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
2842 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
2843
843524cc
DH
28442000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2845
2846 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
2847 (scm_internal_dynamic_wind): Smob data is always of type
2848 scm_bits_t.
2849
2850 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
2851 Access the locking information in cell entry 0 with
2852 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
2853
2854 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
2855 list.
2856
2857 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
2858
2859 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
2860 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
2861
fbd485ba
DH
28622000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2863
2864 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
2865 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
2866 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
2867 Don't use C operators == and != to compare SCM values, use
2868 SCM_EQ_P instead.
2869
2870 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
2871 SCM value is equal to #t or #f.
2872
2873 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
2874 cell type entry of non immediate objects of unknown type. Use
2875 SCM_CELL_TYPE instead.
2876
2877 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
2878 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
2879 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
2880 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
2881 #t.
2882
2883 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
2884 scheme value.
2885
64e3bf6c
MD
28862000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2887
0208baa0
MD
2888 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
2889 scm_make_mutex, scm_make_condition_variable): Cast data to
2890 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
2891
64e3bf6c
MD
2892 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
2893
94113249
DH
28942000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2895
2896 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
2897 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
2898 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
2899
2900 Note that this implies that smob data has always to be passed as
2901 values of type scm_bits_t.
2902
1978b33e
MD
29032000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2904
2905 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
2906 for scm_tc16_thread. As the current COOP threads are written, GC
2907 is not supposed to manage storage for threads.
2908
2909 * error.c (scm_error): Don't try to throw an error if
2910 scm_gc_heap_lock is true.
2911
2912 * coop.c (coop_finish): New function. Called at exit.
2913 (coop_aborthelp): Free thread structures when threads die.
2914 Finished LinuxThreads compatibility support => COOP threads now
2915 mesh with LinuxThreads.
843e4e9d 2916
1978b33e
MD
2917 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
2918 Changed SETCDR --> SET_CELL_WORD_1.
2919
2920 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
2921 when thread dies.
2922
dd039d6d
DH
29232000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2924
2925 * boolean.h (SCM_TRUE_P): New macro.
2926
2927 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
2928 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
2929
8b3bda20
DH
29302000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2931
2932 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
2933 access continuation data.
2934
2935 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
2936
2937 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
2938 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
2939 continuation data.
2940
843e4e9d 2941 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
2942 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
2943 SCM_SETJMPBUF.
2944
3210f49a
DH
29452000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2946
2947 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
2948 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
2949
2950 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
2951 to access the char * field of strings and symbols.
2952
2d67e390
DH
29532000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
2954
2955 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
2956 the type entry of a new cell. Added a comment about things to
2957 remember when updating the list of free cells.
2958
2959 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
2960 entry of a cell.
2961
76a369d9
DH
29622000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
2963
2964 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
2965 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
2966 with strict type checking enabled these macros will only work if
2967 given valid SCM parameters.
2968
3210f49a 2969 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
2970
2971 * tags.h (SCM_GCCDR): Moved here from pairs.h.
2972
2549a709
DH
29732000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2974
2975 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
2976
2977 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
2978 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
2979 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
2980 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
2981 SCM_NEWCELL2): Moved to gc.h.
2982
2983 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
2984 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
2985 be changed, though, since the macros are not only pair related.
2986
2987 (SCMPTR): Deleted.
2988
2989 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
2990 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
2991 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
2992 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
2993 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
2994 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
2995 tags.h and pairs.h.
2996
8d3356e7
DH
29972000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2998
2999 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
3000 activates strict compile time type checking for variables of
3001 type SCM.
3002 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
3003 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
3004 (SCM_EQ_P): Defined as a macro equivalent for eq?.
3005
96f6f4ae
DH
30062000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3007
3008 * tags.h (SCM_POINTERS_MUNGED): Removed.
3009
3010 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
3011 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
3012
0cbaaf0b
DH
30132000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3014
3015 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
3016 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
3017 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
3018 cell entries.
3019 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
3020
3021 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
3022 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
3023
7284d584
MD
30242000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3025
3026 * tags.h: Disabled definition of SCM_VOIDP_TEST.
3027
3028 Defining SCM as void * introduces problems which haven't been
3029 handled yet. Developers who work with these issues can enable it
3030 in their working copies.
3031
3032 Disabling this definition exposes a set of newly introduced and
3033 older misuses of types which causes warning messages during
3034 compilation. We'll fix this successively.
3035
3036 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
3037 in order to obtain a value of type SCM.
3038 (scm_cellp): Updated with new changes to scm_mark_locations.
3039
3040 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
3041
2f9055ea
MD
3042 * continuations.c (scm_make_cont): Removed cast of size_t into
3043 long.
3044
7284d584
MD
3045 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
3046
f81e080b
DH
30472000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3048
3049 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
3050 shifting, not constant. Thanks to Dale P. Smith.
3051
3052 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
3053 for being less than zero. Decode it to a C value first. Again,
3054 thank you Dale.
3055
1ff2fa6e
DH
30562000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3057
3058 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
3059 non scheme values. If raw data is stored in SCM variables, it has
3060 to be accessed using SCM_UNPACK until a better solution is found.
3061
3920465b
MD
30622000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3063
6f29dc6d
MD
3064 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
3065 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
3066
3067 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
3068
3069 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
3070
3071 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
3072
3073 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
3074
3920465b
MD
3075 * async.c, __scm.h: Removed lots of the old async click logic. It
3076 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
3077 __scm.h. Let's try this out and dump the old code after the
3078 threads reorganization.
3079 (set-tick-rate, set-switch-rate): Conditionally removed.
3080
90cca6f9
MD
30812000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3082
3083 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
3084 made SCM values into pointers. This turned an arithmetic
3085 computation of the address of the vcell into a pointer-arithmetic
3086 one, thereby screwing up marking of structs.
3087 Bugfix 2: Removed incompletely introduced loop variable `j' used
3088 when protecting the tail array of a struct.
3089
8246bf3e
DH
30902000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3091
3092 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
3093
95c9e176
DH
30942000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3095
3096 * symbols.h, symbols.c (scm_strhash): Declare the string
3097 parameter as constant, since it is not modified.
3098
3099 * symbols.c (scm_intern_obarray_soft,
3100 scm_sysintern0_no_module_lookup): Can now pass constant strings
3101 to scm_strhash without need for casting.
3102
7352d0b2
DH
31032000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3104
3105 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
3106 values to pointers. Use SCM2PTR instead.
3107
b00c8cdc 31082000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
3109
3110 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
3111 results of SCM_INUM.
3112
df2d5178
MD
31132000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3114
bd54e664
MD
3115 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
3116 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
3117 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
3118
3119 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
3120 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
3121 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
3122 gc_trigger, adjust_gc_trigger.
3123
df2d5178
MD
3124 * gc.c (alloc_some_heap): Further improvement of minimal heap size
3125 prediction.
3126 (SCM_MAX): New macro.
3127 (scm_freelist_t): New field: collected_1. Previous amount of
3128 collected cells.
3129 (gc_sweep_freelist_finish): Trigger based on two last values of
3130 freelist->collected to avoid unnecessary allocation due to
3131 temporary peaks.
bd54e664
MD
3132 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
3133 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
3134 without extra heap allocation.
df2d5178 3135
f2961ccd
DH
31362000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3137
3138 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
3139 already be a C value. No need to unpack it.
3140
3210f49a 3141 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
3142 if we know it fits into an inum.
3143
3144 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
3145 field of long values. In contrast, SCM_VELTS accesses a field of
3146 SCM values.
3147
7b4cc831
MD
31482000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3149
f1d316dd
MD
3150 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
3151 etc.
80770ddc
MD
3152 (scm_gc_yield_1): New variable: Holds previous yield. Used to
3153 make better judgements.
f1083dd7
MD
3154 (gc_sweep_freelist_finish): Inserted explanation of use of
3155 gc_trigger.
f1d316dd
MD
3156
3157 * print.h, stacks.h, options.c, options.h: Changed C++
3158 commentaries to C.
7b4cc831 3159
7a710745
DH
31602000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3161
3162 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
3163
3164 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
3165 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
3166 SCM_UNPACK / SCM2PTR correctly.
3167
1ef20c80
MD
31682000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3169
3170 * gc.c (adjust_gc_trigger): Improved documentation.
3171 (alloc_some_heap): Since gc_trigger is used against
3172 freelist->collected, this is the value which should be used to
3173 predict minimum growth.
3174
b464b970
DH
31752000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3176
3177 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
3178 Thien-Thi Nguyen for the patch.)
3179
3ab9f56e
DH
31802000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3181
3182 * numbers.c (scm_ash): Fixed typing problems with the second
3183 parameter and added some documentation. (Thanks Thien-Thi Nguyen
3184 for indicating the problem.)
3185
05bc3265
MD
31862000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3187
78a4915a
MD
3188 * gc.c, gc.h (scm_gc_yield): New variable.
3189 (adjust_gc_trigger): Use scm_gc_yield.
3190 (alloc_some_heap): Use scm_gc_yield instead of
3191 scm_gc_cells_collected.
3192
05bc3265
MD
3193 * coop-threads.c: Addd #include "root.h", #include "strings.h".
3194
3195 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
3196
3197 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
3198 trigger adjustmeant: Take yield (freed cells) for all freelists
3199 into account.
3200 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
3201 to 50000 cell heap with 45% trigger.
3202 (scm_gc_cells_collected): Reintroduced.
3203 (SCM_HEAP_SIZE): New macro.
3204 (scm_gc_sweep): Reintroduced correct computation of
3205 scm_cells_allocated.
3206 (scm_freelist_t): Corrected commentary for field `cluster_size':
3207 Clustersize counts objects, not cells; New member
3208 `clusters_allocated'.
3209
89e00824
ML
32102000-03-19 Michael Livshin <mlivshin@bigfoot.com>
3211
3212 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
3213 indentation style.
3214
afcfc5bb
MD
32152000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3216
3217 * threads.h: Added #include "libguile/throw.h". (Thanks to
3218 Thien-Thi Nguyen.)
3219
a00c95d9
ML
32202000-03-18 Michael Livshin <mlivshin@bigfoot.com>
3221
50fecba9
ML
3222 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
3223 names, anyone got any better ones?)
a00c95d9
ML
3224
3225 * gc.h: (typedef struct scm_freelist_t) remove from here.
3226
50fecba9 3227 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
3228 parameter (the span).
3229 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 3230 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
3231 business being externally visible.
3232 (typedef struct scm_heap_seg_data_t) renamed from
3233 scm_heap_seg_data, to be style-compliant.
3234 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
3235 double-cell, check that it's properly aligned.
3236 (init_heap_seg) align double-cells properly, work with the
3237 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
3238 (round_to_cluster_size) new function.
3239 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
3240 to satisfy the new init_heap_seg invariant.
3241
28b3236d
DH
32422000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3243
3244 * _scm.h: Don't include async.h everywhere...
3245
3246 * eq.c eval.c iselect.c: ... only include it here.
3247
ba11fd4c
DH
32482000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3249
3250 * _scm.h: Don't include root.h everywhere...
3251
3252 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
3253 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
3254 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
3255 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
3256 variable.c vectors.c vports.c: ... only include it here.
3257
7ab3fdd5
DH
32582000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3259
3260 * _scm.h: Don't include strings.h everywhere...
3261
3262 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
3263 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
3264 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
3265 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
3266 symbols.c unif.c vectors.c version.c vports.c: ... only include it
3267 here.
3268
f04d8caf
DH
32692000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3270
3271 * _scm.h: Don't include ports.h everywhere...
3272
3273 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
3274 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
3275 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
3276 stackchk.c strports.c struct.c throw.c variable.c: ... only
3277 include it here.
3278
003d1fd0
DH
32792000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3280
3281 * _scm.h: Don't include vectors.h everywhere...
3282
3283 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
3284 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
3285 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
3286 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
3287 here.
3288
0fa27efa
DH
32892000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3290
3291 * genio.h: removed. (Only content was '/* delete me */'.)
3292
3293 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
3294 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
3295 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
3296 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
3297 Removed reference to genio.h
3298
148f31de
MD
32992000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3300
3301 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
3302 Cluster sizes are now independent of GC trigger values.
3303 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
3304 A negative integer gives fraction of total heap size in percent.
1eb489a2 3305 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
3306
3307 * init.c (scm_boot_guile_1): Introduced new variable
3308 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
3309 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
3310 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
3311
6d0f81dd 33122000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 3313
6d0f81dd
MD
3314 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
3315 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
3316 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
3317 the default, but I'll let this change stay in CVS Guile since this
3318 code is not expected to contain serious bugs.
a00c95d9 3319
17351a6f 33202000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 3321
6c7c449e
MD
3322 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
3323 defined.
5a551542
MD
3324 (scm_free_list_length): New procedure (GUILE_DEBUG).
3325 Fixed a small but serious bug introduced by the previous change.
3326
17351a6f
MD
3327 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
3328 loop and declare as register.
6c7c449e 3329
c5133dc9
MD
3330 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
3331 after GC.
3332
3820581c
GB
3333Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
3334
3335 * fluids.c: Docstring patch from Keisuke Nishida. Some
3336 reindentation, too, and a couple formals renamed. Should
3337 fluid-set! return UNSPECIFIED instead of a value?
3338
3339Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
3340
3341 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 3342 generate the latter from the concrete listing of the former. Then
3820581c
GB
3343 make guile-procedures.txt depend on DOT_DOC_FILES instead of
3344 *.doc, so that rebuilding it works.
3345
dd6390bf
GB
3346Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
3347
3348 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
3349
3350 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
3351 with nothing and \n, respectively. Thanks Keisuke Nishida for
3352 noticing this problem.
3353
4fdb0ae2
MD
33542000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3355
3356 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
3357 new way of allocating heap. It makes Guile fast, but still
3358 contains bugs.
3359
3360 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
3361 allocating heap. The basic idea is to trigger GC every Nth
3362 allocated cell and grow heap when free list runs out. The scheme
3363 has been extended so that GC isn't triggered until all remaining
3364 cells are used. The implementation is also prepared for
3365 development in the direction of POSIX threads.
3366
3367 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
3368 SCM_EXPHEAP should return half of the heap size.
3369
3d8d1283
MD
33702000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3371
5f4edb86
MD
3372 The following change to init.c is only enabled if Guile was
3373 configured with --enable-guile-debug.
a00c95d9 3374
5f4edb86
MD
3375 * init.c (scm_i_getenv_int): New function.
3376 (scm_boot_guile_1): Use the environment variables
3377 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
3378 they exist. (This may be replaced by a Scheme level mechanism in
3379 the future.)
3380
3d8d1283 3381 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 3382 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 3383
b0e37c83
MD
33842000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3385
3386 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 3387 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 3388
16d35552
MD
33892000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3390
5ebf0091
MD
3391 * init.c (scm_boot_guile_1): Use same initial segment size for
3392 1-word and 2-word segments. Having the smaller size causes Guile
3393 to GC too often. Obviously something needs to be done to allow
3394 for a smaller 2-word segment without this to happen. (The amount
3395 of heap for each type should be automatically adapted to the
3396 application somehow.)
3397
31ed4cff
MD
3398 [Almost all of these changes should be documented in the NEWS
3399 file.]
3400
cf2c7413
MD
3401 * gc.h (scm_freelist_t): New type.
3402
3403 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
3404
3405 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
3406 all of Guile basics fits into one segment and there suitable room
3407 for work.
3408 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
3409 instead of 2.
3410 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
3411 Freelists now contains information about object span, cells
3412 collected and amount of cells in heap segments belonging to the
3413 list.
3414 (scm_heap_size, scm_gc_cells_collected): Removed.
3415
3416 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
3417
16d35552
MD
3418 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
3419 number.
3420
cf2c7413 3421 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
3422 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
3423 rewrite of handling of real and complex numbers.
3424 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
3425 removed along with the support for floats. (Float vectors are
3426 still supported.)
3427
3428 * tags.h (scm_tcs_bignums): Removed.
3429 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
3430 Use SCM_BIGSIGN(x) to test for sign!
3431 (scm_tc16_big): The new bignum type.
3432 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
3433
3434 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
3435 (scm_makdbl): Deprecated.
3436 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
3437 (SCM_SINGP): Deprecated.
3438 (SCM_FLO): Removed.
3439 (SCM_INEXP, SCM_CPLXP): Deprecated.
3440 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
3441 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
3442 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
3443 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
3444 for doubles and complex numbers.
3445 (SCM_REAL_VALUE): New selector for doubles.
3446 (scm_double_t, scm_complex_t): New types.
3447 (scm_dbl): Removed.
3448
3449 * numbers.c (scm_floprint, scm_floequal): Removed.
3450 (scm_print_real, scm_print_complex, scm_real_equalp,
3451 scm_complex_equalp): New functions.
3452
3453 * unif.c (scm_makflo): Removed.
3454
3455 * smob.h (SCM_SMOB_PREDICATE): New macro.
3456 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
3457 SCM_RETURN_NEWSMOB3): New macros.
3458
34591999-11-21 Michael Livshin <mlivshin@bigfoot.com>
3460
3461 The following changes implement primitive support for double cells
3462 (i.e. four-word cells) and change the representation of some
3463 things to multi-cells instead of cons+malloc. (Applied and
3464 modified by mdj.)
3465
3466 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
3467 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
3468 multi-cell access macros (used by the ones below).
3469 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
3470 macros.
3471
3472 * gc.c (scm_freelist2): multi-cell freelists.
3473 (inner_map_free_list): map_free_list, parameterized on ncells.
3474 "nn cells in segment mm" was misleading for ncells > 1; changed to
3475 "objects". still print cells too, though.
3476 (scm_map_free_list): rewritten using inner_map_free_list.
3477 (scm_check_freelist): get freelist as parameter, since now we have
3478 more than one.
3479 (scm_debug_newcell2): multi-cell variants of
3480 scm_debug_newcell.
3481 (scm_gc_for_newcell): take ncells and freelist pointer as
3482 parameters.
3483 (scm_gc_mark): add case for tc7_pws (procedures with setters are
3484 now double cells).
3485 (scm_gc_sweep): don't free the float data, since it's not malloced
3486 anymore.
3487 (init_heap_seg): didn't understand what n_new_objects stood for,
3488 so changed to n_new_cells.
3489 (make_initial_segment): new function, makes an initial segment
3490 according to given ncells.
3491 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
3492
3493 * numbers.c (scm_makdbl): no malloc'ing needed, so the
3494 {DEFER,ALLOW}_INTS thing removed.
3495
3496 * numbers.h (struct scm_dbl): changed to represent a double cell,
3497 with the number in the second half.
16d35552
MD
3498
3499 * dynwind.c: changed the wind-guards representation to double
3500 cell.
3501
3502 * procs.c, procs.h: changed the procedure-with-setter representation
3503 to double cell.
3504
3505 * async.c, async.h: made async representation a double cell.
3506
16d35552 3507 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 3508
b70ecbd0
GH
35092000-03-13 Gary Houston <ghouston@arglist.com>
3510
3511 * ports.c (flush_void_port): renamed to flush_port_default.
3512 (end_input_void_port): renamed to end_input_default.
3513
3514 * init.c (scm_standard_stream_to_port): create a void port instead
3515 of opening /dev/null if the standard file descriptors are bad.
3516 advantages: no portability problems, doesn't waste a file descriptor,
3517 simplifies the code (thanks to Marius for the idea).
3518
3519 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
3520
3521 * void ports: make reading from a void port give EOF instead of
3522 segv:
3523 * ports.c (s_scm_sys_make_void_port): modified docstring.
3524 (fill_input_void_port): new proc.
3525 (scm_init_ports): set up fill_input_void_port.
3526 * ports.c (scm_port_non_buffer): new proc.
3527 (scm_void_port): call scm_port_non_buffer.
3528
3529 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
3530 which was incorrectly appended.
3531
fdc7ea2d
MD
35322000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3533
3534 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
3535 that we can't use autoconf for this. Autoconf itself relies on
26fba922 3536 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 3537 Herrman.)
a00c95d9 3538
68933ba3
MD
35392000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3540
b44a555a
MD
3541 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
3542 EXTRA_libguile_la_SOURCES.
3543
3544 * iselect.h: Always declare scm_internal_select.
3545
3546 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
3547 end. Also let scm_internal_select be a real function also when
3548 not using threads.
3549
68933ba3
MD
3550 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
3551
c7f6ea11
MD
35522000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3553
3554 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
3555 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
3556 and kind of an experiment: Will this cause problems?)
3557
62dbc244
GB
3558Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
3559
3560 * Makefile.am: Added *.doc to DISTCLEANFILES.
3561
4f2f645d
GH
35622000-03-12 Gary Houston <ghouston@arglist.com>
3563
3564 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
3565 the fdes is valid before doing anything else. check that
3566 the file descriptor supports the modes required.
3567 (scm_fport_buffer_add): don't throw an error if fstat doesn't
3568 work: just use the default buffer size.
3569
3570 * throw.c: change an outdated comment about scm_internal_catch
3571 BODY: it doesn't take a jumpbuf arg.
3572
3573 * init.c (scm_standard_stream_to_port): install a handler in case
3574 scm_fdes_to_port throws an error. don't check here whether the
3575 file descriptor is valid, since scm_fdes_to_port will do that.
3576 set the revealed count depending on whether the port got the
3577 standard file descriptor.
3578 (stream_body_data): new type.
3579 (stream_body, stream_handler): new procs.
3580
7f782a0a
MD
35812000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3582
67673f75
MD
3583 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
3584 Renamed from SCMWORD.
3585
3586 * tags.h (SCM_NCELLP): Removed (SCMWORD).
3587
f1267706 3588 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 3589
74a426ae
MD
3590 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
3591 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
3592 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
3593 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
3594 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
3595 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
3596 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 3597 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
3598 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
3599
7f782a0a
MD
3600 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
3601
3602 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
3603 tags.h: Fixed copyright notices.
3604
3605 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 3606
7f782a0a 36072000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 3608
0cd87628
MV
3609 * init.c (scm_standard_stream_to_port): Check whether the file
3610 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 3611
f3b5e185
MD
36122000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3613
3614 * coop-defs.h (struct timespec): Conditionally defined.
3615
3616 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
3617 instead of ETIME.
38eca29b
MD
3618
3619 * readline.c (match_paren): Bugfix: First arg to select is not
3620 number of descriptors but the number of the highest descriptor +
3621 1.
3622
3623 This is a preliminary attempt at a cleanup of the threads support
3624 code. It moves things to better places, makes arguments more
3625 consistent with the POSIX API (which is used in GNOME's glib), and
3626 adds new functionality.
a00c95d9 3627
38eca29b
MD
3628 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
3629
3630 * coop-defs.h (scm_mutex_trylock): New macro: alias for
3631 coop_mutex_trylock.
3632 (scm_cond_init): Changed definition to
3633 coop_new_condition_variable_init.
a00c95d9 3634
38eca29b
MD
3635 * coop.c: #include <errno.h>
3636 (coop_timeout_qinsert): Moved here from iselect.c
3637 (coop_new_mutex_init, coop_new_condition_variable_init): New
3638 functions. The strange names are temporary. Use scm_mutex_init
3639 and scm_cond_init instead.
3640 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
3641 is ANSI C, but should we check for individual error codes in
3642 configure.in?
3643 (coop_condition_variable_timed_wait_mutex): New function.
3644 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 3645 coop_key_delete): New functions.
38eca29b
MD
3646
3647 * iselect.c (coop_timout_qinsert): Moved to coop.c
3648
32e1616c
MD
36492000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3650
3651 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
3652 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
3653
3654 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
3655 Layout cleanups.
3656
3657 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
3658 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
3659 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
3660
3661 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
3662 dealing with ilocs.
3663
d5c39069
GB
36642000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
3665
3666 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
3667 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
3668 logical functions from SCM.
3669
3670 (logand, logior, logxor, logtest, logbit?): Extended scheme
3671 logical functions to use bignums from SCM.
3672
3673 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
3674 lognot from using bignums.
3675
3e892913
GB
3676Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
3677
a00c95d9 3678 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
3679 eliminating some warnings.
3680
3681 * unif.c, strports.c, print.c, options.c: Fix some warnings on
3682 mis-use of SCM/long
3683
3684 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
3685 what the scm_return_first* functions do.
3686
7ac030d6
GB
36872000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
3688
3689 * libguile/*.[ch]: make a distinction between SCM as a generic
3690 name for a Scheme object (now a void*), and SCM as 32 bit word for
3691 storing tags and immediates (now a long int). Introduced
3692 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
3693 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 3694
f635d2d4
GB
3695Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
3696
3697 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
3698 various logXXX primitives. Thanks Eric Moore!
3699
9eaa7fb6
GB
3700Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
3701
3702 * run-test, remaining-docs-needed: Added these scripts. The
3703 second one is only temporary until the docstring additions are
3704 complete. run-test may best live on, but is here mostly for
3705 convenience and awareness for now.
3706
3707 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
3708
49673698
GB
3709Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
3710
3711 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
3712 displaying the expected type. Use SCM_LISTn in a couple places
3713 instead of scm_cons-ing by hand.
3714
3715 * __scm.h: Added SCM_ASSERT_TYPE macro.
3716
3717 * validate.h, scm_validate.h: Added the former, as a renamed
3718 version of the latter with SCM_ASSERT_TYPE used in
3719 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
3720
3721 * Makefile.am: Rename scm_validate.h to validate.h.
3722
3723 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
3724 prefix was superfluous).
3725
417bdef8
GB
3726Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
3727
3728 * hashtab.c: Improved documentation for lots of functions. Added
3729 handwritten docs for `hash-fold'.
3730
3731Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
3732
3733 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
3734
26a760c6
GB
3735Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
3736
a00c95d9 3737 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
3738 added append docs from R4RS.
3739
3740 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
3741 Thanks Dirk Hermann!
3742
3743 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
3744 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 3745
26a760c6
GB
3746 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
3747 Drop use of SCM_P for function prototypes... assume an ANSI C
3748 compiler. Thanks Dirk Hermann!
3749
898942f8
GB
3750Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
3751
3752 * ports.c: Made `set-port-column!' and `set-port-line!' each
3753 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
3754 that caused a seg fault. Also fixed `set-port-column!'s
3755 docstring. Thanks Han-Wen Nienhuys for finding the bug!
3756
84a3df2c
GB
3757Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
3758
3759 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 3760 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
3761 strings.c, variable.c: Added lots of documentation, cleaned up
3762 some existing documentation. Occasionally changed formal params
3763 to match docs. Also folded an #ifdef into the inners of a
3764 primitive instead of having two copies of the primitive
3765 (`get-internal-real-time', from stime.c)
3766
3767Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
3768
3769 * ports.c: Added docs for primitives missing them. Written by
3770 hand.
3771
3f557de6
GB
3772Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
3773
3774 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
3775 just execing guile-func-name-check. Thanks Michael Livshin!
3776
ddcccdb3
GB
3777Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
3778
3779 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
3780 dead code. Patch from Michael Livshin.
3781
3782 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
3783 Michael Livshin.
3784
720e8692
GH
37852000-02-09 Gary Houston <ghouston@arglist.com>
3786
3787 * init.c (scm_init_standard_ports): when stdout is a tty, make the
3788 current-output-port unbuffered by default. this is less confusing
3789 for interactive use. it was line-buffered because of a
3790 performance problem with unbuffered ports, but I think it will be
3791 OK now.
3792
43ff3170
GH
37932000-02-08 Gary Houston <ghouston@arglist.com>
3794
3795 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
3796 is not defined.
3797
3798 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
3799 HAVE_TZNAME are defined, use an empty string instead of giving two
3800 spurious compile-time errors.
3801
4ba47302
GB
3802Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
3803
3804 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
3805 Thanks Richard!
3806
09a617f7
GB
3807Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
3808
3809 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
3810
9dbcf010
GB
3811Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
3812
3813 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
3814 (which is GNU GPL'd).
3815
bd9e24b3
GH
38162000-01-31 Gary Houston <ghouston@arglist.com>
3817
3818 * strings.h: don't use SCM_P. don't include <string.h>.
3819 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 3820
bd9e24b3
GH
3821 * strings.c (scm_string_ref): make the 2nd argument compulsory.
3822 previously it defaulted to zero for no good reason that I can see.
3823 use a local variable for SCM_INUM (k). replace
3824 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
3825
3826 (scm_makfromstr): cosmetic changes.
3827
3828 (scm_string): Accept only chars in the list, not strings, for
3829 conformance to R5RS (particularly for list->string, which is
3830 supposed to be the inverse of string->list.) remove
3831 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
3832 scm_makstr handles the cell allocation. when reporting wrong-type
3833 arg, don't report the position as 1.
3834
3835 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
3836
28d77376
GH
38372000-01-29 Gary Houston <ghouston@arglist.com>
3838
ae1b098b
GH
3839 * posix.c (scm_pipe): rewrote the docstring.
3840
28d77376
GH
3841 * filesys.c (scm_select, retrieve_select_type, get_element,
3842 fill_select_type, set_element): modified so that Scheme
3843 "select" tests port buffers for the ability to provide input
3844 or accept output. Previously only the underlying file descriptors
3845 were checked. Rewrote the docstring.
a00c95d9 3846
7f1497ce
GB
3847Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
3848
3849 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
3850 from Gregg Reynolds. Thanks Gregg!
3851
2288ff9b
GB
3852Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
3853
3854 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
3855 adding "x" prefix to the line so that guile-func-name-check
3856 doesn't complain unnecessarily.
3857
349af6dd
GB
3858Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
3859
3860 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
3861 for maintainability.
3862
3863 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
3864 from qdocs, RnRs.
3865
a28eb127
GB
3866Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
3867
a00c95d9 3868 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
3869 suggests removing tag.c altogether (and using a new `class-of'
3870 instead).
3871
3872 * strings.c: Added documentation from Gregg A. Reynolds. Edited
3873 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 3874 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
3875 (rnrs) note.
3876
3877 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
3878 function with scm_make_subr_opt w/ last arg of 0 so it is not
3879 visible at the Scheme level. Mikael says that this is the right
3880 thing because the first arg to the proc is the guts of a compiled
3881 closure and shouldn't be exposed to the Scheme level.
3882
ac2259fc
GB
3883Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
3884
3885 * sort.c: typo in comment fixed.
3886
3887 * keywords.c: Added documentation.
3888
3889 * guardians.c: Added documentation (could be better).
3890
3891 * gc.c: Added docs for gc-set-debug-check-freelist.
3892
3893 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
3894
3895 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 3896
d928e0b4
GB
3897Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
3898
3899 * random.c: Added documentation, from SLIB page:
3900 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
3901
3902Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
3903
3904 * variable.c, version.c: Added documentation, written by hand
3905 since I could not find anything already written that was
3906 relevant.
3907
d831b039
GH
39082000-01-23 Gary Houston <ghouston@arglist.com>
3909
a00c95d9 3910 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
3911 not defined (thanks to Richard Y. Kim).
3912
88ec97ad
GB
3913Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
3914
3915 * Makefile.in: Removed, this is auto-generated.
3916
078e9092
GB
3917Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
3918
3919 * list.c: Put some variable initialization code at the point of
3920 declaration; Added a comment for list*; Formatting changes.
3921
3922 * load.c: use SCM_NNULLP to make sure the end of a list is not
3923 reached yet.
3924
e7a96050
MD
39252000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3926
a177af34
MD
3927 * backtrace.c (scm_display_error_message): Bugfix: Don't use
3928 result of scm_list_p as C boolean.
3929 (scm_display_error_message, scm_set_print_params_x): Use new
3930 validation macros. (Thanks to Dirk Herrmann.)
3931
d06bcb02
MD
3932 * net_db.c (scm_resolv_error): Cast result from hstrerror.
3933
3934 * strports.c (st_end_input): Inserted parenthesis to get operator
3935 grouping correct.
3936
3937 * list.h (scm_init_list): Removed SCM_P around prototypes.
3938
3939 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
3940 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
3941 escaped " occurring inside string literals.
3942
682eefe9
MD
3943Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
3944
3945 * posix.c (scm_mknod): Escape " occuring inside docstring.
3946
56cfe22b
MD
39472000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3948
3949 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
3950 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
3951 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
3952 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
3953 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
3954 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
3955 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
3956 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 3957
56cfe22b
MD
3958 * filesys.c (scm_chmod), simpos.c (scm_system), version
3959 (scm_version), vports (scm_make_soft_port): Escape " occuring
3960 inside docstring.
3961
fcb1720f
GB
3962Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
3963
3964 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
3965 SCM_VALIDATE_LONG_COPY
3966
3967 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
3968 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
3969 couple of formal arguments (and fix their uses) to make arguments
3970 match the documentation.
3971
b9af3d0e
MS
39722000-01-14 <mstachow@alum.mit.edu>
3973
3974 * Makefile.am: Augment path when running guile-doc-snarf so
3975 guile-func-name-check is found.
3976
153511a7
GB
3977Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
3978
3979 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
3980 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
3981
59d5245f
GB
3982Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
3983
3984 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
3985 the way guile-1.3.4 worked, but #if 0 out the version using
3986 SCM_VALIDATE_INUM_COPY for stricter testing.
3987
95aec69f
GB
3988Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
3989
3990 * guile-doc-snarf.in: Use new $fullfilename for running
3991 guile-func-name-check, and put "$fullfilename" and "$filename" in
3992 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 3993 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
3994 I sure hope we never have to deal with that! :-) ). Thanks to
3995 Mikael for pointing out the source_dir != build_dir was broken.
3996
b7ac2837
GB
3997Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
3998
3999 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
4000 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
4001 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
4002 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
4003 variants.
4004
4005 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
4006 then return whether it's an open port (was validating that it was
4007 an open port -- this was a bug I introduced back in December, but
4008 my careful reading of diffs caught it).
4009
4010 * numbers.c: Recombine the two conditional-compilation paths for
4011 all the log* primitives -- they were split based on #ifndef
4012 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
4013 some bugs and inconsistencies in the two sets of implementations.
4014 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
4015
4016 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
4017 SCM_VALIDATE_INUM_COPY once where it should've been used.
4018
4019 * fluids.c (scm_internal_with_fluids): Use
4020 SCM_VALIDATE_LIST_COPYLEN.
4021
4022 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
4023 this is questionable as it relaxes type safety, but other changes
4024 were useful and all SCM_NUM2LONG's should probably be
4025 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
4026
4027 * evalext.c: line-break change on 1 line.
4028
4029 * eval.c (nconc2last): Takes a non-empty list as its first
4030 argument, not just a list.
4031
4032 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
4033
4034Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
4035
4036 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
4037 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
4038 where possible.
4039
4040 * symbols.c (scm_sysintern0): Fixed the function name in a
4041 scm_misc_error invocation.
4042
4043 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
4044 use scm_return_first to ward off latent GC bug that Mikael caught.
4045
4046 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
4047 used before but should've been.
4048
d61f6b02
MD
40492000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4050
4051 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
4052 SCM_FUNC_CAST_ARBITRARY_ARGS.
4053
88423ab1
GB
4054Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4055
4056 * guile-func-name-check.in: Added this script to statically check
4057 #define FUNC_NAME, #undef FUNC_NAME in the source.
4058
4059 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
4060 redundant comment, semicolon; caught by new guile-func-name-check
4061 script.
4062
4063 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
4064 Caught by new guile-func-name-check-script.
4065
4066 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
4067
4068 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
4069 guile-func-name-check.
4070
a00c95d9 4071 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
4072 doing the snarf.
4073
7f15e635
GB
4074Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
4075
4076 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
4077 port function take const void*, not void*.
4078
bf121b59
GB
4079Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4080
4081 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
4082 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
4083 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
4084 consistency with the other macros dealing with immediate
4085 characters. (Similar to INT -> INUM change a week or so ago).
4086
7965d98f
GB
4087Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4088
4089 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
4090 net_db.c, read.c, socket.c: Update error messages to use ~A for
4091 %s, ~S for %S to work with new `simple-format' format and be
4092 standardized better.
4093
4094 * print.h, print.c (scm_simple_format): Added `simple-format'
4095 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 4096 parameter, and the destination first instead of last (and a couple
7965d98f
GB
4097 new capabilities inspired by `format' -- #t as destination means
4098 current-output-port, #f means return the formatted text as a
4099 string.
4100
4101 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
4102
4103 * backtrace.c (scm_display_error_message): Rewrote to use
4104 scm_simple_format() procedure.
4105
4106 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
4107
f73d2411
MV
41082000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
4109
4110 Finally applied the libltdl patch from Thomas Tanner, with slight
4111 modifications.
4112
4113 * DYNAMIC-LINKING: Removed because it is obsolete.
4114 * dynl.c: Use ANSI prototypes.
4115 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
4116 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 4117
f73d2411
MV
4118 1999-07-25 Thomas Tanner <tanner@ffii.org>
4119
4120 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
4121 (obsolete)
4122 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
4123 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
4124 against libltdl
4125 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
4126 * guile.c: register preloaded modules
4127 * scmconfig.h.in: remove obsolete symbols
4128
38c1d3c4
GH
41292000-01-09 Gary Houston <ghouston@arglist.com>
4130
4131 * These changes should make it unnecessary to call tzset from
4132 Scheme after modifying the TZ environment variable, even if the
4133 system date facilities cache the value.
4134 * stime.c (setzone, scm_localtime): added comments.
4135 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
4136 (setzone): don't call tzset.
4137 (restorezone): call tzset only if HAVE_TZSET is defined.
4138 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
4139 doc string to indicate that this procedure isn't likely to do
4140 anything useful.
4141 (scm_localtime, scm_strftime, scm_mktime): call tzset if
4142 LOCALTIME_CACHE is defined.
4143
9359d657
MD
41442000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4145
4146 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
4147
f25f761d
GH
41482000-01-09 Gary Houston <ghouston@arglist.com>
4149
4150 * eval.c: define scm_unbound_variable_key ('unbound-variable).
4151 scm_lookupcar1: throw an error with key 'unbound-variable instead
4152 of 'misc-error when an unbound variable is encountered.
4153
a00c95d9 4154 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
4155 scm_symlink, scm_readlink, scm_lstat),
4156 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
4157 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
4158 scm_sync),
a00c95d9 4159 simpos.c (scm_system),
f25f761d
GH
4160 stime.c (scm_times, scm_strptime):
4161 move the HAVE_XXX feature tests out of the procedure bodies.
4162 don't use SCM_SYSMISSING.
4163 scm_validate.h (SCM_SYSMISSING): removed.
4164 error.h, error.c (scm_sysmissing): comment that this is deprecated.
4165 see ChangeLog entry for 1999-12-28.
4166
a4dd2611
GB
4167Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
4168
4169 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
4170
4171Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4172
4173 * backtrace.c: Fix spelling typo in a comment.
4174
4175 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
4176 text. Reformatted some of the expansions.
4177
5ac36451
GB
4178Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4179
4180 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
4181 report the position of the argument.
4182
a00c95d9 4183 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 4184 take extra "pos" argument, the position number of the errant
a00c95d9 4185 argument.
5ac36451
GB
4186
4187 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
4188
4189 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
4190 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
4191 prefers that and I'm reasonably indifferent.
4192
4193Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
4194
4195 * snarf.h: Factor out differences between C++ and non-C++ into
4196 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
4197 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
4198 Mikael's macros, below, but changed names and SCM_SNARFING no
4199 longer expands to include %%% -- that must appear in the argument
4200 so that the token appears at the call-site as a reminder).
4201
088bb1d4
MD
42022000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4203
4204 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
4205 snarf macro definitions.
4206
636480e6
MD
42072000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4208
4209 * chars.c (scm_integer_to_char): Use Greg's nice
4210 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
4211 adherence to R5RS.
4212
7c5628e2
GB
4213Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
4214
4215 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
4216
2cc0f8cb
GB
4217Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4218
4219 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
4220 instead of GUILE_PROC.
4221
4222Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
4223
a00c95d9 4224 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
4225 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
4226 macro call.
4227
9179dcdd
GB
4228Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
4229
4230 * scm_validate.h: Remove some redundant NIMP tests.
4231
4232 * alist.c: minimize scope of the tmp variables, and initialize
4233 them when declared. The strange SCM_NIMP tests are replaced by
4234 SCM_CONSP tests that more closely reflect the intended semantics.
4235 However, we don't get a performance penalty here, because the
4236 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
4237 extremely ugly use of ASRTGO macros was removed: The calls to
4238 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
4239 label parameter that only exists when SCM_RECKLESS is not defined.
4240 This works, because ASRTGO itself is defined in a way that it only
4241 makes use of the label parameter if SCM_RECKLESS is not defined
4242 (shudder!). Does guile make at all use of the possibility to
4243 define SCM_RECKLESS? * Codesize is likely to be reduced, since
4244 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
4245 we now only get one test.
4246
4247 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
4248 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
4249 some variables in `list?'. Fix `reverse' and `reverse!'
4250 primitives to handle improper lists better.
4251
15b33280
GB
4252Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4253
4254 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
4255 macros and SCM_DEFINE macros to match GNU coding standards.
4256
ca8cd130
GB
4257Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
4258
4259 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
4260
fb764465
GB
4261Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
4262
4263 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
4264 better consistency with the names of other SCM_VALIDATE_ macros
4265 and better conformance to guile naming policy.
4266
4267Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
4268
4269 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
4270 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
4271 it's not the actual name of the formal).
1e484823
GB
4272
4273 * guile-snarf.awk.in: Do argument/number mismatch checking and
4274 print warnings in an Emacs compile-mode parseable format.
4275
4276 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
4277 SCM_OUTOFRANGE as 3rd argument.
4278
4279 * random.c: Fix argument/number mismatch (that I introduced :-( ).
4280
4281 * __scm.h: Do not #define SCM_ARG* when snarfing;
4282 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
4283 the former (using the number) requires the argument to match the
4284 formal in the current argument snarfing check.
4285
4286 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 4287 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
4288 guile-snarf.awk script uses to verify argument/position matching.
4289
4290 * ramap.c: Remove extraneous #undef FUNC_NAME.
4291
53fc4636
GB
4292Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4293
4294 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 4295 current version of the same functionality; it writes the .x output
53fc4636
GB
4296 to stdout instead of directly into the file.
4297
4298Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
4299
4300 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
4301 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
4302 redundant with the safer macros. Patch from Dirk Hermann applied
4303 by hand. Thanks Dirk!
4304
4305 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
4306 uses in random.c.
4307
4308 * ramap.c: whitespace change.
4309
3b5345d9
GB
4310Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
4311
4312 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
4313 removals from Dirk Hermann.
4314
4315 * alist.c: Rename formals to match the parameter names in the
4316 documentation, updates to documentation. Thanks Dirk Hermann!
4317
169aec65
MD
43182000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4319
db62436e
MD
4320 * eval.c (SCM_CEVAL): Reverse order of
4321 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
4322 (Thanks to Brad Knotwell.)
169aec65 4323
da43d822
GB
4324Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
4325
4326 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 4327 allocated cell.
da43d822
GB
4328
4329 * pairs.h: Added a comment about the need for the SCM_SETCAR in
4330 SCM_NEWCELL macro.
4331
4332Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
4333
4334 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
4335 SCM_NIMP tests that were redundant are now eliminated. Patches
4336 from Dirk Hermann applied by hand.
4337
339999c7 4338The ChangeLog continues in the file: "ChangeLog-1996-1999"