* filter-doc-snarfage.c (process): added ungetc in
[bpt/guile.git] / libguile / ChangeLog
1 2001-06-19 Gary Houston <ghouston@arglist.com>
2
3 * filter-doc-snarfage.c (process): added ungetc in
4 MULTILINE_COOKIE case since otherwise it fails when there's no
5 space between the '(' and the quote of the following string
6 (gcc 3.0).
7
8 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
9
10 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
11
12 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
13
14 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
15 extension takes place.
16 * strings.h (SCM_STRING_LENGTH): Likewise.
17 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
18
19 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
20 it.
21
22 * tags.h: Include <stdint.h> when we have it.
23 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
24 available. Else use "unsigned long".
25 (scm_signed_bits_t): New.
26
27 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
28 (SCM_INUM): Cast result to scm_signed_bits_t.
29
30 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
31
32 * mkstemp.c: Update path to #include file scmconfig.h.
33 Thanks to Golubev I. N.
34
35 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
36
37 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
38
39 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
40 the macro definition.
41
42 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
43 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
44 instead of SCM_INST_TYPE.
45
46 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
47 the object is a struct before accessing its struct flags.
48
49 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
50
51 2001-06-10 Gary Houston <ghouston@arglist.com>
52
53 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
54 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
55 work reliably anymore. try it from boot-9.scm instead.
56
57 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
58
59 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
60 Thanks to Matthias Köppe!
61
62 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
63
64 * snarf.h, filter-doc-snarfage.c: more changes to cope with
65 space-happy C preprocessors.
66
67 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
68 inside cookies. thanks to Matthias Köppe!
69
70 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
71
72 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
73 keywords. Fix gc protection.
74
75 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
76 operations in macro calls.
77
78 * pairs.c (scm_error_pair_access): Avoid recursion.
79
80 Thanks to Matthias Koeppe for reporting the bugs that correspond
81 to the following set of patches.
82
83 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
84 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
85 bitvector base address using SCM_BITVECTOR_BASE.
86
87 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
88 unsigned long*.
89
90 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
91
92 * goops.c (SCM_CLASS_REDEF): Removed.
93
94 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
95 SCM_<foo>_H.
96
97 Thanks to Matthias Koeppe for reporting the bugs that correspond
98 to the following set of patches.
99
100 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
101 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
102 scm_sys_allocate_instance, clear_method_cache,
103 scm_sys_invalidate_method_cache_x, scm_make,
104 create_standard_classes, scm_make_port_classes, scm_make_class,
105 scm_add_slot): Use SCM_SET_SLOT to set slot values.
106
107 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
108
109 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
110
111 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
112 UNARY_ELTS_CODE): Remove bogus break statement.
113
114 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
115 Don't access bit vectors elements as SCM objects.
116
117 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
118 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
119 Don't assign to an unpacked value.
120
121 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
122
123 * __scm.h (SCM_NORETURN): Moved here from error.h.
124
125 (SCM_UNUSED): New macro.
126
127 (SCM_DEBUG_PAIR_ACCESSES): New macro.
128
129 * backtrace.c (display_error_handler), continuations.c
130 (continuation_print), debug.c (debugobj_print), dynwind.c
131 (guards_print), environments.c (observer_print,
132 core_environments_finalize, leaf_environment_cell,
133 leaf_environment_print, eval_environment_print,
134 eval_environment_observer, import_environment_define,
135 import_environment_undefine, import_environment_print,
136 import_environment_observer, export_environment_define,
137 export_environment_undefine, export_environment_print,
138 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
139 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
140 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
141 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
142 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
143 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
144 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
145 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
146 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
147 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
148 set_slot_value, test_slot_existence, scm_change_object_class,
149 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
150 default_setter), guardians.c (guardian_print, guardian_gc_init,
151 guardian_zombify, whine_about_self_centered_zombies), guile.c
152 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
153 mallocs.c (malloc_print), numbers.c (scm_print_real,
154 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
155 end_input_default, scm_port_print, fill_input_void_port,
156 write_void_port), root.c (root_print), smob.c (scm_mark0,
157 scm_free0, scm_smob_print, scm_smob_apply_1_error,
158 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
159 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
160 (scm_struct_free_0, scm_struct_free_standard,
161 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
162 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
163 scm_handle_by_throw, scm_ithrow), weaks.c
164 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
165 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
166 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
167
168 * error.h (SCM_NORETURN): Moved to __scm.h.
169
170 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
171 Renamed <foo>H to SCM_<foo>_H.
172
173 * gc.c (debug_cells_gc_interval): New static variable.
174
175 (scm_assert_cell_valid): If selected by the user, perform
176 additional garbage collections.
177
178 (scm_set_debug_cell_accesses_x): Extended to let the user specify
179 if additional garbage collections are desired.
180
181 (mark_gc_async): If additional garbage collections are selected
182 by the user, don't call the after-gc-hook. Instead require the
183 user to run the hook manually.
184
185 * pairs.c (scm_error_pair_access): New function. Only compiled
186 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
187
188 * pairs.h (SCM_VALIDATE_PAIR): New macro.
189
190 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
191 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
192 is a real pair object. (Glocs are also accepted, but that may
193 change.) If not, abort with an error message.
194
195 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
196
197 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
198
199 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
200 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
201
202 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
203
204 * extensions.c (scm_c_register_extension): Allow NULL as library
205 name.
206 (load_extension): Ignore NULL library names when comparing.
207
208 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
209 non-pointers are being compared. Thanks to Alexander Klimov!
210
211 2001-06-04 Gary Houston <ghouston@arglist.com>
212
213 * rw.c (scm_write_string_partial): new procedure implementing
214 write-string/partial in (ice-9 rw).
215 * rw.h: declare scm_write_string_partial.
216
217 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
218
219 * keywords.c (keyword_print): Substract 1 from length of symbol
220 name, accounting for the silly dash.
221
222 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
223 Do not emit deprecation warning.
224
225 Added exception notice to all files.
226
227 * dynl.c: Include "deprecation.h".
228
229 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
230
231 * dynl.c (scm_register_module_xxx, scm_registered_modules,
232 scm_clear_registered_modules): Deprecated.
233
234 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
235
236 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
237 guile-snarf-docs-texi.
238
239 * fports.c: HAVE_ST_BLKSIZE changed to
240 HAVE_STRUCT_STAT_ST_BLKSIZE.
241 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
242 HAVE_STRUCT_STAT_ST_BLKSIZE.
243
244 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
245 HAVE_STRUCT_STAT_ST_RDEV.
246 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
247 HAVE_STRUCT_STAT_ST_BLKSIZE.
248 (scm_stat2scm): HAVE_ST_BLOCKS changed to
249 HAVE_STRUCT_STAT_ST_BLOCKS.
250
251 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
252
253 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
254 of scm_eval_x to allow module changes between the forms in the
255 string. Set/restore module using scm_c_call_with_current_module.
256
257 * mkstemp.c: New file, slightly modified from libiberties
258 mkstemps.c.
259
260 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
261
262 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
263 filter-doc-snarfage.c: new files.
264
265 * Makefile.am: add stuff to [build,] use and distribute
266 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
267
268 * guile-snarf.in: grok the new snarf output.
269
270 * snarf.h: make the output both texttools- and `read'-friendly.
271
272 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
273 guile-snarf-docs. (should also deprecate, I guess. maybe not).
274
275 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
276
277 * print.c (scm_simple_format): Support "~~" and "~%". Signal
278 error for unsupported format controls and for superflous
279 arguments. Thanks to David Skarda!
280
281 * print.h, print.c (scm_print_symbol_name): Factored out of
282 scm_iprin1.
283 (scm_iprin1): Call it.
284
285 * keywords.c (keyword_print): Use scm_print_symbol_name so that
286 weird names are printed correctly.
287
288 * print.c (scm_print_symbol_name): Symbols whose name starts with
289 `#' or `:' or ends with `:' are considered weird.
290
291 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
292
293 * numbers.c (scm_difference, scm_divide): Clarified comments for -
294 and /.
295
296 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
297
298 * debug.h: Removed prototype for scm_eval_string.
299
300 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
301
302 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
303 (make-string 2000 #\!))' in an older version).
304
305 Change strncpy to memcpy to allow embedded NUL characters in
306 symbol prefix.
307
308 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
309
310 * hooks.c (scm_create_hook): deprecated.
311 (make_hook): deleted.
312 (scm_make_hook): all the hook creation code is now here.
313
314 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
315 a hook, make it permanent, and do a `scm_c_define' on it.
316
317 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
318
319 * socket.c (s_scm_inet_pton): fix docstring quoting.
320 (s_scm_inet_ntop): ditto.
321
322 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
323
324 * hashtab.c (scm_internal_hash_fold): fix argument position in
325 SCM_ASSERT.
326
327 * environments.c (s_scm_import_environment_set_imports_x): fix
328 argument position in SCM_ASSERT.
329
330 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
331 (s_scm_make_iloc): ditto.
332
333 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
334
335 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
336
337 * eval.c (promise_print): Read the promise's value as an object.
338
339 (SCM_CEVAL): Don't perform side-effecting operations in macro
340 parameters.
341
342 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
343 conditional expression.
344
345 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
346 initializer.
347
348 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
349 text, removed redundant computation of effective_length and fixed
350 the overflow check.
351
352 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
353 values.
354
355 (wrap_init): Don't use SCM_C[AD]R for non pairs.
356
357 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
358
359 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
360 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
361
362 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
363
364 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
365 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
366 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
367 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
368
369 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
370
371 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
372
373 * ramap.c (ramap_rp): Removed bogus `;´.
374
375 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
376 problem.
377
378 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
379 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
380 Read SCM objects rather than scm_bits_t values.
381
382 * tags.h (SCM_VOIDP_TEST): Removed.
383
384 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
385 value of 2 now corresponds to the former 1, the current 1
386 corresponds to the former situation that SCM_VOIDP_TEST was
387 defined.
388
389 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
390 If this appears to be not ANSI compliant, we will change it to
391 typedef struct scm_unused_struct { } * SCM;
392 Thanks to Han-Wen Nienhuys for the suggestion.
393
394 * unif.c (scm_array_set_x): Fix typing problem, and use
395 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
396 dealing with uniform vectors.
397
398 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
399
400 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
401 (scm_igc): mark from them, too (precisely, not conservatively!).
402
403 * root.h (scm_gc_registered_roots): new object in
404 scm_sys_protects.
405
406 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
407 `scm_protect_object'. shouldn't call it at all, though, it seems.
408
409 * gc.c (scm_[un]protect_object): deprecated.
410 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
411 (scm_gc_[un]register_root[s]): new.
412
413 * gc.h: add prototypes for scm_gc_[un]protect_object,
414 scm_gc_[un]register_root[s].
415
416 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
417
418 revert the controversial part of the 2001-05-24 changes.
419
420 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
421
422 * modules.c (scm_env_module): Exported to Scheme.
423
424 * eval.c (scm_debug_opts): New option `show-file-name'.
425
426 * debug.h (SCM_SHOW_FILE_NAME): New.
427
428 * backtrace.c: Include "libguile/filesys.h".
429 (sym_base, display_backtrace_get_file_line,
430 display_backtrace_file, display_backtrace_file_and_line): New.
431 (display_frame): Call display_backtrace_file_and_line if that is
432 requested.
433 (display_backtrace_body): Call scm_display_backtrace_file if
434 requested.
435
436 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
437 Prototypes removed since there's no definition for these
438 functions.
439
440 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
441
442 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
443 Changed use of scm_array->scm_array_t and
444 scm_array_dim->scm_array_dim_t to enable build with
445 --disable-deprecated.
446
447 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
448
449 The purpose of this set of changes is to regularize Guile's usage
450 of ANSI C integral types, with the following ideas in mind:
451
452 - SCM does not nesessarily have to be long.
453 - long is not nesessarily enough to store pointers.
454 - long is not nesessarily the same size as int.
455
456 The changes are incomplete and possibly buggy. Please test on
457 something exotic.
458
459 * validate.h
460 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
461 new macros.
462
463 * unif.h: type renaming:
464 scm_array -> scm_array_t
465 scm_array_dim -> scm_array_dim_t
466 the old names are deprecated, all in-Guile uses changed.
467
468 * tags.h (scm_ubits_t): new typedef, representing unsigned
469 scm_bits_t.
470
471 * stacks.h: type renaming:
472 scm_info_frame -> scm_info_frame_t
473 scm_stack -> scm_stack_t
474 the old names are deprecated, all in-Guile uses changed.
475
476 * srcprop.h: type renaming:
477 scm_srcprops -> scm_srcprops_t
478 scm_srcprops_chunk -> scm_srcprops_chunk_t
479 the old names are deprecated, all in-Guile uses changed.
480
481 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
482 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
483 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
484 vectors.c, vports.c, weaks.c:
485 various int/size_t -> size_t/scm_bits_t changes.
486
487 * random.h: type renaming:
488 scm_rstate -> scm_rstate_t
489 scm_rng -> scm_rng_t
490 scm_i_rstate -> scm_i_rstate_t
491 the old names are deprecated, all in-Guile uses changed.
492
493 * procs.h: type renaming:
494 scm_subr_entry -> scm_subr_entry_t
495 the old name is deprecated, all in-Guile uses changed.
496
497 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
498 type renaming:
499 scm_option -> scm_option_t
500 the old name is deprecated, all in-Guile uses changed.
501
502 * objects.c: various long -> scm_bits_t changes.
503 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
504
505 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
506 SCM_I_FIXNUM_BIT.
507
508 * num2integral.i.c: new file, multiply included by numbers.c, used
509 to "templatize" the various integral <-> num conversion routines.
510
511 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
512 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
513 deprecated.
514 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
515 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
516 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
517 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
518 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
519 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
520 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
521 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
522 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
523 scm_num2size): new functions.
524
525 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
526
527 * load.c: change int -> size_t in various places (where the
528 variable is used to store a string length).
529 (search-path): call scm_done_free, not scm_done_malloc.
530
531 * list.c (scm_ilength): return a scm_bits_t, not long.
532 some other {int,long} -> scm_bits_t changes.
533
534 * hashtab.c: various [u]int -> scm_bits_t changes.
535 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
536 (scm_ihashx): n: uint -> scm_bits_t
537 use scm_bits2num instead of scm_ulong2num.
538
539 * gsubr.c: various int -> scm_bits_t changes.
540
541 * goops.[hc]: various {int,long} -> scm_bits_t changes.
542
543 * gh_data.c (gh_num2int): no loss of precision any more.
544
545 * gh.h (gh_str2scm): len: int -> size_t
546 (gh_{get,set}_substr): start: int -> scm_bits_t,
547 len: int -> size_t
548 (gh_<num>2scm): n: int -> scm_bits_t
549 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
550 (gh_length): return scm_bits_t, not unsigned long.
551
552 * gc.[hc]: various small changes relating to many things stopping
553 being long and starting being scm_[u]bits_t instead.
554 scm_mallocated should no longer wrap around.
555
556 * fports.h: type renaming:
557 scm_fport -> scm_fport_t
558 the old name is deprecated, all in-Guile uses changed.
559
560 * fports.c (fport_fill_input): count: int -> scm_bits_t
561 (fport_flush): init_size, remaining, count: int -> scm_bits_t
562
563 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
564 those prototypes, as the functions they prototype don't exist.
565
566 * fports.c (default_buffer_size): int -> size_t
567 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
568 default_size: int -> size_t
569 (scm_setvbuf): csize: int -> scm_bits_t
570
571 * fluids.c (n_fluids): int -> scm_bits_t
572 (grow_fluids): old_length, i: int -> scm_bits_t
573 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
574 scm_bits_t
575 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
576
577 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
578 the new and shiny SCM_NUM2INT.
579
580 * extensions.c: extension -> extension_t (and made a typedef).
581
582 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
583 there are no nasty surprises if/when the various deeply magic tag
584 bits move somewhere else.
585
586 * eval.c: changed the locals used to store results of SCM_IFRAME,
587 scm_ilength and such to be of type scm_bits_t (and not int/long).
588 (iqq): depth, edepth: int -> scm_bits_t
589 (scm_eval_stack): int -> scm_bits_t
590 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
591 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
592 i: int -> scm_bits_t
593
594 * environments.c: changed the many calls to scm_ulong2num to
595 scm_ubits2num.
596 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
597
598 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
599
600 * debug.h: type renaming:
601 scm_debug_info -> scm_debug_info_t
602 scm_debug_frame -> scm_debug_frame_t
603 the old names are deprecated, all in-Guile uses changed.
604 (scm_debug_eframe_size): int -> scm_bits_t
605
606 * debug.c (scm_init_debug): use scm_c_define instead of the
607 deprecated scm_define.
608
609 * continuations.h: type renaming:
610 scm_contregs -> scm_contregs_t
611 the old name is deprecated, all in-Guile uses changed.
612 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
613 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
614
615 * continuations.c (scm_make_continuation): change the type of
616 stack_size from long to scm_bits_t.
617
618 * ports.h: type renaming:
619 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
620 scm_port -> scm_port_t
621 scm_ptob_descriptor -> scm_ptob_descriptor_t
622 the old names are deprecated, all in-Guile uses changed.
623 (scm_port_t.entry): int -> scm_bits_t.
624 (scm_port_t.line_number): int -> long.
625 (scm_port_t.putback_buf_size): int -> size_t.
626
627 * __scm.h (long_long, ulong_long): deprecated (they pollute the
628 global namespace and have little value beside that).
629 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
630 SCM handle).
631 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
632 exist (for size_t & ptrdiff_t).
633 (scm_sizet): deprecated.
634
635 * Makefile.am (noinst_HEADERS): add num2integral.i.c
636
637 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
638
639 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
640 SCM_VARIABLE_INIT since that it what it used to be.
641
642 * deprecation.c (scm_include_deprecated_features): Make docstring
643 ANSIsh. Thanks to Matthias Köppe!
644
645 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
646
647 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
648 needed for weak-key hashtables.
649
650 * procs.c (scm_make_subr_with_generic): Add missing last argument
651 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
652
653 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
654 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
655
656 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
657
658 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
659
660 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
661 `duplicate_string'. Do not use an indirect cell, store symbol
662 directly in collision list of hash table.
663 (duplicate_string): Removed.
664
665 * init.c (scm_init_guile_1): Call scm_init_extensions.
666
667 * Makefile.am: Add "extensions.c" and related files in all the
668 right places.
669
670 * extensions.h, extension.c: New files.
671
672 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
673
674 * modules.h (scm_system_module_env_p): Move out of deprecated
675 section.
676
677 * rw.h (scm_init_rw): Added prototype.
678
679 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
680 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
681 New functions. They replace scm_make_gsubr and
682 scm_make_gsubr_with_generic. The `make' variants only create the
683 gsubr object, while the `define' variants also put it into the
684 current module. Changed all callers.
685 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
686
687 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
688 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
689 functions. They replace scm_make_subr, scm_make_subr_opt and
690 scm_make_subr_with_generic. The `make' variants only create the
691 subr object, while the `define' variants also put it into the
692 current module. Changed all callers.
693 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
694 Deprecated.
695
696 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
697 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
698 the comments above.
699
700 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
701
702 * throw.c (scm_lazy_catch): Slight docstring clarification.
703
704 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
705
706 * throw.c: Lazy-catch handlers are no longer allowed to return.
707 Fixed comments throughout.
708 (scm_ithrow): Signal an error when a lazy-catch handler returns.
709 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
710 recognized as such.
711
712 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
713 refered to s_scm_minor_version previously.
714
715 * modules.h, modules.c: Moved around a lot of code so that
716 deprecated features appear at the bottom.
717 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
718 module_prefix, make_modules_in_var, beautify_user_module_x_var,
719 scm_the_root_module, scm_make_module, scm_ensure_user_module,
720 scm_load_scheme_module): Deprecated.
721 (scm_system_module_env_p): Return SCM_BOOL_T directly for
722 environments corresponding to the root module.
723 (convert_module_name, scm_c_resolve_module,
724 scm_c_call_with_current_module, scm_c_define_module,
725 scm_c_use_module, scm_c_export): New.
726 (the_root_module): New static variant of scm_the_root_module. Use
727 it everywhere instead of scm_the_root_module.
728
729 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
730 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
731 (scm_c_with_fluid): New.
732 (scm_with_fluids): Use scm_c_with_fluids instead of
733 scm_internal_with_fluids.
734
735 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
736 `scm_init_goops'. Do not explicitly create/switch modules.
737 Return SCM_UNSPECIFIED.
738 (scm_init_goops): Only register `%init-goops-builtins' procedure.
739 (scm_load_goops): Use scm_c_resolve_module instead of
740 scm_resolve_module.
741
742 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
743 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
744 `scm_init_rw' prior to loading the startup files.
745
746 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
747 scm_init_rdelim. Do not explicitly create/switch modules.
748 Return SCM_UNSPECIFIED.
749 (scm_init_rdelim): Only register `%init-rdelim-builtins'
750 procedure.
751
752 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
753 explicitly create/switch modules. Return SCM_UNSPECIFIED.
754 (scm_init_rw): Only register `%init-rw-builtins' procedure.
755
756 * script.c (scm_shell): Evaluate the compiled switches in the
757 current module, not in the root module.
758
759 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
760
761 * fluids.c (scm_c_with_fluids): Rename from
762 scm_internal_with_fluids.
763 (scm_internal_with_fluids): Deprecated.
764 (scm_c_with_fluid): New.
765
766 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
767
768 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
769
770 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
771 accessed with SCM_C[AD]R.
772
773 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
774
775 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
776
777 * version.c (s_scm_major_version): doc fixes.
778 (s_scm_minor_version): doc fixes.
779 (s_scm_minor_version): new function.
780
781 * version.h (scm_init_version): new function.
782
783 * versiondat.h.in: add GUILE_MICRO_VERSION.
784
785 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
786
787 * deprecation.c (scm_init_deprecation): Renamed
788 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
789
790 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
791
792 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
793 dependent on cpp_cnvt.awk
794
795 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
796
797 * script.c (scm_compile_shell_switches): New command line option
798 `--use-srfi' for loading a list of SRFIs on startup.
799 (scm_shell_usage): Added `--use-srfi' to help message.
800
801 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
802
803 Merged from mvo-vcell-cleanup-1-branch.
804
805 The concept of vcells has been removed from Guile. With it,
806 explicit obarrays and associated operations are gone. Use
807 hashtables instead of obarrays.
808
809 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
810 result as variable instead of vcell. Glocs no longer point to a
811 vcell but to a variable. Use scm_c_define instead of
812 scm_sysintern and treat the result as a variable (which it is),
813 not a vcell.
814
815 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
816 SCM_DEFVARIABLEP): Deprecated.
817 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
818 (variable_print): Do not print name of variable.
819 (variable_equalp): Compare values, not vcells.
820 (anonymous_variable_sym): Removed.
821 (make_vcell_variable): Removed.
822 (make_variable): New, as replacement.
823 (scm_make_variable, scm_make_undefined_variable): Do not take name
824 hint parameter.
825 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
826 error in that case.
827 (scm_builtin_variable): Deprecated.
828
829 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
830 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
831 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
832 scm_sysintern, scm_sysintern0, scm_symbol_value0,
833 scm_string_to_obarray_symbol, scm_intern_symbol,
834 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
835 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
836 Deprecated and moved to "symbols-deprecated.c".
837 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
838 (scm_init_symbols): Call scm_init_symbols_deprecated.
839 * symbols-deprecated.c: New file.
840 * Makefile.am: Added symbols-deprecated.c and related files in all
841 the right places.
842
843 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
844 SCM_GLOBAL_VCELL_INIT): Deprecated.
845 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
846 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
847
848 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
849 SCM_GLOC_SYM.
850
851 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
852 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
853 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
854 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
855 Changed according to the `throughout' comments.
856
857 * modules.h, modules.c (scm_module_system_booted_p): Changed type
858 to `int'.
859 (scm_module_type): Removed.
860 (the_root_module): Renamed to the_root_module_var. Now points to
861 a variable instead of a vcell. Updated all uses.
862 (scm_the_root_module): Return SCM_BOOL_F when module systems
863 hasn't been booted yet.
864 (SCM_VALIDATE_STRUCT_TYPE): Removed.
865 (scm_post_boot_init_modules): Made static.
866 (scm_set_current_module): Call scm_post_boot_init_modules on first
867 call.
868 (make_modules_in, beautify_user_module_x, resolve_module,
869 try_module_autoload, module_make_local_var_x): Tacked on "_var"
870 suffix. Now point to variables instead of vcells. Updated all
871 uses.
872 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
873 and return SCM_BOOL_F in that case.
874 (scm_module_transformer): Likewise.
875 (sym_module, scm_lookup_closure_module, scm_env_module): New.
876 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
877 (scm_eval_closure_lookup): Do not allow new definitions when
878 `interface' flag is set.
879 (scm_standard_interface_eval_closure): New.
880 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
881 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
882 scm_c_lookup, scm_c_module_define, scm_c_define,
883 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
884 scm_modules_prehistory): New.
885 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
886 instead of scm_intern0.
887
888 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
889 symbol.
890
891 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
892 hashtable operations to maintain the keywords, not obarray ones.
893
894 * init.c (scm_load_startup_files): Do not call
895 scm_post_boot_init_modules. This is done by
896 scm_set_current_module now.
897 (scm_init_guile_1): Call scm_modules_prehistory. Call
898 scm_init_variable early on.
899
900 * goops.c (s_scm_sys_goops_loaded): Get
901 var_compute_applicable_methods from scm_sym2var, not from a direct
902 invocation of scm_goops_lookup_closure.
903
904 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
905
906 * gc.c: Added simple debugging hack to mark phase of GC: When
907 activated, do not tail-call scm_gc_mark. This gives nice
908 backtraces.
909 (scm_unhash_name): Removed.
910
911 * feature.c (features): Renamed to features_var. Now points to a
912 variable instead of a vcell. Updated all uses.
913
914 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
915 `scm_current_module_lookup_closure' which will do the right thing
916 when the module system hasn't been booted yet.
917 (SCM_GLOC_SYM): Removed.
918 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
919 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
920
921 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
922 instead of with vcells. Do not overwrite `var' with the result of
923 the lookup, use the new `real_var' instead. Remove `var2' in
924 exchange (which was only used with threads).
925 (sym_three_question_marks): New.
926 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
927 `SCM_GLOC_SYM'.
928 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
929 (scm_m_atfop): Expect the function definition to be a variable
930 instead of a vcell.
931 (scm_macroexp): Do not use `unmemocar', explicitely remember the
932 symbol instead.
933 (scm_unmemocopy): Removed thoughts about anti-macro interface.
934 (scm_eval_args): Use more explicit code in the gloc branch of the
935 atrocious struct ambiguity test. The optimizer will sort this
936 out.
937 (scm_deval_args): Likewise.
938 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
939 remember the symbol instead. Added some comments where
940 scm_tc3_cons_gloc really exclusively refers to structs.
941 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
942 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
943 of scm_sysintern in general.
944
945 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
946 explicit magic.
947
948 * debug.c (s_scm_make_gloc): Only allow proper variables, no
949 pairs. Put the variable directly in the gloc.
950 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
951 (scm_init_debug): Use scm_c_define instead scm_sysintern.
952
953 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
954
955 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
956 scm_the_last_stack_fluid_var. It now points to a variable instead
957 of a vcell. Updated all uses.
958 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
959 instead of a vcell. Updated all uses.
960
961 * _scm.h: Include "variables.h" and "modules.h" since almost
962 everybody needs them now.
963
964 * root.h (scm_symhash, scm_symhash_vars): Removed.
965 * gc.c (scm_init_storage): Do not initialize them.
966
967 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
968
969 * eval.c (scm_init_eval): Initialize scm_undefineds and
970 scm_listofnull.
971
972 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
973 like the SCM_NEWCELL macro counterparts.
974
975 (scm_init_storage, scm_init_gc): Moved initialization of
976 scm_tc16_allocated from scm_init_gc to scm_init_storage.
977
978 (scm_init_storage): Moved initialization of scm_undefineds and
979 scm_listofnull to eval.c, initializion of scm_nullstr to
980 strings.c, initializion of scm_nullvect to vectors.c.
981
982 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
983 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
984
985 * init.c (scm_init_guile_1): Reordered some initializations and
986 added dependcy information comments.
987
988 * load.c (scm_init_load): Use scm_nullstr.
989
990 * strings.c (scm_init_strings): Initialize scm_nullstr.
991
992 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
993
994 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
995
996 * values.c (print_values): Print as a unreadable object, not as
997 multiple lines. Thanks to Matthias Köppe!
998
999 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
1000
1001 * deprecation.c: Fixed copyright date.
1002
1003 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
1004 DEPRECATION_H to SCM_DEPRECATION_H.
1005
1006 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
1007
1008 * guile-doc-snarf.in: Update copyright.
1009 Fix relative path bug. Thanks to Sergey Poznyakoff.
1010
1011 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
1012
1013 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
1014 accept open ports. Thanks to Quetzalcoatl Bradley!
1015
1016 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1017
1018 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
1019 has 779 primitives on startup.
1020
1021 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
1022
1023 * eval.c (scm_i_eval): Copy expression before passing it to
1024 SCM_XEVAL. The copy operation was removed unintendedly during my
1025 change on 2001-03-25.
1026
1027 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
1028
1029 from Matthias Köppe (thanks!):
1030
1031 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
1032 portable.
1033
1034 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
1035 docstring.
1036
1037 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1038
1039 * gc.c (scm_init_gc): Added FIXME comment.
1040
1041 * hooks.c: Since hooks don't have a name any more, it is not
1042 necessary to include objprop.h.
1043
1044 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
1045
1046 (symbol_name, scm_make_hook_with_name): Removed.
1047
1048 (scm_create_hook): Don't set the hook's name property.
1049
1050 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
1051
1052 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
1053
1054 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
1055
1056 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
1057 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
1058 FLOBUFLEN and define it unconditionally.
1059
1060 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
1061
1062 * gh_data.c (gh_lookup): Call gh_module_lookup with
1063 `scm_current_module ()', not `#f'.
1064 (gh_module_lookup): Expect a module instead of an obarray as first
1065 argument and do lookup in that module.
1066
1067 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
1068 arrays. The length of array is already determined differently and
1069 scm_uniform_vector_length does not work on arrays.
1070
1071 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
1072
1073 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
1074 as well. "SCM (*)(...)" does not work on RedHat 7.1.
1075
1076 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
1077 they are not used. Changed `wrong type' error into `wrong num
1078 args' error. Changed all callers.
1079
1080 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
1081 arguments are supplied.
1082
1083 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
1084
1085 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
1086 describe `regexp/notbol' and `regexp/noteol' execution flags.
1087
1088 * strop.c (scm_substring_move_x): Doc fix; nfc.
1089
1090 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
1091
1092 * objects.c, objects.h (scm_valid_object_procedure_p): New.
1093 (scm_set_object_procedure_x): Use it to check argument. Fix
1094 docstring.
1095
1096 * evalext.c (scm_definedp): Fix docstring.
1097
1098 2001-05-05 Gary Houston <ghouston@arglist.com>
1099
1100 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
1101 support.
1102
1103 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
1104
1105 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
1106 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
1107 Change R4RS references to R5RS.
1108
1109 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
1110 docstring source are correctly reproduced in the output (ii)
1111 we don't anymore get occasional trailing quotes. Also reorganized
1112 and commented the code a little.
1113
1114 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
1115 fixes.
1116
1117 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1118
1119 * strop.c (scm_string_split): New procedure.
1120
1121 * strop.h (scm_string_split): Added prototype.
1122
1123 2001-05-04 Gary Houston <ghouston@arglist.com>
1124
1125 * socket.c: define uint32_t if netdb.h doesn't. thanks to
1126 Dale P. Smith.
1127
1128 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
1129
1130 * rw.c: Include "modules.h" and "strports.h".
1131
1132 * net_db.h (scm_gethost): Added prototype.
1133
1134 * deprecation.h, deprecation.c: New.
1135 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
1136 (DOT_X_FILES): Added "deprecation.x".
1137 (modinclude_HEADERS): Added "deprecation.h".
1138
1139 * init.c: Include "deprecation.h".
1140 (scm_init_guile_1): Call scm_init_deprecation.
1141
1142 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
1143
1144 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
1145 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
1146 New.
1147
1148 2001-04-29 Gary Houston <ghouston@arglist.com>
1149
1150 * rw.c: new file, implementing C part of module (ice-9 rw).
1151 (scm_read_string_x_partial): moved from ioext.c
1152 (scm_init_rw): new proc.
1153 * rw.h: new file.
1154 init.c: include rw.h and call scm_init_rw.
1155 Makefile.am: include rw.c and rw.h.
1156
1157 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
1158
1159 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
1160 know what's supposed to happen to it.
1161
1162 * list.h (scm_list_star): deprecation expired - removed.
1163
1164 * numbers.h (scm_dblproc): deprecation expired - removed.
1165 (SCM_UNEGFIXABLE): deprecation expired - removed.
1166 (SCM_FLOBUFLEN): deprecation expired - removed.
1167 (SCM_INEXP): deprecation expired - removed.
1168 (SCM_CPLXP): deprecation expired - removed.
1169 (SCM_REAL): deprecation expired - removed.
1170 (SCM_IMAG): deprecation expired - removed.
1171 (SCM_REALPART): deprecation expired - removed.
1172 (scm_makdbl): deprecation expired - removed.
1173 (SCM_SINGP): deprecation expired - removed.
1174 (SCM_NUM2DBL): deprecation expired - removed.
1175 (SCM_NO_BIGDIG): deprecation expired - removed.
1176
1177 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
1178 (scm_tc_dblr): deprecation expired - removed.
1179 (scm_tc_dblc): deprecation expired - removed.
1180 (scm_tc16_flo): deprecation expired - removed.
1181 (scm_tc_flo): deprecation expired - removed.
1182
1183 * tag.h (scm_tag): deprecation expired - removed.
1184
1185 * tag.c: (scm_tag): deprecation expired - removed.
1186
1187 * ioext.c: (scm_fseek): deprecation expired - removed.
1188
1189 * ioext.h (scm_fseek): deprecation expired - removed.
1190
1191 * gh_data.c (gh_int2scmb): deprecation expired - removed.
1192
1193 * gh.h (gh_int2scmb): deprecation expired - removed.
1194
1195 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
1196
1197 * stacks.c (scm_make_stack): Fix typo in docstring.
1198
1199 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
1200
1201 * error.c (scm_sysmissing): deprecation expired - removed.
1202
1203 * error.h (scm_sysmissing): deprecation expired - removed.
1204
1205 * gc.c
1206 (scm_init_gc): gc-thunk deprecation expired - removed.
1207 (scm_gc_vcell): deprecation expired - removed.
1208 (gc_async_thunk): scm_gc_vcell related code removed.
1209
1210 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
1211
1212 * strings.h
1213 (SCM_NSTRINGP): deprecation expired - removed.
1214 (SCM_NRWSTRINGP): deprecation expired - removed.
1215
1216 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
1217
1218 * chars.h
1219 (SCM_ICHRP): deprecation expired - removed.
1220 (SCM_ICHR): deprecation expired - removed.
1221 (SCM_MAKICHR): deprecation expired - removed.
1222
1223 * ports.h
1224 (SCM_INPORTP): deprecation expired - removed.
1225 (SCM_OUTPORTP): deprecation expired - removed.
1226
1227 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
1228
1229 * modules.c (scm_module_type): New.
1230 (scm_post_boot_init_modules): Initialize from Scheme value.
1231 (the_module, scm_current_module, scm_init_modules): the_module is
1232 now a C only fluid.
1233 (scm_current_module): Export to Scheme.
1234 (scm_set_current_module): Do not call out to Scheme, do all the
1235 work in C. Export procedure to Scheme. Only accept modules, `#f'
1236 is no longer valid as the current module. Only set
1237 scm_top_level_lookup_closure_var and scm_system_transformer when
1238 they are not deprecated.
1239 (scm_module_transformer, scm_current_module_transformer): New.
1240
1241 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
1242 scm_current_module_transformer, scm_module_transformer): New.
1243
1244 * gh_data.c: Removed FIXME comment about gh_lookup returning
1245 SCM_UNDEFINED. That's the right thing to do.
1246
1247 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
1248 into the conditionally compiled sections.
1249 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
1250 scm_current_module_transformer instead of scm_system_transformer.
1251 * init.c (start_stack): Move initialization of
1252 scm_system_transformer to the deprecated section.
1253
1254 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
1255
1256 * throw.c (scm_throw): Correct docstring.
1257
1258 2001-04-22 Gary Houston <ghouston@arglist.com>
1259
1260 * socket.c: attempted to improve the docstrings slightly.
1261
1262 * net_db.c: remove bogus "close" declaration.
1263 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
1264 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
1265 moved to socket.c.
1266 * net_db.h: declarations moved too.
1267
1268 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
1269 long.
1270 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
1271 (VALIDATE_INET6): new macro.
1272 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
1273 inet-pton and inet-ntop.
1274 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
1275 (scm_addr_vector): use ipv6_net_to_num.
1276
1277 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1278
1279 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
1280 smob number explicitly. Use SCM_TC2SMOBNUM instead.
1281
1282 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
1283 when compiled in debug mode.
1284
1285 (scm_gc_sweep): Only call smob's free function if it is defined.
1286
1287 * print.c (scm_iprin1): No need to check for validity of smob
1288 type or existence of print function.
1289
1290 * smob.[ch] (scm_smobs): Made into a fixed size global array.
1291 Resizing will not work well with preemptive threading.
1292
1293 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
1294
1295 (scm_make_smob_type): Extracted initialization of smob
1296 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
1297 of the critical section.
1298
1299 (scm_smob_prehistory): Initialize all smob descriptors. By
1300 default, don't assign a smob free function: Most smob types don't
1301 need one.
1302
1303 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
1304
1305 2001-04-21 Gary Houston <ghouston@arglist.com>
1306
1307 * socket.c (FLIP_NET_HOST_128): new macro.
1308 (scm_fill_sockaddr): use new macro.
1309 (scm_addr_vector): completed IPv6 address support. added const
1310 to the address parameter.
1311
1312 2001-04-20 Gary Houston <ghouston@arglist.com>
1313
1314 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
1315 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
1316 is defined.
1317 (scm_addr_vector): use a switch instead of multiple if statements.
1318 Add support for IPv6 (incomplete) .
1319 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
1320
1321 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1322
1323 * struct.c (scm_free_structs): Only pairs may be accessed with
1324 SCM_C[AD]R.
1325
1326 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1327
1328 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
1329
1330 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
1331 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
1332 parentheses in order to get the correct associativity.
1333
1334 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1335
1336 * unif.c (scm_array_to_list): Added missing handling of arrays of
1337 bytes. Thanks to Masao Uebayashi for the bug report.
1338
1339 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1340
1341 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
1342 consistently.
1343
1344 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1345
1346 * procs.h (SCM_CLOSURE_FORMALS): New macro.
1347
1348 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
1349 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
1350 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
1351 SCM_CLOSURE_FORMALS.
1352
1353 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
1354 (scm_i_procedure_arity): Prefer stronger predicates like
1355 SCM_NULLP or SCM_FALSEP over SCM_IMP.
1356
1357 * macros.c (macro_print): Extracted macro printing code from
1358 print.c and simplified it.
1359
1360 (scm_macro_type): Use SCM_MACRO_TYPE;
1361
1362 (scm_init_macros): Use macro_print for printing macros.
1363
1364 * print.c (scm_print_opts): Improved option documentation.
1365
1366 (scm_iprin1): Extracted printing of macros to macros.c.
1367 Simplified printing of ordinary closures.
1368
1369 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
1370 Martin Grabmueller for the bug report.
1371
1372 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1373
1374 This patch eliminates some further applications of SCM_C[AD]R to
1375 non pair cells.
1376
1377 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
1378 never been applied to real pairs.
1379
1380 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
1381
1382 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
1383
1384 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
1385 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
1386 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
1387
1388 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
1389 Added.
1390
1391 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
1392 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
1393
1394 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
1395 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
1396 SCM_SET{AND,OR}_CAR.
1397
1398 2001-04-17 Gary Houston <ghouston@arglist.com>
1399
1400 * some initial support for IPv6:
1401
1402 * socket.c (scm_fill_sockaddr): improve the argument validation.
1403 don't allocate memory until all args are checked. instead of
1404 unconditional memset of soka, try setting sin_len to 0 if
1405 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
1406 (scm_socket, scm_connect): extend docstrings for IPv6.
1407 (scm_init_socket): intern AF_INET6 and PF_INET6.
1408
1409 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
1410
1411 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
1412 matches SCM_DEFER_INTS at the beginning of the function.
1413
1414 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
1415
1416 * gc.c (scm_igc): Unconditionally call
1417 SCM_CRITICAL_SECTION_START/END.
1418
1419 * fluids.c (next_fluid_num): Unconditionally call
1420 SCM_CRITICAL_SECTION_START/END.
1421 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
1422
1423 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
1424 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
1425 Removed.
1426
1427 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
1428 Defined as nothing for the case of !defined(USE_THREADS).
1429 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
1430 Removed.
1431 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
1432 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
1433 LINE.
1434 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
1435 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
1436 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
1437 SCM_CRITICAL_SECTION_START/END.
1438 (SCM_REALLOW_INTS: Bug fix. Don't call
1439 SCM_THREAD_SWITCHING_CODE.
1440 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
1441 SCM_THREAD_SWITCHING_CODE directly.
1442 (SCM_ENTER_A_SECTION): Unconditionally use
1443 SCM_CRITICAL_SECTION_START/END. (was:
1444 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
1445
1446 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1447
1448 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
1449 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
1450 allowed to explicitly set this macro via the CFLAGS variable
1451 during make.
1452
1453 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
1454 (SCM_THREAD_CRITICAL_SECTION_START,
1455 SCM_THREAD_CRITICAL_SECTION_END): Renamed
1456 SCM_THREAD_CRITICAL_SECTION_START/END to
1457 SCM_CRITICAL_SECTION_START/END.
1458
1459 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
1460
1461 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
1462 instead of bzero.
1463
1464 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
1465 (MISSING_BZERO_DECL): Remove the declaration.
1466
1467 Thanks to NIIBE Yutaka.
1468
1469 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1470
1471 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
1472 goops module should be registered in order to work for an
1473 application which uses libguile statically linked.)
1474
1475 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1476
1477 * numbers.[ch] (scm_num2long, scm_num2long_long,
1478 scm_num2ulong_long, scm_num2ulong): Argument position is an
1479 unsigned integer.
1480
1481 * environments.c (eval_environment_folder,
1482 import_environment_folder), gh_data.c (gh_scm2longs,
1483 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
1484 for integers and pointers, respectively.
1485
1486 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
1487 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
1488 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
1489 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
1490
1491 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
1492 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
1493 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
1494 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
1495 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
1496 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
1497
1498 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
1499
1500 * strings.c (scm_read_only_string_p): Update docstring to reflect
1501 current (non-)usage of "read only" strings.
1502 (scm_make_shared_substring): Clarify docstring by changing
1503 "semantics" to "arguments".
1504
1505 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1506
1507 * hooks.c (scm_make_hook, scm_make_hook_with_name),
1508 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
1509 improvements.
1510
1511 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1512
1513 The following changes make the documentation more consistent.
1514
1515 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
1516 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
1517 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
1518 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
1519 ... @end lisp.
1520
1521 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
1522 (scm_array_dimensions, scm_make_shared_array),
1523 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
1524 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
1525 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
1526 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
1527 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
1528 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
1529 macros.c (scm_makmmacro), list.c (scm_append), environments.c
1530 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
1531 @example ... @end example to @lisp ... @end lisp.
1532
1533 * weaks.c (scm_weak_vector): Corrected docstring.
1534
1535 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
1536 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
1537 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
1538 (scm_hashx_set_x, scm_hashx_get_handle),
1539 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
1540 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
1541 vectors.c (scm_vector_fill_x), strings.c
1542 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
1543 objprop.c (scm_set_object_properties_x):
1544 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
1545 strports.c (scm_call_with_input_string), ports.c
1546 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
1547 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
1548 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
1549 (scm_make_weak_vector,scm_weak_vector_p),
1550 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
1551 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
1552 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1553 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
1554 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
1555 Made parameter names match documentation by renaming parameters
1556 and/or fixing docstrings.
1557
1558 * numbers.c (scm_ash): Corrected Texinfo markup.
1559
1560 * strop.c (scm_string_index, scm_string_rindex),
1561 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
1562
1563 * vports.c (scm_make_soft_port), unif.c
1564 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
1565 (scm_dimensions_to_uniform_array, scm_transpose_array),
1566 (scm_array_in_bounds_p, scm_uniform_vector_ref),
1567 (scm_bit_count, scm_bit_position, scm_bit_count_star),
1568 (scm_array_to_list, scm_list_to_uniform_array),
1569 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
1570 (scm_open_input_string, scm_open_output_string),
1571 (scm_get_output_string), strop.c (scm_string_copy),
1572 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
1573 (scm_get_internal_real_time, scm_times),
1574 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
1575 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
1576 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
1577 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
1578 simpos.c (scm_system), random.c (scm_random_uniform),
1579 (scm_random_normal, scm_random_exp), ramap.c
1580 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
1581 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
1582 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
1583 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
1584 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
1585 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
1586 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
1587 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
1588 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
1589 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
1590 (scm_logand, scm_logior, scm_logxor, scm_lognot),
1591 (scm_integer_expt, scm_bit_extract, scm_logcount),
1592 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
1593 net_db.c (scm_inet_netof, scm_lnaof), modules.c
1594 (scm_interaction_environment), macros.c (scm_makacro),
1595 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
1596 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
1597 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
1598 (scm_fluid_ref), filesys.c (scm_open_fdes),
1599 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
1600 Docstring correction: `Returns' -> `Return'
1601
1602 * gc.c (scm_set_debug_cell_accesses_x):
1603 (s_scm_gc_set_debug_check_freelist_x):
1604 * fluids.c (scm_fluid_p): Added texinfo markup.
1605
1606 * error.c (scm_strerror): Made docstring more precise.
1607
1608 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
1609 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
1610 (scm_symbol_p, scm_symbol_to_string), strorder.c
1611 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
1612 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
1613 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
1614 (scm_string_ci_geq_p), strop.c (scm_string_copy),
1615 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
1616
1617 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
1618
1619 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
1620 mode, as suggested by Michael Livshin.
1621
1622 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
1623
1624 * backtrace.c (display_backtrace_body): since the `print_state'
1625 variable is not used (instead its data field is used directly as
1626 `pstate'), protect it from the hungry compiler optimizations.
1627 thanks to Bill Schottstaedt for the report.
1628
1629 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1630
1631 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
1632 It is only defined and used if guile is compiled with
1633 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
1634 let cells with a free_cell type tag be visible outside of the
1635 garbage collector when in debug mode.
1636
1637 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
1638
1639 (scm_assert_cell_valid): Use a local static variable to avoid
1640 recursion.
1641
1642 (MARK): Only check for rogue cell pointers in debug mode. Use
1643 scm_cellp for this purpose and place all checks for rogue pointers
1644 into that function. Further, since due to conservative scanning
1645 we may encounter free cells during marking, don't use the standard
1646 cell type accessor macro to determine the cell type.
1647
1648 (scm_cellp): Check if the cell pointer actually points into a
1649 card header.
1650
1651 (scm_init_gc): Initalize scm_tc16_allocated.
1652
1653 * gc.h (GCH): Renamed to SCM_GC_H.
1654
1655 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
1656 might be unnecessary, but I feel better this way :-)
1657
1658 (SCM_GC_CELL_TYPE): New macro.
1659
1660 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
1661 in guile, and it is unlikely that they will be applied to real
1662 pairs anyway.
1663
1664 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
1665
1666 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
1667 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
1668
1669 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
1670 make sure that in debug mode no free cell will ever be visible
1671 outside of the garbage collector.
1672
1673 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1674
1675 * async.c (scm_asyncs_pending): Don't use != to compare SCM
1676 values.
1677
1678 * async.c (scm_system_async), variable.c (scm_make_variable,
1679 scm_make_undefined_variable): Use scm_cons to create a pair.
1680
1681 * debug.c (scm_reverse_lookup): Perform proper type checking.
1682 Remove suspicious use of SCM_SLOPPY_CONSP.
1683
1684 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
1685 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
1686 the corresponding optimization.
1687
1688 * eval.c (iqq): Use proper type check.
1689
1690 (scm_m_expand_body): Remove redundant type checks.
1691
1692 (promise_print): Don't access promise cells as pairs.
1693
1694 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
1695 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
1696 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
1697 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
1698 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
1699
1700 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
1701 (scm_iprin1): Use new macro predicate and accessors.
1702
1703 * eval.h (scm_tc16_macro): Removed declaration. It is declared
1704 in macros.h.
1705
1706 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
1707 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
1708 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
1709 SCM_VARIABLE_H. Even the macros that are used to inhibit
1710 including a header file twice should be in the SCM_ namespace.
1711
1712 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
1713 properties.c (scm_primitive_property_ref,
1714 scm_primitive_property_del_x): Prefer stronger predicates like
1715 SCM_NULLP or SCM_FALSEP over SCM_IMP.
1716
1717 * gc.c (MARK): Use proper macros to access procedure-with-setter
1718 cell elements and closure cell elements.
1719
1720 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
1721 access free cells as pairs.
1722
1723 (scm_unprotect_object): scm_hashq_get_handle returns #f if
1724 no hashtab entry is found.
1725
1726 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
1727 SCM_CLR_PORT_OPEN_FLAG.
1728
1729 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
1730 use SCM_SET_C[AD]R for uninitialized cells.
1731
1732 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
1733 If the hashtable has no slots, return #f instead of '(). This
1734 unifies the return value with most assoc-functions.
1735
1736 (scm_hash_fn_ref): Use proper type check.
1737
1738 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
1739 Removed references to non-existing functions from documentation.
1740
1741 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
1742 access keyword cell elements.
1743
1744 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
1745 macros.
1746
1747 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
1748
1749 * print.c (scm_iprlist): Added comment. Improved loop
1750 conditions.
1751
1752 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
1753 pairs.
1754
1755 * smob.c (scm_markcdr): Don't access smob cells as pairs.
1756
1757 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
1758
1759 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
1760 cells as pairs.
1761
1762 * variable.c (variable_print, variable_equalp, scm_variable_ref,
1763 scm_variable_set_x): Use proper macros to access variable cell
1764 elements.
1765
1766 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
1767
1768 * variable.h (SCM_VARVCELL): Don't access variable cells as
1769 pairs.
1770
1771 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
1772 added FIXME comment, removed register specifier.
1773
1774 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
1775
1776 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
1777 * init.c (scm_init_guile_1): Don't init goopscore module.
1778
1779 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
1780
1781 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
1782
1783 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1784
1785 * strop.c (scm_string_to_list): Fixed docstring markup.
1786 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
1787 (scm_string_downcase, scm_string_capitalize_x),
1788 (scm_string_capitalize): Rewrote and corrected docstrings.
1789 (scm_string_ci_to_symbol): Made docstring more explicit.
1790
1791 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
1792
1793 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
1794 eval.c can use it.
1795 (scm_call_with_values): Removed.
1796 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
1797 so that it can be exported.
1798 (scm_call_with_values): Removed.
1799
1800 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
1801 * eval.c: Include "libguile/values.h"
1802 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
1803 New.
1804 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
1805 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
1806 New delcarations to support above change.
1807
1808 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
1809 errors with last change.
1810
1811 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
1812
1813 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
1814 scm_i_eval): Moved the application of the system transformer from
1815 scm_i_eval to scm_primitive_eval.
1816
1817 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
1818
1819 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
1820
1821 * strop.c (scm_string_index): Fix docstring line break
1822 regression.
1823
1824 * list.c (scm_cons_star): Fix docstring typo.
1825
1826 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1827
1828 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
1829 (big2str), ports.c (scm_drain_input), read.c (scm_read,
1830 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
1831 scm_make_string, scm_string_append), strports.c (st_resize_port,
1832 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
1833 scm_makstr with calls to scm_allocate_string.
1834
1835 * strings.[ch] (scm_allocate_string): New function.
1836
1837 * strings.[ch] (scm_makstr): Deprecated.
1838
1839 2001-03-18 Gary Houston <ghouston@arglist.com>
1840
1841 * posix.c (scm_tmpnam): check that return value from tmpnam is not
1842 NULL. rewrote the docstring.
1843 (scm_mkstemp): new procedure implementing "mkstemp!".
1844 * posix.h: declare scm_mkstemp.
1845
1846 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
1847 normally it would be found in netdb.h.
1848
1849 2001-03-17 Gary Houston <ghouston@arglist.com>
1850
1851 * sort.c (scm_sort): move sortvec variable to avoid a compiler
1852 warning when HAVE_ARRAYS is not defined. move len too.
1853
1854 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
1855 (EXTRA_DOT_X_FILES): let configure set the value.
1856 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
1857
1858 * gc.c (scm_must_malloc): changed the comment explaining when
1859 scm_must variants of malloc/free etc., should be used, based on
1860 explanation from Dirk Herrmann.
1861 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
1862 string with procedure name. use scm_must_malloc instead of malloc.
1863 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
1864 of malloc/free.
1865 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
1866 scm_ungetc): use scm_must variants of malloc/realloc/free.
1867 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
1868
1869 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1870
1871 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
1872 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
1873 scm_wrong_type_arg instead.
1874
1875 (SCM_WNA): Deprecated.
1876
1877 * error.[ch] (scm_wta): Deprecated.
1878
1879 * numbers.c (s_i_log): Minor comment fix.
1880
1881 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
1882 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
1883 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
1884 wrong-num-args or misc errors.
1885
1886 * unif.c (scm_make_shared_array, scm_transpose_array,
1887 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
1888 Validate the rest argument (note: this is only done when guile is
1889 built with SCM_DEBUG_REST_ARGUMENT=1)
1890
1891 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
1892 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
1893
1894 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
1895 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
1896
1897 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1898
1899 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
1900 instead of scm_wrong_num_args.
1901
1902 * coop-threads.c: Don't include libguile/strings.h. (Was only
1903 needed for former implementation of SCM_WRONG_NUM_ARGS.)
1904
1905 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
1906 wrong-num-args errors.
1907
1908 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1909
1910 * error.[ch] (scm_error_num_args_subr): New function.
1911
1912 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1913
1914 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
1915 (scm_length, scm_append, scm_reverse, scm_list_ref),
1916 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
1917 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
1918 (scm_delete1_x), gc.c (scm_map_free_list),
1919 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
1920 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
1921 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
1922 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
1923 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
1924 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
1925 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
1926
1927 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
1928 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1929 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
1930 symbols.c (scm_symbol_interned_p), numbers.c
1931 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
1932 markup.
1933
1934 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
1935
1936 * snarf.h (SCM_CONST_LONG): Deprecated.
1937 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
1938
1939 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1940
1941 * numbers.c (scm_num2ulong): Check that a bignum is positive
1942 before looking at the magnitude. Correctly check for overflow
1943 during conversion.
1944 (scm_num2long_long): Likewise.
1945 (scm_num2ulong_long): New.
1946 (ULONG_LONG_MAX): Define if not already defined.
1947 * numbers.h: (scm_num2ulong_long): New prototype.
1948
1949 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1950
1951 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
1952
1953 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
1954 (SCM_OPOUTSTRPORTP): New predicate macros.
1955 (scm_open_input_string, scm_open_output_string),
1956 (scm_get_output_string): New prototypes.
1957
1958 * strports.c (scm_open_input_string, scm_open_output_string),
1959 (scm_get_output_string): New procedures (SRFI-6 compliant).
1960 Made scm_tc16_strport non-static.
1961
1962 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1963
1964 * macros.h (SCM_ASSYNT): Removed unused object argument from
1965 signature.
1966
1967 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
1968 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
1969 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
1970 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
1971 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
1972 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
1973 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
1974 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
1975 scm_m_atdispatch): Removed unused object argument from call to
1976 SCM_ASSYNT.
1977
1978 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1979
1980 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
1981 const int* to reflect that the input array of integers remains
1982 unchanged. Thanks to Brett Viren for the hint.
1983
1984 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1985
1986 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
1987 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
1988 in various places.
1989 (gh_scm2newstr, gh_symbol2newstr): Change call to
1990 scm_must_malloc() to malloc(), because user-free()able memory is
1991 allocated.
1992
1993 * gc.c: Added declaration of `scm_debug_check_freelist'.
1994
1995 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1996
1997 * ports.c (scm_port_mode): Changed `mode' array size to 4.
1998
1999 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
2000
2001 * strports.c (scm_object_to_string): New procedure.
2002 (scm_strprint_obj): Deprecated.
2003 * strports.h: Reflect the changes.
2004
2005 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
2006
2007 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
2008
2009 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
2010 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
2011 SCM_ASSYNT to check for correct argument types. Either use some
2012 SCM_VALIDATE_* macro or an explicit test.
2013
2014 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
2015 misc-errors.
2016
2017 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
2018 instead of calling scm_wta.
2019
2020 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2021
2022 * load.c (scm_primitive_load, scm_primitive_load_path),
2023 (scm_sys_search_load_path): Corrected docstrings (file ->
2024 filename).
2025
2026 * eval.c (scm_force): Added texinfo markup to docstring.
2027 (scm_promise_p): Renamed parameter to `obj' to match docstring.
2028
2029 * debug-malloc.c: Reinserted #include <stdio.h>.
2030
2031 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
2032
2033 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
2034
2035 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
2036 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
2037 Use SCM_LISTn instead of scm_listify.
2038
2039 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2040
2041 * _scm.h: Removed #include <errno.h>.
2042
2043 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
2044 errno variable (can be a macro on some systems, for example when
2045 using linux libc with threads).
2046
2047 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
2048 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
2049 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
2050 #include <errno.h> in these 20 out of 100 files.
2051
2052 2001-03-10 Gary Houston <ghouston@arglist.com>
2053
2054 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
2055 not already defined.
2056
2057 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2058
2059 * coop.c: Inserted #include <stdio.h>.
2060
2061 * iselect.c: Reinserted #include <stdio.h>.
2062
2063 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
2064
2065 * posix.c: Replaced `#define' of __USE_XOPEN right before
2066 including unistd.h with a define of _GNU_SOURCE at the very top of
2067 the file.
2068
2069 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
2070
2071 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
2072 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
2073 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
2074 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
2075 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
2076 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
2077 print.c, procprop.c, procs.c, properties.c, ramap.c,
2078 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
2079 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
2080 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
2081 Remove #include <stdio.h>
2082 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
2083
2084 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
2085
2086 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2087
2088 * posix.c (scm_gethostname): Set initial name length to 256 for
2089 Solaris.
2090
2091 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2092
2093 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
2094 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
2095 (scm_sethostname, scm_gethostname): New prototypes.
2096
2097 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
2098 <sys/file.h>, if present.
2099 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
2100 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
2101 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
2102 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
2103 (scm_sethostname, scm_gethostname): New procedures.
2104
2105 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
2106
2107 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
2108 not optional (ii) "recommend" spelling correction.
2109
2110 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2111
2112 * ramap.c (racp): Removed optimization which caused array copying
2113 to fail if the two arrays shared storage. Re-inserted the IVDEP
2114 macros removed in the change of 2000-03-09. (Don't really have a
2115 complete grasp of what they are for, but they seem to be necessary
2116 on Crays. This needs testing!) Thanks to Miroslav Silovic.
2117
2118 * hash.c (scm_string_hash): Don't downcase characters.
2119
2120 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2121
2122 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
2123 size from 277 --> 1009.
2124
2125 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
2126 function.
2127
2128 * coop-threads.c: Fixed change of 2001-03-06.
2129
2130 * validate.h: Code formatting.
2131
2132 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
2133
2134 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
2135 (*.doc): Add dependency on guile-snarf.awk.in.
2136
2137 * guile-snarf.awk.in: Neglect spaces at the end of
2138 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
2139 middle of docstrings. (To avoid the problem with gcc-2.96.)
2140
2141 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
2142
2143 * coop-threads.c (scm_call_with_new_thread), load.c
2144 (scm_primitive_load, scm_sys_search_load_path), random.c
2145 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
2146 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
2147 (potentially) issue a scm-misc-error or wrong-num-args error
2148 message.
2149
2150 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
2151 about the expected type with the wrong-type-arg error message.
2152
2153 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
2154 a C level bug that can't be fixed from scheme anyway.
2155
2156 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2157
2158 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
2159 Duplicate bindings are OK in a let* since a let* is semantically
2160 equivalent to a nested set of let:s.
2161
2162 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2163
2164 * print.c (scm_print_options): Fixed texinfo in docstring.
2165
2166 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
2167 the underlying functions getservent, getprotoent or getnetent
2168 return NULL instead of signalling an error.
2169
2170 2001-03-04 Gary Houston <ghouston@arglist.com>
2171
2172 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
2173 taking an unexpectedly large filename for an AF_UNIX socket from
2174 bind/connect/sendto (thanks to Martin Grabmueller).
2175
2176 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
2177 former and adjusted the latter.
2178 (scm_socket, scm_socketpair): cosmetic changes.
2179 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
2180 size_t as socklen_t substitute. don't restrict args/return values
2181 to INUM: allow full range of int or size_t.
2182 (scm_fill_sockaddr): check arguments before allocating memory, to
2183 avoid leakage. use malloc, not scm_must_malloc.
2184 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
2185 substitute. free the sockaddr structure before throwing an error.
2186 (scm_init_add_buffer): procedure removed, together with its static
2187 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
2188 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
2189 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
2190 scm_sendto): use a local buffer instead of scm_addr_buffer.
2191 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
2192 not size_t.
2193 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
2194 call to detect whether recvfrom could be bothered to set the address.
2195 (scm_init_socket): don't call scm_init_addr_buffer.
2196
2197 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2198
2199 * debug.c (scm_procedure_source, scm_procedure_environment),
2200 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
2201 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
2202 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
2203 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
2204 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
2205 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
2206 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
2207 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
2208 scm_array_to_list, scm_array_prototype), validate.h
2209 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
2210 scm_misc_error or scm_wrong_type_arg instead.
2211
2212 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
2213
2214 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2215
2216 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
2217 (scm_sys_tag_body): Added.
2218
2219 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2220
2221 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
2222 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
2223 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
2224 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
2225 options.c (scm_options), ports.c (scm_remove_from_port_table),
2226 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
2227 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
2228 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
2229 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
2230 instead.
2231
2232 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2233
2234 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
2235
2236 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
2237
2238 * eval.c (scm_s_duplicate_bindings): New error message.
2239 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
2240
2241 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
2242
2243 * eval.h (SCM_EVALIM2): New macro. Use it when a
2244 immediate, literal constant should be evaluated.
2245 * eval.c (scm_s_duplicate_formals): New error message string.
2246 (scm_c_improper_memq): New function.
2247 (scm_m_lambda): Check for duplicate arguments.
2248 (scm_ceval, scm_deval): When executing a body: only cons a new
2249 toplevel environment frame when it is different from the
2250 existing one; use EVALCAR instead of SIDEVAL so that we can properly
2251 check for empty combinations; use SCM_EVALIM2 for the same reason
2252 in the non-toplevel loop.
2253 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
2254 New labels with the meaning of their non-"nontoplevel" partners,
2255 but they are used when it is known that the body is not evaluated at
2256 top-level.
2257 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
2258 reporting for empty combinations.
2259
2260 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
2261
2262 * Remove dump facilities.
2263 * dump.c, dump.h: Removed.
2264 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
2265 * init.c: Remove #include "libguile/dump.h".
2266 (scm_init_guile_1): Remove scm_init_dump.
2267 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
2268 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
2269 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
2270 (scm_set_smob_dump, scm_set_smob_undump): Removed.
2271
2272 * keywords.c: Remove #include "libguile/dump.h".
2273 (keyword_dump, keyword_undump): Removed.
2274 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
2275
2276 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2277
2278 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
2279 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
2280 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
2281 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
2282 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
2283 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
2284 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
2285 to @code{} as the texinfo manual recommends, converted the
2286 examples to use a @lisp{}-environment.
2287
2288 * strports.c (scm_eval_string): Cleaned up the docstring.
2289
2290 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
2291 markup.
2292
2293 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
2294 (scm_number_to_string, scm_string_to_number, scm_number_p)
2295 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
2296 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
2297 (scm_ash): Added texinfo markup and removed obsolete @refill.
2298 (scm_gr_p): Corrected comment.
2299 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
2300 docstring) comments.
2301 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
2302 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
2303 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
2304 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
2305 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
2306 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
2307 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
2308 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
2309
2310 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2311
2312 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
2313 (Obviously nobody compiles with SCM_RECKLESS defined...)
2314
2315 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
2316
2317 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2318
2319 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
2320
2321 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
2322
2323 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
2324
2325 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
2326 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
2327 since use of `z' suggests that the arguments may be complex.
2328
2329 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
2330 typos.
2331
2332 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
2333
2334 * dump.c (scm_binary_write, scm_binary_read), eval.c
2335 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
2336 scm_guardian_greedy_p, scm_make_guardian), fports.c
2337 (scm_file_port_p): Minor docstring fixes.
2338
2339 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
2340
2341 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
2342
2343 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
2344 scm_i_eval.
2345 (make_class_from_template): Do not bother to set the current
2346 module around the call to DEFVAR, scm_eval takes care of that.
2347 (scm_init_goops): Make scm_module_goops and
2348 scm_goops_lookup_closure permanent objects.
2349
2350 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
2351 top level, create a fresh top-level environment for each
2352 expression instead of mutating the exisint frame. This is
2353 important when that frame is closed over.
2354
2355 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
2356 SCM_DIGSPERLONG instead of DIGSPERLONG.
2357
2358 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
2359
2360 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
2361 before applying arrow procedure in `cond' and before applying
2362 receiver procedure in call-with-current-continuation.
2363 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
2364 macro. The argument is expanded more than one time.
2365
2366 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
2367 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
2368
2369 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
2370
2371 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
2372 notice and license.
2373
2374 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2375
2376 * variable.c (scm_make_variable, scm_make_undefined_variable)
2377 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
2378 (scm_variable_bound_p), values.c (scm_values)
2379 (scm_call_with_values), unif.c (scm_bit_count)
2380 (scm_bit_set_star_x), symbols.c (scm_gentemp)
2381 (scm_gensym), strings.c (scm_string_p, scm_make_string)
2382 (scm_read_only_string_p, scm_string_length, scm_string_ref)
2383 (scm_string_set_x, scm_substring, scm_string_append), stime.c
2384 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
2385 (scm_copy_random_state, scm_random), print.c (scm_newline)
2386 (scm_write_char, scm_simple_format), debug-malloc.c
2387 (scm_malloc_stats), environments.c (scm_environment_p)
2388 (scm_environment_bound_p, scm_environment_ref)
2389 (scm_environment_fold, scm_environment_define)
2390 (scm_environment_undefine, scm_environment_set_x)
2391 (scm_environment_cell, scm_environment_observe)
2392 (scm_environment_observe_weak, scm_environment_unobserve)
2393 (scm_make_eval_environment, scm_eval_environment_p)
2394 (scm_eval_environment_set_local_x, scm_eval_environment_local)
2395 (scm_eval_environment_imported)
2396 (scm_eval_environment_set_imported_x, scm_make_import_environment)
2397 (scm_import_environment_p, scm_import_environment_imports)
2398 (scm_import_environment_set_imports_x, scm_make_export_environment)
2399 (scm_export_environment_p, scm_export_environment_private)
2400 (scm_export_environment_set_private_x)
2401 (scm_export_environment_signature)
2402 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
2403 Added texinfo markup.
2404
2405 * ports.c (scm_drain_input): Lowercased argument to @var.
2406 (scm_current_input_port, scm_current_output_port): Filled in
2407 missing explanation.
2408 (scm_current_load_port, scm_set_current_output_port)
2409 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
2410 Added texinfo markup.
2411
2412 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
2413 (scm_release_arbiter): Added texinfo markup to docstrings.
2414 Changed `Returns' to `Return'.
2415 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
2416
2417 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
2418
2419 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
2420 by doubling them to `@@'.
2421
2422 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2423
2424 * numbers.c (scm_lognot), random.c (scm_random,
2425 scm_random_normal, scm_random_solid_sphere_x,
2426 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
2427 scm_random_exp), dynwind.c
2428 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
2429
2430 * goops.c (scm_sys_initialize_object, scm_instance_p,
2431 scm_class_name, scm_class_precedence_list, scm_class_slots,
2432 scm_class_environment, scm_generic_function_name,
2433 scm_generic_function_methods, scm_method_generic_function,
2434 scm_method_specializers, scm_method_procedure, scm_make_unbound,
2435 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
2436 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
2437 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
2438 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
2439 scm_class_direct_supers, scm_class_direct_slots,
2440 scm_class_direct_subclasses, scm_class_direct_methods,
2441 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
2442 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
2443 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
2444 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
2445 scm_memoized_environment, scm_procedure_name,
2446 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
2447 objects.c
2448 (scm_class_of, scm_entity_p, scm_operator_p,
2449 scm_set_object_procedure_x, scm_object_procedure,
2450 scm_make_class_object), hooks.c (scm_make_hook_with_name,
2451 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
2452 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
2453 scm_hook_to_list), lang.c
2454 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
2455 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
2456 (scm_print_options, scm_port_with_print_state,
2457 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
2458 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
2459 scm_make_procedure_with_setter, scm_procedure), throw.c
2460 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
2461 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
2462 scm_stack_ref, scm_stack_length, scm_frame_p,
2463 scm_last_stack_frame, scm_frame_number, scm_frame_source,
2464 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
2465 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
2466 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
2467 (scm_dirname, scm_basename), dynwind.c
2468 (scm_wind_chain), read.c (scm_read_options, scm_read,
2469 scm_read_hash_extend), gc.c
2470 (scm_unhash_name), eval.c (scm_eval_options_interface,
2471 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
2472 (scm_display_error, scm_set_print_params_x,
2473 scm_display_application, scm_display_backtrace, scm_backtrace),
2474 async.c (scm_async, scm_system_async, scm_async_mark,
2475 scm_system_async_mark, scm_run_asyncs, scm_noop,
2476 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
2477 scm_mask_signals): Added docstrings.
2478
2479 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
2480
2481 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
2482 address of car/cdr. (Thanks to Dirk Herrmann)
2483 Use scm_sizet to obtain the length of strings.
2484 (Thanks to Matthias Koeppe)
2485
2486 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
2487
2488 * symbols.c (scm_mem2symbol): Put a empty statement after the
2489 next_symbol label. This is mandated by ANSI, appearantly.
2490
2491 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2492
2493 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
2494 sense to compile for a specific kernel version. Do not include
2495 <asm/signal.h> while defining __KERNEL__. This hack should no
2496 longer be needed and caused problems.
2497
2498 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
2499
2500 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
2501 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
2502 can not deal with immediates.
2503
2504 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
2505
2506 * list.c (scm_list_copy): Validate the first argument.
2507
2508 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
2509
2510 Fix evaluator so that top-level expressions are correctly
2511 evaluated with respect to the module system.
2512
2513 * modules.h. modules.c (scm_current_module_lookup_closure): New
2514 function.
2515
2516 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
2517 prototypes.
2518 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
2519 names to better reflect their meaning.
2520
2521 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
2522 evaluated at top-level and synronize lookup closure before
2523 executing every subform.
2524 (scm_primitve_eval_x, scm_primitive_eval): New functions.
2525 (scm_eval_x, scm_eval): Reimplement in terms of
2526 scm_primitive_eval_x and scm_primitive_eval, respectively.
2527
2528 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
2529
2530 * macros.c (scm_macro_name, scm_macro_transformer): Use
2531 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
2532 Thanks!
2533
2534 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
2535
2536 * dump.c (scm_store_bytes): Store data size before data.
2537 (scm_restore_bytes): Restore data size. Takes a pointer to size.
2538 * dump.h (scm_restore_bytes): Updated.
2539
2540 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
2541
2542 * dump.c: Use double cells for update schedule.
2543
2544 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
2545
2546 * ports.c (scm_unread_char): Take an optional argument.
2547
2548 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2549
2550 * modules.h (scm_selected_module, scm_current_module): Renamed
2551 scm_selected_module to scm_current_module to synchronize Scheme
2552 and C names.
2553 (scm_select_module, scm_set_current_module): Likewise. Changed
2554 all uses.
2555
2556 * ports.c (scm_port_for_each): Make a snapshot of the port table
2557 before iterating over it. The table might change while the user
2558 code is running. With the snapshot, the user can depend on the
2559 fact that each port that existed at the start of the iteration is
2560 encountered exactly once. (ice-9 popen) depends on this.
2561
2562 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2563
2564 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
2565
2566 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
2567 range checking for the size parameter. Thanks to Martin
2568 Grabmueller for the hint.
2569
2570 (scm_makstr): Reordered string initialization to make interrupt
2571 deferring unnecessary.
2572
2573 * vectors.c (scm_make_vector): Fixed range checking.
2574
2575 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2576
2577 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
2578
2579 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
2580 checking of the size parameter for type correctness and valid
2581 range. Thanks to Rob Browning for reporting the problem. Instead
2582 of deferring interrupts, scm_remember_upto_here_1 is used.
2583
2584 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
2585
2586 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
2587 (scm_dump_cell_update): Removed.
2588 (scm_dump_update): Renamed from scm_dump_object_update.
2589 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
2590 a pointer instead of returning a value.
2591 * keywords.c (keyword_undump): Updated.
2592
2593 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
2594
2595 * dump.c, dump.h: Modified a lot.
2596 (SCM_DUMP_COOKIE): Version 0.1
2597 (scm_dump_mark): Removed.
2598 (scm_restore_cell_object, scm_store_cell_object): New functions.
2599
2600 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
2601 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
2602 New slots: dump, undump.
2603 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
2604 Updated.
2605
2606 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
2607 (keyword_undump): Renamed from keyword_alloc.
2608 (scm_init_keywords): Set keyword_dump and keyword_undump.
2609
2610 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
2611
2612 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
2613 the deprecated SCM_DOUBLE_CELLP.
2614
2615 * tags.h (SCM_DOUBLE_CELLP): deprecated.
2616
2617 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
2618
2619 * dump.c, dump.h: New files.
2620 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
2621 * init.c: #include "libguile/dump.h".
2622 (scm_init_guile_1): Call scm_init_dump.
2623 * smob.h (scm_smob_descriptor): New slots: dump_mark,
2624 dump_dealloc, dump_store, undump_alloc, undump_restore,
2625 undump_init.
2626 * smob.c (scm_make_smob_type): Init the new slots.
2627 (scm_set_smob_dump, scm_set_smob_undump): New functions.
2628 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
2629
2630 * keywords.c: #include "libguile/dump.h".
2631 (keyword_dealloc, keyword_alloc): New functions.
2632 (scm_init_keywords): Set smob_dump and smob_undump.
2633
2634 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
2635
2636 * vectors.c (scm_c_make_vector): New function.
2637 * vectors.h (scm_c_make_vector): Declared.
2638 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
2639 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
2640 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
2641 (scm_make_method_cache, scm_i_vector2list,
2642 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
2643 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
2644 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
2645 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
2646 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
2647 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
2648 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
2649 (scm_vector, scm_make_vector): Use scm_c_make_vector.
2650
2651 * hashtab.c (scm_c_make_hash_table): New function.
2652 * hashtab.h (scm_c_make_hash_table): Declared.
2653 * environments.c (scm_make_leaf_environment,
2654 scm_make_eval_environment), gc.c (scm_init_storage),
2655 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
2656 Use scm_c_make_hash_table.
2657
2658 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2659
2660 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
2661
2662 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2663
2664 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
2665 end of docstring.
2666
2667 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
2668 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
2669 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
2670 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
2671 srcprop.c (scm_source_properties, scm_set_source_properties_x,
2672 scm_source_property, scm_set_source_property_x), sort.c
2673 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
2674 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
2675 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
2676 docstrings.
2677
2678 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2679
2680 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
2681 really get that arg.
2682
2683 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
2684
2685 * goops.c (s_scm_get_keyword): Bug fix.
2686
2687 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2688
2689 The following patch was sent by Martin Grabmueller. It makes sure
2690 that in case of parameter errors the correct function name is
2691 shown, and that parameter types are only checked once.
2692
2693 * strop.c (string_copy, string_upcase_x, string_downcase_x,
2694 string_capitalize_x): New functions. Each one performs the core
2695 functionality of the corresponding scm_* function.
2696
2697 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
2698 scm_string_downcase_x, scm_string_downcase,
2699 scm_string_capitalize_x, scm_string_capitalize): Reduced to
2700 parameter checking wrappers of the above functions.
2701
2702 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2703
2704 * continuations.c, dynl.c, keywords.c, load.c: Include
2705 strings.h. Thanks to Bill Schottstaedt for the bug report.
2706
2707 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2708
2709 * backtrace.c (display_header): Make sure that line and column
2710 information is shown independent of whether the port the code was
2711 read from had an associated filename. Thanks to Martin
2712 Grabmueller for providing this patch.
2713
2714 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2715
2716 * fports.[ch] (scm_file_port_p): New primitive.
2717
2718 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2719
2720 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
2721 These are now defined in fports.c, strports.c and vports.c.
2722
2723 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
2724 vports.c (scm_tc16_sfport): Made variables (were macros defined in
2725 tags.h).
2726
2727 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
2728 (scm_make_sfptob): Made static. These return a type code now.
2729
2730 fports.c (scm_init_fports), strports.c (scm_init_strports),
2731 vports.c (scm_init_vports): Create the corresponding port types.
2732
2733 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
2734 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
2735
2736 * init.c (scm_init_guile_1): Make sure strports are initialized
2737 before gdbint.
2738
2739 * ports.[ch] (scm_make_port_type): Changed the return type to
2740 scm_bits_t.
2741
2742 * ports.c (scm_ports_prehistory): Don't create any port types
2743 here.
2744
2745 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
2746 against scm_tc16_fport directly.
2747
2748 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2749
2750 * srcprop.c (scm_set_source_property_x): Fix to handle
2751 (set-source-property! <obj> 'copy <datum>) correctly.
2752
2753 2001-01-24 Gary Houston <ghouston@arglist.com>
2754
2755 * filesys.c (scm_link): docstring fix.
2756 * fports.h (scm_setfileno): obsolete declaration removed.
2757 * posix.c: bogus popen declaration removed.
2758
2759 * rdelim.c: new file, split from ioext.c.
2760 * rdelim.h: new file, split from ioext.h
2761 * Makefile.am: add rdelim.c and related files.
2762 * init.c: call scm_init_rdelim. include rdelim.h.
2763
2764 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2765
2766 This patch was sent by Martin Grabmueller and makes sure that
2767 parameter errors are reported correctly by the lexicographic
2768 ordering predicates.
2769
2770 * strorder.c (string_less_p, string_ci_less_p): New functions.
2771
2772 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
2773 functionality into string_less_p, string_ci_less_p respectively.
2774 The remaining code is just a wrapper to do the parameter
2775 checking.
2776
2777 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
2778 parameters and call string_less_p instead of scm_string_less_p.
2779
2780 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
2781 Check the parameters and call string_less_ci_p instead of
2782 scm_string_ci_less_p.
2783
2784 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2785
2786 This patch modifies scm_display_error to perform parameter
2787 checking. Thanks to Neil Jerram for the bug report.
2788
2789 * backtrace.[ch] (scm_i_display_error): New function.
2790
2791 * backtrace.c (scm_display_error): Added parameter check and
2792 extracted the core functionality into function
2793 scm_i_display_error.
2794
2795 * throw.c (handler_message): Call scm_i_display_error to display
2796 the error message.
2797
2798 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2799
2800 * eval.c (SCM_APPLY): Added # args check for application of
2801 procedures with arity 3. (Thanks to Anders Holst.)
2802
2803 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2804
2805 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
2806
2807 (SCM_OPDIRP): Deprecated.
2808
2809 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
2810 SCM_OPN.
2811
2812 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
2813 Instead, give an explicit error message in case the directory is
2814 closed.
2815
2816 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
2817 instead of SCM_OPENP and SCM_CLOSEDP.
2818
2819 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
2820
2821 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
2822
2823 * eval.c (inner_eval, scm_eval): Move all real functionality into
2824 inner_eval. Avoid to copy the expression twice by inlining some
2825 code from scm_i_eval.
2826
2827 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2828
2829 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
2830 now has to be the last clause, as required by R5RS. Thanks to
2831 Martin Grabmueller for the patch.
2832
2833 2001-01-18 Gary Houston <ghouston@arglist.com>
2834
2835 * ioext.c: further simplify scm_read_string_x_partial by defining
2836 a macro SCM_EBLOCK.
2837
2838 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2839
2840 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
2841
2842 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2843
2844 * __scm.h: Added comment about architecture and compiler
2845 properties that are required by guile.
2846
2847 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
2848 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
2849
2850 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
2851
2852 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
2853
2854 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
2855 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
2856
2857 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2858
2859 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
2860 to the names in limits.h.
2861
2862 * numbers.c (abs_most_negative_fixnum): Added.
2863
2864 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
2865 fixnum-min) special case.
2866
2867 (scm_big_and): Fix for negative first parameter.
2868
2869 (scm_bit_extract): Fix for fixnum paramters.
2870 Thanks to Rob Browning for the bug report.
2871
2872 (scm_init_numbers): Initialize abs_most_negative_fixnum.
2873
2874 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2875
2876 * symbols.c (scm_symbol_bound_p): Fixed comment.
2877 Thanks to Chris Cramer.
2878
2879 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2880
2881 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
2882 Thanks to Bill Schottstaedt.
2883
2884 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
2885
2886 from Matthias Köppe:
2887
2888 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
2889 casts its result, so doesn't yield an lvalue per ANSI C.
2890
2891 * goops.c (s_scm_sys_set_object_setter_x): use
2892 SCM_SET_ENTITY_SETTER.
2893 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
2894
2895 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
2896 its result, so doesn't yield an lvalue per ANSI C.
2897 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
2898 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
2899 SCM_GC_SET_CARD_FLAGS.
2900 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
2901
2902 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
2903
2904 2001-01-08 Gary Houston <ghouston@arglist.com>
2905
2906 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
2907 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
2908 socket.c (scm_recvfrom): use the new macro, plus minor docstring
2909 changes.
2910 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
2911 for fdes. if current input port is used, check that it's a file
2912 port.
2913
2914 2001-01-06 Gary Houston <ghouston@arglist.com>
2915
2916 * ioext.c (scm_read_string_x_partial): new procedure, implements
2917 read-string!/partial.
2918 * ports.c (scm_take_from_input_buffers): new procedure used by
2919 scm_read_string_x_partial.
2920 (scm_drain_input): use scm_take_from_input_buffers.
2921
2922 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
2923
2924 * validate.h (SCM_VALIDATE_NUMBER): New.
2925
2926 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
2927
2928 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
2929 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
2930 SET_DESTROYED): new defines/macros.
2931 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
2932 (add_to_live_list): takes a `guardian_t *' now, not SCM.
2933 (guardian_print): print more info.
2934 (guardian_apply): check if the guardian is destroyed, and throw an
2935 error if so. take one more optional argument `throw_p'.
2936 (scm_guard): depending on the value of `throw_p', return a boolean
2937 result.
2938 (scm_get_one_zombie): remove redundant property test.
2939 (guardian_t): represent the various (currently 3, I hope nothing
2940 more gets added) boolean fields as bit flags.
2941 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
2942 (scm_destroy_guardian_x): new procedure.
2943
2944 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
2945 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
2946
2947 2001-01-01 Gary Houston <ghouston@arglist.com>
2948
2949 * fports.c (fport_write): bugfix: handle short writes for
2950 unbuffered ports too. optimize the buffered case by minimizing
2951 the number of write/flush calls.
2952 (write_all): new helper procedure.
2953
2954 The ChangeLog continues in the file: "ChangeLog-2000"