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