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