Smob-related creanup.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
e841c3e0
KN
12000-12-08 Keisuke Nishida <kxn30@po.cwru.edu>
2
3 * tags.h (SCM_TYP16_PREDICATE): New macro.
4 * arbiters.c (scm_tc16_arbiter): Typed as scm_bits_t.
5 (arbiter_print): Renamed from prinarb.
6 (scm_init_arbiters): Don't use scm_make_smob_type_mfpe.
7 * async.c (tc16_async): Typed as scm_bits_t.
8 (SCM_ASYNCP): Use SCM_TYP16_PREDICATE.
9 (async_mark): Renamed from mark_async.
10 (scm_init_async): Updated.
11 * continuations.h (SCM_CONTINUATIONP): Use SCM_TYP16_PREDICATE.
12 * debug.c (scm_tc16_memoized, scm_tc16_debugobj): Typed as scm_bits_t.
13 (memoized_print): Renamed from prinmemoized.
14 (debugobj_print): Renamed from prindebugobj.
15 (scm_init_debug): Don't use scm_make_smob_type_mfpe.
16 * debug.h (scm_tc16_memoized, scm_tc16_debugobj): Typed as scm_bits_t.
17 (SCM_DEBUGOBJP, SCM_MEMOIZEDP): Use SCM_TYP16_PREDICATE.
18 * dynl.c (scm_tc16_dynamic_obj): Typed as scm_bits_t.
19 (dynl_obj_mark): Renamed from mark_dynl_obj.
20 (dynl_obj_print): Renamed from print_dynl_obj.
21 (scm_dynamic_object_p): Use SCM_TYP16_PREDICATE.
22 (scm_init_dynamic_linking): Updated.
23 * dynwind.c (SCM_GUARDSP): Use SCM_TYP16_PREDICATE.
24 (tc16_guards): Typed as scm_bits_t.
25 (guards_print): Renamed from printguards.
26 (scm_init_dynwind): Don't use scm_make_smob_type_mfpe.
27 * environments.c (scm_tc16_environment, scm_tc16_observer):
28 Typed as scm_bits_t.
29 (environment_mark, environment_free, environment_print,
30 observer_mark, observer_print, leaf_environment_mark,
31 leaf_environment_free, leaf_environment_print,
32 eval_environment_mark, eval_environment_free,
33 eval_environment_print, import_environment_mark,
34 import_environment_free, import_environment_print,
35 export_environment_mark, export_environment_free,
36 export_environment_print): Renamed from mark_environment,
37 free_environment, print_environment, mark_observer,
38 print_observer, mark_leaf_environment, free_leaf_environment,
39 print_leaf_environment, mark_eval_environment,
40 free_eval_environment, print_eval_environment,
41 mark_import_environment, free_import_environment,
42 print_import_environment, mark_export_environment,
43 free_export_environment, and print_export_environment, respectively.
44 (free_observer): Removed.
45 (leaf_environment_funcs, eval_environment_funcs,
46 import_environment_funcs, export_environment_funcs,
47 scm_environments_prehistory): Updated.
48 * environments.h (scm_tc16_environment, scm_tc16_observer):
49 Typed as scm_bits_t.
50 * eval.c (scm_tc16_promise): Typed as scm_bits_t.
51 (promise_print): Renamed from prinprom.
52 (scm_promise_p): Use SCM_TYP16_PREDICATE.
53 (scm_init_eval): Updated.
54 * eval.h (scm_tc16_promise): Typed as scm_bits_t.
55 * filesys.c (scm_tc16_dir): Typed as scm_bits_t.
56 (scm_init_filesys): Don't use scm_make_smob_type_mfpe.
57 * filesys.h (scm_tc16_dir): Typed as scm_bits_t.
58 * fluids.c (scm_tc16_fluid): Typed as scm_bits_t.
59 (fluid_print): Renamed from print_fluid.
60 (scm_init_fluids): Don't use scm_make_smob_type_mfpe.
61 * fluids.h (scm_tc16_fluid): Typed as scm_bits_t.
62 * fports.c (fport_print): Renamed from prinfport.
63 (scm_make_fptob): Updated.
64 * guardians.c (tc16_guardian): Typed as scm_bits_t.
65 * hooks.c (scm_tc16_hook): Typed as scm_bits_t.
66 (hook_print): Renamed from print_hook.
67 (scm_init_hooks): Updated.
68 * hooks.h (scm_tc16_hook): Typed as scm_bits_t.
69 (SCM_HOOKP): Use SCM_TYP16_PREDICATE.
70 * keywords.c (scm_tc16_keyword): Typed as scm_bits_t.
71 (keyword_print): Renamed from prin_keyword.
72 (scm_init_keywords): Don't use scm_make_smob_type_mfpe.
73 * keywords.h (scm_tc16_keyword): Typed as scm_bits_t.
74 * macros.c (scm_tc16_macro): Typed as scm_bits_t.
75 (scm_macro_p, scm_macro_type): Use SCM_TYP16_PREDICATE.
76 (scm_init_macros): Don't use scm_make_smob_type_mfpe.
77 * macros.h (scm_tc16_macro): Typed as scm_bits_t.
78 * mallocs.c (scm_tc16_malloc): Typed as scm_bits_t.
79 (malloc_free): Renamed from fmalloc.
80 (malloc_print): Renamed from prinmalloc.
81 (scm_init_mallocs): Don't use scm_make_smob_type_mfpe.
82 * mallocs.h (scm_tc16_malloc): Typed as scm_bits_t.
83 * modules.h (SCM_EVAL_CLOSURE_P): Use SCM_TYP16_PREDICATE.
84 (scm_tc16_eval_closure): Renamed from scm_eval_closure_tag.
85 (scm_standard_eval_closure, scm_init_modules): Updated.
86 * ports.c (scm_tc16_void_port): Typed as scm_bits_t.
87 * print.c (scm_tc16_port_with_ps): Typed as scm_bits_t.
88 (port_with_ps_print): Renamed from print_port_with_ps.
89 (scm_init_print): Updated.
90 * print.h (scm_tc16_port_with_ps): Typed as scm_bits_t.
91 (SCM_PORT_WITH_PS_P): Use SCM_TYP16_PREDICATE.
92 * random.c (scm_tc16_rstate): Typed as scm_bits_t.
93 (rstate_free): Renamed from free_rstate.
94 (scm_init_random): Don't use scm_make_smob_type_mfpe.
95 * random.h (scm_tc16_rstate): Typed as scm_bits_t.
96 (SCM_RSTATEP): Use SCM_TYP16_PREDICATE.
97 * regex-posix.c (scm_tc16_regex): Typed as scm_bits_t.
98 (regex_free): Renamed from free_regex.
99 (scm_init_regex_posix): Don't use scm_make_smob_type_mfpe.
100 * regex-posix.h (scm_tc16_regex): Typed as scm_bits_t.
101 * root.c (scm_tc16_root): Typed as scm_bits_t.
102 (root_mark): Renamed from mark_root.
103 (root_print): Renamed from print_root.
104 (scm_init_root): Updated.
105 * root.h (scm_tc16_root): Typed as scm_bits_t.
106 (SCM_ROOTP): Use SCM_TYP16_PREDICATE.
107 * smob.c (free_print): Renamed from freeprint.
108 (scm_smob_prehistory): Don't use scm_make_smob_type_mfpe.
109 * smob.h (SCM_SMOB_PREDICATE): Use SCM_TYP16_PREDICATE.
110 * srcprop.c (scm_tc16_srcprops): Typed as scm_bits_t.
111 (srcprops_mark): Renamed from marksrcprops.
112 (srcprops_free): Renamed from freesrcprops.
113 (srcprops_print): Renamed from prinsrcprops.
114 (scm_init_srcprop): Don't use scm_make_smob_type_mfpe.
115 * srcprop.h (scm_tc16_srcprops): Typed as scm_bits_t.
116 (SRCPROPSP): Use SCM_TYP16_PREDICATE.
117 * threads.c (scm_tc16_thread, scm_tc16_mutex, scm_tc16_condvar):
118 Typed as scm_bits_t.
119 * threads.h (scm_tc16_thread, scm_tc16_mutex, scm_tc16_condvar):
120 Typed as scm_bits_t.
121 (SCM_THREADP, SCM_MUTEXP, SCM_CONDVARP): Use SCM_TYP16_PREDICATE.
122 * throw.c (tc16_jmpbuffer): Renamed from scm_tc16_jmpbuffer.
123 (make_jmpbuf): Updated.
124 (tc16_lazy_catch): Typed as scm_bits_t.
125 (SCM_JMPBUFP, SCM_LAZY_CATCH_P): Use SCM_TYP16_PREDICATE.
126 (jmpbuffer_print): Renamed from printjb.
127 (lazy_catch_print): Renamed from print_lazy_catch.
128 (scm_init_throw): Don't use scm_make_smob_type_mfpe.
129 * unif.c (scm_tc16_array): Typed as scm_bits_t.
130 (array_mark): Renamed from markra.
131 (array_free): Renamed from freera.
132 (scm_init_unif): Don't use scm_make_smob_type_mfpe.
133 * unif.h (scm_tc16_array): Typed as scm_bits_t.
134 (SCM_ARRAYP): Use SCM_TYP16_PREDICATE.
135 * validate.h (SCM_VALIDATE_SMOB): Use SCM_TYP16_PREDICATE.
136 * variable.c (scm_tc16_variable): Typed as scm_bits_t.
137 (variable_print): Renamed from prin_var.
138 (variable_equalp): Renamed from var_equal.
139 (scm_markvar): Removed.
140 (scm_init_variable): Don't use scm_make_smob_type_mfpe.
141 * variable.h (scm_tc16_variable): Typed as scm_bits_t.
142
38ae064c
DH
1432000-12-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
144
145 * feature.c (scm_add_feature), gh_data.c (gh_symbol2scm), goops.c
146 (scm_sys_prep_layout_x, scm_make_class, scm_add_slot,
147 scm_init_goops), load.c (init_build_info), print.c
148 (scm_init_print), read.c (scm_lreadr), snarf.h (SCM_SYMBOL,
149 SCM_GLOBAL_SYMBOL), stacks.c (scm_init_stacks), struct.c
150 (scm_make_struct_layout), symbols.c (scm_sysintern0,
151 scm_string_to_symbol, scm_gensym), throw.c
152 (scm_handle_by_message): Use scm_mem2symbol or scm_str2symbol
153 instead of scm_intern_* to create a symbol object.
154
155 * goops.c (Intern): Removed.
156
157 (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4, build_class_class_slots,
158 create_basic_classes, scm_class_name, scm_class_direct_supers,
159 scm_class_direct_slots, scm_class_direct_subclasses,
160 scm_class_direct_methods, scm_class_precedence_list,
161 scm_class_slots, scm_class_environment,
162 scm_generic_function_methods, scm_method_generic_function,
163 scm_method_specializers, scm_method_procedure,
164 scm_accessor_method_slot_definition, purgatory, scm_make,
165 make_stdcls, create_standard_classes, make_class_from_template,
166 scm_make_class): Replaced calls to Intern with calls to
167 scm_str2symbol.
168
169 * ramap.c (init_raprocs): Use scm_symbol_binding instead of
170 scm_intern.
171
172 * symbols.c (scm_sym2vcell): Add a bogus return to avoid compiler
173 warnings.
174
175 * unif.c (scm_array_prototype): Fix prototype return value for
176 svects and llvects.
177
23ade5e7
DH
1782000-12-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
179
180 * symbols.[ch] (scm_mem2symbol, scm_str2symbol): New functions.
181 These shall replace all those calls to scm_intern... which are
182 only required to create a scheme symbol from a C string or a field
183 of chars.
184
93d40df2
DH
1852000-12-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
186
187 * environments.c (DEFAULT_OBARRAY_SIZE), gc.c
188 (DEFAULT_SYMHASH_SIZE): Added to locally determine arbitrary
189 default values for obarrays, thus removing the dependency from
190 scm_symhash_dim.
191
192 * environments.c (scm_make_leaf_environment,
193 scm_make_eval_environment), gc.c (scm_init_storage): Don't use
194 scm_symhash_dim.
195
196 * symbols.c (NUM_HASH_BUCKETS), symbols.[ch] (scm_symhash_dim):
197 Removed.
198
199 * symbols.c (scm_sym2vcell, scm_sysintern0_no_module_lookup):
200 Eliminate a redundant SCM_IMP test.
201
202 (scm_sym2vcell, scm_sysintern0_no_module_lookup):
203 Don't assume a fixed obarray size any more.
204
23670993
DH
2052000-12-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
206
207 * gc.c (scm_init_gc): gc_async is already protected from gc,
208 namely via scm_asyncs. Thanks to Keisuke Nishida for pointing
209 this out.
210
7c58e21b
KN
2112000-12-07 Keisuke Nishida <kxn30@po.cwru.edu>
212
213 * smob.h (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
214 scm_smob_apply_3): Removed declarations.
215 (scm_set_smob_apply): Takes unsigned integers.
216 (scm_make_smob_type_mfpe, scm_set_smob_mfpe): Deprecated.
217 * smob.c (scm_smob_apply_0_000, scm_smob_apply_1_010,
218 scm_smob_apply_2_020): Removed.
219 (scm_set_smob_apply): Takes unsigned integers + some optimization.
220 (Thanks to Dirk Herrmann)
221 (scm_make_smob_type_mfpe, scm_set_smob_mfpe): Deprecated.
222
68b06924
KN
2232000-12-07 Keisuke Nishida <kxn30@po.cwru.edu>
224
225 * smob.h (SCM_SMOB_APPLICABLE_P, SCM_SMOB_APPLY_0,
226 SCM_SMOB_APPLY_1, SCM_SMOB_APPLY_2, SCM_SMOB_APPLY_3): New macros.
227 * eval.c (SCM_CEVAL, SCM_APPLY): Use macros above.
228 * procprop.c (scm_i_procedure_arity): Ditto.
229 * smob.c (scm_make_smob_type): Initialize gsubr_type.
230
cb1c46c5
KN
2312000-12-06 Keisuke Nishida <kxn30@po.cwru.edu>
232
233 * smob.h (scm_smob_descriptor): New fields `apply_0', `apply_1',
234 `apply_2', and `apply_3'.
235 * smob.c (scm_make_smob_type): Init new fields.
236 (SCM_SMOB_APPLY0, SCM_SMOB_APPLY1, SCM_SMOB_APPLY2, SCM_SMOB_APPLY3):
237 New macros.
238 (scm_smob_apply_0_000, scm_smob_apply_0_010, scm_smob_apply_0_020,
239 scm_smob_apply_0_030, scm_smob_apply_0_001, scm_smob_apply_0_011,
240 scm_smob_apply_0_021, scm_smob_apply_0_error,
241 scm_smob_apply_1_010, scm_smob_apply_1_020, scm_smob_apply_1_030,
242 scm_smob_apply_1_001, scm_smob_apply_1_011, scm_smob_apply_1_021,
243 scm_smob_apply_1_error,
244 scm_smob_apply_2_020, scm_smob_apply_2_030, scm_smob_apply_2_001,
245 scm_smob_apply_2_011, scm_smob_apply_2_021, scm_smob_apply_2_error,
246 scm_smob_apply_3_030, scm_smob_apply_3_001, scm_smob_apply_3_011,
247 scm_smob_apply_3_021, scm_smob_apply_3_error): New functions.
248 (scm_set_smob_apply): Set new fields to the above functions.
249 (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
250 scm_smob_apply_3): Removed.
251 * eval.c (SCM_CEVAL, SCM_APPLY): Rewrote smob calls.
252
73369d67
DH
2532000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
254
255 * gc.c (scm_init_gc): gc_async must be protected from gc. I
256 wonder why we never ran into problems up to now...
257
78573619
DH
2582000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
259
260 * gc.c (scm_init_gc): Don't create a binding for %gc-thunk.
261
a4bb4e6d
DH
2622000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
263
264 * gsubr.c: No need to include vector.h.
265
266 (scm_gsubr_apply): Use SCM_GSUBR_MAX instead of hard-coded value.
267 Added FUNC_NAME wrapping. Improved (temporarily?) disabled
268 debugging code. Replaced SCM_IMP with SCM_NULLP. Eliminated call
269 to ASRTGO.
270
271 (scm_init_gsubr): Eliminated outdated comment.
272
fd336365
DH
2732000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
274
275 * async.c (SCM_ASYNCP): Use SCM_TYP16 instead of SCM_GCTYP16.
276
277 * eval.c (scm_m_vref, scm_m_vset, scm_m_define, SCM_CEVAL,
278 SCM_APPLY, scm_copy_tree): Remove commented code.
279
280 (SCM_CEVAL, SCM_APPLY): Remove #ifdef CCLO conditionals. Without
281 CCLO being defined, guile would not compile at all anyway.
282
283 * gc.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
284 SCM_GCCDR): Deprecated.
285
286 * gdbint.c (unmark_port, remark_port, gdb_read), procs.c
287 (scm_mark_subr_table): Use SCM_(SET|CLR)?GCMARK(P)? instead of
288 SCM_(SET|CLR)?GC8MARK(P)?.
289
290 * gh_data.c (gh_scm2char): Remove bogus ';'.
291
292 * tags.h: Removed comment about GCTYP16 macro.
293
294 * weaks.c (scm_mark_weak_vector_spines): Use SCM_CDR instead of
295 SCM_GCCDR.
296
e34f941a
DH
2972000-12-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
298
299 * print.c (scm_iprin1): Use scm_tc3_* codes instead of hardcoded
300 values. Added comment about tc3 codes that may appear in
301 immediates. Got rid of one goto command.
302
01449aa5
DH
3032000-12-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
304
305 * dynl.c (sysdep_dynl_link): Improved error reporting.
306
307 * guardians.c: Changed the representation from a compiled closure
308 to an applicable smob.
309
310 (guard1, CCLO_G): Removed.
311
312 (guard, g_mark, g_print, scm_tc16_guardian, scm_guardian_gc_init,
313 scm_guardian_zombify): Renamed to guardian_apply, guardian_mark,
314 guardian_print, tc16_guardian, guardian_gc_init and
315 guardian_zombify, respectively.
316
317 (guardian_free): Added, fixes a memory leak.
318
319 (guardian_print): Don't use sprintf hack.
320
321 (guardian_apply, scm_guard, scm_get_one_zombie,
322 scm_make_guardian): Don't use a compiled closure.
323
324 (guardian_zombify): Prefer !SCM_NULLP over SCM_NIMP. No need to
325 use SCM_GCCDR any more. Simplified loop condition.
326
327 (scm_init_guardian): Don't use scm_make_smob_type_mfpe for smob
328 initialization. Initialize applicable smob.
329
362306b9
DH
3302000-12-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
331
332 * chars.c (scm_char_eq_p): Minor cleanup/optimization.
333
334 * gc.c (scm_gc_mark): Don't use SCM_VELTS for CCLOs.
335
336 * procprop.c (scm_i_procedure_arity): Separate handling of smobs
337 and CCLOs.
338
8c921d5c
DH
3392000-12-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
340
341 * tags.h (scm_tc_free_cell, scm_tc16_big, scm_tc16_real,
342 scm_tc16_complex): Eliminate hard-coded value of scm_tc7_smob.
343
79a3dafe
DH
3442000-12-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
345
346 * list.[ch] (scm_c_memq): Added as a fast C level alternative for
347 scm_memq for the case that the list parameter is known to be a
348 proper list.
349
350 * goops.c (filter_cpl, remove_duplicate_slots, applicablep),
351 goops.h (SCM_SUBCLASSP): Use scm_c_memq if we are sure that we
352 pass proper lists.
353
23437298
DH
3542000-12-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
355
356 * goops.c (scm_sys_compute_slots, scm_i_get_keyword,
357 scm_get_keyword, scm_slot_ref_using_class,
358 scm_slot_set_using_class_x): Update the code to match guile's
359 current style (e. g. using SCM_DEFINE, adding comments, removing
360 unnecessary SCM_NIMP tests etc.).
361
21e8f468
DH
3622000-11-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
363
364 Thanks to Julian Satchell for the bug report:
365
366 * coop-threads.c (scm_join_thread): Check whether a thread is
367 finished before trying to join it.
368
369 * coop.c (coop_aborthelp, coop_join): When a thread finishes, its
370 stack base is not set to NULL any more.
371
2b7b76d5
DH
3722000-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
373
374 * strop.c (scm_i_index): Removed outdated comment.
375
e51fe79c
DH
3762000-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
377
378 * struct.c (scm_struct_ref, scm_struct_set_x), symbols.c
379 (scm_intern_obarray_soft), symbols.h (SCM_ROUCHARS): Eliminate
380 use of SCM_SYMBOL_UCHARS by using chars instead of unsigned
381 chars.
382
383 (SCM_SYMBOL_UCHARS): Removed.
384
ce212434
GH
3852000-11-26 Gary Houston <ghouston@arglist.com>
386
387 * reimplementation of values, call-with-values as primitives:
388
389 * values.c, values.h: new files. use a struct to contain multiple
390 values, similar to the previous Scheme-level implementation.
391 * Makefile.am: add values.c, values.h, values.x.
392 * continuations.c (continuation_apply): support R5RS multiple value
393 continuations.
394 * init.c: call scm_init_values.
395 * struct.h: define SCM_SET_STRUCT_PRINTER.
396
5f144b10
GH
3972000-11-25 Gary Houston <ghouston@arglist.com>
398
399 * use an applicable SMOB to represent continuations, instead of a
400 custom tc7 type. This will make it easier to support R5RS
401 multiple value continuations, without the use of a Scheme-level
402 wrapper.
403
404 * continuations.c (scm_tc16_continuation, continuation_mark,
405 continuation_free, continuation_print, continuation_apply):
406 new SMOB support.
407 (scm_make_continuation): new procedure, replaces scm_make_cont
408 with a different interface.
409 (copy_stack_and_call, scm_dynthrow, scm_init_continuations): rewritten.
410 (CHEAP_CONTINUATIONS): removed non-working code completely.
411 (scm_call_continuation): removed.
412 * continuations.h (struct scm_contregs): add num_stack_items and
413 stack fields. previously stack was stored following this struct:
414 use a tail array instead.
415 (SCM_CONTINUATIONP): new macro.
416 (SCM_CONTINUATION_LENGTH, SCM_SET_CONTINUATION_LENGTH):
417 rewritten.
418 (SCM_SET_CONTREGS): removed.
419 * tags.h: removed scm_tc7_contin (was tag 61).
420 * debug.c, gc.c, hash.c, print.c, procprop.c, procs.c:
421 removed scm_tc7_contin support.
422 * eval.c: use scm_make_continuation instead of scm_make_cont.
423 don't set jump buffers here. remove scm_tc7_contin support.
424 * init.c, root.c: create SMOB continuation for rootcont instead
425 of scm_tc7_contin. call scm_init_continuations before
426 scm_init_root.
427 * root.c: remove support for static jmpbuf. It's not used by
428 default and I broke it. create SMOB continuation for rootcont.
429 * stacks.c: use SCM_CONTINUATIONP.
430
7f555fb4
DH
4312000-11-24 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
432
433 * goops.c (filter_cpl, remove_duplicate_slots), goops.h
434 (SCM_SUBCLASSP): Fix previous change: In contrast to
435 scm_sloppy_memq the function scm_memq returns #f if the
436 object was not contained in the list.
437
ca83b028
DH
4382000-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
439
440 * goops.c: Include validate.h.
441
442 (DEFVAR, scm_add_method): Don't use deprecated scm_eval2.
443
444 (scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x,
445 scm_m_atdispatch): Provide FUNC_NAME definition. Don't use
446 deprecated SCM_OUTOFRANGE macro.
447
448 (scm_sloppy_num2ulong, scm_sys_logand): Removed. Guile's logand
449 function now provides the desired behaviour.
450
451 * goops.c (filter_cpl, remove_duplicate_slots), goops.h
452 (SCM_SUBCLASSP): Don't use deprecated scm_sloppy_memq.
453
5b9eb8ae
DH
4542000-11-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
455
456 * symbols.h (SCM_LENGTH_MAX): Deprecated.
457
458 * unif.c (scm_make_uve): Use SCM_BITVECTOR_MAX_LENGTH and
459 SCM_UVECTOR_MAX_LENGTH instead of SCM_LENGTH_MAX. Postpone length
460 checks for strings and vectors to their constructors. Eliminate
461 redundant SCM_IMP test.
462
463 (scm_dimensions_to_uniform_array): Postpone length checks to
464 scm_make_uve.
465
466 * unif.h (SCM_BITVECTOR_MAX_LENGTH, SCM_UVECTOR_MAX_LENGTH):
467 Added.
468
4692000-11-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
6a0476fd
DH
470
471 * gh_data.c (makvect), numbers.c (scm_mkbig, scm_adjbig),
472 strings.c (scm_makstr, scm_take_str), symbols.c
473 (scm_intern_obarray_soft, scm_sysintern0_no_module_lookup), unif.c
474 (scm_make_uve), vectors.c (scm_make_vector): Use appropriate
475 SCM_SET_<type>_(CHARS|BASE) macro instead of SCM_SETCHARS.
476
477 * numbers.h (SCM_SET_BIGNUM_BASE), strings.h
478 (SCM_SET_STRING_CHARS), symbols.h (SCM_SET_SYMBOL_CHARS), unif.h
479 (SCM_SET_UVECTOR_BASE, SCM_SET_BITVECTOR_BASE), vectors.h
480 (SCM_SET_VECTOR_BASE): Added.
481
482 * symbols.c (SCM_SETCHARS): Deprecated.
483
93778877
DH
4842000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
485
486 * gc.c (scm_gc_sweep), unif.c (scm_make_uve): Don't allocate or
487 free memory for empty bitvectors.
488
489 * gh_data.c (makvect), strings.c (scm_makstr, scm_take_str),
490 symbols.c (scm_intern_obarray_soft,
491 scm_sysintern0_no_module_lookup), unif.c (scm_make_uve): Use
492 appropriate SCM_SET_<type>_LENGTH macro instead of SCM_SETLENGTH.
493
494 * strings.h (SCM_SET_STRING_LENGTH), symbols.h
495 (SCM_SET_SYMBOL_LENGTH), unif.h (SCM_SET_UVECTOR_LENGTH,
496 SCM_SET_BITVECTOR_LENGTH): Added.
497
498 * symbols.h (SCM_SETLENGTH): Deprecated.
499
d7cf4325
DH
5002000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
501
502 * continuations.c (scm_make_cont): Use
503 SCM_SET_CONTINUATION_LENGTH instead of SCM_SETLENGTH.
504
505 * continuations.h (SCM_SET_CONTINUATION_LENGTH): Added.
506
bc0eaf7b
DH
5072000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
508
509 * vectors.c (scm_make_vector), weaks.c (scm_make_weak_vector):
510 Use SCM_SET_VECTOR_LENGTH instead of SCM_SETLENGTH.
511
512 * vectors.h (SCM_SET_VECTOR_LENGTH): Added.
513
34f0f2b8
DH
5142000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
515
516 * dynl.c (scm_make_argv_from_stringlist), filesys.c (scm_dirname,
517 scm_basename), gh_data.c (gh_scm2newstr, gh_get_substr), hash.c
518 (scm_hasher), load.c (scm_parse_path, scm_search_path,
519 scm_primitive_load_path), numbers.c (scm_string_to_number),
520 ports.c (scm_unread_string), posix.c (scm_convert_exec_args,
521 environ_list_to_c, scm_putenv), print.c (scm_iprin1,
522 scm_simple_format), random.c (scm_seed_to_random_state), socket.c
523 (scm_fill_sockaddr, scm_send, scm_sendto), strings.c
524 (scm_string_ref, scm_substring, scm_string_append), strings.h
525 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (scm_i_index,
526 scm_string_to_list, scm_string_copy), strorder.c
527 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p,
528 scm_string_ci_less_p), strports.c (scm_mkstrport), struct.c
529 (scm_make_struct_layout), symbols.c (scm_string_to_symbol,
530 scm_string_to_obarray_symbol, scm_gensym, scm_gentemp): Replace
531 calls to SCM_ROU?CHARS with the corresponding call to
532 SCM_STRING_U?CHARS.
533
534 * symbols.h (SCM_ROCHARS, SCM_ROUCHARS): Deprecated.
535
f0942910
DH
5362000-11-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
537
538 * ports.c: Include eval.h.
539
540 * strings.c (scm_string_set_x), strings.h (SCM_RWSTRINGP),
541 validate.h (SCM_VALIDATE_RWSTRING): Deprecate SCM_RWSTRINGP and
542 SCM_VALIDATE_RWSTRING.
543
544 * strings.h (SCM_STRING_UCHARS, SCM_STRING_CHARS): Handle strings
545 and substrings uniformly. However, substring handling is
546 deprecated.
547
548 (SCM_RWSTRINGP): Deprecated.
549
fc40e1fd
GH
5502000-11-18 Gary Houston <ghouston@arglist.com>
551
552 * Makefile.am (.c.x): don't prefix ".:" to $PATH when running
553 guile-doc-snarf. it doesn't seem to do anything useful, but would
554 fail if $PATH contained whitespace. Thanks to Lars J. Aas.
555
8dc9439f
MV
5562000-11-17 Marius Vollmer <mvo@zagadka.ping.de>
557
558 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
559 continuations.c, debug-malloc.c, debug.c, dynl.c, dynwind.c,
560 environments.c, eq.c, error.c, eval.c, evalext.c, feature.c,
561 filesys.c, fluids.c, fports.c, gc.c, goops.c, guardians.c, hash.c,
562 hashtab.c, hooks.c, ioext.c, iselect.c, keywords.c, lang.c,
563 list.c, load.c, macros.c, modules.c, net_db.c, numbers.c,
564 objects.c, objprop.c, options.c, pairs.c, ports.c, posix.c,
565 print.c, procprop.c, procs.c, properties.c, ramap.c, random.c,
566 read.c, regex-posix.c, root.c, scmsigs.c, script.c, simpos.c,
567 socket.c, sort.c, srcprop.c, stackchk.c, stacks.c, stime.c,
568 strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c,
569 tag.c, threads.c, throw.c, unif.c, variable.c, vectors.c,
570 version.c, vports.c, weaks.c: Makes sure the snarfer output
571 inclusion is disabled when the snarfer is run on the file. Thanks
572 to Lars J. Aas!
573
574 * Makefile.am: Install guile-procedures.txt in version-specific
575 directory to enable multiple installed guile versions. Suggested
576 by Karl M. Hegbloom <karlheg@debian.org, patch by Matthias Koeppe.
577
6b72ac1d
GH
5782000-11-13 Gary Houston <ghouston@arglist.com>
579
580 * fports.c: include gc.h.
581 (fport_flush, fport_close): silently ignore I/O errors when
582 closing a port during gc. it's better than aborting in scm_error.
583
584 * throw.c (scm_handle_by_message): remove obsolete comment.
585
9f561420
GH
5862000-11-12 Gary Houston <ghouston@arglist.com>
587
588 * fports.c (scm_open_file): fix the 'b' option. Thanks
589 to George Caswell.
590
b875c468
GH
5912000-11-09 Gary Houston <ghouston@arglist.com>
592
593 * ports.c, ports.h (scm_close_all_ports_except): deprecated.
594 use port-for-each. Updated its docstring.
595
c2ca4493
GH
5962000-11-07 Gary Houston <ghouston@arglist.com>
597
598 * ports.c (scm_port_for_each): new proc. implements port-for-each,
599 which applies a procedure to each port in the port table.
600 ports.h: declare scm_port_for_each.
601
602 * ioext.c (scm_dup2): new proc. implements "dup2" which is a simple
603 wrapper for the dup2 system call (unlike dup->fdes or
604 primitive-move->fdes).
605 * ioext.h: declare scm_dup2.
606
607 * filesys.c (scm_close_fdes): new proc. implements "close-fdes"
608 which is a simple wrapper for close system call (unlike scm_close).
609 * filesys.h: declare for scm_close_fdes.
610
b100f5ee
MD
6112000-11-06 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
612
613 * eval.c (SCM_IM_DISPATCH), objects.c (scm_mcache_lookup_cmethod):
614 Count n_specialized + 1 turns before letting a match through.
615
616 * goops.c (scm_sys_invalidate_method_cache_x): Don't convert
617 scm_si_n_specialized from fixnum and don't take absolute value.
618 (Thanks to Lars J. Aas.)
619
eb5c0a2a
GH
6202000-11-04 Gary Houston <ghouston@arglist.com>
621
622 * ports.c (scm_port_p): new function, implements "port?" which
623 is mentioned in R5RS.
624 * ports.h: declare scm_port_p.
625
931dd6e1
DH
6262000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
627
628 * backtrace.c (display_expression, display_error_body), fports.c
629 (prinfport), print.c (scm_iprin1): Test for symbols and strings
630 explicitly instead of using SCM_ROSTRINGP.
631
632 * backtrace.c (scm_display_error_message): Don't pass a symbol to
633 scm_simple_format. Prefer high-level output functions.
634
635 (display_error_body): When displaying procedure names, give
636 preference to the name passed as a parameter. Only if none is
637 given extract a name from the stack information.
638
639 * fports.c (scm_fdes_to_port, prinfport), gc.c (scm_gc_mark),
640 ports.c (scm_port_filename, scm_set_port_filename_x): Use
641 SCM_(SET_)?FILENAME.
642
643 * gh_data.c (gh_set_substr, gh_scm2newstr, gh_get_substr,
644 gh_symbol2newstr): Use scm_remember instead of a pair of calls to
645 scm_protect/unprotect_object.
646
647 * goops.c (make_struct_class), objects.c (scm_class_of): Struct
648 table names are symbols.
649
650 * ports.h (SCM_SET_FILENAME): Added.
651
652 * print.c (scm_iprin1): Don't use scm_puts to write symbols or
653 strings in order to treat substrings right. Reposition call to
654 scm_remember after the last use of object's data.
655
656 (scm_simple_format): Treat messages that are substrings right.
657
658 * symbols.h (SCM_ROSTRINGP): Deprecated.
659
66460dfb
DH
6602000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
661
662 * environments.c (obarray_replace, obarray_retrieve,
663 obarray_remove): Don't use '==' to compare SCM objects.
664
665 * posix.c (scm_getgroups): Don't create a redundant string.
666
0f87853a
DH
6672000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
668
669 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
670 scm_intern_symbol, scm_unintern_symbol): Symbol objects already
671 hold their hash values, no need to recompute them.
672
673 (scm_intern_obarray_soft): Speed up search for a matching symbol
674 by comparing the hash values first.
675
a3a32939
DH
6762000-10-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
677
678 * unif.c (scm_make_uve, scm_dimensions_to_uniform_array): Don't
679 allow vectors longer than SCM_LENGTH_MAX. This removes the
680 SCM_HUGE_LENGTH trick, i. e. storing a vector length greater than
681 SCM_LENGTH_MAX at the beginning of the vector's memory. Since not
682 all of guile's code was implemented to be aware of this trick, it
683 is unlikely that it was used anyway. We can implement such a
684 feature more cleanly by using double cells for uniform vector
685 types.
686
687 (scm_shap2ra): Replace SCM_IMP and SCM_NIMP tests by more
688 straightforward predicates.
689
690 (scm_dimensions_to_uniform_array): Require that for dimensions
691 given as lower-bound/upper-bound pairs the upper-bound is never
692 less than the lower bound.
693
a6d9e5ab
DH
6942000-10-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
695
696 * dynl.c (scm_dynamic_link, scm_dynamic_func, scm_dynamic_call,
697 scm_dynamic_args_call), filesys.c (scm_chown, scm_chmod,
698 scm_open_fdes, scm_stat, scm_link, scm_rename, scm_delete_file,
699 scm_mkdir, scm_rmdir, scm_opendir, scm_chdir, scm_symlink,
700 scm_readlink, scm_lstat, scm_copy_file), fports.c (scm_open_file),
701 ioext.c (scm_read_delimited_x, scm_fdopen), load.c
702 (scm_primitive_load, scm_parse_path, scm_search_path,
703 scm_sys_search_load_path, scm_primitive_load_path), net_db.c
704 (scm_inet_aton, scm_gethost, scm_getnet, scm_getproto,
705 scm_getserv), numbers.c (scm_string_to_number), ports.c
706 (scm_truncate_file, scm_sys_make_void_port), posix.c
707 (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
708 environ_list_to_c, scm_execle, scm_utime, scm_access,
709 scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp),
710 simpos.c (scm_system, scm_getenv), socket.c (scm_fill_sockaddr,
711 scm_send, scm_sendto), stime.c (scm_strftime, scm_strptime),
712 strop.c (scm_i_index, scm_string_null_p, scm_string_to_list),
713 strports.c (scm_mkstrport), symbols.c
714 (scm_string_to_obarray_symbol), vports.c (scm_make_soft_port):
715 Don't accept symbols as input parameters. Use SCM_STRING_LENGTH
716 instead of SCM_ROLENGTH.
717
718 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
719 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
720 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
721 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
722 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
723 (scm_fdopen), net_db.c (scm_inet_aton, scm_gethost, scm_getnet,
724 scm_getproto, scm_getserv), ports.c (scm_truncate_file,
725 scm_sys_make_void_port), posix.c (scm_getpwuid, scm_getgrgid,
726 scm_execl, scm_execlp, scm_execle, scm_utime, scm_access,
727 scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp,
728 scm_regexp_exec), simpos.c (scm_system, scm_getenv), stime.c
729 (setzone, scm_strftime, scm_strptime), vports.c
730 (scm_make_soft_port): Use SCM_STRING_COERCE_0TERMINATION_X to
731 make sure the characters of a string are followed by a \0.
732 Further, use SCM_STRING_CHARS instead of SCM_ROCHARS on the
733 resulting string.
734
735 * dynl.c (scm_make_argv_from_stringlist), posix.c
736 (scm_convert_exec_args): Aligned to match each other.
737
738 * dynl.c (scm_coerce_rostring): Removed.
739
740 (scm_dynamic_func): Changed the comment to reflect that the
741 function name has to be a string. Further, hide implementation
742 details from the scheme comment.
743
744 * error (scm_error_scm): Don't accept a symbol as message
745 parameter. Fix substring handling.
746
747 * posix.c (environ_list_to_c): Use memcpy to copy environment
748 strings. Handle substrings which don't have a trailing \0.
749
750 * symbols.h (SCM_LENGTH, SCM_ROLENGTH, SCM_SUBSTRP,
751 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_COERCE_SUBSTR):
752 Deprecated.
753
754 * unif.h (SCM_HUGE_LENGTH): Deprecated.
755
756 * validate.h (SCM_VALIDATE_ROSTRING, SCM_VALIDATE_ROSTRING_COPY,
757 SCM_VALIDATE_NULLORROSTRING_COPY): Deprecated.
758
e9bfab50
DH
7592000-10-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
760
761 * random.c: Include unif.h.
762
763 * strings.h (SCM_STRING_COERCE_0TERMINATION_X): Added. This is
764 intended to replace the macro SCM_COERCE_SUBSTR. Such a macro
765 will be necessary, even after copy-on-write strings will be added
766 to guile, but the current naming is inappropriate.
767
768 * strorder.c (scm_string_equal_p, scm_string_ci_equal_p,
769 scm_string_less_p, scm_string_ci_less_p): Don't accept symbols as
770 input parameters. Further, the functions that test for equality
771 are rewritten to compare from back to front, the others are also a
772 little bit more polished.
773
14f1d9fe
MD
7742000-10-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
775
776 This change merges the GOOPS code into Guile. However, GOOPS
777 is still not initialized until someone asks for the module.
778 We need to optimize GOOPS initialization time before initializing
779 it together with the rest of libguile. We also need to add the
780 C API + primitive methods. Then we can start using it to
781 modularize Guile, implement a real exception system etc.
782
783 * goops.c, objects.c, objects.h, eval.c (scm_make_extended_class,
784 scm_make_port_classes, scm_change_object_class,
785 scm_memoize_method): Changed to ordinary functions (was plugin
786 slots).
787
788 * goops.c (wrap_init, scm_wrap_object): Unconditionally use
789 SCM_STRUCT_GC_CHAIN.
790 (scm_goops_version): Removed.
791 (scm_oldfmt): and all uses of it: Removed.
792 (scm_shared_array_root, scm_shared_array_offset,
793 scm_shared_array_increments): Removed.
794 (scm_init_goops): No need to support two arg mutex init.
795 Removed #include "versiondat.h", #include "goops.h".
796
797 * goops.h: Removed various superfluous conditions.
f4553de8
MD
798 Renamed class --> cls, new --> newinst in order to accomodate
799 C++.
14f1d9fe
MD
800
801 * init.c (scm_init_guile_1): Call the goops module registration
802 function.
803 Added #include "libguile/goops.h".
804
805 * Makefile.am (libguile_la_SOURCES): Added goops.c
806 (DOT_X_FILES): Added goops.x
807 (DOT_DOC_FILES): Added goops.doc
808 (modinclude_HEADERS): Added goops.h
809
1b9be268
DH
8102000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
811
812 * gc.c (scm_igc): Remove references to scm_vector_set_length_x.
813
814 (scm_gc_sweep): SCM_CONTREGS is never NULL.
815
816 * gc.c (scm_gc_sweep), vectors.c (scm_make_vector): Don't
817 allocate/free memory for zero length vectors.
818
819 * vectors.[ch] (scm_vector_set_length_x): Deprecated.
820
d1ca2c64
DH
8212000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
822
823 * alist.c (scm_assq_ref): Add a suggestion about how to deal with
824 this function when the API gets reviewed.
825
826 * async.c (SET_ASYNC_GOT_IT): Use SCM_TYP16 instead of doing bit
827 operations directly.
828
829 * dynl.c (scm_coerce_rostring), filesys.c (scm_link,
830 scm_copy_file), fports (scm_open_file), hash.c (scm_hasher),
831 posix.c (scm_getpwuid), print.c (scm_iprin1), simpos.c
832 (scm_system), strings.c (scm_string_ref, scm_substring,
833 scm_string_append), strop.c (scm_string_copy), struct.c
834 (scm_make_struct_layout), symbols.c (scm_gensym, scm_gentemp),
835 symbols.h (SCM_COERCE_SUBSTR): Use SCM_STRING_LENGTH instead of
836 SCM_ROLENGTH if the object is known to be a string or substring.
837
838 * eval.c (scm_lookupcar): Use SCM_ITAG7 instead of doing bit
839 operations directly.
840
841 * filesys.c (scm_dirname, scm_basename): Don't create shared
842 substrings as these are going to disappear from guile.
843
844 * gc.c (scm_gc_sweep): Use SCM_UVECTOR_LENGTH instead of
845 SCM_HUGE_LENGTH. (The SCM_HUGE_LENGTH mechanism does not work
846 correctly anyway.)
847
848 * gc.h (SCM_FREEP, SCM_NFREEP): Deprecated.
849
850 * read.c (scm_flush_ws): Don't compare SCM values directly.
851
852 * root.c (scm_make_root), root.h (scm_root_state): Removed
853 system_transformer and top_level_lookup_closure_var from struct.
854 (Since eval is now R5RS, binary compatibility is not granted
855 anyway.)
856
857 * simpos.c (scm_system): Fix condition.
858
859 * strings.c (scm_string_length, scm_string_ref, scm_substring,
860 scm_string_append), strop.c (scm_string_copy), struct.c
861 (scm_make_struct_layout, scm_make_vtable_vtable), symbols.c
862 (scm_gensym, scm_gentemp): Replace SCM_VALIDATE_STRINGORSUBSTR
863 with SCM_VALIDATE_STRING, since they do the same thing.
864
865 * strings.h (scm_make_shared_substring): Deprecated.
866
867 * tags.h (SCM_ITAG7): Added.
868
869 * validated.h (SCM_VALIDATE_STRINGORSUBSTR): Deprecated.
870
f8fa3e38
MV
8712000-10-20 Marius Vollmer <mvo@zagadka.ping.de>
872
873 * init.c (scm_init_guile_1, invoke_main_func): Call
874 scm_load_startup_files in scm_init_guile_1, not in
875 invoke_main_func.
876
0100535b
MV
8772000-10-18 Marius Vollmer <mvo@zagadka.ping.de>
878
c6ba6ce6 879 * print.c (grow_ref_stack): Pass a INUM to scm_make_vector as the
31535422 880 size, not a naked int. Thanks to Brad Knotwell!
c6ba6ce6 881
0100535b
MV
882 * gc_os_dep.c (GC_noop1, GC_bool, TRUE, FALSE, VOLATILE):
883 Definitions copied from Boehm collector.
884
daa6ba18
DH
8852000-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
886
887 * list.[ch] (scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member):
888 Deprecated.
889
890 (scm_memq, scm_memv, scm_member): Inline the sloppy code.
891
a8a11001
DH
8922000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
893
894 * alloca.c: Fixed include file path. Thanks to Bruce Korb for
895 the bug report.
896
66ca9392
MV
8972000-10-11 Marius Vollmer <mvo@zagadka.ping.de>
898
899 * gc_os_dep.c: Added real implementation based on code from Boehms
900 collector. This is not well tested yet.
901
902 * gc.h (scm_get_stack_base): Added prototype.
903 * init.c (scm_get_stack_base): Removed prototype.
904
b7ead2ae
DH
9052000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
906
907 * random.c (scm_seed_to_random_state): Replace SCM_LENGTH with
908 the appropriate SCM_<type>_LENGTH macro.
909
910 (vector_scale, vector_sum_squares, scm_random_solid_sphere_x,
911 scm_random_normal_vector_x): Use scm_uniform_vector_length to
912 determine the length of a vector object generically.
913
b226e5f6
DH
9142000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
915
916 * ramap.c (scm_array_fill_int, scm_array_index_map_x): Replace
917 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
918
919 (scm_ra_matchp, scm_ramapc, ramap, rafe, scm_array_index_map_x,
920 raeql_1, raeql): Use scm_uniform_vector_length to determine the
921 length of a vector object generically.
922
74014c46
DH
9232000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
924
925 * unif.c (scm_make_uve, scm_uniform_vector_length, scm_array_p,
926 scm_transpose_array, scm_array_contents, scm_ra2contig,
927 scm_uniform_array_read_x, scm_uniform_array_write, scm_bit_count,
928 scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
929 scm_bit_invert_x, scm_array_to_list, scm_raprin1): Replace
930 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
931
932 (scm_array_dimensions, scm_make_shared_array, scm_enclose_array,
933 scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x,
934 scm_array_contents, scm_uniform_array_read_x,
935 scm_uniform_array_write, scm_list_to_uniform_array, rapr1): Use
936 scm_uniform_vector_length to determine the length of a vector
937 object generically.
938
939 (scm_bit_count, scm_bit_set_star_x, scm_bit_count_star,
940 scm_bit_invert_x): Eliminated dummy type dispatch.
941
942 (scm_ra2contig): Fixed array vector access.
943
b5c2579a
DH
9442000-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
945
946 * unif.h (SCM_BITVECTOR_P, SCM_BITVECTOR_BASE): Added.
947
948 * eval.c (iqq, SCM_CEVAL, SCM_APPLY, check_map_args, scm_map,
949 scm_for_each, scm_copy_tree), gc.c (scm_igc, scm_gc_mark,
950 scm_gc_sweep), gh_data.c (gh_scm2chars), sort.c
951 (scm_restricted_vector_sort_x, scm_sorted_p, scm_sort_x,
952 scm_sort, scm_stable_sort_x, scm_stable_sort), vectors.c
953 (scm_vector_length, scm_vector_ref, scm_vector_set_x,
954 scm_vector_to_list, scm_vector_fill_x, scm_vector_equal_p,
955 scm_vector_move_left_x, scm_vector_move_right_x, ): Replace
956 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
957
958 * gc.c (scm_gc_sweep): Use SCM_BITVECTOR_BASE for bitvectors.
959
960 * sort.c (scm_restricted_vector_sort_x, scm_sorted_p): Eliminated
961 dummy type dispatch.
962
963 (scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort):
964 Eliminated redundant NIM test.
965
9fd38a3d
DH
9662000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
967
968 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
969 gh_data.c (gh_set_substr, gh_scm2chars, gh_scm2shorts,
970 gh_scm2longs, gh_scm2floats, gh_scm2doubles, gh_symbol2newstr),
971 stime.c (bdtime2c), symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
972 scm_intern_obarray_soft, scm_symbol_to_string, scm_intern_symbol,
973 scm_unintern_symbol, copy_and_prune_obarray, scm_builtin_bindings,
974 scm_builtin_weak_bindings), validate.h (SCM_VALIDATE_VECTOR_LEN):
975 Replace SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
976
977 * filesys.c (scm_dirname, scm_basename), gh_data.c (gh_scm2newstr,
978 gh_get_substr), posix.c (scm_putenv), regex-posix.c
979 (scm_regexp_exec), stime.c (setzone), symbols.c
980 (scm_string_to_symbol): Don't accept symbols as input parameters
981 any more.
982
bfa974f0
DH
9832000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
984
985 * continuations.c (scm_make_cont, copy_stack_and_call,
986 scm_dynthrow), environments.c (obarray_enter, obarray_replace,
987 obarray_retrieve, obarray_remove, obarray_remove_all,
988 leaf_environment_fold), fluids.c (grow_fluids, scm_copy_fluids,
989 scm_fluid_ref, scm_fluid_set_x), hash.c (scm_hasher), hashtab.c
990 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
991 scm_hash_fn_remove_x, scm_internal_hash_fold), ioext.c
992 (scm_read_delimited_x), objects.c (scm_mcache_lookup_cmethod,
993 scm_make_subclass_object), ports.c (scm_unread_string), socket.c
994 (scm_recv, scm_recvfrom), stacks.c (scm_make_stack, scm_stack_id,
995 scm_last_stack_frame), strings.c (scm_string_length,
996 scm_string_set_x), strop.c (scm_substring_move_x,
997 scm_substring_fill_x, scm_string_fill_x, scm_string_upcase_x,
998 scm_string_downcase_x, scm_string_capitalize_x), struct.c
999 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
1000 scm_make_vtable_vtable, scm_struct_ref, scm_struct_set_x), weaks.c
1001 (scm_mark_weak_vector_spines, scm_scan_weak_vectors): Replace
1002 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
1003
b17004b8
DH
10042000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
1005
1006 * print.c (make_print_state, scm_iprin1): Replace SCM_LENGTH with
1007 the appropriate SCM_<type>_LENGTH macro.
1008
1009 (grow_ref_stack): Don't call scm_vector_set_length_x to resize
1010 the print stack.
1011
aa3188a7
DH
10122000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
1013
1014 * numbers.c (big2str): Avoid redundant copying.
1015
1016 (scm_bigprint): Use SCM_STRING_LENGTH instead of SCM_LENGTH.
1017
94115ae3
DH
10182000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1019
1020 * numbers.c (big2str), read.c (scm_grow_tok_buf), strports.c
1021 (st_resize_port): Don't call scm_vector_set_length_x to resize
1022 strings.
1023
1024 * read.c (scm_lreadr, scm_read_token): Use SCM_STRING_LENGTH for
1025 string arguments (instead of SCM_LENGTH).
1026
2d349e67
DH
10272000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1028
1029 * continuations.h (SCM_CONTINUATION_LENGTH), strings.h
1030 (SCM_STRING_LENGTH), symbols.h (SCM_SYMBOL_LENGTH), unif.h
1031 (SCM_UVECTOR_LENGTH, SCM_BITVECTOR_LENGTH), vectors.h
1032 (SCM_VECTOR_LENGTH): Added as replacements for SCM_LENGTH.
1033
4fd03f43
MV
10342000-10-02 Marius Vollmer <mvo@zagadka.ping.de>
1035
1036 * coop-defs.h (coop_key_create): Don't use the C++ keyword
1037 `destructor' in prototype. Thanks to Martin Baulig!
1038
77cd7f80
ML
10392000-10-02 Michael Livshin <mlivshin@bigfoot.com>
1040
1041 * guile-func-name-check.in: now should not confuse SCO nawk
1042 anymore. thanks to Bruce Korb for the fix!
1043
ed0e0e30
GH
10442000-10-01 Gary Houston <ghouston@arglist.com>
1045
0d26a8bc 1046 * net_db.c: declare inet_aton only if HAVE_INET_ATON is not
ed0e0e30
GH
1047 defined. thanks to Han-Wen Nienhuys.
1048
e655d034
GH
10492000-09-30 Gary Houston <ghouston@arglist.com>
1050
1051 * filesys.c (scm_stat2scm), posix.c (s_scm_mknod): don't use
1052 S_ISSOCK or S_IFSOCK if not defined. thanks to Bruce Korb.
1053
6ec589e2
NJ
10542000-09-29 Neil Jerram <neil@ossau.uklinux.net>
1055
9d29e990
NJ
1056 * Makefile.am (guile-procedures.txt): Insert a new rule such that
1057 the output from guile-snarf.awk is processed by makeinfo to
1058 produce guile-procedures.txt.
1059
1060 * guile-snarf.awk.in: Modify the way we snarf docstrings such that
1061 the output is Texinfo-compliant and suitable for post-processing
1062 with makeinfo. (Trim leading "./" from C file name if
1063 present; reformat procedure prototype line in @deffn format;
1064 improve representation of args to show optional and rest args;
1065 explicitly quote quotation marks where they are used inside an AWK
1066 regexp.)
1067
6ec589e2
NJ
1068 * net_db.c (scm_inet_ntoa): Docstring fix: missing newline
1069 inserted.
1070
1071 * hashtab.c (scm_hashx_create_handle_x, scm_hashx_ref): Insert
1072 spaces between C parameters so that the snarfer doesn't coalesce
1073 them all into a single very long-named parameter.
1074
10752000-09-27 Neil Jerram <neil@ossau.uklinux.net>
1076
1077 * list.c (scm_append): Use @example texinfo markup in docstring.
1078
bbe4e612
DH
10792000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1080
1081 * strings.c (scm_string, scm_make_string, scm_string_set_x,
1082 scm_string_append), strop.c (scm_string_upcase_x,
1083 scm_string_downcase_x), strports.c (st_resize_port), symbols.c
1084 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft,
1085 scm_intern_symbol, scm_unintern_symbol), unif.c (scm_cvref,
1086 scm_uniform_vector_ref, scm_array_set_x, rapr1): Replace calls to
1087 SCM_UCHARS with SCM_STRING_UCHARS or SCM_SYMBOL_UCHARS.
1088
1089 * symbols.h (SCM_UCHARS): Deprecated.
1090
405aaef9
DH
10912000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1092
1093 * gc.c (scm_gc_sweep): Replace SCM_CHARS by SCM_COMPLEX_MEM.
1094
1095 * numbers.h (SCM_COMPLEX_MEM): Added as a replacement for
1096 SCM_CHARS.
1097
1098 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Use it.
1099
1100 * ramap.c (scm_array_fill_int, racp, raeql_1): Replace SCM_CHARS
1101 with SCM_STRING_CHARS or SCM_UVECTOR_BASE.
1102
1103 (racp): Fix: Make sure that src and dst types match.
1104
1105 * read.c (scm_grow_tok_buf, scm_lreadr, scm_read_token): Replace
1106 SCM_CHARS with SCM_STRING_CHARS.
1107
1108 * symbols.h (SCM_CHARS): Deprecated.
1109
1110 * unif.c (scm_enclose_array, scm_uniform_vector_ref, scm_cvref,
1111 scm_array_set_x, scm_uniform_array_read_x, rapr1, freera,
1112 scm_uniform_array_write): Replace SCM_CHARS with
1113 SCM_STRING_CHARS, SCM_UVECTOR_BASE or SCM_ARRAY_MEM.
1114
1115 * unif.h (SCM_ARRAY_MEM): Added as a replacement for SCM_CHARS.
1116
1117 (SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS): Use it.
1118
1119 * validate.h (SCM_COERCE_ROSTRING): Removed.
1120
06ee04b2
DH
11212000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1122
1123 * gc.c (scm_igc): : Eliminate references to SCM_LENGTH and
1124 SCM_CHARS from comment.
1125
1126 (scm_gc_mark, scm_gc_sweep): Replace SCM_CHARS with
1127 SCM_SYMBOL_CHARS or SCM_CCLO_BASE or SCM_UVECTOR_BASE or
1128 SCM_BDIGITS, and replace SCM_VELTS with SCM_VECTOR_BASE or
1129 SCM_CONTREGS, according to the corresponding types.
1130
1131 (scm_gc_sweep): Simplify sweeping of uniform vectors.
1132
74cc8503
DH
11332000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1134
1135 * procs.h (SCM_CCLO_LENGTH, SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE,
1136 SCM_SET_CCLO_BASE, SCM_CCLO_REF, SCM_CCLO_SET, SCM_CCLO_SUBR,
1137 SCM_SET_CCLO_SUBR): Added resp. changed such that none of the
1138 macros SCM_CHARS, SCM_SETCHARS, SCM_VELTS and SCM_LENGTH have to
1139 be used with compiled closures any more.
1140
1141 * procs.c (scm_makcclo), gsubr.h (SCM_GSUBR_TYPE, SCM_GSUBR_PROC):
1142 Replace uses of SCM_CHARS, SCM_SETCHARS and SCM_VELTS with regards
1143 to compiled closures.
1144
1145 * gsubr.h (SCM_SET_GSUBR_TYPE, SCM_SET_GSUBR_PROC): Added.
1146
1147 * gsubr.c (scm_make_gsubr): Use them.
1148
9eb364fc
DH
11492000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1150
1151 * numbers.c (scm_adjbig): Use SCM_BDIGITS instead of SCM_CHARS.
1152
1153 (big2str, scm_bigprint): Use SCM_STRING_CHARS instead of
1154 SCM_CHARS.
1155
1156 * vectors.c (scm_vector_set_length_x): Distinguish between
1157 strings, scheme vectors and uniform vectors, thus getting rid of
1158 references to SCM_CHARS. (The code still needs improvement.)
1159
3db4adfc
DH
11602000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1161
1162 * eval.c (scm_m_letrec1, SCM_CEVAL, SCM_APPLY): Use
1163 SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS instead of SCM_U?CHARS.
1164
1165 * unif.h (SCM_UVECTOR_BASE), vectors.h (SCM_VECTOR_BASE): Added
1166 as replacements for SCM_CHARS and SCM_VELTS.
1167
a002f1a2
DH
11682000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1169
1170 * continuations.c (scm_make_cont, scm_dynthrow), print.c
1171 (scm_iprin1), stacks.c (scm_make_stack, scm_stack_id,
1172 scm_last_stack_frame): For continuations, use SCM_CONTREGS
1173 instead of SCM_CHARS.
1174
1175 * coop-threads.c (scm_threads_mark_stacks): Eliminate references
1176 to SCM_LENGTH and SCM_CHARS from comments.
1177
1178 * dynl.c (scm_dynamic_link, scm_dynamic_func), symbols.h
1179 (SCM_ROCHARS, SCM_ROUCHARS): Cleanly distinguish between string
1180 and symbol arguments.
1181
1182 * hash.c (scm_hasher), keywords.c (prin_keyword), objects.c
1183 (scm_make_subclass_object), print.c (scm_iprin1), regex-posix.c
1184 (scm_regexp_error_msg), stime.c (bdtime2c, scm_strftime), struct.c
1185 (scm_struct_init, scm_struct_vtable_p, scm_struct_ref,
1186 scm_struct_set_x): Use SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS
1187 instead of SCM_U?CHARS.
1188
1189 * strings.h (SCM_STRING_UCHARS): Added as a replacement for
1190 SCM_UCHARS for string arguments.
1191
1192 * strorder.c: Include strings.h and symbols.h.
1193
1194 * symbols.h: Replaced SCM_CHARS in comment.
1195
1196 (SCM_SYMBOL_UCHARS): Added as a replacement for SCM_UCHARS for
1197 symbol arguments.
1198
1199 (SCM_SLOPPY_SUBSTRP): Deprecated.
1200
1201 * tags.h: Fixed comments not to reference SCM_LENGTH or
1202 SCM_CHARS.
1203
1660782e
DH
12042000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1205
1206 * gc.c (scm_gc_mark, scm_gc_sweep), tags.h: Removed the
1207 scm_tc7_lvector type tag.
1208
f151f912
DH
12092000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1210
1211 * eval.c (scm_m_define), evalext.c (scm_m_undefine): Removed dead
1212 code.
1213
1214 * gc.c (scm_gc_sweep): Use SCM_STRING_CHARS or SCM_SYMBOL_CHARS
1215 instead of SCM_CHARS.
1216
86c991c2
DH
12172000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1218
1219 * backtrace.c (display_frame_expr), environments.c
1220 (print_observer, print_leaf_environment, print_eval_environment,
1221 print_import_environment, print_export_environment), gh_data.c
1222 (gh_set_substr, gh_symbol2newstr), keywords.c
1223 (scm_make_keyword_from_dash_symbol), ports.c (scm_drain_input),
1224 posix.c (scm_mknod), print.c (scm_iprin1), regexp-posix.c
1225 (scm_regexp_error_msg), script.c (scm_compile_shell_switches),
1226 simpos.c (scm_getenv), socket.c (scm_recv, scm_recvfrom),
1227 strings.c (scm_makfromstr), strop.c (scm_substring_move_x,
1228 scm_substring_fill_x, scm_string_capitalize_x), symbols.c
1229 (scm_symbol_to_string), unif.c (scm_make_uve, scm_array_p),
1230 validate.h (SCM_VALIDATE_STRING_COPY): Use SCM_STRING_CHARS or
1231 SCM_SYMBOL_CHARS instead of SCM_CHARS.
1232
c1aef037
DH
12332000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1234
1235 * strings.h (SCM_STRING_CHARS): Added, should be used instead of
1236 SCM_CHARS whenever the argument is known to be a string.
1237
1238 (SCM_SLOPPY_STRINGP): Deprecated.
1239
1240 * symbols.h (SCM_SYMBOL_CHARS): Added, should be used instead of
1241 SCM_CHARS whenever the argument is known to be a symbol.
1242
1bee0e70
NJ
12432000-09-22 Neil Jerram <neil@ossau.uklinux.net>
1244
1245 * struct.c (scm_make_struct): Fix texinfo warning in docstring by
1246 using @pxref rather than @xref.
1247
1248 * root.c (scm_call_with_dynamic_root): Fix texinfo warning in
1249 docstring by using @code for (thunk) rather than @var.
1250
f7b0a8d1 12512000-09-20 Marius Vollmer <mvo@zagadka.ping.de>
216b559a 1252
f7b0a8d1
MV
1253 * numbers.c (scm_istr2flo): Throw an `out of range' error when
1254 exponent is too large instead of returning `#f'. The rationale is
1255 that in this case the string represents a valid number but we
1256 can't deal with it.
216b559a 1257
0f8c9efa
DH
12582000-09-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1259
1260 * symbols.c (scm_intern_obarray_soft,
1261 scm_sysintern0_no_module_lookup): Make sure that symbol
1262 properties initially form an empty list. Thanks to Keisuke
1263 Nishida for pointing this out.
1264
5a2a5407
DH
12652000-09-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1266
1267 * throw.c (scm_handle_by_message): Added a FIXME comment.
1268
1269 (scm_ithrow): Removed some redundant tests. When compiling on
1270 gcc, always add the GCSE bug workaround.
1271
57b74422
GH
12722000-09-14 Gary Houston <ghouston@arglist.com>
1273
1274 * print.c (scm_iprin1): write the ascii delete character as #\del
1275 instead of '#\', so it can be read back. like in SCM.
1276
02821239
MD
12772000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1278
1279 * symbols.c (duplicate_string): Don't try to copy the byte after
1280 the string. This might not be `\0' and might even not be
1281 allocated memory.
1282
8e93e199
DH
12832000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1284
1285 * symbols.c (scm_symbol_p): Eliminate redundant SCM_IMP test.
1286
28b06554
DH
12872000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1288
1289 This patch unifies the formerly distinct ssymbol and msymbol types
1290 to a common symbol type scm_tc7_symbol. The representation of the
1291 new symbol type uses a double cell with the following layout:
1292 <type/length, chars, raw_hash, prop-pair>, where the car of
1293 prop-pair holds the symbol's function property and the cdr of
1294 prop-pair holds the symbol's other properties. In the long run,
1295 these properties will be removed. Then, the generic property
1296 functions will be uses.
1297
1298 * eval.c (SCM_CEVAL), objects.c (scm_class_of), print.c
1299 (scm_iprin1), tag.c (scm_tag): Use scm_tc7_symbol instead of
1300 scm_tc7_ssymbol, scm_tc7_msymbol or scm_tcs_symbols.
1301
1302 * gc.c (scm_gc_mark): Mark the symbols property pair.
1303
1304 (scm_gc_sweep): There are no symbol slots any more.
1305
1306 * hash.c (scm_hasher): Instead of re-calculating the hash value
1307 of a symbol, use the raw_hash value stored in the symbol itself.
1308
1309 * properties.h: Fix typo.
1310
1311 * strings.[ch] (scm_makstr, scm_makfromstr): The slot parameter
1312 is not used any more.
1313
1314 * symbols.[ch] (scm_strhash): Deprecated, replaced by a macro.
1315
1316 (scm_intern_obarray_soft): Made softness parameter unsigned.
1317
1318 (scm_string_hash): New function with the same functionality as
1319 scm_strhash had before, except that the hash value is not adjusted
1320 to a hash table size. Instead, the 'raw' hash value is returned.
1321
1322 * symbols.c (duplicate_string): New static convenience function.
1323
1324 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft):
1325 Renamed local variable from scm_hash to hash.
1326
1327 (scm_intern_obarray_soft): Don't check for a negative softness
1328 any more. When generating symbol cells, use the new layout and
1329 store the raw hash value in the symbol's cell.
1330
1331 (scm_symbol_to_string): Removed unnecessary cast.
1332
1333 (scm_intern_symbol, scm_unintern_symbol): Use scm_string_hash to
1334 determine the hash values.
1335
1336 (msymbolize): Removed.
1337
1338 (scm_symbol_fref, scm_symbol_pref, scm_symbol_fset_x,
1339 scm_symbol_pset_x, scm_symbol_hash): No need to distinguish
1340 between different symbol types any more.
1341
1342 (scm_symbol_hash): Comment fixed.
1343
1344 * symbols.h: Comment about the distinction between ssymbols and
1345 msymbols removed.
1346
1347 (SCM_SYMBOLP, SCM_ROSTRINGP): No need to distinguish between
1348 different symbol types any more.
1349
1350 (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Added.
1351
1352 (SCM_SYMBOL_FUNC, SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
1353 SCM_SET_SYMBOL_PROPS, SCM_SYMBOL_HASH, SCM_SET_SYMBOL_HASH): Use
1354 the new symbol cell layout.
1355
1356 * tags.h (scm_tc7_ssymbol, scm_tc7_msymbol, scm_tcs_symbols):
1357 Deprecated.
1358
302f229e
MD
13592000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1360
1361 * symbols.h (scm_gentemp): Declared.
1362
1363 * symbols.c (scm_gensym): Reimplemented. Now only takes one
1364 optional argument which should be a *string*.
1365 (scm_gentemp): Reimplemented and moved from boot-9.scm.
1366
5bcdfa2e
KN
13672000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
1368
1369 * modules.c: Use applicable smobs for eval closures instead of
1370 compiled closures. Include "libguile/smob.h".
1371 (f_eval_closure): Removed.
1372 (scm_eval_closure_tag): New variable.
1373 (scm_eval_closure_lookup): Renamed from eval_closure.
1374 This function now takes a smob instead of a compiled closure.
1375 (scm_standard_eval_closure): Create a smob instead of a compiled
1376 closure.
1377 (scm_init_modules): Initialize the eval closure type as a smob.
1378 * modules.h (SCM_EVAL_CLOSURE_P): New macro.
1379 (scm_eval_closure_tag, scm_eval_closure_lookup): Declare.
1380 * symbols.c: Include "libguile/smob.h".
1381 (scm_sym2vcell): Call scm_eval_closure_lookup directly if THUNK
1382 is an eval closure.
1383
370646da
MD
13842000-09-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1385
4c7cb8ba
MD
1386 * Makefile.am (.x.doc): Bugfix: Added $(srcdir) to path in order
1387 to allow for builds in separate tree.
1388
370646da
MD
1389 * symbols.c (scm_gensym): Bugfixed my previous bugfix. (Thanks to
1390 Dale P. Smith.)
1391
3cbe8373
KN
13922000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
1393
1394 * eval.c (SCM_APPLY): Fixed bugs in the applicable-smob calls.
1395
a2d47b23
DH
13962000-09-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1397
1398 * environments.c (obarray_enter, obarray_retrieve,
1399 obarray_remove): Make sure the hash value is a valid obarray
1400 index.
1401
1402 (obarray_enter, obarray_remove): Documentation improved.
1403
1404 (obarray_replace): Added.
1405
1406 (leaf_environment_define, leaf_environment_undefine): Cleaned up
1407 and optimized.
1408
a2550d0e
MD
14092000-09-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1410
1411 * symbols.c (scm_gensym): Check that argument is a symbol, not a
370646da 1412 string. (Thanks to Ralf Mattes.)
a2550d0e 1413
f0cb8787
MV
14142000-09-05 Marius Vollmer <mvo@zagadka.ping.de>
1415
1416 * init.c: Include "libguile/properties.h".
1417
1418 * gh_data.c (gh_scm2char): Validate that argument is a character.
1419
4c199a26
DH
14202000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1421
1422 * environments.h (SCM_IMPORT_ENVIRONMENT_P,
1423 SCM_EXPORT_ENVIRONMENT_P): Before fetching the environment
1424 functions, make sure that we really got an environment.
1425
9e9e264f
MD
14262000-09-03 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1427
1428 * validate.h (SCM_VALIDATE_NUMBER_DEF_COPY): New macro.
1429
468fbf58
MV
14302000-09-03 Marius Vollmer <mvo@zagadka.ping.de>
1431
1432 * Makefile.am (.x.doc): Pretend to create .doc files from .x files
1433 and give explicit dependencies for .x files that depend on
1434 generated files. This allows parallel builds. Thanks to Matthias
1435 Koeppe!
1436
14372000-08-27 Marius Vollmer <mvo@zagadka.ping.de>
1438
1439 * Makefile.am: Added gc_os_dep.c, properties.c, properties.x,
1440 properties.h and properties.doc in the suitable places.
1441
1442 * init.h (scm_init_guile): New prototype.
1443
1444 * init.c (scm_init_guile, scm_init_guile_1): New interface for
1445 initializing Guile that does return to the caller.
1446 (scm_boot_guile_1): Use scm_init_guile_1 to initialize Guile.
1447 Do not establish a catch-all, this is no longer needed.
1448
1449 * root.h (scm_properties_whash): New `sys_protect', used in
1450 properties.c.
1451
1452 * throw.c (scm_ithrow): Perform catch-all handling here when no
1453 suitable handler has been found. That way, we don't have to rely
1454 on the user establishing a catch-all, which might be difficult for
1455 him if he is using scm_init_guile instead of scm_boot_guile.
1456
11768c04
NJ
14572000-09-03 Neil Jerram <neil@ossau.uklinux.net>
1458
1459 * vectors.c (scm_vector): Docstring: add @deffnx line for
1460 list->vector.
1461
1462 * unif.c (scm_uniform_vector_ref): Docstring: add @deffnx line for
1463 array-ref.
1464 (scm_array_set_x): Docstring: add @deffnx line for
1465 uniform-array-set!.
1466
1467 * symbols.c (scm_symbol_to_string): Docstring: complete an
1468 incomplete Texinfo reference to a node in r4rs.texi.
1469 (scm_symbol_to_string): Escape double quotes correctly within
1470 docstring.
1471
1472 * struct.c (scm_make_struct, scm_make_vtable_vtable): Docstring
1473 fixes: `@dots' changed to `@dots{}'.
1474
1475 * strop.c (scm_substring_move_x): Docstring: add @deffnx lines for
1476 substring-move-left! and substring-move-right!.
1477
1478 * strings.c (scm_string): Docstring: add @deffnx line for
1479 list->string.
1480
1481 * stime.c (scm_strptime): Fix spelling mistake in docstring.
1482 (scm_current_time): Docstring fix: insert missing newline.
1483
1484 * socket.c (scm_recvfrom): Docstring format fix: missing newline
1485 inserted.
1486
1487 * ramap.c (scm_array_copy_x): Docstring: add @deffnx line for
1488 array-copy-in-order!.
1489 (scm_array_map_x): Docstring: add @deffnx line for
1490 array-map-in-order!.
1491
1492 * posix.c (scm_mknod): Docstring format fix: missing newlines
1493 inserted.
1494
1495 * modules.c (scm_interaction_environment): Docstring fix: add
1496 newlines.
1497
1498 * eval.c (scm_cons_source): Added newly written docstring.
1499
eacb9dc2
ML
15002000-09-03 Michael Livshin <mlivshin@bigfoot.com>
1501
1502 the following changes let Guile get rid of the `allocated' cell
1503 state.
1504
1505 * smob.c (scm_smob_prehistory): don't init the "allocated" smob
1506 type.
1507
1508 * tags.h (scm_tc16_allocated): removed.
1509
1510 * gc.h: removed now-obsolete comments about the `allocated' cell
1511 state.
1512 (SCM_NEWCELL): don't change cell type to `allocated'.
1513 (SCM_NEWCELL2): ditto.
1514
1515 * gc.c (scm_mark_locations): mark freecells too, and don't worry
1516 about any possible false positives.
1517 (scm_debug_newcell): don't change cell type to `allocated'.
1518 (scm_debug_newcell2): ditto.
1519 (scm_gc_for_newcell): ditto.
1520 (scm_gc_mark): remove the tc16_allocated case.
1521
69b5f65a
MD
15222000-08-26 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1523
adf9e959
MD
1524 * gdbint.c (gdb_print): Removed superfluous macro definition.
1525
0745d387
MD
1526 * objects.c (scm_init_objects), print.c (scm_init_print), struct.c
1527 (scm_init_struct): First arg to scm_make_vtable_vtable should be a
1528 string, not a symbol. (`make-vtable-vtable' needs to append this
1529 string to another string and then pass it through
1530 `make-struct-layout'.)
1531
1532 * stacks.c (scm_init_stacks): Pass a string, not a layout object,
1533 to scm_make_vtable_vtable. (Thanks to Dale P. Smith.)
1534
1535 * struct.c (scm_make_struct_layout): Removed reference to
1536 "read-only string" in comment; Check that argument is a string.
1537 (scm_make_vtable_vtable): Check that argument is a string.
1538
69b5f65a
MD
1539 * environments.c (scm_init_environments): All internal includes in
1540 libguile must use the prefix "libguile/" in path names since inly
1541 the top-level source directory is on the include list. (That, in
1542 turn, is because we want to distinguish between system header
1543 files and hedares files internal to libguile.)
1544
1545 * strings.c (scm_make_shared_substring, scm_read_only_string_p):
1546 Deprecated.
1547 (scm_string_length, scm_string_ref, scm_substring,
1548 scm_string_append): Don't accept symbols as arguments (R5RS).
1549
92ccc1f1
NJ
15502000-08-25 Neil Jerram <neil@ossau.uklinux.net>
1551
1552 * ports.c (scm_set_port_column_x): Fix docstring so that it
1553 mentions set-port-line! rather than set-port-column! twice.
1554
1555 * guardians.c (scm_make_guardian): Remove spurious . from doc string.
1556
5d3e2388
DH
15572000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1558
1559 * Makefile.am: Added all necessary environments.* files.
1560
1561 * init.c: Include environments.h.
1562
1563 (scm_boot_guile_1): Initialize the environments.
1564
1565 * environments.[ch]: Added. Most of the credit for these files
1566 goes to Jost Boekemeier.
1567
28819f62
MD
15682000-08-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1569
167d89cf 1570 * procprop.c: #include "libguile/smob.h"; handle applicable smobs.
28819f62 1571
14fb1c83
KN
15722000-08-24 Keisuke Nishida <kxn30@po.cwru.edu>
1573
1574 * smob.h (scm_smob_descriptor): Added `apply' and `gsubr_type'.
1575 * smob.c (scm_make_smob_type): Initialize `apply' and `gsubr_type'.
1576 (scm_set_smob_apply): New function.
1577 (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
1578 scm_smob_apply_3): New functions.
1579 * eval.c (SCM_CEVAL, SCM_APPLY): Added dispatch for applicable smobs.
28819f62 1580 * procs.c (scm_procedure_p): Check applicable smobs.
14fb1c83 1581
665fc4e6
MD
15822000-08-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1583
1584 * Makefile.am (BUILT_SOURCES): Experimentally added scmconfig.h
1585 also here. (This is supposed to make sure that scmconfig.h is
1586 built before all sources in order to prevent that everything has
1587 to be rebuilt again. Hope it works---I'm just guessing. :)
1588
1589 * fluids.c (scm_fluid_set_x): Return SCM_UNSPECIFIED.
1590
38525772
MD
15912000-08-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1592
1593 * gc.c (scm_gc_mark): Don't use GUILE_DEBUG flag to compile in
1594 extra tests. (GUILE_DEBUG is only supposed to make extra
1595 debugging functions available.)
1596
ca55e62c
ML
15972000-08-21 Michael Livshin <mlivshin@bigfoot.com>
1598
1599 * gc.h (SCM_GC_CARD_N_CELLS): change to be a nice non-confusing
1600 constant.
1601
005b5978
ML
16022000-08-19 Michael Livshin <mlivshin@bigfoot.com>
1603
d8d4d493
ML
1604 * gc.c (scm_gc_sweep): added a `continue' statement that have
1605 fallen through the cracks in the merge. thanks to Shuji Narazaki!
1606
005b5978
ML
1607 * gc.h: removed some stuff that broke compilation for people and
1608 wasn't actually needed anyway.
1609
cdbc7418
NJ
16102000-08-18 Neil Jerram <neil@ossau.uklinux.net>
1611
55892d87
NJ
1612 * filesys.c (scm_fcntl): Docstring fix - missing newlines inserted.
1613
d46e4713
NJ
1614 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_sethost,
1615 scm_setnet, setproto, setserv): Argument names changed to match
1616 doc string.
005b5978 1617
d46e4713
NJ
1618 * feature.c (scm_program_arguments): New docstring.
1619
1620 * simpos.c (scm_getenv): Reflow docstring.
1621
cdbc7418
NJ
1622 * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Add texinfo markup to
1623 docstrings.
005b5978 1624
cdbc7418
NJ
1625 * chars.c (scm_char*): Docstring fixes - texinfo markup.
1626
16272000-08-18 Neil Jerram <neil@ossau.uklinux.net>
1628
1629 * boolean.c (scm_not, scm_boolean_p): Docstring fixes - add
1630 texinfo markup and remove trailing newlines.
1631
dc16aa36
ML
16322000-08-17 Michael Livshin <mlivshin@bigfoot.com>
1633
1634 this changes the Guile GC to use cards (aka "chunklets").
005b5978 1635 (most of the ideas and some of the code are by Greg Harvey, though
bbe6d8db
ML
1636 the code is probably unrecognizable now. the original chunklet
1637 proposal, way back, is by Dale Jordan).
dc16aa36
ML
1638
1639 * tags.h: (SCM_GCTYPE16, SCM_GCCDR, SCM_GC[8]MARKP,
1640 SCM_SETGC[8]MARK, SCM_CLRGC[8]MARK): moved from here into gc.h.
1641 some (most) of these are probably going to be deprecated.
1642
1643 * gc.h (SCM_MARKEDP): simplified, there are no different mark bit
1644 locations anymore.
1645 (SCM_GC_CARD_*, SCM_C_BVEC_*): lots of new macros to deal with
1646 cards and bvecs (bit-vectors).
1647
1648 * gc.c: (scm_default_init_heap_size_*): defined to take cards into
1649 account, but keeping more or less the same values as previously.
1650 added some simple helper macros.
1651 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK): defined to take cards
1652 into account.
1653 (BVEC_*, scm_mark_space_t, current_mark_space, mark_space_ptr,
1654 current_mark_space_offset, mark_space_head, get_bvec,
1655 clear_mark_space): new functions and supporting variables, types
1656 and macros that implement mark space management.
1657 (scm_igc): clear the mark space (all of it) before beginning the
1658 mark phase.
1659 (scm_gc_mark): changed the tests for rogue cells, much simplified
1660 throughout (no different mark bit locations to worry about now).
1661 (scm_mark_locations): don't consider card header cells.
1662 (scm_cellp): ditto.
1663 (scm_gc_sweep): simplified.
1664 (init_heap_seg): changed to take cards into account.
1665
83238bc1
ML
16662000-08-16 Michael Livshin <mlivshin@bigfoot.com>
1667
1668 * stime.c (scm_c_get_internal_run_time): new function, same as
1669 scm_get_internal_run_time but returns a long. it's used by the GC
1670 for timekeeping, since with scm_get_internal_run_time there is a
1671 (extremely theoretical) possibility of consing.
1672 (scm_get_internal_run_time): redefined in terms of
1673 scm_c_get_internal_run_time.
1674
1675 * stime.h: added prototype for scm_c_get_internal_run_time.
1676
1677 * gc.c (scm_gc_stats): add more obscure stats, such as: mark time,
1678 sweep time, total marked cells, total swept cells, and number of
1679 times GC was invoked.
1680 (gc_start_stats): renamed from scm_gc_start, made static, taught
1681 to init the new stats.
1682 (gc_end_stats): renamed from scm_gc_end, made static, taught to
1683 calculate the new stats.
1684 (scm_igc): don't call gc_start_stats unless we are sure that we
1685 are indeed going to collect. also, added some timekeeping between
1686 the mark and sweep phases.
1687 (scm_gc_sweep): count number of cells we sweep as we go.
1688
1689 * gc.h: removed prototypes for scm_gc_{start,end}.
1690
a94da0e0
MD
16912000-08-13 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1692
1693 * alist.c (scm_assq, scm_assv, scm_assoc): Report argument type
1694 error for the alist rather than the sublist where the type
1695 mismatch is discovered.
1696
2a2a730b
NJ
16972000-08-13 Neil Jerram <neil@ossau.uklinux.net>
1698
1699 * root.c (s_scm_call_with_dynamic_root): Docstring fix - rogue
1700 newline.
83238bc1 1701
f0a7af1a
NJ
17022000-08-12 Neil Jerram <neil@ossau.uklinux.net>
1703
2a2a730b
NJ
1704 * numbers.c (scm_ash): Docstring fix - missing newlines.
1705
1706 * ports.c (scm_port_filename): Docstring fix - missing newline.
1707
1708 * strports.c (scm_eval_string): Docstring fix - missing newline.
1709
ee826bae
NJ
1710 * vports.c (s_scm_make_soft_port): Docstring updated so that
1711 example is correct.
1712
1670bef9
NJ
1713 * strop.c: Docstring fixes - quotation marks and backslashes
1714 needed quoting.
1715
f0a7af1a
NJ
1716 * numbers.c (s_scm_logand): Docstring fix - "@end lisp" inserted.
1717
872e0c72
NJ
17182000-08-11 Neil Jerram <neil@ossau.uklinux.net>
1719
1720 * macros.c: Remove surplus newlines from end of docstrings.
1721
1722 * list.c (scm_list_tail): Add @deffnx line to docstring for
1723 list-cdr-ref.
83238bc1 1724
872e0c72
NJ
1725 * keywords.c: Docstring improvements in conjunction with new
1726 reference manual doc on keywords.
1727
1728 * error.c (scm_error_scm): Fix texinfo syntax error in
1729 docstring. (@code(~S) should be @code{~S}.)
1730
1731 * dynl.c: Remove surplus newlines from end of docstrings.
1732
3a33a9b1
MD
17332000-08-11 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1734
1735 * eval.c (scm_eval): Backward incompatible change: Now takes an
1736 environment specifier as second arg. `eval' hereby becomes R5RS
1737 compatible.
1738 (scm_i_eval_x, scm_i_eval): New functions (replace
1739 scm_eval_3).
1740 (scm_eval2, scm_eval_3): Deprecated.
1741 (scm_top_level_lookup_closure_var): Deprecated.
1742
1743 * eval.h: #include "struct.h".
1744
1745 * evalext.c (scm_definedp): Have to work before module system is
1746 booted.
1747
1748 * modules.h (SCM_MODULEP, SCM_VALIDATE_MODULE,
1749 SCM_MODULE_OBARRAY, SCM_MODULE_USES, SCM_MODULE_BINDER,
1750 SCM_MODULE_EVAL_CLOSURE): New macros.
1751 (scm_module_index_obarray, scm_module_index_uses,
1752 scm_module_index_binder, scm_module_index_eval_closure): New
1753 constants; #include "validate.h".
83238bc1 1754
3a33a9b1
MD
1755 * modules.c (scm_module_tag, scm_module_system_booted_p): New
1756 globals.
1757 (scm_post_boot_init_modules): Initialize scm_module_tag.
1758 (scm_interaction_environment): New primitive.
1759
1760 * symbols.c (scm_can_use_top_level_lookup_closure_var): Removed.
1761 #include "modules.h".
1762
1763 * strports.c (scm_eval_string): Evaluate in
1764 scm_interaction_environment ().
1765
1766 * script.c (scm_shell): Pass scm_the_root_module () as second arg
1767 to new scm_eval_x.
1768
1769 * load.c (load): Use `scm_selected_module' to compute second arg
1770 to new scm_i_eval_x; Don't call it if module system hasn't booted.
1771 (scm_read_and_eval_x): Deprecated.
1772 #include "modules.h".
1773
1774 * debug.c (scm_local_eval): Use scm_i_eval and scm_i_eval_x.
1775 (scm_start_stack): Use scm_i_eval.
1776
1777 * strports.c: #include "modules.h".
1807c7b8
MD
1778
1779 * print.c (scm_simple_format): Be case-insensitive for ~A and ~S
1780 directives.
1781
1a2f1b90
MD
17822000-08-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1783
1784 The following changes are intended to ensure that struct instances
1785 are freed before their vtables. It's optimized for the most
1786 common case, which is freeing of struct instances.
1787
1788 * gc.c (scm_gc_mark, scm_gc_sweep): Remove vcell = 1 magic.
1789 (scm_structs_to_free): New variable.
1790 (scm_gc_sweep): Hook up structs to free on the scm_structs_to_free
1791 chain.
1792
1793 * struct.h (SCM_STRUCT_GC_CHAIN, SCM_SET_STRUCT_GC_CHAIN): New
1794 macros.
1795 (scm_structs_to_free, scm_struct_prehistory): Declare.
1796
1797 * struct.c (scm_make_struct, scm_make_vtable_vtable): Structs
1798 handles are now double cells; Initialize SCM_STRUCT_GC_CHAIN to
1799 0.
1800 (scm_struct_gc_init, scm_free_structs): New GC C hooks.
1801 (scm_struct_prehistory): Install them.
1802
1803 * init.c (scm_boot_guile_1): Call scm_struct_prehistory.
1804
b054684d
MV
18052000-08-06 Marius Vollmer <mvo@zagadka.ping.de>
1806
1807 * read.c (scm_flush_ws): Include filename in error message when it
1808 is not `#f'.
1809
7ca38734
MV
18102000-08-05 Marius Vollmer <mvo@zagadka.ping.de>
1811
1812 * iselect.c: Include <unistd.h>. Thanks to Bertrand Petit!
1813
b62cc1c2
MD
18142000-08-02 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1815
89e941f1
MD
1816 * struct.c (scm_make_struct_layout, scm_make_struct,
1817 scm_make_vtable_vtable): Updated documentation.
1818
b62cc1c2
MD
1819 * print.c (scm_simple_format): Bugfix: Coerce port before using
1820 it.
1821
3bc0c6df
GH
18222000-07-31 Gary Houston <ghouston@arglist.com>
1823
cdaf0a20 1824 * net_db.c: declare h_errno only if HAVE_H_ERRNO is not defined
3bc0c6df
GH
1825 (thanks to Richard Kim for the bug report).
1826
3ccd1860
MV
18272000-07-30 Marius Vollmer <mvo@zagadka.ping.de>
1828
1829 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1830 scm_assoc_remove_x): Use scm_delq1_x instead of scm_delq_x, since
1831 using the latter is pointless.
1832
11102992
DH
18332000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1834
1835 * gc.c (scm_gc_sweep): Renamed local variable from 'free' to
1836 'free_struct_data' to avoid confusion with stdlib's 'free'.
1837
a75923bb
DH
18382000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1839
1840 * vectors.c (scm_make_vector): Fix the initialization order of
1841 the vector such that the type cell is initialized last.
1842
f7620510
DH
18432000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1844
1845 * struct.[ch] (scm_struct_init): Made static. Fixed not to rely
1846 on the struct cell to be fully initialized.
1847
1848 * struct.c (scm_make_struct, scm_make_vtable_vtable): Fix the
1849 initialization order of the struct such that the type cell is
1850 initialized last.
1851
17dd060d
MV
18522000-07-25 Marius Vollmer <mvo@zagadka.ping.de>
1853
1854 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1855 scm_assoc_remove_x): Remove only the first cell with a matching
1856 key, not all.
1857
b73bde31
MV
18582000-07-24 Marius Vollmer <mvo@zagadka.ping.de>
1859
1860 * stime.c (scm_strftime): Recognize a return value of zero from
1861 strftime as buffer overflow and take care to detect a valid zero
1862 length result regardless. Thanks to David Barts!
1863
e85da7d9
MV
18642000-07-23 Marius Vollmer <mvo@zagadka.ping.de>
1865
1866 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1867 scm_assoc_remove_x): Remove all cells whose key is eq, eqv, or
1868 equal (respectively) to the argument key, not all cells that are
1869 eq, eqv, or equal to the first cell with the argument key. Thanks
1870 to Neil Jerram!
83238bc1 1871
78a3503e
DH
18722000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1873
1874 * gc.h (SCM_FREE_CELL_CDR, SCM_SET_FREE_CELL_CDR), hooks.c
1875 (make_hook), modules.c (OBARRAY, USES, BINDER): Pack and unpack
1876 SCM values appropriately.
1877
1878 * modules.c (scm_standard_eval_closure): Don't pass an inum to
1879 scm_makcclo, but rather a long value.
1880
62850ef3
DH
18812000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1882
1883 read.c (scm_lreadrecparen), srcprop.c (scm_set_source_property_x):
1884 SCM_SETCDR and SCM_WHASHSET macros don't deliver a return value.
1885 Thanks to Han-Wen Nienhuys for the bug report.
1886
cc4feeca
DH
18872000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1888
1889 * root.[ch] (scm_call_catching_errors): Deprecated.
1890
1891 * root.c (scm_init_root): Initialize the root smob type using the
1892 standard initialization functions.
1893
007e7c35
MV
18942000-07-17 Marius Vollmer <mvo@zagadka.ping.de>
1895
1896 * eval.c (unmemocopy): Don't rely on V being a list of at least
1897 one element. Thanks to Bill Schottstaedt!
1898
9d47a1e6
ML
18992000-07-15 Michael Livshin <mlivshin@bigfoot.com>
1900
1901 * gc.c (scm_done_free): new.
1902 expanded comments about scm_done_malloc.
1903
1904 * gc.h: added prototype for scm_done_free
1905
406c7d90
DH
19062000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1907
1908 * gc.h (scm_take_stdin): Removed.
1909
1910 * gc.h (SCM_VALIDATE_CELL): Delegate cell checks to function
1911 scm_assert_cell_valid to allow extensions to the checking
1912 functionality without need to recompile everything.
1913
1914 * gc.[ch] (scm_assert_cell_valid, scm_set_debug_cell_accesses_x):
1915 Added as conditionally compiled functions for the case that
1916 SCM_DEBUG_CELL_ACCESSES is enabled.
1917
1918 * gc.c (debug_cells_p): Added to indicate whether compile-time
1919 included cell access debugging is run-time enabled.
1920
1921 * gc.[ch] (scm_gc_running_p): Added to indicate that scm_igc is
1922 being executed. Intended to be used instead of scm_gc_heap_lock
1923 at most places.
1924
1925 * error.c (scm_error), gdbint.c (SCM_GC_P): Use scm_gc_running_p
1926 instead of scm_gc_heap_lock.
1927
1928 * gc.c (scm_igc): Set scm_gc_running_p to true while running.
1929
1930 * gc.c (scm_mark_locations): Don't mark free cells.
1931
1932 * weaks.c (scm_scan_weak_vectors): Use SCM_FREE_CELL_P instead of
1933 SCM_FREEP.
1934
c4da09e2
DH
19352000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1936
1937 * gc.c (scm_mark_locations): Minimized some variable scopes and
1938 simplified the code a bit.
1939
3f5d82cd
DH
19402000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1941
1942 * gc.h (SCM_SET_FREE_CELL_TYPE, SCM_SET_FREE_CELL_CDR,
1943 SCM_FREE_CELL_P, SCM_FREE_CELL_CDR): Added since free cells
1944 should not be accessed via SCM_C[AD]R. Further, using dedicated
1945 macros to access free cells allows all other cell accessing macros
1946 to treat acesses to free cells as errors, thus enabling better
1947 error checks for cell accesses. SCM_FREE_CELL_P is supposed to
1948 replace SCM_FREEP some time.
1949
1950 * gc.h (SCM_NEWCELL, SCM_NEWCELL2), gc.c (map_free_list,
1951 free_list_length, scm_check_freelist, scm_debug_newcell,
1952 scm_debug_newcell2, freelist_length, scm_gc_for_newcell,
1953 scm_gc_mark, scm_gc_sweep, init_heap_seg): Only use the dedicated
1954 cell accessors when accessing free cells.
1955
f706a58b
DH
19562000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1957
1958 * gc.h (SCM_CELL_WORD, SCM_CELL_OBJECT): Treat the referenced
1959 object as const in order to make the compiler warn about code like
1960 SCM_CELL_WORD (x, n) = y. Instead, SCM_SET_CELL_WORD (x, n, y)
1961 should be used.
1962
1963 (SCM_CELL_WORD_LOC, SCM_CARLOC, SCM_CDRLOC): Return the address
1964 as an address to a non-const object, since these macros are used
1965 to allow direct write access to objects.
1966
cbaadf02
DH
19672000-07-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1968
1969 * hashtab.c (scm_hash_fn_create_handle_x): Signal an error if the
1970 given hash table has no slots.
1971
a6c12a04
DH
19722000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1973
b6efc951
DH
1974 * gc.c (policy_on_error): Added in order to allow alloc_some_heap
1975 to react to malloc failures in a context dependent way.
1976
1977 (scm_check_freelist): No need to flush streams before abort().
1978
1979 (scm_gc_for_newcell): Try to allocate new memory in three phases:
1980 grow heap if preferred, if still no memory available collect
1981 garbage, if still no memory available grow heap.
1982
1983 (heap_segment_table_size): Added to always reflect the actual
1984 size of the heap segment table, because scm_n_heap_segs may differ
1985 from the heap segment table size.
1986
1987 (alloc_some_heap): In case of malloc failure, react according to
1988 the new policy_on_error parameter (either return to caller or
1989 abort immediately). Further, keep heap_segment_table_size up to
1990 date.
1991
1992 (scm_init_storage): Initialize heap_segment_table_size.
1993
19942000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1995
1996 * gh.h: Don't include <stdio.h>. Thanks to Han-Wen Nienhuys for
a6c12a04
DH
1997 the hint.
1998
b63a956d
DH
19992000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2000
2001 * __scm.h (SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
2002 SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
2003 SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
2004 SCM_ORD_SIG, SCM_NUM_SIGS): Re-introduce these as deprecated
2005 symbols.
2006
2007 * error.c (scm_wta): Re-introduce dispatching for SCM_OUTOFRANGE
2008 and SCM_NALLOC, but as a deprecated feature.
2009
a75a7aff
MD
20102000-06-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2011
38ec519c
MD
2012 * debug.c: Added #include fluids.h.
2013
a75a7aff
MD
2014 * numbers.c (scm_gr_p, scm_leq_p, scm_geq_p): Turned into
2015 primitive generics. (Thanks to Nicolas Neuss.)
2016
c7387918
DH
20172000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2018
2019 * gc.c (alloc_some_heap): Use scm_memory_error to indicate a
2020 failed attempt to get additional memory from the system.
2021
2022 (scm_gc_for_newcell): Changed the control structure to make the
2023 behaviour explicit for the case that gc is not able to free any
2024 cells.
2025
685c0d71
DH
20262000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2027
2028 * __scm.h (SCM_OUTOFRANGE): Removed.
2029
2030 * error.c (scm_wta): Removed sick dispatch code for range
2031 errors. (More sick dispatches still to be removed.)
2032
2033 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
2034 scm_hash_fn_remove_x): Eliminate redundant test for if unsigned
2035 value is non-negative. Use scm_out_of_range to signal range
2036 errors.
2037
2038 * hooks.c (make_hook), unif.c (scm_aind): Use scm_out_of_range to
2039 signal range errors.
2040
2041 * list.c (scm_list_ref, scm_list_set_x, scm_list_cdr_set_x): Fix
2042 error reporting (now uses original input parameter to report wrong
2043 type argument errors). Use SCM_OUT_OF_RANGE to report range
2044 errors and SCM_WRONG_TYPE_ARG to report type errors.
2045
2046 * strings.c (scm_substring): Make range checks for negative
2047 values explicit (former behaviour relied on an implicit
2048 conversion from signed to unsigned). Don't use SCM_ASSERT for
2049 range checks.
2050
2051 * unif.c (scm_aind, scm_transpose_array, scm_bit_set_star_x,
2052 scm_bit_count_star): Use scm_out_of_range to signal range
2053 errors.
2054
2055 * unif.c (scm_transpose_array, scm_bit_position), vectors.c
2056 (scm_vector_ref, scm_vector_set_x, scm_vector_move_left_x,
2057 scm_vector_move_right_x): Use SCM_ASSERT_RANGE to check ranges.
2058
fdf25853
DH
20592000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2060
2061 * validate.h (SCM_VALIDATE_INUM_MIN_COPY,
2062 SCM_VALIDATE_INUM_MIN_DEF_COPY, SCM_VALIDATE_INUM_RANGE_COPY):
2063 Perform all range checks based on the input value. The former way
2064 of using the value that is assigned to the target variable fails
2065 if the assignment to the target variable itself can change the
2066 value because of type conversion.
2067
2068 (SCM_ASSERT_RANGE): Use scm_out_of_range to signal range errors.
2069
627df128
MD
20702000-06-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2071
2072 * gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
2073 doesn't yield any new cells. In theory this could happen if all
2074 cells allocated with NEWCELL are either in use or conservatively
2075 marked and all cluster spine cells are conservatively marked.
2076 (Thanks to Dirk.)
2077
2500356c
DH
20782000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2079
2080 * __scm.h (SCM_NALLOC): Removed.
2081
2082 * error.c (scm_wta): Removed sick dispatch code for memory
2083 errors. (More sick dispatches still to be removed.)
2084
2085 * numbers.c (scm_mkbig, scm_adjbig), ports.c (scm_make_port_type),
2086 random.c (scm_i_copy_rstate, scm_c_make_rstate), smob.c
2087 (scm_make_smob_type), srcprop.c (scm_make_srcprops), vectors.c
2088 (scm_vector_set_length_x): Now using scm_memory_error to signal
2089 memory errors.
2090
9b166f12
DH
20912000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2092
2093 * __scm.h: Removed some commented code and fixed some comments.
2094
2095 (SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL,
2096 SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL,
2097 SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS): Removed.
2098
2099 * async.c: Removed some commented code.
2100
acf4331f
DH
21012000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2102
2103 * gc.c (scm_gc_mark, scm_gc_sweep, scm_must_malloc,
2104 scm_must_realloc, scm_must_free, alloc_some_heap): Use the
2105 appropriate error signalling function.
2106
fc3d7778
DH
21072000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2108
2109 * root.h (scm_first_type): Removed.
2110
21112000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
0a7a7445
DH
2112
2113 * gc.c (MIN_GC_YIELD): Removed.
2114
150c200b
ML
21152000-06-28 Michael Livshin <mlivshin@bigfoot.com>
2116
2117 * gc.c (scm_gc_for_newcell): don't try to do GC if it's blocked,
2118 allocate instead.
2119
939794ce
DH
21202000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2121
2122 * async.c (scm_gc_async, scm_gc_vcell, scm_sys_gc_async_thunk):
2123 Moved to gc.c.
2124
2125 (scm_init_async): Moved initialization for scm_gc_async and
2126 scm_gc_vcell to gc.c. Moved initialization of scm_asyncs here
2127 from gc.c.
2128
2129 * async.h (scm_gc_async): Not globally visible any more.
2130
2131 * gc.c (scm_gc_stats): Made callable even from within regions
2132 where gc is blocked.
2133
2134 (scm_gc_end): Eliminate the hardcoding of the marking of the
2135 scm_gc_async from the gc core.
2136
2137 (scm_init_storage): Don't initialize the scm_asyncs list here.
2138 This is now done in asyncs.c.
2139
2140 (scm_gc_vcell): Moved here from async.c.
2141
2142 (gc_async): Renamed from scm_gc_async, moved here from async.c
2143 and made static.
2144
2145 (gc_async_thunk): Renamed from scm_sys_gc_async_thunk and moved
2146 here from async.c.
2147
2148 (mark_gc_async): New hook function for scm_after_gc_c_hook.
2149
2150 (scm_init_gc): Added initialization of scm_gc_vcell and
2151 gc_async. Further, add mark_gc_async to scm_after_gc_c_hook.
2152
2153 * init.c (scm_boot_guile_1): scm_init_gc requires asyncs to be
2154 initialized.
2155
12acbbef
DH
21562000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2157
2158 * gc.c (scm_igc): Removed commented code that once was intended
2159 to unprotect struct types with no instances.
2160
2161 * root.h (scm_type_obj_list): Removed.
2162
73ea78af
DH
21632000-06-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
2164
2165 * async.c (scm_init_async): Switch to standard way of smob
2166 initialization.
2167
7f40b48a
ML
21682000-06-21 Michael Livshin <mlivshin@bigfoot.com>
2169
2170 * guile-doc-snarf.in: use cut instead of sed, that's much much
83238bc1
ML
2171 faster. also, don't call basename more than needed. and, to gain
2172 a couple of microseconds more, don't call cat needlessly. (thanks
7f40b48a
ML
2173 to Brad Knotwell).
2174
3c6d9d71
DH
21752000-06-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2176
2177 * guile-snarf.awk.in, guile-snarf.in, snarf.h: Rename SCM__I to
2178 SCM_SNARF_INIT_START, SCM__D to SCM_SNARF_DOC_START, SCM__S to
2179 SCM_SNARF_DOCSTRING_START and SCM__E to SCM_SNARF_DOCSTRING_END.
2180
2b6e0d2b
MD
21812000-06-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2182
2183 * eval.c, eval.h (scm_top_level_lookup_closure_var): Added.
2184 #include "libguile/fluids.h".
2185
2186 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): New macro which replaces
2187 SCM_CDR (scm_top_level_lookup_closure_var) everywhere.
2188
2189 * root.h (scm_top_level_lookup_closure_var,
2190 scm_system_transformer): Removed. (It's no sense in having the
2191 *variable* be a "fluid".)
2192
2193 * root.c (mark_root): Removed marking of
2194 s->top_level_lookup_closure_var and s->system_transformer.
2195
2196 * modules.c (scm_selected_module): the_module is now a fluid.
2197
5bc9cbd2
MD
21982000-06-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2199
2200 * gc.h, tags.h: Be kind to compilers which must see hash signs in
2201 column 0. (Thanks to Ian Grant.)
2202
2203 * numbers.h: Put #ifdef HAVE_LONG_LONGS around declarations using
2204 the long_long type. (Thanks to Bernard Urban.)
2205
b5074b23
MD
22062000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2207
2208 * gc.c, gc.h (scm_default_init_heap_size_1,
2209 scm_default_min_yield_1, scm_default_init_heap_size_2,
2210 scm_default_min_yield_2, scm_default_max_segment_size): New global
2211 variables. Can be customized by the application before booting
2212 Guile. (We might want to be able to control these parameters
2213 dynamically through the "options interface" in the future, but
2214 note that that is additional functionality. Here we're giving
2215 default values which the environment variables can override.)
2216
2217 * list.c (scm_cons_star): Updated comment.
2218
2219 * smob.h: Changed comments for scm_make_smob_type and
2220 scm_make_smob_type_mfpe, warning that the latter might be
2221 deprecated in a future release.
2222
0a9e521f
MD
22232000-06-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2224
2225 * list.[ch] (scm_cons_star/cons*): Renamed from
2226 scm_list_star/list*.
2227
2228 * list.[ch] (scm_list_star/list*): Provided as a deprecated alias
2229 for scm_cons_star/cons*.
2230
2231 * gc.c (scm_protect_object): Updated comment.
2232
2233 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX): Removed.
2234
2235 * tags.h (SCM_UNPACK_CAR, SCM_NDOUBLE_CELLP): Removed.
2236
264871aa
MD
22372000-06-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2238
2239 * init.c, init.h (scm_initialized_p): Renamed from `initialized'
2240 and made global.
2241
2242 * gdbint.c (gdb_print): Print warning instead of calling scm_write
2243 if Guile isn't yet initialized.
2244
2245 * print.c (scm_current_pstate, scm_make_print_state): Simplified
2246 tests, using the assumption that Guile has been initialized.
2247
3785f317
GB
2248Sun Jun 18 14:45:21 2000 Greg J. Badros <gjb@cs.washington.edu>
2249
2250 * print.c (s_scm_current_pstate): Do not segfault when the
2251 print_state_pool is unitialized in `current-pstate', and better
2252 verify its state before altering it in scm_make_print_state().
2253
6732de1b
ML
22542000-06-18 Michael Livshin <mlivshin@bigfoot.com>
2255
2256 * scmsigs.c (s_scm_sigaction): guard the SIGIOT case with an
2257 #ifdef -- it's missing on at least one platform. (thanks to
2258 Jan Nieuwenhuizen).
2259
79494f15
DH
22602000-06-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2261
2262 * list.c (list*): Added documentation from common-list.scm.
2263
6a199940
DH
22642000-06-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2265
2266 * gc.c (scm_unprotect_object): The reference count is guaranteed
2267 to be a positive number.
2268
3243bcc0
MD
22692000-06-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2270
2271 * eval.c: Updated comment above scm_map.
2272
26c9c3ce
MD
22732000-06-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2274
2275 * gc.c (scm_protect_object): Avoid looking up the object handle
2276 twice.
2277 (scm_unprotect_object): Abort if scm_unprotect_object is called on
2278 an unprotected object.
2279
2dd6a83a
ML
22802000-06-14 Michael Livshin <mlivshin@bigfoot.com>
2281
2282 * gc.c (scm_unprotect_object): fix a nasty typo bug (thanks to
2283 Dirk Herrmann).
2284
97ebbbca
MD
22852000-06-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2286
43fbd20f
MD
2287 * socket.c (scm_getsockopt): Changed type for `optlen' from int to
2288 size_t.
2289 (scm_accept, scm_getsockname, scm_getpeername, scm_recvfrom):
2290 Ditto for `tmp_size'.
2291 (scm_addr_buffer_size): Changed type from int to size_t.
2292
2293 * random.c: #include <string.h>. (Needed by memcpy.)
2294
97ebbbca
MD
2295 * guile-snarf.awk.in: Replace the dot_doc_file arg with "-",
2296 indicating stdin, instead of "" and don't reset ARGC. This is a
2297 workaround for `nawk' in AIX 4.3 on RS6000 but, as far as I know,
2298 it is correct, and perhaps even better.
2299
14d72d48
GH
23002000-06-14 Gary Houston <ghouston@arglist.com>
2301
2302 * scmsigs.c (scm_init_scmsigs): if HAVE_SIGINTERRUPT is not
2303 defined, add SA_RESTART to the sigaction flags correctly
2304 (thanks to Dale P. Smith).
2305
d99783cb
MD
23062000-06-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2307
010d1e9d
MD
2308 * strings.c: #include <string.h>. (Thanks to Bill Schottstaedt.)
2309
2310 * net_db.c (scm_resolv_error): Only use macro NETDB_INTERNAL if
2311 defined. It isn't on sgi irix 5.3. (Thanks to Bill Schottstaedt.)
2312
d99783cb
MD
2313 * Makefile.am (.c.doc): Pipe output (the .x contents) to /dev/null.
2314
c47e8cc1
MD
23152000-06-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2316
e36a0870
MD
2317 * fports.c (scm_setvbuf): Use `free' instead of `scm_must_free'
2318 since read and write buffers are allocated by `malloc'.
2319
c47e8cc1
MD
2320 * Makefile.am: Removed old test code.
2321
2322 * gh_test_c.c, gh_test_repl.c: Removed.
2323
341f78c9
MD
23242000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2325
a8861fa0
MD
2326 * iselect.c (SCM_NLONGBITS): Add workaround for the Sun 4.2
2327 compiler.
2328
2329 * inet_aton.c (inet_aton): Cast init value for `cp'.
2330
2331 * ramap.c (s_scm_array_fill_x): Cast `ve' properly in case
2332 `scm_tc7_uvect'.
2333
2334 * symbols.c (scm_intern_obarray_soft,
2335 scm_sysintern0_no_module_lookup): Cast `name' to unsigned char ptr
2336 in calls to scm_strhash.
2337
2338 * strports.c (st_resize_port): Substituted SCM_UCHARS for
2339 SCM_CHARS.
2340 (st_write): Cast argument to strncpy to char ptr.
2341 (scm_mkstrport): Substituted SCM_ROUCHARS for SCM_ROCHARS.
2342 (scm_strport_to_string): Cast argument to scm_makfromstr to char
2343 ptr.
2344
2345 * ports.c (scm_ungetc): Cast value to unsigned char ptr before
2346 storing in putback_buf.
2347 (scm_unread_string): Substituted SCM_ROCHARS for SCM_ROUCHARS.
2348
2349 * ioext.c (s_scm_read_line): Cast result of call to
2350 scm_do_read_line to unsigned char ptr.
2351
d230c130
MD
2352 * gdbint.c (SEND_STRING): Cast argument to char pointer.
2353
2354 * fports.c (fport_flush): Declare `ptr' as unsigned char (was
2355 char).
2356
9c8dca4e
MD
2357 * Makefile.am (DOT_DOC_FILES): List doc-files explicitly. (We
2358 shouldn't use Make rules which aren't supported by most Make
2359 programs.)
d230c130
MD
2360 (OMIT_DEPENDENCIES): Defined to "libguile.h ltdl.h". (We don't
2361 want these dependencies recorded, since they would get bogus
2362 relative paths; libguile.h is only used in gh.h and guile.c.)
9c8dca4e
MD
2363 (EXTRA_DOT_X_FILES, EXTRA_DOT_DOC_FILES): New variables.
2364 (guile-procedures.txt): Depend on EXTRA_DOT_DOC_FILES.
2365 (modinclude_HEADERS): Removed kw.h.
2366
69fc343a
MD
2367 * guile-snarf.in: Change regexp "^SCM__I" --> "^ *SCM__I".
2368 (The preprocessor might insert spaces before the identifier.)
2369
341f78c9
MD
2370 * snarf.h (SCM_SNARF_HERE, SCM_SNARF_INIT, SCM_SNARF_DOCS):
2371 Renamed from SCM_HERE, SCM_INIT, SCM_DOCS.
2372
2373 * smob.h (scm_smobfuns): Removed deprecated type.
2374
2375 * smob.c, smob.h (scm_newsmob): Removed deprecated function.
2376 (Replaced by `scm_make_smob_type'.)
2377
2378 * keywords.c (scm_tc16_kw): Removed deprecated type.
2379 (Replaced by scm_tc16_keyword.)
2380
341f78c9
MD
2381 * kw.h: Removed deprecated header file.
2382
2383 * evalext.c (serial-map): Removed deprected alias for scm_map.
2384 (Has been replaced by `map-in-order'.)
2385
2386 * ramap.c (serial-array-copy!, serial-array-map!): Removed
2387 depracted aliases. (Replaced by `array-copy-in-order!' and
2388 `array-map-in-order'.)
2389
4f60fa74
MD
23902000-06-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2391
2392 * gc.h (SCM_VALIDATE_CELL): Rewritten.
2393 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
2394 SCM_SET_CELL_OBJECT): Use new version of SCM_VALIDATE_CELL.
2395 (Thanks to Han-Wen Nienhuys.)
2396
adb2c53b
ML
23972000-06-10 Michael Livshin <mlivshin@bigfoot.com>
2398
2399 * guile-doc-snarf.in: don't pipe the CPP output right into sed --
2400 write it to the temp file first and check the CPP return code.
2401 (I introduced this bug earlier, and this probably caused people
2402 with non-GNU C preprocessors to get empty *.x files and not to
2403 have the build fail right away...).
2404
2405 * scmsigs.c (s_scm_sigaction): guard the SIGSYS case with an ifdef
2406 -- at least my libc5-based Linux system doesn't define SIGSYS.
2407
0abbd8f4
MD
24082000-06-08 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2409
aa169af8
MD
2410 * snarf.h, guile-snarf.awk.in, guile-snarf.in: Replaced snarf
2411 markers with identifiers (SCM__I, SCM__D, SCM__S, SCM__E).
2412 (Thanks to Bernard Urban.)
0abbd8f4 2413
a6596faa
MD
24142000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2415
2416 * modules.c (scm_system_module_env_p): Fixed detection of system
2417 modules.
2418
c29ee3e5
MV
24192000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
2420
2421 * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
2422 `program error signals' because they can't currently be handled by
2423 Scheme code.
2424
2d9cdf4e
DH
24252000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2426
2427 * procs.h (SCM_SET_SUBRF): Added.
2428
2429 * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
2430 SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
2431 report.
2432
4b479d98
DH
24332000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2434
2435 * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
2436 value.
2437
2438 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
2439 scm_merge_list_step): Don't take the address of SCM_CAR. Use
2440 SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
2441
9a09deb1
DH
24422000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2443
2444 * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
2445 replacement for !SCM_FALSEP.
2446
2447 * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
2448 (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
2449 (scm_primitive_load), print.c (scm_simple_format), procs.c
2450 (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
2451 (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
2452 (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
2453 (scm_string_to_obarray_symbol), throw.c (scm_catch,
2454 scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
2455 scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
2456 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
2457 uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
2458
2c4fc472
MD
24592000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2460
542bfe1d
MD
2461 * eval.c (scm_badformalsp): New static function.
2462 (SCM_CEVAL): Check arguments for procedure-with-setter closures.
2463 (Thanks to Keisuke Nishida.)
2464
2c4fc472
MD
2465 The major reason for Guile's slow loading speed has been the fact
2466 that a chain of Scheme level procedures has been evaluated for
2467 every top-level symbol lookup during the first pass through the
2468 code.
83238bc1 2469
2c4fc472
MD
2470 The following is a kludge which I suggested four years ago, and
2471 which I've repeatedly suggested since. Personally, I've never
2472 been bothered by Guile's slow loading speed, so I thought I would
2473 let someone else do it...
2474
2475 But since the new environments will be included first in
2476 Guile-1.5, I thought it would make people happy to get the kludge
2477 into 1.4.
83238bc1 2478
2c4fc472
MD
2479 * modules.c: Added #include "libguile/vectors.h";
2480 Added #include "libguile/hashtab.h";
2481 Added #include "libguile/struct.h";
2482 Added #include "libguile/variable.h";
2483 Capture Scheme level `module-make-local-var!' to be used in the
2484 standard eval closure.
2485 (scm_standard_eval_closure): New primitive.
2486
2487 * modules.h (scm_standard_eval_closure): Declare.
2488
2489 * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
2490 instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
2491
2492 * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
2493 standard eval closures.
2494
2495 * variable.c: Code layout fixes.
2496
96372e45
MD
24972000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2498
2499 * Makefile.am: Added LIBS line to libpath which accidentally
2500 disappeared in the change of 2000-06-01.
2501 (Thanks to Dale P. Smith.)
2502
cc0bb1ef
MD
25032000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2504
6784d5c0
MD
2505 * scmsigs.c (scm_segfault): Removed. (Was probably added by
2506 mistake since it is not mentioned in ChangeLog.)
2507
cc0bb1ef
MD
2508 * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
2509 avoid compiler warnings in gcc. (Does this work for other
2510 compilers?)
2511
f8d4d8e5
MD
25122000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2513
4ecf5aa3
MD
2514 * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
2515 abort ().
2516 (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
2517 SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
2518 the address of these expressions since they use SCM_VALIDATE_CELL.
2519 (Thanks to Bernard Urban.)
2520
f8d4d8e5
MD
2521 * dynl.c: Changed #include <ltdl.h> --> #include
2522 "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
2523
b6fae158
CB
25242000-06-01 Craig Brozefsky <craig@red-bean.com>
2525
2526 * Makefile.am: libguile_la_LDFLAGS gets -version-info args
2527 from GUILE-VERSION definition of LIBGUILE version. Added to
2528 libpath.h definitions for guileversion and libguileversion which
2529 both get their values from GUILE-VERSION definition.
2530
7272f6d8
DH
25312000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2532
2533 * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
2534 file: Code using numbers should not be required to include
2535 smob.h.
2536
b2728432
DH
25372000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2538
2539 * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
2540 mit-pthreads.c, mit-pthreads.h: Deleted.
2541
2542 * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
2543 references to deleted files and fsu/mit thread support in
2544 general.
2545
f8eaf8b9
DH
25462000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2547
2548 * hooks.c (symbol_name, scm_create_hook): Restored the original
2549 behaviour of scm_create_hook. Changing it was bad as Carl
2550 R. Witty has pointed out.
2551
2552 * gc.c (scm_init_gc): We can still rely on scm_create_hook to
2553 protect the object.
2554
e11f8b42
DH
25552000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2556
2557 * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
2558 soon not be done by scm_create_hook any longer.
2559
2560 * hooks.c (make_hook, print_hook, scm_create_hook,
2561 scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
2562 SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
2563 scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
2564 longer have names. As an intermediate solution, the name
2565 predicate is emulated via object properties, but use of this
2566 feature is deprecated.
2567
2568 * hooks.h (scm_free_hook): Removed, as it is never defined.
2569
47457e8a
DH
25702000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2571
894a712b
DH
2572 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
2573 Un-deprecated since otherwise user code can't determine whether a
2574 number fits into an inum any longer. The names should be changed
2575 some time, though.
2576
2577 * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
2578
2579 * tags.h (SCM_UNPACK_CAR): Deprecated.
2580
25812000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2582
2583 * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
47457e8a
DH
2584 fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
2585 (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
83238bc1 2586 numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
47457e8a
DH
2587 Replace SCM_UNPACK_CAR appropriately. Don't access cells via
2588 SCM_{SET}?C[AD]R unless they are known to be cons cells.
2589
2590 * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
2591 init_heap_seg): Remove unused struct member variable 'valid'.
2592
f9a64404
DH
25932000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2594
2595 * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
2596 scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
2597 SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
2598 procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
2599 variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
2600 appropriately.
2601
206d3de3
DH
26022000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2603
2604 * gc.c (free_list_length), hash.c (scm_hasher), macros.c
2605 (scm_macro_type), objects.c (scm_class_of), options.c
2606 (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
2607 (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
2608
445f675c
DH
26092000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2610
2611 * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
2612 SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
2613
2614 * eval.c (scm_force): Add documentation.
2615
2616 * eval.c (scm_force, scm_cons_source): Don't access cells via
2617 SCM_{SET}?C[AD]R unless they are known to be cons cells.
2618
6ba93e5e
DH
26192000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2620
2621 * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
2622 (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
2623
2624 * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
2625 nosve #endif conditionally compiled code.
2626
fe517a7d
ML
26272000-05-23 Michael Livshin <mlivshin@bigfoot.com>
2628
2629 * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
2630
a564e775
ML
26312000-05-22 Michael Livshin <mlivshin@bigfoot.com>
2632
2633 * guile-doc-snarf.in: put the preprocessed file through sed to
cf00e803
ML
2634 trim all lines to 1024 chars. I hope it doesn't break anybody's
2635 sed. we'll see. (note: this is lossy trimming, i.e. the spill
2636 isn't wrapped around but actually chopped off. this seemed to me
2637 safe because the current snarfer doesn't understand multi-line
2638 cookies anyway. in the long term, it would be nice not to depend
2639 on AWK for anything.)
a564e775 2640
83238bc1 2641 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
a564e775
ML
2642 the previous change to this macros, after deciding to torture the
2643 snarfer instead.
2644
686765af
ML
26452000-05-21 Michael Livshin <mlivshin@bigfoot.com>
2646
2647 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
2648 the yucky, ugly and nasty conditional compilation back. sorry,
2649 but it was either that or requiring GAWK to build Guile.
2650 (lots of places): removed the code that implemented the old GC
2651 scheme.
686765af
ML
2652
2653 * init.c (scm_boot_guile_1): removed the code conditioned on
2654 !GUILE_NEW_GC_SCHEME.
2655
2656 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
2657
2658 * gc.c (scm_protect_object, scm_unprotect_object): change the
2659 implementation to more efficient (at least in the time complexity
2660 sense). the calls should now also be thread-safe -- I suspect
2661 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
2662 (lots of places): removed the code that implemented the old GC
2663 scheme.
686765af
ML
2664
2665 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
2666 SCM_REALLOW_INTS before return. I really wonder about the
2667 possible interactions between hashtables, threads & GC. it
83238bc1 2668 doesn't look healthy at all.
686765af 2669
44e47754
DH
26702000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2671
2672 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
2673 Dale P. Smith.
2674
46d53380
DH
26752000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2676
2677 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
2678 debug option to verify all accesses to cells actually access
2679 objects on the heap.
2680
2681 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
2682 SCM_DEBUG_CELL_ACCESSES is set to 1.
2683
2684 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
2685 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
2686 that is accessed.
2687
1a548472
DH
26882000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2689
2690 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
2691 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
2692
2693 * gc.c (scm_cellp): Fixed and simplified.
2694
2695 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
2696 make_jmpbuf, scm_init_throw): Now using double cells to represent
2697 jump buffers when using debug extensions.
2698
2699 (freejb): Removed.
2700
bcee10dd
DH
27012000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2702
2703 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
2704 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
2705 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
2706 gh_module_lookup): Accept const pointers as parameters.
2707
2708 * gh.h gh_data.c (gh_int2scmb): Deprecated.
2709
27102000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
2711
2712 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
2713 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
2714 the actual arguments in the list, but rather the rest argument as
2715 a list of arguments.
2716
2717 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
2718
2719 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
2720 (scm_list_star, scm_append, scm_append_x), ports.c
2721 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
2722 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
2723 (scm_make_stack), strings.c (scm_string_append), struct.c
2724 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
2725
2726 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
2727 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
2728 (scm_dynamic_link): Removed possibility to pass flags to
2729 scm_dynamic_link, as it had no effect anyway.
2730
2731 * filesys.c (scm_fcntl): Made single optional rest argument into
2732 a standard optional argument.
2733
2734 * hooks.c (scm_run_hook): A list of rest arguments is never
2735 SCM_UNBNDP.
2736
2737 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
2738 strings.c (scm_string_append): Don't perform half-hearted checks
2739 to see whether the rest argument forms a proper list any more, use
2740 SCM_VALIDATE_REST_ARGUMENTS instead.
2741
2742 * ports.c (scm_close_all_ports_except): Accept empty list of rest
2743 arguments.
2744
2745 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
2746 Simplify verification of rest argument.
2747
2748 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
2749 (ss_handler, handler_message): Make first mandatory rest argument
83238bc1 2750 of scm_make_stack into a standard mandatory argument.
af45e3b0
DH
2751
2752 * unif.c (scm_transpose_array, scm_enclose_array,
2753 scm_array_in_bounds_p), unif.h (scm_transpose_array,
2754 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
2755 rest argument into a standard mandatory argument.
2756
c8a54c4b
DH
27572000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2758
2759 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
2760 Keisuke Nishida for the suggestion.) Added debug option
2761 SCM_DEBUG_REST_ARGUMENTS.
2762
2763 * eval.c (scm_map, scm_for_each): Make sure all lists have the
2764 same length. Also, removed redundant parameter checks.
2765
56100716
DH
27662000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2767
2768 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
2769
2770 * __scm.h: Improved explanation of giving options to make.
2771
2772 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
2773 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
2774 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
2775 corresponding declaration and comment to __scm.h.
2776
2777 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
2778 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
2779 SCM_INUM): Removed conditionally compiled code for Turbo C.
2780
2781 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
2782 That check can be assumed to be redundant except for very rare
2783 conditions that actually indicate broken heap data.
2784
3c9f20f8
DH
27852000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2786
2787 * numbers.c (scm_logcount, scm_integer_length): Reordered
2788 dispatch sequence.
2789
8536a982
GH
27902000-05-15 Gary Houston <ghouston@arglist.com>
2791
2792 * stime.c (scm_strftime): don't reset TZ if zone is an empty
2793 string. append a "0" to the zone for TZ.
c8a54c4b 2794
78166ad5
DH
27952000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2796
2797 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
2798 sequence.
2799
2800 (scm_bit_extract): Fixed handling of bignums.
2801
f5f2dcff
DH
28022000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2803
2804 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
2805 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
2806 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
2807 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
2808 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
2809 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
2810 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
2811 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
2812 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
2813 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
2814
2815 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
2816 scm_output_port_p), print.c (scm_get_print_state), validate.h
2817 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
2818 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
2819 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
2820
07ccd85d
GH
28212000-05-14 Gary Houston <ghouston@arglist.com>
2822
32f1b9fd
GH
2823 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
2824 TZ environment variable so that the %Z format returns the zone
2825 from the input vector instead of the system default.
2826
07ccd85d
GH
2827 from Keisuke Nishida:
2828 * fports.c (scm_setvbuf): minor docstring fix.
2829 * ports.h (scm_generic_fgets): obsolete prototype deleted.
2830
3a9809df
DH
28312000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2832
2833 * __scm.h: Added new section for debugging options.
2834
2835 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
2836 help developers to get rid of references to deprecated code.
2837
2838 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
2839 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
2840 as part of the interface and are marked as deprecated in the
2841 header file.
2842
2843 * numbers.c (scm_make_real, scm_make_complex): Inlined the
2844 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
2845 respectively.
2846
2847 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
2848 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
2849 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
2850
e828cb75
DH
28512000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2852
2853 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
2854 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
2855 of two scm_bits_t values instead of two SCM values, because it is
2856 legal for cell entries to hold values that are not scheme objects.
2857
2858 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
2859 Use SCM_SETC[AD]R to modify contents of pairs.
2860
5986c47d
DH
28612000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2862
2863 * numbers.c (IS_INF, isfinite): Added FIXME comment.
2864
2865 (scm_abs, scm_magnitude): Make these two independent of each
2866 other. scm_abs now reports an error if given a complex argument.
2867
2868 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
2869 SCM_REALPART if the object is known to be real.
2870
2871 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
2872 here.
2873
2874 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
2875
eb42e2f0
DH
28762000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2877
2878 * eq.c (scm_eqv_p): Separate handling of real and complex
2879 values. Remove #ifdef SCM_BIGDIG #endif test.
2880
2881 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
2882 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
2883 ramap_rp, scm_array_map_x), random.c (vector_scale,
2884 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
2885 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
2886 the object is known to be real. Use SCM_COMPLEXP instead of
2887 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
2888 SCM_INEXP.
2889
7235ee58
DH
28902000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2891
2892 * numbers.c: No need to include unif.h.
2893
2894 (IS_INF): Returned to old test for now: x == x + 1 will not work
2895 for large numbers due to rounding errors.
2896 Thanks to Kalle Olavi Niemitalo.
2897
bb628794
DH
28982000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2899
2900 * numbers.c (scm_divbigdig): Removed outdated comment.
2901
2902 (scm_number_to_string, scm_string_to_number, scm_number_p,
2903 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
2904 scm_geq_p, scm_make_rectangular, scm_make_polar,
2905 scm_inexact_to_exact): Added comments.
2906
2907 (add1, scm_init_numbers): Removed add1.
2908
98cb6e75
DH
29092000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2910
2911 * numbers.c (IS_INF): The new test is x == x + 1. The old test
2912 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
2913 and Ivan Toshkov.
2914
2915 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
2916 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
2917 dispatch sequence.
2918
c45c2b6b
MV
29192000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
2920
2921 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
2922 SIGILL and SIGBUS signals. These signals are not continuable and
2923 must be handled for real right away.
2924
c2ff8ab0
DH
29252000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2926
2927 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
2928 scm_real_part, scm_imag_part, scm_magnitude,
2929 scm_inexact_to_exact): Reordered dispatch sequence.
2930
1a450153
DH
29312000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2932
2933 * feature.c: No need to include "libguile/smob.h"
2934
2935 (scm_loc_features, features, scm_add_feature, scm_init_feature):
2936 Removed variable 'scm_loc_features' as a pointer to the SCM value
2937 holding the features list. Using variable 'features' instead,
2938 which holds the interned pair. Thus, SCM_SETCDR can be used
2939 instead of pointer trickery.
2940
665aeda3
DH
29412000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2942
2943 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
2944 cell is not known to be a valid pair.
2945
ab66ae47
DH
29462000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2947
2948 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
2949 ASRTSYNTAX. Using SCM_ASSYNT instead.
2950
2951 (scm_m_body): Don't create a redundant cons cell.
2952
2953 (scm_m_do): Removed redundant test 'bodycheck'.
2954
2955 (bodycheck): Removed.
2956
2957 * stacks.c (stack_depth, read_frame, read_frames): Removed
2958 redundant calculation of size, minimized some variable scopes.
2959
4983cbe4
DH
29602000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2961
2962 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
2963 long as a cell is not known to be a valid pair.
2964
2965 (scm_pair_p): Eliminated redundant SCM_IMP test.
2966
44d3cb0d
DH
29672000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2968
2969 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
2970 scm_deval_args): Eliminated redundant SCM_IMP tests.
2971
2972 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
2973 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
2974 scm_make_doubly_weak_hash_table): Fixed critical sections.
2975 Thanks to Keisuke Nishida.
2976
9a00c9fc
DH
29772000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2978
2979 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
2980 Fixed some goto-related initialization bugs (introduced by me).
2981
b82c6ce0
DH
29822000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2983
2984 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
2985
2986 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
2987
2988 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
2989 pointer trickery.
2990
2991 (SET_DYNL_HANDLE): Added.
2992
2993 (scm_dynamic_object_p): Simplified.
2994
2995 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
2996 better error message when accessing unlinked dynamic objects.
2997 Eliminated call to get_dynl_obj.
2998
106428b3
MV
29992000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
3000
7eea5296 3001 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
3002 be an array of function pointers instead of being a pointer to an
3003 array returning function. Thanks to Kalle Olavi Niemitalo!
3004
f4c627b3
DH
30052000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
3006
3007 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
3008 (scm_divbigbig, scm_divbigint): Don't return zero any more to
3009 indicate that a division has a remainder, return SCM_UNDEFINED
3010 instead. It is improbable that anyone actually used these
3011 functions outside of numbers.c. For this reason and due to the
3012 change in behaviour the functions are static now. Thus, if
3013 surprisingly there are users of these functions they will at least
3014 get alarmed.
3015
3016 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
3017 that already have a clean dispatch order. Note: SCM_BIGDIG is
3018 always defined.
3019
3020 * numbers.c (scm_inexact_p): Simplified.
3021
3022 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
3023 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
3024 sequence, thereby fixing some comparisons of SCM values with
3025 integer constants.
3026
3027 * numbers.c (scm_divide): Division by zero of inums leads to an
3028 error now. (Formerly, an infinite number was returned.)
3029
3030 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
3031 if a division has a remainder.
3032
3a6e6616
GH
30332000-05-02 Gary Houston <ghouston@arglist.com>
3034
3035 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
3036
f8de44c1
DH
30372000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3038
3039 * numbers.c (scm_logtest, scm_division): Reordered dispatch
3040 sequence, thereby fixing some comparisons of SCM values with
3041 integer constants.
3042
3043 * numbers.h (scm_makdbl): Mark as deprecated at the point of
3044 declaration.
3045
3046 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
3047 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
3048 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
3049 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
3050 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
3051 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
3052 (ramap_rp, scm_array_map_x), random.c (scm_random,
3053 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
3054 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
3055 call to scm_makdbl with a call to scm_make_real or
3056 scm_make_complex, depending on whether the imaginary part is known
3057 to be zero.
3058
7f5fa419
GH
30592000-05-01 Gary Houston <ghouston@arglist.com>
3060
0607c109
GH
3061 * scmsigs.c: fix the definition of orig_handlers for the case
3062 that HAVE_SIGACTION is not defined (thanks to
3063 Kalle Olavi Niemitalo).
3064
7f5fa419
GH
3065 * Makefile.am: remove include_HEADERS (was libguile.h)
3066 libguile.h: moved to top level directory.
3067
09fb7599
DH
30682000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3069
3070 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
3071 a wider use.
3072
3073 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
3074 scm_logxor): Reordered dispatch sequence, thereby fixing some
3075 comparisons of SCM values with integer constants.
3076
3077 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
83238bc1 3078 tests.
09fb7599 3079
89a7e495
DH
30802000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3081
3082 * numbers.c (scm_quotient, scm_remainder): Removed code that was
3083 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
3084 occur anywhere else throughout guile.
3085
3086 * numbers.c (scm_quotient): Fixed parameter number in error
3087 message.
3088
3089 * numbers.c (scm_remainder): Reordered dispatch sequence.
3090
a4fbabb3
GH
30912000-04-25 Gary Houston <ghouston@arglist.com>
3092
3093 * posix.c (scm_execlp): docstring fix (thanks to Martin
3094 Grabmueller).
3095
09e4d064
DH
30962000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3097
3098 * eval.c (undef_object): Made into a local static variable
3099 (suggested by Jost Boekemeier).
3100
e59bb516
DH
31012000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3102
3103 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
3104 c[ad]+r functions.
3105
3106 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
3107 scm_dsubr, scm_init_iprocs): Removed.
3108
3109 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
3110 directly instead of casting a cell to a C struct.
3111
820920e6
MD
31122000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3113
3114 Better modularization of GC extensions through new C level GC
3115 hooks:
83238bc1 3116
820920e6
MD
3117 * weaks.c (scm_weaks_prehistory): New function: Add
3118 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
3119 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
3120 (scm_scan_weak_vectors): New function; added to
3121 scm_after_sweep_c_hook.
3122
3123 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
3124 declarations.
3125
3126 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
3127 now static.
3128
3129 * guardians.c (scm_guardian_gc_init): Turned into a hook function
3130 and added to scm_before_mark_c_hook.
3131 (scm_guardian_zombify): Turned into a hook function and added to
3132 scm_before_sweep_c_hook.
3133
3134 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
3135 Added #include "libguile/gc.h".
3136
3137 * gc.h: Added #include "libguile/hooks.h".
3138
3139 * gc.c: Removed #include "libguile/guardians.h".
3140 (scm_before_gc_c_hook, scm_before_mark_c_hook,
3141 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
3142 scm_after_gc_c_hook): New C level hooks.
3143 (scm_after_gc_hook): New Scheme level hook.
3144 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
3145 (scm_igc): Moved initialization of scm_weak_vectors and the call
3146 to scm_guardian_gc_init to respective module.
3147 (scm_mark_weak_vector_spines): Moved to weaks.c;
3148 Call to scm_guardian_zombify moved to guardians.c;
3149 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
3150 scm_after_gc_c_hook at appropriate places.
3151 (scm_init_gc): Initialize scm_after_gc_hook.
3152
3153 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
3154 function.
3155
3156 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
3157
3158 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
3159
3160 * feature.c, feature.h: Broke out hook code into separate files.
3161
3162 * hooks.c, hooks.h: New files.
9764c29b 3163
a0599745
MD
3164 * *.*: Change includes so that they always use the "prefixes"
3165 libguile/, qt/, guile-readline/, or libltdl/.
3166 (Thanks to Tim Mooney.)
3167
3168 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
3169 (DEFS): Added. automake adds -I options to DEFS, and we don't
3170 want that.
3171 Removed all -I options except for the root source directory and
3172 the root build directory.
3173
f4b0c568
MD
3174 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
3175 instead of SCM_ASSERT (0, ...). (Some compilers will complain
3176 about control reaching end of function otherwise, and, besides,
3177 the new code is not less clear.)
3178
9764c29b 3179 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
83238bc1 3180 calls to malloc debugging functions.
9764c29b
MD
3181
3182 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
3183 functions.
3184
3185 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
3186 debug-malloc.x.
3187
3188 * debug-malloc.c, debug-malloc.h: New files.
3189
4219f20d
DH
31902000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3191
3192 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
3193 documentation strings.
3194
3195 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
3196 scm_quotient): Reordered dispatch sequence to first handle
3197 immediates, second handle bignums and finally handle generic
3198 functions respectively signal wrong type arguments. Hopefully
3199 this will allow for easier separation when goops is integrated.
3200
195e6201
DH
32012000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3202
3203 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
3204 variable into a pointer to a heap cell.
3205
3206 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
3207 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
3208
9e882eec
DH
32092000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3210
3211 * print.c (scm_iprin1): Don't assign zero to SCM values, use
3212 SCM_UNDEFINED instead.
3213
3214 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
3215 vector element. (Still to be improved)
3216
3201d763
DH
32172000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3218
3219 * eval.c (undef_cell): Removed, replaced by:
3220
3221 (undef_object): Added to replace undef_cell.
3222
3223 (scm_lookupcar, scm_lookupcar1): Use undef_object.
3224
3225 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
3226 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
3227 Don't perform arithmetic operations with SCM values.
3228
3229 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
3230 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
3231 symbolic names for the tc3 type codes.
3232
3233 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
3234 cast to SCM.
3235
3236 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
3237 access of the struct vcell element explicit.
3238
f7c38587
MD
32392000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3240
3241 * struct.c (scm_struct_free_light, scm_struct_free_standard,
3242 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
3243
3244 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
3245 realloc:ing scm_subr_table ("what" instead of "who").
3246
3247 * numbers.c (scm_adjbig): Ditto.
3248
e8293eb6
GB
3249Tue Apr 18 08:22:41 2000 Greg J. Badros <gjb@cs.washington.edu>
3250
83238bc1
ML
3251 * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE
3252 when testing high-end of the range. Mikael Djurfeldt noticed this
e8293eb6
GB
3253 anomaly -- thanks Mikael!
3254
baa702c8
DH
32552000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3256
3257 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
3258 itself, as was done in the previous 'patch'. (Thanks to Radey
3259 Shouman)
3260
fee7ef83
DH
32612000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3262
3263 * options.c (scm_options), read.c (recsexpr): Remove redundant
3264 SCM_IMP test.
3265
3266 * print.c (scm_iprin1): Made the access of the struct vcell
3267 element explicit.
3268
3269 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
3270
3271 * ramap.c (scm_ra_eqp, ra_compare), unif.c
3272 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
3273 unsigned long and signed long arrays and clarified the way the
3274 access is performed.
3275
3276 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
3277 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
3278 scm_raprin1): Use SCM_EQ_P to compare SCM values.
3279
3280 * strings.c (scm_makstr): Treat the msymbol slots as a field of
3281 scm_bits_t values.
3282
3283 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
3284 a field of scm_bits_t values.
3285
3286 * unif.c (l2ra): Don't test result of scm_array_set_x against
3287 zero: It is always SCM_UNSPECIFIED.
3288
9d0633a8
MD
32892000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3290
3291 * script.c (scm_compile_shell_switches): Also enable
3292 record-positions when given the --debug option. (Thanks to Diego
3293 Dainese.)
3294
230d095f
DH
32952000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3296
3297 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
3298 Compare SCM's with SCM_EQ_P.
3299
3300 * print.c (scm_make_print_state), srcprop.c
3301 (scm_source_properties): Use valid scheme object to initialize
3302 SCM variable.
3303
3304 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
3305
c8045e8d
DH
33062000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3307
3308 * struct.c (scm_alloc_struct, scm_struct_free_0,
3309 scm_struct_free_light, scm_struct_free_standard,
3310 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
3311 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
3312 scm_struct_free_light, scm_struct_free_standard,
3313 scm_struct_free_entity): Struct data regions (and thus also
3314 vtable data regions) are now C arrays of scm_bits_t elements.
3315
3316 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
3317 mixup of glocs and structs explicit.
3318
3319 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
3320
b0c54567
DH
33212000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3322
3323 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
3324 Minimize scope of variable 'ir'.
3325
3326 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
3327 Added missing call to SCM_UNPACK.
3328
b9c90f11
MD
33292000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3330
7aac9824 3331 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 3332 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 3333
9ae58e2d
MD
33342000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3335
3336 * script.c (scm_compile_shell_switches): Added --debug option.
3337
49e12eb3
MD
33382000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3339
3340 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
3341 specified by R5RS).
3342
7c1e0b12
MD
33432000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3344
3345 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
3346 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
3347
3348 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
3349 New macros.
3350 Cleanup of code layout.
3351
3352 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
3353 procedures.
3354
01c8a3dd
DH
33552000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3356
3357 * continuations.c (scm_make_cont, scm_dynthrow): Completely
3358 separated implementations for defined (CHEAP_CONTINUATIONS) and
3359 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
3360 copying.
3361
3362 * continuations.c (grow_stack): Renamed from grow_throw.
3363
3364 * continuations.c (copy_stack_and_call): New static function.
3365
3366 * continuations.c (scm_dynthrow): Simplified and made static.
3367
3368 * continuations.h (scm_dynthrow): Made static.
3369
553f4414
MD
33702000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3371
3372 * unif.c, unif.h (shared-array-root, shared-array-offset,
3373 shared-array-increments): New primitives.
3374
cf551a2b
DH
33752000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3376
3377 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
3378 size for msymbols.
3379
3380 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
3381 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
3382 values.
3383
3384 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
3385 macros.
3386
3387 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
3388 scm_symbol_pset_x): Use them.
3389
83238bc1 3390 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
cf551a2b 3391
12a8b769
DH
33922000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3393
3394 * ports.c (scm_port_print): The port data is read as raw data.
3395
3396 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
3397 mismatch.
3398
d8c40b9f
DH
33992000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3400
3401 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
3402 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
3403 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
3404 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
3405 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
3406 The struct data is now an array of scm_bits_t variables.
3407
3408 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
3409
cf551a2b 3410 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
3411
3412 * struct.c (scm_struct_init): Unused variable 'data' removed.
3413
3414 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
3415
1c3e63f0
DH
34162000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3417
3418 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
3419 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
3420 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
3421 scm_bits_t variables.
3422
3423 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
3424
cf551a2b 3425 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 3426
bc66755e
DH
34272000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3428
3429 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
3430 scm_intern_obarray_soft, scm_sysintern0,
3431 scm_string_to_obarray_symbol, scm_intern_symbol,
3432 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
3433 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
3434 compare SCM values.
3435
828865c3
DH
34362000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3437
3438 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
3439 case of immediate numbers parameters first. Also, only use
3440 decoded numbers for numerical comparison.
83238bc1 3441
1cf49a85
MD
34422000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3443
3444 * objects.h: Don't redeclare scm_call_generic_0 and
3445 scm_apply_generic. (Thanks to Tal Tversky.)
3446
dba97178
DH
34472000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3448
3449 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
3450 Unpack SCM value to use it as a switch parameter. Don't cast SCM
3451 values to int values.
3452
3da01fa3
MD
34532000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3454
3455 * coop.c (mother): Handled EINTR (the wait has been interrupted by
3456 a signal).
3457
451e591c
DH
34582000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
3459
3460 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
3461 contains a raw zero value it has to be unpacked.
3462
3463 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
3464 via void * requires unpacking / packing.
3465
3466 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
3467 SCM_EQ_P to compare SCM values.
3468
3469 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
3470 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
3471 call to SCM_UNPACK.
3472
3473 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
3474
3475 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
3476 quite ugly.
3477
e94e3f21
ML
34782000-04-05 Michael Livshin <mlivshin@bigfoot.com>
3479
3480 * async.[ch]: unexpose low-level async access macros (thanks to
3481 Dirk Herrmann).
3482
3483 * validate.h: move async validation macros to async.c (nobody else
3484 needs them anyway), and rename them.
3485
843e4e9d
ML
34862000-04-04 Michael Livshin <mlivshin@bigfoot.com>
3487
3488 * async.h: kill the scm_async_t struct. having a heap cell
3489 pretending to be a C struct is not helthy, and is not needed here
3490 anyway, as asyncs happily fit in one heap cell.
3491
3492 * async.c: reflect the fact that asyncs are now represented by
3493 single heap cell each.
3494
873c35ee
GH
34952000-04-04 Gary Houston <ghouston@arglist.com>
3496
3497 * error.c (scm_syserror): save errno before doing anything else,
3498 since it's used in two expressions and may get mutated (thanks to
3499 Dirk Herrmann).
3500
4260a7fc
DH
35012000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3502
3503 * debug.c (scm_procedure_source, scm_procedure_environment),
3504 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
3505 (scm_procedure, scm_setter): Return valid scheme value as dummy.
3506
3507 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
3508 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
3509 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
3510 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
3511 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
3512 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
3513 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
3514 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
3515
3516 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
3517 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
3518 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
3519 SCM_{SET_}?CELL_WORD_0.
3520
3521 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
3522 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
3523 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
3524 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
3525 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
3526 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
3527 scm_bit_count_star, l2ra), variable.c (prin_var,
3528 scm_make_variable, scm_make_undefined_variable,
3529 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
3530 vports.c (sf_flush, sf_close): Don't use C operators to compare
3531 SCM values.
3532
3533 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
3534 unpack SCM values to access their raw contents.
3535
3536 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
3537
3538 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
3539 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
3540 type information.
3541
3542 * throw.c (printjb): Eliminated unnecessary unpack.
3543
3544 * variable.c (make_vcell_variable): Smob data is of type
3545 scm_bits_t.
3546
5b15c3b4
MD
35472000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3548
3549 * print.c: Removed promise to rewrite printer code before next
3550 release. :)
3551
395c8567
MD
35522000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3553
3554 * iselect.c (add_fd_sets): Insert empty statement after label.
3555 (Thanks to Tim Mooney.)
3556
50fecba9
ML
35572000-04-03 Michael Livshin <mlivshin@bigfoot.com>
3558
3559 * guardians.c (scm_guardian_zombify): mark all zombies in a
3560 separate loop after processing all the currently known live
3561 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 3562 Gary Houston). note that the order problems are still there if
843e4e9d 3563 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
3564 I'm not going to worry about.
3565 also, make another outer loop to process zombified
50fecba9
ML
3566 guardians (which are uncovered while marking zombies).
3567
54778cd3
DH
35682000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
3569
3570 * evalext.c (scm_definedp, scm_m_undefine), gc.c
3571 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
3572 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
3573 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
3574 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
3575 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
3576 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
3577 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
3578 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
3579 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
3580 scm_stand_in_scm_proc, scm_procedure_property,
3581 scm_set_procedure_property_x), procs.c
3582 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
3583 scm_lreadrecparen, scm_read_hash_extend), script.c
3584 (scm_compile_shell_switches), srcprop.c (scm_source_property,
3585 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
3586 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
3587 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
3588 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
3589 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
3590 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
3591 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
3592
3593 * feature.c (make_hook), keywords.c
3594 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
3595 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
3596 scm_printer_apply, scm_port_with_print_state): Smob data is of type
3597 scm_bits_t.
3598
3599 * feature.c (print_hook), gc.c (scm_object_address), hash.c
3600 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 3601 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
3602 SCM values to access their raw contents.
3603
3604 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
3605 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
3606 values via void * requires unpacking / packing.
3607
3608 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
3609 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
3610 Read and modify data bits in cell entry #0 using
3611 SCM_{SET_}?CELL_WORD_0.
3612
3613 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
3614 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
3615 (scm_void_port), procs.c (scm_make_subr_opt,
3616 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
3617 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
3618 SCM_SET_CELL_TYPE to write the cell type information.
3619
3620 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
3621 from cells that are no scheme pairs.
3622
3623 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
3624 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
3625 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
3626 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
3627 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
3628 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
3629 entries with raw data.
3630
3631 * gc.c (scm_init_storage), sort.c (applyless), strop.c
3632 (scm_string_to_list): Eliminate unnecessary casts to SCM.
3633
3634 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
3635 data.
3636
3637 * ports.c (scm_close_all_ports_except): Duplicate documentation
3638 text removed.
3639
3640 * print.c (scm_iprin1): Use SCM_ITAG3.
3641
3642 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
3643
3644 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
3645 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
3646 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
3647 and static variables at their point of declaration, but rather in
3648 the init function.
3649
3650 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
3651
abeed821
GH
36522000-04-02 Gary Houston <ghouston@arglist.com>
3653
3654 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
3655 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
3656 use of an improper list (which breaks g_print. g_print isn't
3657 used).
3658 guardians.c: Added more comments and modified the make-guardian
3659 docstring. Reordered a few procedures.
3660
cf498326
DH
36612000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3662
3663 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
3664 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
3665 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
3666 compare SCM values.
3667
3668 (scm_makprom): Smob data is of type scm_bits_t.
3669
cffcab30
DH
36702000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3671
3672 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
3673 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
3674 operators to compare SCM values.
3675
3676 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
3677 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
3678 access raw cell data with SCM_{SET_}?CELL_WORD_1.
3679
3680 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
3681
3682 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
3683 data is of type scm_bits_t.
3684
7fa93bf8
DH
36852000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3686
3687 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
3688 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
3689
3690 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
3691
74a16888
DH
36922000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3693
3694 * ports.h (scm_port): Change type of stream member to scm_bits_t.
3695
3696 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
3697 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
3698 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
3699 streams are now of type scm_bits_t, SCM streams have to be
3700 unpacked/packed.
3701
3702 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
3703 scm_bits_t.
3704
b6cc0ef6
MD
37052000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3706
6a878357
MD
3707 * coop-defs.h (struct coop_t): Added `sto'-field again because of
3708 binary compatibility---let's remove it next time we alter some
3709 major structure.
3710
b6cc0ef6
MD
3711 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
3712 coop_mother, coop_child): New variables.
3713 (mother): New function.
3714 (coop_create): New thread spawning mechanism which uses a "mother
3715 thread". The "dummy" pthreads aren't healthy enough to give birth
3716 to new threads since Linux threads thinks they are asleep.
3717
3718 * coop-defs.h (struct coop_t): Removed dummy_mutex.
3719
3720 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
3721 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
3722
843524cc
DH
37232000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3724
3725 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
3726 (scm_internal_dynamic_wind): Smob data is always of type
3727 scm_bits_t.
3728
3729 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
3730 Access the locking information in cell entry 0 with
3731 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
3732
3733 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
3734 list.
3735
3736 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
3737
3738 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
3739 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
3740
fbd485ba
DH
37412000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3742
3743 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
3744 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
3745 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
3746 Don't use C operators == and != to compare SCM values, use
3747 SCM_EQ_P instead.
3748
3749 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
3750 SCM value is equal to #t or #f.
3751
3752 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
3753 cell type entry of non immediate objects of unknown type. Use
3754 SCM_CELL_TYPE instead.
3755
3756 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
3757 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
3758 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
3759 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
3760 #t.
3761
3762 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
3763 scheme value.
3764
64e3bf6c
MD
37652000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3766
0208baa0
MD
3767 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
3768 scm_make_mutex, scm_make_condition_variable): Cast data to
3769 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
3770
64e3bf6c
MD
3771 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
3772
94113249
DH
37732000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3774
3775 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
3776 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
3777 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
3778
3779 Note that this implies that smob data has always to be passed as
3780 values of type scm_bits_t.
3781
1978b33e
MD
37822000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3783
3784 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
3785 for scm_tc16_thread. As the current COOP threads are written, GC
3786 is not supposed to manage storage for threads.
3787
3788 * error.c (scm_error): Don't try to throw an error if
3789 scm_gc_heap_lock is true.
3790
3791 * coop.c (coop_finish): New function. Called at exit.
3792 (coop_aborthelp): Free thread structures when threads die.
3793 Finished LinuxThreads compatibility support => COOP threads now
3794 mesh with LinuxThreads.
843e4e9d 3795
1978b33e
MD
3796 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
3797 Changed SETCDR --> SET_CELL_WORD_1.
3798
3799 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
3800 when thread dies.
3801
dd039d6d
DH
38022000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3803
3804 * boolean.h (SCM_TRUE_P): New macro.
3805
3806 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
3807 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
3808
8b3bda20
DH
38092000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3810
3811 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
3812 access continuation data.
3813
3814 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
3815
3816 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
3817 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
3818 continuation data.
3819
843e4e9d 3820 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
3821 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
3822 SCM_SETJMPBUF.
3823
3210f49a
DH
38242000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3825
3826 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
3827 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
3828
3829 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
3830 to access the char * field of strings and symbols.
3831
2d67e390
DH
38322000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
3833
3834 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
3835 the type entry of a new cell. Added a comment about things to
3836 remember when updating the list of free cells.
3837
3838 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
3839 entry of a cell.
3840
76a369d9
DH
38412000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
3842
3843 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
3844 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
3845 with strict type checking enabled these macros will only work if
3846 given valid SCM parameters.
3847
3210f49a 3848 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
3849
3850 * tags.h (SCM_GCCDR): Moved here from pairs.h.
3851
2549a709
DH
38522000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
3853
3854 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
3855
3856 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
3857 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
3858 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
3859 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
3860 SCM_NEWCELL2): Moved to gc.h.
3861
3862 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
3863 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
3864 be changed, though, since the macros are not only pair related.
3865
3866 (SCMPTR): Deleted.
3867
3868 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
3869 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
3870 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
3871 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
3872 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
3873 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
3874 tags.h and pairs.h.
3875
8d3356e7
DH
38762000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3877
3878 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
3879 activates strict compile time type checking for variables of
3880 type SCM.
3881 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
3882 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
3883 (SCM_EQ_P): Defined as a macro equivalent for eq?.
3884
96f6f4ae
DH
38852000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3886
3887 * tags.h (SCM_POINTERS_MUNGED): Removed.
3888
3889 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
3890 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
3891
0cbaaf0b
DH
38922000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3893
3894 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
3895 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
3896 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
3897 cell entries.
3898 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
3899
3900 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
3901 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
3902
7284d584
MD
39032000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3904
3905 * tags.h: Disabled definition of SCM_VOIDP_TEST.
3906
3907 Defining SCM as void * introduces problems which haven't been
3908 handled yet. Developers who work with these issues can enable it
3909 in their working copies.
3910
3911 Disabling this definition exposes a set of newly introduced and
3912 older misuses of types which causes warning messages during
3913 compilation. We'll fix this successively.
3914
3915 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
3916 in order to obtain a value of type SCM.
3917 (scm_cellp): Updated with new changes to scm_mark_locations.
3918
3919 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
3920
2f9055ea
MD
3921 * continuations.c (scm_make_cont): Removed cast of size_t into
3922 long.
3923
7284d584
MD
3924 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
3925
f81e080b
DH
39262000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3927
3928 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
3929 shifting, not constant. Thanks to Dale P. Smith.
3930
3931 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
3932 for being less than zero. Decode it to a C value first. Again,
3933 thank you Dale.
3934
1ff2fa6e
DH
39352000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3936
3937 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
3938 non scheme values. If raw data is stored in SCM variables, it has
3939 to be accessed using SCM_UNPACK until a better solution is found.
3940
3920465b
MD
39412000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3942
6f29dc6d
MD
3943 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
3944 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
3945
3946 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
3947
3948 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
3949
3950 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
3951
3952 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
3953
3920465b
MD
3954 * async.c, __scm.h: Removed lots of the old async click logic. It
3955 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
3956 __scm.h. Let's try this out and dump the old code after the
3957 threads reorganization.
3958 (set-tick-rate, set-switch-rate): Conditionally removed.
3959
90cca6f9
MD
39602000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3961
3962 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
3963 made SCM values into pointers. This turned an arithmetic
3964 computation of the address of the vcell into a pointer-arithmetic
3965 one, thereby screwing up marking of structs.
3966 Bugfix 2: Removed incompletely introduced loop variable `j' used
3967 when protecting the tail array of a struct.
3968
8246bf3e
DH
39692000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3970
3971 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
3972
95c9e176
DH
39732000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3974
3975 * symbols.h, symbols.c (scm_strhash): Declare the string
3976 parameter as constant, since it is not modified.
3977
3978 * symbols.c (scm_intern_obarray_soft,
3979 scm_sysintern0_no_module_lookup): Can now pass constant strings
3980 to scm_strhash without need for casting.
3981
7352d0b2
DH
39822000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3983
3984 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
3985 values to pointers. Use SCM2PTR instead.
3986
b00c8cdc 39872000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
3988
3989 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
3990 results of SCM_INUM.
3991
df2d5178
MD
39922000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3993
bd54e664
MD
3994 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
3995 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
3996 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
3997
3998 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
3999 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
4000 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
4001 gc_trigger, adjust_gc_trigger.
4002
df2d5178
MD
4003 * gc.c (alloc_some_heap): Further improvement of minimal heap size
4004 prediction.
4005 (SCM_MAX): New macro.
4006 (scm_freelist_t): New field: collected_1. Previous amount of
4007 collected cells.
4008 (gc_sweep_freelist_finish): Trigger based on two last values of
4009 freelist->collected to avoid unnecessary allocation due to
4010 temporary peaks.
bd54e664
MD
4011 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
4012 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
4013 without extra heap allocation.
df2d5178 4014
f2961ccd
DH
40152000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
4016
4017 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
4018 already be a C value. No need to unpack it.
4019
3210f49a 4020 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
4021 if we know it fits into an inum.
4022
4023 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
4024 field of long values. In contrast, SCM_VELTS accesses a field of
4025 SCM values.
4026
7b4cc831
MD
40272000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4028
f1d316dd
MD
4029 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
4030 etc.
80770ddc
MD
4031 (scm_gc_yield_1): New variable: Holds previous yield. Used to
4032 make better judgements.
f1083dd7
MD
4033 (gc_sweep_freelist_finish): Inserted explanation of use of
4034 gc_trigger.
f1d316dd
MD
4035
4036 * print.h, stacks.h, options.c, options.h: Changed C++
4037 commentaries to C.
7b4cc831 4038
7a710745
DH
40392000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
4040
4041 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
4042
4043 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
4044 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
4045 SCM_UNPACK / SCM2PTR correctly.
4046
1ef20c80
MD
40472000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4048
4049 * gc.c (adjust_gc_trigger): Improved documentation.
4050 (alloc_some_heap): Since gc_trigger is used against
4051 freelist->collected, this is the value which should be used to
4052 predict minimum growth.
4053
b464b970
DH
40542000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
4055
4056 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
4057 Thien-Thi Nguyen for the patch.)
4058
3ab9f56e
DH
40592000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
4060
4061 * numbers.c (scm_ash): Fixed typing problems with the second
4062 parameter and added some documentation. (Thanks Thien-Thi Nguyen
4063 for indicating the problem.)
4064
05bc3265
MD
40652000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4066
78a4915a
MD
4067 * gc.c, gc.h (scm_gc_yield): New variable.
4068 (adjust_gc_trigger): Use scm_gc_yield.
4069 (alloc_some_heap): Use scm_gc_yield instead of
4070 scm_gc_cells_collected.
4071
05bc3265
MD
4072 * coop-threads.c: Addd #include "root.h", #include "strings.h".
4073
4074 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
4075
4076 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
4077 trigger adjustmeant: Take yield (freed cells) for all freelists
4078 into account.
4079 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
4080 to 50000 cell heap with 45% trigger.
4081 (scm_gc_cells_collected): Reintroduced.
4082 (SCM_HEAP_SIZE): New macro.
4083 (scm_gc_sweep): Reintroduced correct computation of
4084 scm_cells_allocated.
4085 (scm_freelist_t): Corrected commentary for field `cluster_size':
4086 Clustersize counts objects, not cells; New member
4087 `clusters_allocated'.
4088
89e00824
ML
40892000-03-19 Michael Livshin <mlivshin@bigfoot.com>
4090
4091 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
4092 indentation style.
4093
afcfc5bb
MD
40942000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4095
4096 * threads.h: Added #include "libguile/throw.h". (Thanks to
4097 Thien-Thi Nguyen.)
4098
a00c95d9
ML
40992000-03-18 Michael Livshin <mlivshin@bigfoot.com>
4100
50fecba9
ML
4101 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
4102 names, anyone got any better ones?)
a00c95d9
ML
4103
4104 * gc.h: (typedef struct scm_freelist_t) remove from here.
4105
50fecba9 4106 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
4107 parameter (the span).
4108 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 4109 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
4110 business being externally visible.
4111 (typedef struct scm_heap_seg_data_t) renamed from
4112 scm_heap_seg_data, to be style-compliant.
4113 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
4114 double-cell, check that it's properly aligned.
4115 (init_heap_seg) align double-cells properly, work with the
4116 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
4117 (round_to_cluster_size) new function.
4118 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
4119 to satisfy the new init_heap_seg invariant.
4120
28b3236d
DH
41212000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4122
4123 * _scm.h: Don't include async.h everywhere...
4124
4125 * eq.c eval.c iselect.c: ... only include it here.
4126
ba11fd4c
DH
41272000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4128
4129 * _scm.h: Don't include root.h everywhere...
4130
4131 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
4132 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
4133 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
4134 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
4135 variable.c vectors.c vports.c: ... only include it here.
4136
7ab3fdd5
DH
41372000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4138
4139 * _scm.h: Don't include strings.h everywhere...
4140
4141 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
4142 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
4143 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
4144 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
4145 symbols.c unif.c vectors.c version.c vports.c: ... only include it
4146 here.
4147
f04d8caf
DH
41482000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4149
4150 * _scm.h: Don't include ports.h everywhere...
4151
4152 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
4153 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
4154 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
4155 stackchk.c strports.c struct.c throw.c variable.c: ... only
4156 include it here.
4157
003d1fd0
DH
41582000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4159
4160 * _scm.h: Don't include vectors.h everywhere...
4161
4162 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
4163 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
4164 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
4165 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
4166 here.
4167
0fa27efa
DH
41682000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4169
4170 * genio.h: removed. (Only content was '/* delete me */'.)
4171
4172 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
4173 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
4174 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
4175 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
4176 Removed reference to genio.h
4177
148f31de
MD
41782000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4179
4180 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
4181 Cluster sizes are now independent of GC trigger values.
4182 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
4183 A negative integer gives fraction of total heap size in percent.
1eb489a2 4184 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
4185
4186 * init.c (scm_boot_guile_1): Introduced new variable
4187 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
4188 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
4189 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
4190
6d0f81dd 41912000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 4192
6d0f81dd
MD
4193 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
4194 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
4195 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
4196 the default, but I'll let this change stay in CVS Guile since this
4197 code is not expected to contain serious bugs.
a00c95d9 4198
17351a6f 41992000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 4200
6c7c449e
MD
4201 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
4202 defined.
5a551542
MD
4203 (scm_free_list_length): New procedure (GUILE_DEBUG).
4204 Fixed a small but serious bug introduced by the previous change.
4205
17351a6f
MD
4206 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
4207 loop and declare as register.
6c7c449e 4208
c5133dc9
MD
4209 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
4210 after GC.
4211
3820581c
GB
4212Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
4213
4214 * fluids.c: Docstring patch from Keisuke Nishida. Some
4215 reindentation, too, and a couple formals renamed. Should
4216 fluid-set! return UNSPECIFIED instead of a value?
4217
4218Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
4219
4220 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 4221 generate the latter from the concrete listing of the former. Then
3820581c
GB
4222 make guile-procedures.txt depend on DOT_DOC_FILES instead of
4223 *.doc, so that rebuilding it works.
4224
dd6390bf
GB
4225Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
4226
4227 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
4228
4229 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
4230 with nothing and \n, respectively. Thanks Keisuke Nishida for
4231 noticing this problem.
4232
4fdb0ae2
MD
42332000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4234
4235 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
4236 new way of allocating heap. It makes Guile fast, but still
4237 contains bugs.
4238
4239 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
4240 allocating heap. The basic idea is to trigger GC every Nth
4241 allocated cell and grow heap when free list runs out. The scheme
4242 has been extended so that GC isn't triggered until all remaining
4243 cells are used. The implementation is also prepared for
4244 development in the direction of POSIX threads.
4245
4246 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
4247 SCM_EXPHEAP should return half of the heap size.
4248
3d8d1283
MD
42492000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4250
5f4edb86
MD
4251 The following change to init.c is only enabled if Guile was
4252 configured with --enable-guile-debug.
a00c95d9 4253
5f4edb86
MD
4254 * init.c (scm_i_getenv_int): New function.
4255 (scm_boot_guile_1): Use the environment variables
4256 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
4257 they exist. (This may be replaced by a Scheme level mechanism in
4258 the future.)
4259
3d8d1283 4260 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 4261 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 4262
b0e37c83
MD
42632000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4264
4265 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 4266 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 4267
16d35552
MD
42682000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4269
5ebf0091
MD
4270 * init.c (scm_boot_guile_1): Use same initial segment size for
4271 1-word and 2-word segments. Having the smaller size causes Guile
4272 to GC too often. Obviously something needs to be done to allow
4273 for a smaller 2-word segment without this to happen. (The amount
4274 of heap for each type should be automatically adapted to the
4275 application somehow.)
4276
31ed4cff
MD
4277 [Almost all of these changes should be documented in the NEWS
4278 file.]
4279
cf2c7413
MD
4280 * gc.h (scm_freelist_t): New type.
4281
4282 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
4283
4284 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
4285 all of Guile basics fits into one segment and there suitable room
4286 for work.
4287 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
4288 instead of 2.
4289 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
4290 Freelists now contains information about object span, cells
4291 collected and amount of cells in heap segments belonging to the
4292 list.
4293 (scm_heap_size, scm_gc_cells_collected): Removed.
4294
4295 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
4296
16d35552
MD
4297 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
4298 number.
4299
cf2c7413 4300 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
4301 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
4302 rewrite of handling of real and complex numbers.
4303 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
4304 removed along with the support for floats. (Float vectors are
4305 still supported.)
4306
4307 * tags.h (scm_tcs_bignums): Removed.
4308 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
4309 Use SCM_BIGSIGN(x) to test for sign!
4310 (scm_tc16_big): The new bignum type.
4311 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
4312
4313 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
4314 (scm_makdbl): Deprecated.
4315 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
4316 (SCM_SINGP): Deprecated.
4317 (SCM_FLO): Removed.
4318 (SCM_INEXP, SCM_CPLXP): Deprecated.
4319 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
4320 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
4321 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
4322 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
4323 for doubles and complex numbers.
4324 (SCM_REAL_VALUE): New selector for doubles.
4325 (scm_double_t, scm_complex_t): New types.
4326 (scm_dbl): Removed.
4327
4328 * numbers.c (scm_floprint, scm_floequal): Removed.
4329 (scm_print_real, scm_print_complex, scm_real_equalp,
4330 scm_complex_equalp): New functions.
4331
4332 * unif.c (scm_makflo): Removed.
4333
4334 * smob.h (SCM_SMOB_PREDICATE): New macro.
4335 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
4336 SCM_RETURN_NEWSMOB3): New macros.
4337
43381999-11-21 Michael Livshin <mlivshin@bigfoot.com>
4339
4340 The following changes implement primitive support for double cells
4341 (i.e. four-word cells) and change the representation of some
4342 things to multi-cells instead of cons+malloc. (Applied and
4343 modified by mdj.)
4344
4345 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
4346 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
4347 multi-cell access macros (used by the ones below).
4348 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
4349 macros.
4350
4351 * gc.c (scm_freelist2): multi-cell freelists.
4352 (inner_map_free_list): map_free_list, parameterized on ncells.
4353 "nn cells in segment mm" was misleading for ncells > 1; changed to
4354 "objects". still print cells too, though.
4355 (scm_map_free_list): rewritten using inner_map_free_list.
4356 (scm_check_freelist): get freelist as parameter, since now we have
4357 more than one.
4358 (scm_debug_newcell2): multi-cell variants of
4359 scm_debug_newcell.
4360 (scm_gc_for_newcell): take ncells and freelist pointer as
4361 parameters.
4362 (scm_gc_mark): add case for tc7_pws (procedures with setters are
4363 now double cells).
4364 (scm_gc_sweep): don't free the float data, since it's not malloced
4365 anymore.
4366 (init_heap_seg): didn't understand what n_new_objects stood for,
4367 so changed to n_new_cells.
4368 (make_initial_segment): new function, makes an initial segment
4369 according to given ncells.
4370 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
4371
4372 * numbers.c (scm_makdbl): no malloc'ing needed, so the
4373 {DEFER,ALLOW}_INTS thing removed.
4374
4375 * numbers.h (struct scm_dbl): changed to represent a double cell,
4376 with the number in the second half.
16d35552
MD
4377
4378 * dynwind.c: changed the wind-guards representation to double
4379 cell.
4380
4381 * procs.c, procs.h: changed the procedure-with-setter representation
4382 to double cell.
4383
4384 * async.c, async.h: made async representation a double cell.
4385
16d35552 4386 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 4387
b70ecbd0
GH
43882000-03-13 Gary Houston <ghouston@arglist.com>
4389
4390 * ports.c (flush_void_port): renamed to flush_port_default.
4391 (end_input_void_port): renamed to end_input_default.
4392
4393 * init.c (scm_standard_stream_to_port): create a void port instead
4394 of opening /dev/null if the standard file descriptors are bad.
4395 advantages: no portability problems, doesn't waste a file descriptor,
4396 simplifies the code (thanks to Marius for the idea).
4397
4398 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
4399
4400 * void ports: make reading from a void port give EOF instead of
4401 segv:
4402 * ports.c (s_scm_sys_make_void_port): modified docstring.
4403 (fill_input_void_port): new proc.
4404 (scm_init_ports): set up fill_input_void_port.
4405 * ports.c (scm_port_non_buffer): new proc.
4406 (scm_void_port): call scm_port_non_buffer.
4407
4408 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
4409 which was incorrectly appended.
4410
fdc7ea2d
MD
44112000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4412
4413 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
4414 that we can't use autoconf for this. Autoconf itself relies on
26fba922 4415 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 4416 Herrman.)
a00c95d9 4417
68933ba3
MD
44182000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4419
b44a555a
MD
4420 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
4421 EXTRA_libguile_la_SOURCES.
4422
4423 * iselect.h: Always declare scm_internal_select.
4424
4425 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
4426 end. Also let scm_internal_select be a real function also when
4427 not using threads.
4428
68933ba3
MD
4429 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
4430
c7f6ea11
MD
44312000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4432
4433 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
4434 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
4435 and kind of an experiment: Will this cause problems?)
4436
62dbc244
GB
4437Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
4438
4439 * Makefile.am: Added *.doc to DISTCLEANFILES.
4440
4f2f645d
GH
44412000-03-12 Gary Houston <ghouston@arglist.com>
4442
4443 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
4444 the fdes is valid before doing anything else. check that
4445 the file descriptor supports the modes required.
4446 (scm_fport_buffer_add): don't throw an error if fstat doesn't
4447 work: just use the default buffer size.
4448
4449 * throw.c: change an outdated comment about scm_internal_catch
4450 BODY: it doesn't take a jumpbuf arg.
4451
4452 * init.c (scm_standard_stream_to_port): install a handler in case
4453 scm_fdes_to_port throws an error. don't check here whether the
4454 file descriptor is valid, since scm_fdes_to_port will do that.
4455 set the revealed count depending on whether the port got the
4456 standard file descriptor.
4457 (stream_body_data): new type.
4458 (stream_body, stream_handler): new procs.
4459
7f782a0a
MD
44602000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4461
67673f75
MD
4462 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
4463 Renamed from SCMWORD.
4464
4465 * tags.h (SCM_NCELLP): Removed (SCMWORD).
4466
f1267706 4467 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 4468
74a426ae
MD
4469 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
4470 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
4471 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
4472 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
4473 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
4474 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
4475 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 4476 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
4477 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
4478
7f782a0a
MD
4479 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
4480
4481 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
4482 tags.h: Fixed copyright notices.
4483
4484 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 4485
7f782a0a 44862000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 4487
0cd87628
MV
4488 * init.c (scm_standard_stream_to_port): Check whether the file
4489 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 4490
f3b5e185
MD
44912000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4492
4493 * coop-defs.h (struct timespec): Conditionally defined.
4494
4495 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
4496 instead of ETIME.
38eca29b
MD
4497
4498 * readline.c (match_paren): Bugfix: First arg to select is not
4499 number of descriptors but the number of the highest descriptor +
4500 1.
4501
4502 This is a preliminary attempt at a cleanup of the threads support
4503 code. It moves things to better places, makes arguments more
4504 consistent with the POSIX API (which is used in GNOME's glib), and
4505 adds new functionality.
a00c95d9 4506
38eca29b
MD
4507 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
4508
4509 * coop-defs.h (scm_mutex_trylock): New macro: alias for
4510 coop_mutex_trylock.
4511 (scm_cond_init): Changed definition to
4512 coop_new_condition_variable_init.
a00c95d9 4513
38eca29b
MD
4514 * coop.c: #include <errno.h>
4515 (coop_timeout_qinsert): Moved here from iselect.c
4516 (coop_new_mutex_init, coop_new_condition_variable_init): New
4517 functions. The strange names are temporary. Use scm_mutex_init
4518 and scm_cond_init instead.
4519 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
4520 is ANSI C, but should we check for individual error codes in
4521 configure.in?
4522 (coop_condition_variable_timed_wait_mutex): New function.
4523 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 4524 coop_key_delete): New functions.
38eca29b
MD
4525
4526 * iselect.c (coop_timout_qinsert): Moved to coop.c
4527
32e1616c
MD
45282000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4529
4530 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
4531 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
4532
4533 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
4534 Layout cleanups.
4535
4536 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
4537 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
4538 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
4539
4540 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
4541 dealing with ilocs.
4542
d5c39069
GB
45432000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
4544
4545 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
4546 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
4547 logical functions from SCM.
4548
4549 (logand, logior, logxor, logtest, logbit?): Extended scheme
4550 logical functions to use bignums from SCM.
4551
4552 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
4553 lognot from using bignums.
4554
3e892913
GB
4555Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4556
a00c95d9 4557 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
4558 eliminating some warnings.
4559
4560 * unif.c, strports.c, print.c, options.c: Fix some warnings on
4561 mis-use of SCM/long
4562
4563 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
4564 what the scm_return_first* functions do.
4565
7ac030d6
GB
45662000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
4567
4568 * libguile/*.[ch]: make a distinction between SCM as a generic
4569 name for a Scheme object (now a void*), and SCM as 32 bit word for
4570 storing tags and immediates (now a long int). Introduced
4571 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
4572 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 4573
f635d2d4
GB
4574Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
4575
4576 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
4577 various logXXX primitives. Thanks Eric Moore!
4578
9eaa7fb6
GB
4579Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
4580
4581 * run-test, remaining-docs-needed: Added these scripts. The
4582 second one is only temporary until the docstring additions are
4583 complete. run-test may best live on, but is here mostly for
4584 convenience and awareness for now.
4585
4586 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
4587
49673698
GB
4588Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
4589
4590 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
4591 displaying the expected type. Use SCM_LISTn in a couple places
4592 instead of scm_cons-ing by hand.
4593
4594 * __scm.h: Added SCM_ASSERT_TYPE macro.
4595
4596 * validate.h, scm_validate.h: Added the former, as a renamed
4597 version of the latter with SCM_ASSERT_TYPE used in
4598 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
4599
4600 * Makefile.am: Rename scm_validate.h to validate.h.
4601
4602 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
4603 prefix was superfluous).
4604
417bdef8
GB
4605Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
4606
4607 * hashtab.c: Improved documentation for lots of functions. Added
4608 handwritten docs for `hash-fold'.
4609
4610Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4611
4612 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
4613
26a760c6
GB
4614Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
4615
a00c95d9 4616 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
4617 added append docs from R4RS.
4618
4619 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
4620 Thanks Dirk Hermann!
4621
4622 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
4623 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 4624
26a760c6
GB
4625 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
4626 Drop use of SCM_P for function prototypes... assume an ANSI C
4627 compiler. Thanks Dirk Hermann!
4628
898942f8
GB
4629Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
4630
4631 * ports.c: Made `set-port-column!' and `set-port-line!' each
4632 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
4633 that caused a seg fault. Also fixed `set-port-column!'s
4634 docstring. Thanks Han-Wen Nienhuys for finding the bug!
4635
84a3df2c
GB
4636Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
4637
4638 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 4639 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
4640 strings.c, variable.c: Added lots of documentation, cleaned up
4641 some existing documentation. Occasionally changed formal params
4642 to match docs. Also folded an #ifdef into the inners of a
4643 primitive instead of having two copies of the primitive
4644 (`get-internal-real-time', from stime.c)
4645
4646Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
4647
4648 * ports.c: Added docs for primitives missing them. Written by
4649 hand.
4650
3f557de6
GB
4651Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
4652
4653 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
4654 just execing guile-func-name-check. Thanks Michael Livshin!
4655
ddcccdb3
GB
4656Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
4657
4658 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
4659 dead code. Patch from Michael Livshin.
4660
4661 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
4662 Michael Livshin.
4663
720e8692
GH
46642000-02-09 Gary Houston <ghouston@arglist.com>
4665
4666 * init.c (scm_init_standard_ports): when stdout is a tty, make the
4667 current-output-port unbuffered by default. this is less confusing
4668 for interactive use. it was line-buffered because of a
4669 performance problem with unbuffered ports, but I think it will be
4670 OK now.
4671
43ff3170
GH
46722000-02-08 Gary Houston <ghouston@arglist.com>
4673
4674 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
4675 is not defined.
4676
4677 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
4678 HAVE_TZNAME are defined, use an empty string instead of giving two
4679 spurious compile-time errors.
4680
4ba47302
GB
4681Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4682
4683 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
4684 Thanks Richard!
4685
09a617f7
GB
4686Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
4687
4688 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
4689
9dbcf010
GB
4690Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
4691
4692 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
4693 (which is GNU GPL'd).
4694
bd9e24b3
GH
46952000-01-31 Gary Houston <ghouston@arglist.com>
4696
4697 * strings.h: don't use SCM_P. don't include <string.h>.
4698 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 4699
bd9e24b3
GH
4700 * strings.c (scm_string_ref): make the 2nd argument compulsory.
4701 previously it defaulted to zero for no good reason that I can see.
4702 use a local variable for SCM_INUM (k). replace
4703 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
4704
4705 (scm_makfromstr): cosmetic changes.
4706
4707 (scm_string): Accept only chars in the list, not strings, for
4708 conformance to R5RS (particularly for list->string, which is
4709 supposed to be the inverse of string->list.) remove
4710 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
4711 scm_makstr handles the cell allocation. when reporting wrong-type
4712 arg, don't report the position as 1.
4713
4714 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
4715
28d77376
GH
47162000-01-29 Gary Houston <ghouston@arglist.com>
4717
ae1b098b
GH
4718 * posix.c (scm_pipe): rewrote the docstring.
4719
28d77376
GH
4720 * filesys.c (scm_select, retrieve_select_type, get_element,
4721 fill_select_type, set_element): modified so that Scheme
4722 "select" tests port buffers for the ability to provide input
4723 or accept output. Previously only the underlying file descriptors
4724 were checked. Rewrote the docstring.
a00c95d9 4725
7f1497ce
GB
4726Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4727
4728 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
4729 from Gregg Reynolds. Thanks Gregg!
4730
2288ff9b
GB
4731Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4732
4733 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
4734 adding "x" prefix to the line so that guile-func-name-check
4735 doesn't complain unnecessarily.
4736
349af6dd
GB
4737Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
4738
4739 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
4740 for maintainability.
4741
4742 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
4743 from qdocs, RnRs.
4744
a28eb127
GB
4745Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
4746
a00c95d9 4747 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
4748 suggests removing tag.c altogether (and using a new `class-of'
4749 instead).
4750
4751 * strings.c: Added documentation from Gregg A. Reynolds. Edited
4752 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 4753 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
4754 (rnrs) note.
4755
4756 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
4757 function with scm_make_subr_opt w/ last arg of 0 so it is not
4758 visible at the Scheme level. Mikael says that this is the right
4759 thing because the first arg to the proc is the guts of a compiled
4760 closure and shouldn't be exposed to the Scheme level.
4761
ac2259fc
GB
4762Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
4763
4764 * sort.c: typo in comment fixed.
4765
4766 * keywords.c: Added documentation.
4767
4768 * guardians.c: Added documentation (could be better).
4769
4770 * gc.c: Added docs for gc-set-debug-check-freelist.
4771
4772 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
4773
4774 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 4775
d928e0b4
GB
4776Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
4777
4778 * random.c: Added documentation, from SLIB page:
4779 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
4780
4781Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
4782
4783 * variable.c, version.c: Added documentation, written by hand
4784 since I could not find anything already written that was
4785 relevant.
4786
d831b039
GH
47872000-01-23 Gary Houston <ghouston@arglist.com>
4788
a00c95d9 4789 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
4790 not defined (thanks to Richard Y. Kim).
4791
88ec97ad
GB
4792Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4793
4794 * Makefile.in: Removed, this is auto-generated.
4795
078e9092
GB
4796Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
4797
4798 * list.c: Put some variable initialization code at the point of
4799 declaration; Added a comment for list*; Formatting changes.
4800
4801 * load.c: use SCM_NNULLP to make sure the end of a list is not
4802 reached yet.
4803
e7a96050
MD
48042000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4805
a177af34
MD
4806 * backtrace.c (scm_display_error_message): Bugfix: Don't use
4807 result of scm_list_p as C boolean.
4808 (scm_display_error_message, scm_set_print_params_x): Use new
4809 validation macros. (Thanks to Dirk Herrmann.)
4810
d06bcb02
MD
4811 * net_db.c (scm_resolv_error): Cast result from hstrerror.
4812
4813 * strports.c (st_end_input): Inserted parenthesis to get operator
4814 grouping correct.
4815
4816 * list.h (scm_init_list): Removed SCM_P around prototypes.
4817
4818 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
4819 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
4820 escaped " occurring inside string literals.
4821
682eefe9
MD
4822Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
4823
4824 * posix.c (scm_mknod): Escape " occuring inside docstring.
4825
56cfe22b
MD
48262000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4827
4828 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
4829 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
4830 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
4831 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
4832 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
4833 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
4834 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
4835 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 4836
56cfe22b
MD
4837 * filesys.c (scm_chmod), simpos.c (scm_system), version
4838 (scm_version), vports (scm_make_soft_port): Escape " occuring
4839 inside docstring.
4840
fcb1720f
GB
4841Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
4842
4843 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
4844 SCM_VALIDATE_LONG_COPY
4845
4846 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
4847 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
4848 couple of formal arguments (and fix their uses) to make arguments
4849 match the documentation.
4850
b9af3d0e
MS
48512000-01-14 <mstachow@alum.mit.edu>
4852
4853 * Makefile.am: Augment path when running guile-doc-snarf so
4854 guile-func-name-check is found.
4855
153511a7
GB
4856Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
4857
4858 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
4859 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
4860
59d5245f
GB
4861Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4862
4863 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
4864 the way guile-1.3.4 worked, but #if 0 out the version using
4865 SCM_VALIDATE_INUM_COPY for stricter testing.
4866
95aec69f
GB
4867Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
4868
4869 * guile-doc-snarf.in: Use new $fullfilename for running
4870 guile-func-name-check, and put "$fullfilename" and "$filename" in
4871 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 4872 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
4873 I sure hope we never have to deal with that! :-) ). Thanks to
4874 Mikael for pointing out the source_dir != build_dir was broken.
4875
b7ac2837
GB
4876Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
4877
4878 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
4879 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
4880 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
4881 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
4882 variants.
4883
4884 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
4885 then return whether it's an open port (was validating that it was
4886 an open port -- this was a bug I introduced back in December, but
4887 my careful reading of diffs caught it).
4888
4889 * numbers.c: Recombine the two conditional-compilation paths for
4890 all the log* primitives -- they were split based on #ifndef
4891 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
4892 some bugs and inconsistencies in the two sets of implementations.
4893 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
4894
4895 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
4896 SCM_VALIDATE_INUM_COPY once where it should've been used.
4897
4898 * fluids.c (scm_internal_with_fluids): Use
4899 SCM_VALIDATE_LIST_COPYLEN.
4900
4901 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
4902 this is questionable as it relaxes type safety, but other changes
4903 were useful and all SCM_NUM2LONG's should probably be
4904 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
4905
4906 * evalext.c: line-break change on 1 line.
4907
4908 * eval.c (nconc2last): Takes a non-empty list as its first
4909 argument, not just a list.
4910
4911 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
4912
4913Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
4914
4915 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
4916 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
4917 where possible.
4918
4919 * symbols.c (scm_sysintern0): Fixed the function name in a
4920 scm_misc_error invocation.
4921
4922 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
4923 use scm_return_first to ward off latent GC bug that Mikael caught.
4924
4925 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
4926 used before but should've been.
4927
d61f6b02
MD
49282000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4929
4930 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
4931 SCM_FUNC_CAST_ARBITRARY_ARGS.
4932
88423ab1
GB
4933Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4934
4935 * guile-func-name-check.in: Added this script to statically check
4936 #define FUNC_NAME, #undef FUNC_NAME in the source.
4937
4938 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
4939 redundant comment, semicolon; caught by new guile-func-name-check
4940 script.
4941
4942 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
4943 Caught by new guile-func-name-check-script.
4944
4945 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
4946
4947 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
4948 guile-func-name-check.
4949
a00c95d9 4950 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
4951 doing the snarf.
4952
7f15e635
GB
4953Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
4954
4955 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
4956 port function take const void*, not void*.
4957
bf121b59
GB
4958Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4959
4960 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
4961 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
4962 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
4963 consistency with the other macros dealing with immediate
4964 characters. (Similar to INT -> INUM change a week or so ago).
4965
7965d98f
GB
4966Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4967
4968 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
4969 net_db.c, read.c, socket.c: Update error messages to use ~A for
4970 %s, ~S for %S to work with new `simple-format' format and be
4971 standardized better.
4972
4973 * print.h, print.c (scm_simple_format): Added `simple-format'
4974 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 4975 parameter, and the destination first instead of last (and a couple
7965d98f
GB
4976 new capabilities inspired by `format' -- #t as destination means
4977 current-output-port, #f means return the formatted text as a
4978 string.
4979
4980 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
4981
4982 * backtrace.c (scm_display_error_message): Rewrote to use
4983 scm_simple_format() procedure.
4984
4985 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
4986
f73d2411
MV
49872000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
4988
4989 Finally applied the libltdl patch from Thomas Tanner, with slight
4990 modifications.
4991
4992 * DYNAMIC-LINKING: Removed because it is obsolete.
4993 * dynl.c: Use ANSI prototypes.
4994 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
4995 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 4996
f73d2411
MV
4997 1999-07-25 Thomas Tanner <tanner@ffii.org>
4998
4999 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
5000 (obsolete)
5001 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
5002 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
5003 against libltdl
5004 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
5005 * guile.c: register preloaded modules
5006 * scmconfig.h.in: remove obsolete symbols
5007
38c1d3c4
GH
50082000-01-09 Gary Houston <ghouston@arglist.com>
5009
5010 * These changes should make it unnecessary to call tzset from
5011 Scheme after modifying the TZ environment variable, even if the
5012 system date facilities cache the value.
5013 * stime.c (setzone, scm_localtime): added comments.
5014 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
5015 (setzone): don't call tzset.
5016 (restorezone): call tzset only if HAVE_TZSET is defined.
5017 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
5018 doc string to indicate that this procedure isn't likely to do
5019 anything useful.
5020 (scm_localtime, scm_strftime, scm_mktime): call tzset if
5021 LOCALTIME_CACHE is defined.
5022
9359d657
MD
50232000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
5024
5025 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
5026
f25f761d
GH
50272000-01-09 Gary Houston <ghouston@arglist.com>
5028
5029 * eval.c: define scm_unbound_variable_key ('unbound-variable).
5030 scm_lookupcar1: throw an error with key 'unbound-variable instead
5031 of 'misc-error when an unbound variable is encountered.
5032
a00c95d9 5033 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
5034 scm_symlink, scm_readlink, scm_lstat),
5035 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
5036 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
5037 scm_sync),
a00c95d9 5038 simpos.c (scm_system),
f25f761d
GH
5039 stime.c (scm_times, scm_strptime):
5040 move the HAVE_XXX feature tests out of the procedure bodies.
5041 don't use SCM_SYSMISSING.
5042 scm_validate.h (SCM_SYSMISSING): removed.
5043 error.h, error.c (scm_sysmissing): comment that this is deprecated.
5044 see ChangeLog entry for 1999-12-28.
5045
a4dd2611
GB
5046Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
5047
5048 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
5049
5050Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
5051
5052 * backtrace.c: Fix spelling typo in a comment.
5053
5054 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
5055 text. Reformatted some of the expansions.
5056
5ac36451
GB
5057Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
5058
5059 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
5060 report the position of the argument.
5061
a00c95d9 5062 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 5063 take extra "pos" argument, the position number of the errant
a00c95d9 5064 argument.
5ac36451
GB
5065
5066 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
5067
5068 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
5069 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
5070 prefers that and I'm reasonably indifferent.
5071
5072Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
5073
5074 * snarf.h: Factor out differences between C++ and non-C++ into
5075 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
5076 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
5077 Mikael's macros, below, but changed names and SCM_SNARFING no
5078 longer expands to include %%% -- that must appear in the argument
5079 so that the token appears at the call-site as a reminder).
5080
088bb1d4
MD
50812000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
5082
5083 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
5084 snarf macro definitions.
5085
636480e6
MD
50862000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
5087
5088 * chars.c (scm_integer_to_char): Use Greg's nice
5089 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
5090 adherence to R5RS.
5091
7c5628e2
GB
5092Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
5093
5094 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
5095
2cc0f8cb
GB
5096Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
5097
5098 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
5099 instead of GUILE_PROC.
5100
5101Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
5102
a00c95d9 5103 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
5104 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
5105 macro call.
5106
9179dcdd
GB
5107Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
5108
5109 * scm_validate.h: Remove some redundant NIMP tests.
5110
5111 * alist.c: minimize scope of the tmp variables, and initialize
5112 them when declared. The strange SCM_NIMP tests are replaced by
5113 SCM_CONSP tests that more closely reflect the intended semantics.
5114 However, we don't get a performance penalty here, because the
5115 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
5116 extremely ugly use of ASRTGO macros was removed: The calls to
5117 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
5118 label parameter that only exists when SCM_RECKLESS is not defined.
5119 This works, because ASRTGO itself is defined in a way that it only
5120 makes use of the label parameter if SCM_RECKLESS is not defined
5121 (shudder!). Does guile make at all use of the possibility to
5122 define SCM_RECKLESS? * Codesize is likely to be reduced, since
5123 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
5124 we now only get one test.
5125
5126 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
5127 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
5128 some variables in `list?'. Fix `reverse' and `reverse!'
5129 primitives to handle improper lists better.
5130
15b33280
GB
5131Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
5132
5133 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
5134 macros and SCM_DEFINE macros to match GNU coding standards.
5135
ca8cd130
GB
5136Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
5137
5138 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
5139
fb764465
GB
5140Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
5141
5142 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
5143 better consistency with the names of other SCM_VALIDATE_ macros
5144 and better conformance to guile naming policy.
5145
5146Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
5147
5148 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
5149 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
5150 it's not the actual name of the formal).
1e484823
GB
5151
5152 * guile-snarf.awk.in: Do argument/number mismatch checking and
5153 print warnings in an Emacs compile-mode parseable format.
5154
5155 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
5156 SCM_OUTOFRANGE as 3rd argument.
5157
5158 * random.c: Fix argument/number mismatch (that I introduced :-( ).
5159
5160 * __scm.h: Do not #define SCM_ARG* when snarfing;
5161 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
5162 the former (using the number) requires the argument to match the
5163 formal in the current argument snarfing check.
5164
5165 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 5166 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
5167 guile-snarf.awk script uses to verify argument/position matching.
5168
5169 * ramap.c: Remove extraneous #undef FUNC_NAME.
5170
53fc4636
GB
5171Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
5172
5173 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 5174 current version of the same functionality; it writes the .x output
53fc4636
GB
5175 to stdout instead of directly into the file.
5176
5177Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
5178
5179 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
5180 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
5181 redundant with the safer macros. Patch from Dirk Hermann applied
5182 by hand. Thanks Dirk!
5183
5184 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
5185 uses in random.c.
5186
5187 * ramap.c: whitespace change.
5188
3b5345d9
GB
5189Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
5190
5191 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
5192 removals from Dirk Hermann.
5193
5194 * alist.c: Rename formals to match the parameter names in the
5195 documentation, updates to documentation. Thanks Dirk Hermann!
5196
169aec65
MD
51972000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
5198
db62436e
MD
5199 * eval.c (SCM_CEVAL): Reverse order of
5200 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
5201 (Thanks to Brad Knotwell.)
169aec65 5202
da43d822
GB
5203Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
5204
5205 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 5206 allocated cell.
da43d822
GB
5207
5208 * pairs.h: Added a comment about the need for the SCM_SETCAR in
5209 SCM_NEWCELL macro.
5210
5211Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
5212
5213 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
5214 SCM_NIMP tests that were redundant are now eliminated. Patches
5215 from Dirk Hermann applied by hand.
5216
339999c7 5217The ChangeLog continues in the file: "ChangeLog-1996-1999"