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