* eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
[bpt/guile.git] / libguile / ChangeLog
1 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
4 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
5 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
6 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
7 scm_list_<n> over scm_cons[2]?.
8
9 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
10 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
11 SCM_C[AD][AD]R instead of explicit form.
12
13 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
14 comparison parameters.
15
16 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
17 !SCM_NULLP instead of SCM_NIMP.
18
19 (scm_m_case): Don't copy the form. Renamed proc to clause and
20 minimized its scope. Renamed x to clauses. Removed side
21 effecting operation from macro call.
22
23 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
24 minimized its scope. Renamed x to clauses. Minimized the scope
25 of variable 'len'. Make sure the else clause is treated specially
26 even in case of '=>' occurences. Don't change the else to #t in
27 order to be able to distinguish this case in the evaluator. Leave
28 type checking of the recipient to the evaluator.
29
30 (scm_c_improper_memq): Made the comment somewhat clearer.
31
32 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
33 test for SCM_IM_LET at the place of the formal parameters.
34 Simplified the formal parameter checking.
35
36 (scm_m_letstar): Added Comment. Renamed proc to bindings.
37 Renamed arg1 to binding and minimized its scope. Eliminated
38 unnecessary consing.
39
40 (scm_m_do): Renamed proc to bindings. Minimized the scope of
41 variable 'len'.
42
43 (build_binding_list): New static function.
44
45 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
46 Further, split up the 'letrec' unmemoizing code to the
47 corresponding parts for 'do', 'let' and 'letrec', adding comments
48 to each form. Cleanup the handling of the do form (This removes
49 some *real* code :-).
50
51 (SCM_CEVAL): Removed side effecting operation from macro call.
52 Handle the 'else clause of the 'cond form specially - the symbol
53 'else is not replaced with #t any more.
54
55 2001-10-14 Gary Houston <ghouston@arglist.com>
56
57 * version.c (scm_version): use sprintf instead of snprintf,
58 for portability. thanks to Bill Schottstaedt.
59
60 2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
61
62 * read.c (scm_lreadr): When user-defined hash procedure returns
63 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
64 an exception. (This prevents parsing of uniform vectors from
65 interfering with parsing of numbers.)
66
67 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
68
69 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
70 PTRDIFF_MIN. Thanks to Ken Raeburn.
71
72 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
73
74 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
75
76 * eval.c (scm_m_atbind): First try to find the variable without
77 defining it locally; when it has not been found, define it
78 locally.
79
80 * modules.c (module_variable): Pass over variables that exist but
81 are unbound.
82
83 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
84
85 * backtrace.c (display_backtrace_file_and_line): Only use
86 scm_basename when POSIX support is compiled in. Thanks to Chris
87 Cramer.
88
89 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
90
91 * numbers.c (mem2uinteger): Return number read so far when coming
92 across a hexdigit after having read a # or if not reading a hex
93 value. This will enable the calling code to correctly handle
94 forms like 1e2. (The background is, that the exponent markers d,
95 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
96 providing this patch.
97
98 (mem2complex): Fix erroneous double-negation. Now, numbers like
99 1-i will be read correctly.
100
101 2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
102
103 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
104
105 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
106
107 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
108
109 * print.c (scm_print_state_vtable, print_state_pool):
110 Initialize. These variables are now registered as gc roots.
111
112 (scm_current_pstate): Update documentation.
113
114 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
115 scm_prin1, scm_init_print): print_state_pool is registered as a
116 gc root and thus does not need to be protected by a surrounding
117 pair any more.
118
119 (make_print_state): The car of print_state_pool no longer holds
120 the scm_print_state_vtable.
121
122 (scm_current_pstate, scm_make_print_state, print_circref,
123 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
124 SCM_N<foo>.
125
126 (scm_prin1): When building lists, prefer scm_list_<n> over
127 scm_cons[2]?.
128
129 (scm_iprlist): Removed a redundant SCM_IMP test.
130
131 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
132
133 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
134
135 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
136
137 (scm_memcons, scm_mem_to_proc): When building lists, prefer
138 scm_list_<n> over scm_cons[2]?.
139
140 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
141
142 (scm_procedure_name): Use SCM_CADR instead of explicit form.
143
144 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
145 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
146 for some reason his patch didn't make it into the cvs.
147
148 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
149
150 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
151 little bit - should even be somewhat more accurate now.
152
153 2001-10-08 Rob Browning <rlb@defaultvalue.org>
154
155 * gc.c: support ia64 register backing store.
156 (SCM_MARK_BACKING_STORE): new macro.
157
158 * continuations.h: support ia64 register backing store.
159 (struct scm_t_contregs): add ia64 register backing store.
160
161 * continuations.c: support ia64 register backing store.
162 (continuation_mark): mark ia64 register backing store.
163 (continuation_free): free ia64 register backing store.
164 (scm_make_continuation): capture ia64 register backing store.
165 (copy_stack_and_call): copy ia64 register backing store.
166
167 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
168
169 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
170 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
171 instead of SCM_NIMP to test for that case.
172
173 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
174 scm_t_bits instead of long.
175
176 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
177
178 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
179 SCM_T_SIGNED_BITS_MIN): New.
180 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
181 Use them to make these macros computable by the preprocessor.
182
183 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
184 whether the integral type fits in a fixnum, not the compiler.
185 This removes a spurious compiler warning. Also, honor the
186 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
187 needed for `long long's.
188
189 * numbers.c: Define NO_PREPRO_MAGOC when including
190 num2integral.c.i for `long long' and `signed long long'.
191
192 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
193
194 These changes fixes a race condition in the Guile coop - pthread
195 compatibility code.
196
197 * coop.c (mother_awake_p): New variable.
198 (coop_create): Set mother_awake_p before creating or signalling
199 mother; wait until mother is going to sleep before returning.
200 (mother): Reset mother_awake_p before going to sleep.
201
202 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
203
204 * options.c (protected_objects, scm_init_options): The content of
205 protected_objects is now protected from garbage collection using
206 scm_gc_register_root instead of scm_permanent_object.
207
208 (get_option_setting): New static function that computes an option
209 setting as it was formerly done in the function scm_options.
210
211 (get_documented_option_setting): New static function that
212 returns option documentation as it was formerly done in the
213 function scm_options. Note that documentation C strings are no
214 longer precomputed into SCM objects. Instead, they are converted
215 into SCM strings every time get_documented_option_setting is
216 called.
217
218 (change_option_setting): New static functions that modifies the
219 option setting as it was formerly done in the function
220 scm_options. The function is now exception safe, i. e. won't
221 cause a memory leak when interrupted. Further, only non-immediate
222 option values are added to the protection list.
223
224 (scm_options): This function now has only the purpose to dispatch
225 to to get_option_setting, get_documented_option_setting or
226 change_option_setting, depending on the arguments given to
227 scm_options.
228
229 (scm_init_opts): Don't convert documentation C strings into SCM
230 strings. Further, don't protect any object values: They _must_
231 be immediate values, otherwise there is no guarantee that they
232 have not been collected before anyway.
233
234 * options.[ch] (scm_t_option): Made type unsigned, name into a
235 constant char* and val into a scm_t_bits type.
236
237 (scm_options, scm_init_opts): The number of options is guaranteed
238 to be larger or equal to zero. Thus, the type is changed to
239 unsigned.
240
241 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
242
243 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
244 testing an unsigned value for being >= 0.
245
246 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
247
248 * numbers.h: Removed old comment about using SCM_CAR to access
249 non-pair cells.
250
251 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
252 the return value is signed. Thanks to Brian Crowder for the bug
253 report.
254
255 (SCM_SRS): Avoid unnecessary casting and don't unpack input
256 values. With this patch, SCM_SRS can be safely used for other
257 types than scm_t_signed_bits. However, it should still better be
258 an internal macro and thus be renamed to SCM_I_SRS.
259
260 (SCM_MAKINUM, SCM_INUM): Use proper casting.
261
262 2001-10-03 Gary Houston <ghouston@arglist.com>
263
264 * continuations.h, unif.h: in the descriptions of the bit patterns
265 of the heap cells, make bit 0 the least significant.
266
267 2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
268
269 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
270 Thanks to Golubev I. N.
271
272 2001-09-25 Gary Houston <ghouston@arglist.com>
273
274 * ports.c (scm_drain_input): extended the docstring. thanks to
275 Alex Schroeder and Thien-Thi Nguyen.
276
277 2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
278
279 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
280 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
281 macros. (The NUM names might soon change.)
282
283 * numbers.h: Added missing declarations.
284
285 2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
286
287 * Makefile.am: Distribute num2float.i.c.
288
289 * num2float.i.c: New file, multiply included by numbers.c, used
290 to "templatize" the float <-> num conversion routines.
291
292 * numbers.c: New functions: scm_num2float, scm_float2num,
293 scm_num2double, scm_double2num.
294
295 2001-09-21 Rob Browning <rlb@defaultvalue.org>
296
297 * .cvsignore: really add version.h
298
299 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
300 Otherwise it fails on the alpha. However, we might rather choose
301 this size conditionally.
302
303 * numbers.c (scm_gcd): change "k" to a long from an int.
304 Otherwise it fails on the alpha. However, we might rather choose
305 this size conditionally.
306
307 * error.c (scm_wta): coerce char* to intptr_t before int
308 assignment.
309
310 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
311 int.
312
313 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
314
315 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
316
317 * numbers.c (scm_integer_expt): Accept inexact integer in second
318 argument. (Thanks to Bill Schottstaedt.)
319
320 2001-09-20 Rob Browning <rlb@defaultvalue.org>
321
322 * .cvsignore: add version.h
323
324 * versiondat.h.in: removed (obsolete).
325
326 * version.h.in: renamed from version.h.
327 (SCM_GUILE_MAJOR_VERSION): new public macro.
328 (SCM_GUILE_MINOR_VERSION): new public macro.
329 (SCM_GUILE_MICRO_VERSION): new public macro.
330
331 * version.h: renamed to version.h.in.
332
333 * version.c
334 (scm_major_version): support integer *_VERSION macros.
335 (scm_minor_version): support integer *_VERSION macros.
336 (scm_micro_version): support integer *_VERSION macros.
337 (scm_version): support integer *_VERSION macros.
338
339 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
340
341 * error.c, error.h: Made error keys globally accessible.
342 Applications might want to test for these or use them in a direct
343 call to scm_error.
344
345 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
346 routines are passed an inexact. This change in behavior is
347 motivated by concordance with R5RS: It is more common that a
348 primitive doesn't want to accept an inexact for an exact.
349
350 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
351
352 The following patch partially undoes my patch from 2001-06-30,
353 where I added the function scm_gc_mark_cell_conservatively. The
354 function is buggy, since it breaks guile during conservative
355 marking if a pointer on the stack points directly into the list of
356 free cells on the heap: With conservative cell marking this will
357 cause the whole free list to be scanned and marked - boom!
358
359 * gc.c (allocated_mark, MARK, heap_segment,
360 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
361 (scm_gc_mark_cell_conservatively): Remove function
362 scm_gc_mark_cell_conservatively and update the corresponding
363 comments and uses accordingly. Thanks to Christopher Cramer for
364 the patch. (Minor corrections by me.)
365
366 2001-09-15 Gary Houston <ghouston@arglist.com>
367
368 * root.h (scm_root_state): removed the continuation_stack and
369 continuation_stack_ptr members, which have no apparent purpose.
370 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
371 removed.
372
373 * root.c (root_mark), init.c (restart_stack, start_stack), gc
374 (scm_igc): remove all references to contination_stack and
375 continuation_stack_ptr, avoiding allocation of a vector and
376 useless processing during gc.
377
378 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
379
380 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
381
382 (TCONC_IN): Make sure that the cell word 0 is initialized last.
383
384 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
385
386 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
387
388 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
389 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
390
391 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
392
393 * guardians.c (mark_dependencies_in_tconc,
394 whine_about_self_centered_zombies, scm_init_guardians): Register
395 the static global variable `self_centered_zombies' via
396 scm_gc_register_root, to make some cdr-ing unnecessary.
397
398 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
399
400 * backtrace.c (display_backtrace_file,
401 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
402 values, use SCM_FALSEP when comparing SCM values against #f.
403 Thanks to Rob Browning for the bug report.
404
405 2001-09-12 Martin Baulig <martin@home-of-linux.org>
406
407 * strings.[ch] (scm_str2string): New function.
408
409 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
410
411 * gc.c (scm_done_free): Always subtract size from scm_mallocated
412 when computing nm, even if it's negative.
413 (scm_must_malloc): Abort on overflow of scm_mtrigger.
414 (scm_must_realloc): Likewise.
415
416 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
417
418 * numbers.c (scm_sys_check_number_conversions): new function,
419 defined if Guile is compiled in debugging mode. currently checks
420 `scm_num2ulong', should check much much more.
421
422 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
423 unsigned, ensure that it's positive. thanks to Martin Baulig!
424
425 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
426
427 * __scm.h: Added new section about compile time selectable
428 features.
429
430 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
431 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
432 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
433 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
434 Removed.
435
436 * deprecation.c (scm_include_deprecated_features): Simplified.
437
438 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
439 `SCM_IMP´ instead of `!SCM_CELLP´.
440
441 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
442 Extract side-effecting operations from macros.
443
444 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
445 scm_top_level_lookup_closure_var and scm_system_transformer.
446
447 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
448
449 (heap_segment): Use CELL_P instead of SCM_CELLP.
450
451 * init.c (start_stack): Don't initialize
452 scm_top_level_lookup_closure_var and scm_system_transformer.
453
454 * modules.c (scm_set_current_module): Don't access
455 scm_top_level_lookup_closure_var and scm_system_transformer.
456
457 (scm_sym2var): Don't call scm_variable_set_name_hint.
458
459 (scm_post_boot_init_modules): Removed deprecated initializations.
460
461 * print.c (scm_ipruk): Don't access cell contents of non cells.
462
463 * strings.c (scm_string_set_x): All strings are writable.
464
465 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
466 type. There is only one string type now.
467
468 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
469
470 * tags.h: Remove comments about two different string types.
471
472 (SCM_CELLP, SCM_NCELLP): Deprecated.
473
474 * variable.c (make_variable): Remove code variant for vcells.
475
476 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
477 SCM_VARIABLE_LOC): Remove code variant for vcells.
478
479 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
480 SCM_ENABLE_DEPRECATED with the logic reversed.
481
482 * dynl.c (moddata, registered_mods), dynl.[ch]
483 (scm_register_module_xxx, scm_registered_modules,
484 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
485 (*top-level-lookup-closure*), eval.[ch]
486 (scm_top_level_lookup_closure_var, scm_system_transformer,
487 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
488 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
489 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
490 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
491 scm_unprotect_object), modules.c (root_module_lookup_closure,
492 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
493 beautify_user_module_x_var, try_module_autoload_var,
494 scm_module_full_name), modules.[ch] (scm_the_root_module,
495 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
496 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
497 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
498 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
499 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
500 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
501 scm_make_shared_substring), tags.h (scm_tc7_substring,
502 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
503 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
504 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
505 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
506 Removed.
507
508 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
509 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
510 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
511 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
512 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
513 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
514 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
515 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
516 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
517 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
518 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
519 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
520 (setzone, scm_strftime, scm_strptime), vports.c
521 (scm_make_soft_port): Remove calls to
522 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
523 gone, all strings are 0-terminated anyway.
524
525 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
526 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
527 double inclusion of the same headers to the SCM_<filename>_H
528 format.
529
530 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
531 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
532 print.c (scm_iprin1): The type scm_tc7_substring does not exist
533 any more.
534
535 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
536 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
537 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
538 !SCM_<foo> over SCM_N<foo>.
539
540 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
541
542 * Makefile.am: Remove references to symbols-deprecated.c.
543
544 * symbols.c (scm_init_symbols): Don't initialize deprecated
545 symbol functions.
546
547 * symbols-deprecated.c: Removed.
548
549 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
550 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
551 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
552 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
553 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
554 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
555 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
556 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
557 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
558 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
559 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
560 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
561 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
562 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
563 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
564 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
565 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
566 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
567 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
568 scm_intern0, scm_sysintern, scm_sysintern0,
569 scm_sysintern0_no_module_lookup, scm_symbol_value0,
570 scm_string_to_obarray_symbol, scm_intern_symbol,
571 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
572 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
573 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
574 vectors.[ch] (scm_vector_set_length_x): Removed.
575
576 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
577 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
578 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
579 Renamed the macros that are defined to inhibit double inclusion of
580 the same headers to the SCM_<filename>_H format.
581
582 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
583 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
584 SCM_N<foo>.
585
586 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
587
588 * continuations.h (scm_contregs), debug.h (scm_debug_info,
589 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
590 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
591 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
592 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
593 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
594 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
595 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
596 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
597 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
598 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
599 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
600
601 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
602 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
603 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
604 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
605 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
606 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
607 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
608 double inclusion of the same headers to the SCM_<filename>_H
609 format.
610
611 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
612 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
613 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
614 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
615 !SCM_<foo> over SCM_N<foo>.
616
617 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
618
619 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
620 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
621 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
622 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
623 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
624 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
625 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
626 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
627 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
628 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
629 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
630 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
631 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
632 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
633 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
634 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
635 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
636 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
637 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
638 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
639 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
640 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
641 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
642 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
643 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
644 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
645 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
646 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
647 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
648 the macros that are defined to inhibit double inclusion of the
649 same headers to the SCM_<filename>_H format.
650
651 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
652
653 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
654 "scm_t_portable" with "scm_port_table" which was an artifact from
655 the great "scm_*_t -> scm_t_" renaming.
656
657 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
658
659 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
660 used; nfc. Thanks to Bill Schottstaedt.
661
662 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
663 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
664 Thanks to Chris Cramer.
665
666 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
667
668 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
669
670 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
671 dynamic scope.
672 * dynwind.h (scm_swap_bindings): Declare.
673 * dynwind.c (scm_swap_bindings): Make non-static.
674
675 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
676
677 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
678 doing exactly nothing about them). thanks Neil!
679
680 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
681
682 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
683
684 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
685
686 * gc.c: Fix omission bug: Add `heap_segment' forward decl
687 (proto) in the case when either `GUILE_DEBUG' or
688 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
689
690 (map_free_list): Fix typo: Ref `f' correctly.
691
692 Thanks to Chris Cramer.
693
694 2001-08-15 Rob Browning <rlb@defaultvalue.org>
695
696 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
697 variables.
698 (libpath.h): change libguileversion to libguileinterface.
699
700 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
701
702 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
703 ChangeLog-2000. Thanks to Daniel Skarda!
704
705 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
706
707 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
708 do it from the Makefile.
709
710 * Makefile.am: rearrange the snarfing slightly, so that .doc files
711 are of a reasonable size.
712
713 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
714
715 * stacks.c (scm_make_stack): Improve docstring by explaining use
716 of cutting args.
717
718 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
719
720 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
721 scm_char_whitespace_p, scm_char_upper_case_p,
722 scm_char_lower_case_p, scm_char_is_both_p): Do not require
723 characters to fulfill isascii in addition to the primary
724 predicate.
725
726 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
727
728 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
729 scm_istr2flo, scm_istring2number): Removed.
730
731 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
732 SCM_SLOPPY_<foo>.
733
734 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
735 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
736 Added.
737
738 (scm_string_to_number): Use new number parser.
739
740 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
741 handles complex numbers.
742
743 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
744 SCM_<foo>_H.
745
746 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
747 SCM_N<pred>.
748
749 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
750
751 (scm_i_mem2number): Added.
752
753 (scm_exact_to_inexact): Changed signature.
754
755 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
756 here instead of within scm_i_mem2number. Call scm_i_mem2number
757 instead of scm_istr2int and scm_istring2number.
758
759 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
760
761 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
762 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
763 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
764 !SCM_<pred> over SCM_N<pred>.
765
766 (scm_eval_body): Remove side effecting code from macro call.
767
768 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
769 SCM_NIMP test.
770
771 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
772
773 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
774
775 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
776
777 Removed vcell slot from structs.
778
779 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
780 subsequent indices.
781
782 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
783 zero. Use scm_vtable_index_layout instead of "0" when accessing
784 said slot.
785 (scm_init_struct): Remove vcell slot layout code from
786 required_vtable_fields.
787
788 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
789
790 * goops.c (build_class_class_slots): Removed vcell slot
791 definition.
792
793 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
794 Removed vcell slot layout code.
795 (scm_si_vcell): Removed.
796
797 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
798
799 "Glocs" have been removed.
800
801 * tags.h: Update tag system docs.
802 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
803 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
804 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
805 or SCM_NCONSP, respectively.
806
807 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
808 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
809 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
810
811 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
812 tell glocs from structs.
813
814 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
815
816 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
817 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
818 instead of with glocs.
819 (EVALCAR): Do not test for glocs.
820 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
821 condition.
822 (scm_unmemocar): Do not handle glocs.
823 (scm_m_atfop): Memoize as a variable, not as a gloc.
824 (scm_eval_args, scm_deval_args): Do not handle glocs.
825 (scm_ceval, scm_deval): Likewise.
826
827 * eval.h (SCM_XEVALCAR): Do not test for glocs.
828 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
829 Removed.
830
831 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
832
833 * dynwind.c (scm_swap_bindings): Likewise.
834 (scm_dowinds): Updated to recognize lists of variables instead of
835 lists of glocs.
836
837 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
838
839
840 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
841 where it is needed.
842
843 2001-07-25 Gary Houston <ghouston@arglist.com>
844
845 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
846 docstrings to reflect the n-ary implementation.
847
848 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
849
850 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
851 value of a variable, not the plain "return" statement.
852
853 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
854
855 * eval.c: Allow variables in memoized code (in addition to glocs).
856 (scm_lookupcar): Handle variables in lost races. Replace symbol
857 with variable directly, do not make a gloc.
858 (scm_unmemocar): Rewrite variables using a reverse lookup, just
859 like glocs.
860 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
861 the main switch.
862
863 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
864
865 * variable.c (scm_i_variable_print): Use "value" instead of
866 "binding" since a binding is the mapping between symbols and
867 variables, not between variables and their values.
868
869 * tags.h (scm_tc7_variable): New.
870 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
871 * print.c (scm_iprin1): Likewise.
872
873 * variable.h (scm_tc16_variable): Removed.
874 (SCM_VARIABLEP): Test for new tc7 code.
875 (scm_i_variable_print): New.
876 * variable.c (scm_tc16_variable): Removed.
877 (variable_print): Renamed to scm_i_variable_print and made
878 non-static.
879 (variable_equal_p): Removed.
880 (make_variable): Construct a tc7 object instead of a smob.
881 (scm_init_variable): Do not register smob.
882
883 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
884
885 * tags.h: Include inttypes.h when we have it.
886
887 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
888
889 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
890 is taken by the new SCM_IM_CALL_WITH_VALUES.
891 * print.c (scm_isymnames): Update table accordingly.
892
893 2001-07-22 Gary Houston <ghouston@arglist.com>
894
895 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
896 SCM_MAKINUM to convert regoff_t value to SCM.
897
898 2001-07-21 Gary Houston <ghouston@arglist.com>
899
900 * scmsigs.c: include sys/time.h for itimer stuff.
901
902 2001-07-19 Rob Browning <rlb@defaultvalue.org>
903
904 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
905
906 * c-tokenize.lex: add option %nounput to quiet warning.
907 Add prototype for yylex to quiet warning.
908
909 * scmconfig.h.in: add flags for setitimer and getitimer.
910
911 * scmsigs.h (scm_init_scmsigs): new prototype.
912 (scm_init_scmsigs): new prototype.
913
914 * scmsigs.c (s_scm_setitimer): new function.
915 (s_scm_setitimer): new function.
916
917 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
918
919 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
920 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
921 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
922 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
923 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
924 guile-func-name-check.in, guile-snarf-docs-texi.in,
925 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
926 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
927 objprop.c, objprop.h, options.c, options.h, random.h,
928 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
929 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
930 version.c, version.h: Updated copyright notice.
931
932 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
933
934 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
935 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
936 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
937 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
938 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
939 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
940 sym_environment, scm_sym_change_class): New static variables to
941 hold predefined symbols.
942
943 (build_class_class_slots): Build the list using scm_list_n
944 instead of cons. Also, slots are already created as lists, thus
945 making a call to maplist unnecessary.
946
947 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
948 scm_class_direct_subclasses, scm_class_direct_methods,
949 scm_class_precedence_list, scm_class_slots, scm_class_environment,
950 scm_method_procedure, create_standard_classes, purgatory): Use
951 predefined symbols.
952
953 (build_slots_list, compute_getters_n_setters,
954 scm_sys_initialize_object, scm_sys_inherit_magic_x,
955 get_slot_value_using_name, set_slot_value_using_name,
956 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
957 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
958 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
959
960 (scm_sys_prep_layout_x): Minimize variable scopes.
961
962 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
963 scm_sys_fast_slot_set_x): Fix signedness.
964
965 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
966 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
967 scm_memoize_method, scm_wrap_object): Use packing and unpacking
968 when converting to and from SCM values.
969
970 (scm_enable_primitive_generic_x): Add rest argument checking.
971
972 (map, filter_cpl, maplist, scm_sys_initialize_object,
973 scm_sys_prep_layout_x, slot_definition_using_name,
974 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
975 call_memoize_method, scm_make, scm_make_class): Prefer explicit
976 predicates over SCM_N?IMP tests.
977
978 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
979 checking.
980
981 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
982 alias.
983
984 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
985
986 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
987
988 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
989
990 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
991
992 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
993
994 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
995
996 * strings.c (s_scm_string): fix arg position in assert.
997
998 2001-07-11 Gary Houston <ghouston@arglist.com>
999
1000 * strports.c (st_write): use memcpy, not strncpy. thanks to
1001 Dale P. Smith.
1002
1003 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
1004
1005 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
1006 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
1007 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
1008 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
1009 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
1010 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
1011 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
1012 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
1013 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
1014 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
1015 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
1016 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
1017 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
1018 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
1019 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
1020 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
1021 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
1022 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
1023 weaks.c, weaks.h: Remove "face-lift" comment.
1024
1025 2001-07-08 Rob Browning <rlb@defaultvalue.org>
1026
1027 * .cvsignore: add stamp-h.in.
1028
1029 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1030
1031 * hooks.c (scm_make_hook, scm_add_hook_x),
1032 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
1033 value info to the docstrings.
1034
1035 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1036
1037 Some more compatibility patches for Windows.
1038
1039 * posix.c (getlogin): getlogin() implementation for Windows.
1040
1041 * backtrace.c, ioext.c: Include <stdio.h>.
1042
1043 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
1044 exist.
1045
1046 * cpp_sig_symbols.in: Added SIGBREAK.
1047
1048 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
1049
1050 * strports.c (scm_read_0str, scm_eval_0str): Call
1051 scm_c_read_string and scm_c_eval_string respectively, not
1052 themselves. Thanks to Dale P. Smith!
1053
1054 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1055
1056 * unif.c (scm_array_set_x): The variable args does not
1057 necessarily have to be a list. Further, got rid of a redundant
1058 SCM_NIMP test.
1059
1060 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1061
1062 * list.c (SCM_I_CONS): Make sure the cell type is initialized
1063 last.
1064
1065 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
1066 init_heap_seg): Fixed signedness.
1067
1068 (init_heap_seg): Replaced strange for-loop with a while loop.
1069
1070 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
1071
1072 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
1073
1074 The following patch adds conservative marking for the elements of
1075 free or allocated cells.
1076
1077 * gc.c (allocated_mark, heap_segment): New static functions.
1078
1079 (which_seg): Deleted, since the functionality is now provided by
1080 function heap_segment.
1081
1082 (map_free_list): Use heap_segment instead of which_seg.
1083
1084 (MARK): If cell debugging is disabled, mark free cells
1085 conservatively.
1086
1087 (scm_mark_locations, scm_cellp): Extracted the search for the
1088 heap segment of a SCM value into function heap_segment.
1089
1090 (scm_init_storage): Allocated cells must be marked
1091 conservatively.
1092
1093 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
1094
1095 The following patch changes the representation of weak vectors to
1096 double cells instead of using an extension of the vector's
1097 allocated memory.
1098
1099 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
1100 the result of SCM_WVECT_GC_CHAIN.
1101
1102 (scm_gc_sweep): Weak vectors don't have extra fields any more.
1103
1104 * weaks.c (allocate_weak_vector): New static function. It does
1105 not patch any previously created vector object during the
1106 construction of a weak vector, and thus doesn't need to switch
1107 off interrupts during vector creation.
1108
1109 (scm_make_weak_vector, scm_make_weak_key_hash_table,
1110 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1111 Use allocate_weak_vector to provide the new weak vector object.
1112
1113 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
1114 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
1115 now stored in the double cell.
1116
1117 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
1118 Use SCM_WVECT_TYPE.
1119
1120 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
1121 using an entry of the double cell.
1122
1123 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
1124
1125 * stamp-h.in: bye bye
1126
1127 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
1128
1129 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
1130 scm_eval_0str.
1131
1132 * load.c, load.h (scm_c_primitive_load,
1133 scm_c_primitive_load_path): New.
1134
1135 * strports.c, strports.h (scm_c_read_string): Renamed from
1136 scm_read_0str. Also, added "const" qualifier to argument.
1137 (scm_c_eval_string): Renamed from scm_eval_0str.
1138 (scm_read_0str, scm_eval_0str): Deprecated.
1139
1140 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1141
1142 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
1143 SCM_LIST1.
1144
1145 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
1146
1147 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
1148 scm_list_n): New functions.
1149 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
1150 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
1151 (lots of files): Use the new functions.
1152
1153 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
1154
1155 * strings.c: #include "libguile/deprecation.h".
1156
1157 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1158
1159 * read.c (scm_lreadr): When reading a hash token, check for a
1160 user-defined hash procedure first, so that overriding the builtin
1161 hash characters is possible (this was needed for implementing
1162 SRFI-4's read synax `f32(...)').
1163
1164 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
1165 because the latter is unsigned now and breaks comparisons like
1166 (n < (scm_t_signed_bits)MIN_VALUE).
1167
1168 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
1169
1170 * eval.h, eval.c (scm_call_4): New function.
1171
1172 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
1173 directly rather than dispatching to them via scm_ithrow and a lazy
1174 catch.
1175
1176 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
1177 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
1178 for trap handler procedures.
1179
1180 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
1181 procedures not being #f.
1182
1183 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
1184
1185 * Makefile.am (c-tokenize.c): add rule to generate it.
1186 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
1187
1188 filter-doc-snarfage.c: remove.
1189
1190 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1191
1192 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
1193
1194 The following set of changes makes compiling Guile under various
1195 Windows compilers easier. Compilation under GNU systems should
1196 not be affected at all.
1197
1198 Thanks to Stefan Jahn for all necessary information, patches and
1199 testing.
1200
1201 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
1202 getpgrp, ttyname, primitive-fork and some header inclusion for
1203 Windows.
1204
1205 * random.c: Define M_PI, if not predefined and use __int64 for
1206 LONG64 under Windows.
1207
1208 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
1209 Windows and conditionalize some signal names.
1210
1211 * socket.c (scm_getsockopt): Added missing comma.
1212 Include socket library header under Windows.
1213
1214 * stime.c (CLKTCK): Add cast to int, to make it compile under
1215 Windows.
1216
1217 * ports.c (truncate): New function, compiled only under Windows.
1218
1219 * net_db.c: Do not declare errno under Windows.
1220
1221 * iselect.h, inet_aton.c: Include socket library headers under
1222 Windows.
1223
1224 * guile.c (inner_main): Under Windows, initialize socket library
1225 and initialize gdb_interface data structures.
1226
1227 * gdb_interface.h: Under Windows, gdb_interface cannot be
1228 initialized statically. Initialize at runtime instead.
1229
1230 * fports.c (write_all): ssize_t -> size_t.
1231 (fport_print): Conditionalize call to ttyname().
1232 (getflags): New function, compiled only under Windows.
1233
1234 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
1235 primitives chown, link, fcntl.
1236 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
1237 as path seperator.
1238
1239 * backtrace.c: Include <io.h> under Windows.
1240
1241 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
1242
1243 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
1244 declaration.
1245
1246 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
1247
1248 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
1249 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
1250 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
1251 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
1252 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
1253 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
1254 (scm_dynamic_wind, scm_dowinds), environments.c
1255 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
1256 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
1257 goops.c (GETVAR, purgatory, make_class_from_template,
1258 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
1259 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
1260 (scm_primitive_load), modules.c (scm_resolve_module,
1261 scm_c_define_module, scm_c_use_module, scm_c_export,
1262 module_variable, scm_eval_closure_lookup, scm_sym2var,
1263 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
1264 ports.c (scm_port_for_each), print.c (scm_printer_apply),
1265 properties.c (scm_primitive_property_ref), ramap.c (ramap,
1266 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
1267 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
1268 (scm_object_to_string, scm_call_with_output_string,
1269 scm_call_with_input_string), throw.c (scm_body_thunk,
1270 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
1271 scm_make_shared_array), vports.c (sf_flush, sf_write,
1272 sf_fill_input, sf_close): Use one of the above functions.
1273 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
1274
1275 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1276
1277 * filesys.c (scm_close), ports.c (scm_close_port,
1278 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
1279 instead of SCM_NEGATE_BOOL.
1280
1281 * filesys.c (scm_stat): Clean up type dispatch.
1282
1283 * filesys.c (scm_stat), ports.c (scm_input_port_p,
1284 scm_output_port_p): Get rid of redundant IM type check.
1285
1286 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
1287 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
1288 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
1289 scm_return_entry), numbers.c (scm_number_to_string), objects.c
1290 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
1291 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
1292 scm_addr_vector), stime.c (scm_strftime), strings.c
1293 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
1294 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
1295 scm_string_split), strports.c (scm_strport_to_string), symbols.c
1296 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
1297 instead of scm_makfromstr.
1298
1299 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
1300 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
1301 scm_read_hash_extend), stime.c (scm_strftime), strings.c
1302 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
1303 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
1304 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
1305 !SCM_<pred> over SCM_N<pred>.
1306
1307 * strings.[ch] (scm_makfromstr): Deprecated.
1308
1309 (scm_mem2string): New function, replaces scm_makfromstr.
1310
1311 * strings.c (scm_substring), strop.c (string_copy,
1312 scm_string_split), strports.c (scm_strport_to_string), symbols.c
1313 (scm_symbol_to_string): Fix gc problem.
1314
1315 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
1316 SCM_<foo>_H.
1317
1318 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
1319 warning about comparing signed and unsigned values. This fix is
1320 not optimal, since it won't work reliably if sizeof (c_start) >
1321 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
1322 solution is to define this macro as an inline function, thus
1323 allowing to specifiy the types of c_start and c_end.
1324
1325 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1326
1327 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
1328 scm_t_debug_frame*.
1329
1330 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
1331 Rename <foo>H to SCM_<foo>_H.
1332
1333 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
1334 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
1335
1336 (narrow_stack): Make i unsigned. Don't use side-effecting
1337 operations in conditions.
1338
1339 (narrow_stack, scm_make_stack, scm_stack_id,
1340 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
1341
1342 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
1343 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
1344 more.
1345
1346 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
1347 signedness.
1348
1349 (scm_last_stack_frame): Remove bogus `;´.
1350
1351 * stacks.h (SCM_FRAMEP): Fix type check.
1352
1353 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
1354
1355 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
1356 c-tokenize.c when doing maintainer-clean.
1357
1358 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
1359
1360 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
1361 simplify.
1362
1363 * eval.c: all hash signs are in column 0.
1364
1365 * Makefile.am (guile_filter_doc_snarfage): build using
1366 c-tokenize.c, not filter-doc-snarfage.c.
1367 rearrange snarfing dependencies a bit.
1368
1369 * c-tokenize.lex: new file.
1370
1371 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
1372
1373 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
1374 scm_t_srcpropso_plist. See the big type renaming.
1375 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
1376 Thanks to Seth Alves!
1377
1378 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
1379 they aren't defined already.
1380
1381 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1382
1383 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
1384 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
1385 problem.
1386
1387 * backtrace.c (display_expression, scm_set_print_params_x,
1388 display_application, display_frame, scm_backtrace), numbers.c
1389 (scm_istring2number), objects.c (scm_class_of,
1390 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
1391 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
1392
1393 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
1394 always positive.
1395
1396 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
1397 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
1398
1399 * objects.c (scm_class_of): Type fix.
1400
1401 (scm_mcache_lookup_cmethod): Improved comment, simplified,
1402 eliminated goto.
1403
1404 * pairs.h (scm_error_pair_access): The function can return if
1405 called recursively.
1406
1407 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1408
1409 * init.c (scm_init_guile_1): Removed initialization of tag.c.
1410
1411 * gdbint.c, init.c: Removed inclusion of tag.h.
1412
1413 * tag.h, tag.c: Removed files.
1414
1415 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
1416
1417 2001-06-20 Gary Houston <ghouston@arglist.com>
1418
1419 * deprecation.c, extensions.c, rw.c: include string.h.
1420
1421 2001-06-19 Gary Houston <ghouston@arglist.com>
1422
1423 * filter-doc-snarfage.c (process): added ungetc in
1424 MULTILINE_COOKIE case since otherwise it fails when there's no
1425 space between the '(' and the quote of the following string
1426 (gcc 3.0).
1427
1428 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
1429
1430 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
1431
1432 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
1433
1434 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
1435 extension takes place.
1436 * strings.h (SCM_STRING_LENGTH): Likewise.
1437 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
1438
1439 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
1440 it.
1441
1442 * tags.h: Include <stdint.h> when we have it.
1443 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
1444 available. Else use "unsigned long".
1445 (scm_signed_bits_t): New.
1446
1447 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
1448 (SCM_INUM): Cast result to scm_signed_bits_t.
1449
1450 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
1451
1452 * mkstemp.c: Update path to #include file scmconfig.h.
1453 Thanks to Golubev I. N.
1454
1455 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1456
1457 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
1458
1459 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
1460 the macro definition.
1461
1462 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
1463 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
1464 instead of SCM_INST_TYPE.
1465
1466 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
1467 the object is a struct before accessing its struct flags.
1468
1469 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
1470
1471 2001-06-10 Gary Houston <ghouston@arglist.com>
1472
1473 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
1474 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
1475 work reliably anymore. try it from boot-9.scm instead.
1476
1477 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
1478
1479 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
1480 Thanks to Matthias Köppe!
1481
1482 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
1483
1484 * snarf.h, filter-doc-snarfage.c: more changes to cope with
1485 space-happy C preprocessors.
1486
1487 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
1488 inside cookies. thanks to Matthias Köppe!
1489
1490 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1491
1492 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
1493 keywords. Fix gc protection.
1494
1495 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
1496 operations in macro calls.
1497
1498 * pairs.c (scm_error_pair_access): Avoid recursion.
1499
1500 Thanks to Matthias Koeppe for reporting the bugs that correspond
1501 to the following set of patches.
1502
1503 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
1504 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
1505 bitvector base address using SCM_BITVECTOR_BASE.
1506
1507 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
1508 unsigned long*.
1509
1510 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1511
1512 * goops.c (SCM_CLASS_REDEF): Removed.
1513
1514 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
1515 SCM_<foo>_H.
1516
1517 Thanks to Matthias Koeppe for reporting the bugs that correspond
1518 to the following set of patches.
1519
1520 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
1521 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
1522 scm_sys_allocate_instance, clear_method_cache,
1523 scm_sys_invalidate_method_cache_x, scm_make,
1524 create_standard_classes, scm_make_port_classes, scm_make_class,
1525 scm_add_slot): Use SCM_SET_SLOT to set slot values.
1526
1527 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
1528
1529 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
1530
1531 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
1532 UNARY_ELTS_CODE): Remove bogus break statement.
1533
1534 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
1535 Don't access bit vectors elements as SCM objects.
1536
1537 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
1538 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1539 Don't assign to an unpacked value.
1540
1541 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1542
1543 * __scm.h (SCM_NORETURN): Moved here from error.h.
1544
1545 (SCM_UNUSED): New macro.
1546
1547 (SCM_DEBUG_PAIR_ACCESSES): New macro.
1548
1549 * backtrace.c (display_error_handler), continuations.c
1550 (continuation_print), debug.c (debugobj_print), dynwind.c
1551 (guards_print), environments.c (observer_print,
1552 core_environments_finalize, leaf_environment_cell,
1553 leaf_environment_print, eval_environment_print,
1554 eval_environment_observer, import_environment_define,
1555 import_environment_undefine, import_environment_print,
1556 import_environment_observer, export_environment_define,
1557 export_environment_undefine, export_environment_print,
1558 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
1559 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
1560 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
1561 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
1562 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
1563 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
1564 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
1565 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
1566 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
1567 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
1568 set_slot_value, test_slot_existence, scm_change_object_class,
1569 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
1570 default_setter), guardians.c (guardian_print, guardian_gc_init,
1571 guardian_zombify, whine_about_self_centered_zombies), guile.c
1572 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
1573 mallocs.c (malloc_print), numbers.c (scm_print_real,
1574 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
1575 end_input_default, scm_port_print, fill_input_void_port,
1576 write_void_port), root.c (root_print), smob.c (scm_mark0,
1577 scm_free0, scm_smob_print, scm_smob_apply_1_error,
1578 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
1579 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
1580 (scm_struct_free_0, scm_struct_free_standard,
1581 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
1582 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
1583 scm_handle_by_throw, scm_ithrow), weaks.c
1584 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
1585 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
1586 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
1587
1588 * error.h (SCM_NORETURN): Moved to __scm.h.
1589
1590 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
1591 Renamed <foo>H to SCM_<foo>_H.
1592
1593 * gc.c (debug_cells_gc_interval): New static variable.
1594
1595 (scm_assert_cell_valid): If selected by the user, perform
1596 additional garbage collections.
1597
1598 (scm_set_debug_cell_accesses_x): Extended to let the user specify
1599 if additional garbage collections are desired.
1600
1601 (mark_gc_async): If additional garbage collections are selected
1602 by the user, don't call the after-gc-hook. Instead require the
1603 user to run the hook manually.
1604
1605 * pairs.c (scm_error_pair_access): New function. Only compiled
1606 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
1607
1608 * pairs.h (SCM_VALIDATE_PAIR): New macro.
1609
1610 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
1611 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
1612 is a real pair object. (Glocs are also accepted, but that may
1613 change.) If not, abort with an error message.
1614
1615 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1616
1617 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
1618
1619 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
1620 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
1621
1622 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
1623
1624 * extensions.c (scm_c_register_extension): Allow NULL as library
1625 name.
1626 (load_extension): Ignore NULL library names when comparing.
1627
1628 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
1629 non-pointers are being compared. Thanks to Alexander Klimov!
1630
1631 2001-06-04 Gary Houston <ghouston@arglist.com>
1632
1633 * rw.c (scm_write_string_partial): new procedure implementing
1634 write-string/partial in (ice-9 rw).
1635 * rw.h: declare scm_write_string_partial.
1636
1637 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
1638
1639 * keywords.c (keyword_print): Substract 1 from length of symbol
1640 name, accounting for the silly dash.
1641
1642 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
1643 Do not emit deprecation warning.
1644
1645 Added exception notice to all files.
1646
1647 * dynl.c: Include "deprecation.h".
1648
1649 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
1650
1651 * dynl.c (scm_register_module_xxx, scm_registered_modules,
1652 scm_clear_registered_modules): Deprecated.
1653
1654 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
1655
1656 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
1657 guile-snarf-docs-texi.
1658
1659 * fports.c: HAVE_ST_BLKSIZE changed to
1660 HAVE_STRUCT_STAT_ST_BLKSIZE.
1661 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
1662 HAVE_STRUCT_STAT_ST_BLKSIZE.
1663
1664 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
1665 HAVE_STRUCT_STAT_ST_RDEV.
1666 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
1667 HAVE_STRUCT_STAT_ST_BLKSIZE.
1668 (scm_stat2scm): HAVE_ST_BLOCKS changed to
1669 HAVE_STRUCT_STAT_ST_BLOCKS.
1670
1671 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
1672
1673 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
1674 of scm_eval_x to allow module changes between the forms in the
1675 string. Set/restore module using scm_c_call_with_current_module.
1676
1677 * mkstemp.c: New file, slightly modified from libiberties
1678 mkstemps.c.
1679
1680 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
1681
1682 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
1683 filter-doc-snarfage.c: new files.
1684
1685 * Makefile.am: add stuff to [build,] use and distribute
1686 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
1687
1688 * guile-snarf.in: grok the new snarf output.
1689
1690 * snarf.h: make the output both texttools- and `read'-friendly.
1691
1692 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
1693 guile-snarf-docs. (should also deprecate, I guess. maybe not).
1694
1695 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
1696
1697 * print.c (scm_simple_format): Support "~~" and "~%". Signal
1698 error for unsupported format controls and for superflous
1699 arguments. Thanks to Daniel Skarda!
1700
1701 * print.h, print.c (scm_print_symbol_name): Factored out of
1702 scm_iprin1.
1703 (scm_iprin1): Call it.
1704
1705 * keywords.c (keyword_print): Use scm_print_symbol_name so that
1706 weird names are printed correctly.
1707
1708 * print.c (scm_print_symbol_name): Symbols whose name starts with
1709 `#' or `:' or ends with `:' are considered weird.
1710
1711 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1712
1713 * numbers.c (scm_difference, scm_divide): Clarified comments for -
1714 and /.
1715
1716 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1717
1718 * debug.h: Removed prototype for scm_eval_string.
1719
1720 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1721
1722 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
1723 (make-string 2000 #\!))' in an older version).
1724
1725 Change strncpy to memcpy to allow embedded NUL characters in
1726 symbol prefix.
1727
1728 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
1729
1730 * hooks.c (scm_create_hook): deprecated.
1731 (make_hook): deleted.
1732 (scm_make_hook): all the hook creation code is now here.
1733
1734 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
1735 a hook, make it permanent, and do a `scm_c_define' on it.
1736
1737 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
1738
1739 * socket.c (s_scm_inet_pton): fix docstring quoting.
1740 (s_scm_inet_ntop): ditto.
1741
1742 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
1743
1744 * hashtab.c (scm_internal_hash_fold): fix argument position in
1745 SCM_ASSERT.
1746
1747 * environments.c (s_scm_import_environment_set_imports_x): fix
1748 argument position in SCM_ASSERT.
1749
1750 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
1751 (s_scm_make_iloc): ditto.
1752
1753 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1754
1755 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
1756
1757 * eval.c (promise_print): Read the promise's value as an object.
1758
1759 (SCM_CEVAL): Don't perform side-effecting operations in macro
1760 parameters.
1761
1762 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
1763 conditional expression.
1764
1765 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
1766 initializer.
1767
1768 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
1769 text, removed redundant computation of effective_length and fixed
1770 the overflow check.
1771
1772 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
1773 values.
1774
1775 (wrap_init): Don't use SCM_C[AD]R for non pairs.
1776
1777 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
1778
1779 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
1780 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
1781
1782 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
1783
1784 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
1785 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
1786 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
1787 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
1788
1789 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
1790
1791 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
1792
1793 * ramap.c (ramap_rp): Removed bogus `;´.
1794
1795 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
1796 problem.
1797
1798 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
1799 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
1800 Read SCM objects rather than scm_bits_t values.
1801
1802 * tags.h (SCM_VOIDP_TEST): Removed.
1803
1804 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
1805 value of 2 now corresponds to the former 1, the current 1
1806 corresponds to the former situation that SCM_VOIDP_TEST was
1807 defined.
1808
1809 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
1810 If this appears to be not ANSI compliant, we will change it to
1811 typedef struct scm_unused_struct { } * SCM;
1812 Thanks to Han-Wen Nienhuys for the suggestion.
1813
1814 * unif.c (scm_array_set_x): Fix typing problem, and use
1815 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
1816 dealing with uniform vectors.
1817
1818 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
1819
1820 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
1821 (scm_igc): mark from them, too (precisely, not conservatively!).
1822
1823 * root.h (scm_gc_registered_roots): new object in
1824 scm_sys_protects.
1825
1826 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
1827 `scm_protect_object'. shouldn't call it at all, though, it seems.
1828
1829 * gc.c (scm_[un]protect_object): deprecated.
1830 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
1831 (scm_gc_[un]register_root[s]): new.
1832
1833 * gc.h: add prototypes for scm_gc_[un]protect_object,
1834 scm_gc_[un]register_root[s].
1835
1836 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
1837
1838 revert the controversial part of the 2001-05-24 changes.
1839
1840 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
1841
1842 * modules.c (scm_env_module): Exported to Scheme.
1843
1844 * eval.c (scm_debug_opts): New option `show-file-name'.
1845
1846 * debug.h (SCM_SHOW_FILE_NAME): New.
1847
1848 * backtrace.c: Include "libguile/filesys.h".
1849 (sym_base, display_backtrace_get_file_line,
1850 display_backtrace_file, display_backtrace_file_and_line): New.
1851 (display_frame): Call display_backtrace_file_and_line if that is
1852 requested.
1853 (display_backtrace_body): Call scm_display_backtrace_file if
1854 requested.
1855
1856 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
1857 Prototypes removed since there's no definition for these
1858 functions.
1859
1860 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1861
1862 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
1863 Changed use of scm_array->scm_array_t and
1864 scm_array_dim->scm_array_dim_t to enable build with
1865 --disable-deprecated.
1866
1867 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
1868
1869 The purpose of this set of changes is to regularize Guile's usage
1870 of ANSI C integral types, with the following ideas in mind:
1871
1872 - SCM does not nesessarily have to be long.
1873 - long is not nesessarily enough to store pointers.
1874 - long is not nesessarily the same size as int.
1875
1876 The changes are incomplete and possibly buggy. Please test on
1877 something exotic.
1878
1879 * validate.h
1880 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
1881 new macros.
1882
1883 * unif.h: type renaming:
1884 scm_array -> scm_array_t
1885 scm_array_dim -> scm_array_dim_t
1886 the old names are deprecated, all in-Guile uses changed.
1887
1888 * tags.h (scm_ubits_t): new typedef, representing unsigned
1889 scm_bits_t.
1890
1891 * stacks.h: type renaming:
1892 scm_info_frame -> scm_info_frame_t
1893 scm_stack -> scm_stack_t
1894 the old names are deprecated, all in-Guile uses changed.
1895
1896 * srcprop.h: type renaming:
1897 scm_srcprops -> scm_srcprops_t
1898 scm_srcprops_chunk -> scm_srcprops_chunk_t
1899 the old names are deprecated, all in-Guile uses changed.
1900
1901 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
1902 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
1903 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
1904 vectors.c, vports.c, weaks.c:
1905 various int/size_t -> size_t/scm_bits_t changes.
1906
1907 * random.h: type renaming:
1908 scm_rstate -> scm_rstate_t
1909 scm_rng -> scm_rng_t
1910 scm_i_rstate -> scm_i_rstate_t
1911 the old names are deprecated, all in-Guile uses changed.
1912
1913 * procs.h: type renaming:
1914 scm_subr_entry -> scm_subr_entry_t
1915 the old name is deprecated, all in-Guile uses changed.
1916
1917 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
1918 type renaming:
1919 scm_option -> scm_option_t
1920 the old name is deprecated, all in-Guile uses changed.
1921
1922 * objects.c: various long -> scm_bits_t changes.
1923 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
1924
1925 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
1926 SCM_I_FIXNUM_BIT.
1927
1928 * num2integral.i.c: new file, multiply included by numbers.c, used
1929 to "templatize" the various integral <-> num conversion routines.
1930
1931 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
1932 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
1933 deprecated.
1934 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
1935 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
1936 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
1937 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
1938 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
1939 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
1940 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
1941 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
1942 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
1943 scm_num2size): new functions.
1944
1945 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
1946
1947 * load.c: change int -> size_t in various places (where the
1948 variable is used to store a string length).
1949 (search-path): call scm_done_free, not scm_done_malloc.
1950
1951 * list.c (scm_ilength): return a scm_bits_t, not long.
1952 some other {int,long} -> scm_bits_t changes.
1953
1954 * hashtab.c: various [u]int -> scm_bits_t changes.
1955 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
1956 (scm_ihashx): n: uint -> scm_bits_t
1957 use scm_bits2num instead of scm_ulong2num.
1958
1959 * gsubr.c: various int -> scm_bits_t changes.
1960
1961 * goops.[hc]: various {int,long} -> scm_bits_t changes.
1962
1963 * gh_data.c (gh_num2int): no loss of precision any more.
1964
1965 * gh.h (gh_str2scm): len: int -> size_t
1966 (gh_{get,set}_substr): start: int -> scm_bits_t,
1967 len: int -> size_t
1968 (gh_<num>2scm): n: int -> scm_bits_t
1969 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
1970 (gh_length): return scm_bits_t, not unsigned long.
1971
1972 * gc.[hc]: various small changes relating to many things stopping
1973 being long and starting being scm_[u]bits_t instead.
1974 scm_mallocated should no longer wrap around.
1975
1976 * fports.h: type renaming:
1977 scm_fport -> scm_fport_t
1978 the old name is deprecated, all in-Guile uses changed.
1979
1980 * fports.c (fport_fill_input): count: int -> scm_bits_t
1981 (fport_flush): init_size, remaining, count: int -> scm_bits_t
1982
1983 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
1984 those prototypes, as the functions they prototype don't exist.
1985
1986 * fports.c (default_buffer_size): int -> size_t
1987 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
1988 default_size: int -> size_t
1989 (scm_setvbuf): csize: int -> scm_bits_t
1990
1991 * fluids.c (n_fluids): int -> scm_bits_t
1992 (grow_fluids): old_length, i: int -> scm_bits_t
1993 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
1994 scm_bits_t
1995 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
1996
1997 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
1998 the new and shiny SCM_NUM2INT.
1999
2000 * extensions.c: extension -> extension_t (and made a typedef).
2001
2002 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
2003 there are no nasty surprises if/when the various deeply magic tag
2004 bits move somewhere else.
2005
2006 * eval.c: changed the locals used to store results of SCM_IFRAME,
2007 scm_ilength and such to be of type scm_bits_t (and not int/long).
2008 (iqq): depth, edepth: int -> scm_bits_t
2009 (scm_eval_stack): int -> scm_bits_t
2010 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
2011 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
2012 i: int -> scm_bits_t
2013
2014 * environments.c: changed the many calls to scm_ulong2num to
2015 scm_ubits2num.
2016 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
2017
2018 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
2019
2020 * debug.h: type renaming:
2021 scm_debug_info -> scm_debug_info_t
2022 scm_debug_frame -> scm_debug_frame_t
2023 the old names are deprecated, all in-Guile uses changed.
2024 (scm_debug_eframe_size): int -> scm_bits_t
2025
2026 * debug.c (scm_init_debug): use scm_c_define instead of the
2027 deprecated scm_define.
2028
2029 * continuations.h: type renaming:
2030 scm_contregs -> scm_contregs_t
2031 the old name is deprecated, all in-Guile uses changed.
2032 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
2033 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
2034
2035 * continuations.c (scm_make_continuation): change the type of
2036 stack_size from long to scm_bits_t.
2037
2038 * ports.h: type renaming:
2039 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
2040 scm_port -> scm_port_t
2041 scm_ptob_descriptor -> scm_ptob_descriptor_t
2042 the old names are deprecated, all in-Guile uses changed.
2043 (scm_port_t.entry): int -> scm_bits_t.
2044 (scm_port_t.line_number): int -> long.
2045 (scm_port_t.putback_buf_size): int -> size_t.
2046
2047 * __scm.h (long_long, ulong_long): deprecated (they pollute the
2048 global namespace and have little value beside that).
2049 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
2050 SCM handle).
2051 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
2052 exist (for size_t & ptrdiff_t).
2053 (scm_sizet): deprecated.
2054
2055 * Makefile.am (noinst_HEADERS): add num2integral.i.c
2056
2057 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
2058
2059 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
2060 SCM_VARIABLE_INIT since that it what it used to be.
2061
2062 * deprecation.c (scm_include_deprecated_features): Make docstring
2063 ANSIsh. Thanks to Matthias Köppe!
2064
2065 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
2066
2067 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
2068 needed for weak-key hashtables.
2069
2070 * procs.c (scm_make_subr_with_generic): Add missing last argument
2071 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
2072
2073 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
2074 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
2075
2076 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
2077
2078 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
2079
2080 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
2081 `duplicate_string'. Do not use an indirect cell, store symbol
2082 directly in collision list of hash table.
2083 (duplicate_string): Removed.
2084
2085 * init.c (scm_init_guile_1): Call scm_init_extensions.
2086
2087 * Makefile.am: Add "extensions.c" and related files in all the
2088 right places.
2089
2090 * extensions.h, extension.c: New files.
2091
2092 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
2093
2094 * modules.h (scm_system_module_env_p): Move out of deprecated
2095 section.
2096
2097 * rw.h (scm_init_rw): Added prototype.
2098
2099 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
2100 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
2101 New functions. They replace scm_make_gsubr and
2102 scm_make_gsubr_with_generic. The `make' variants only create the
2103 gsubr object, while the `define' variants also put it into the
2104 current module. Changed all callers.
2105 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
2106
2107 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
2108 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
2109 functions. They replace scm_make_subr, scm_make_subr_opt and
2110 scm_make_subr_with_generic. The `make' variants only create the
2111 subr object, while the `define' variants also put it into the
2112 current module. Changed all callers.
2113 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
2114 Deprecated.
2115
2116 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
2117 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
2118 the comments above.
2119
2120 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
2121
2122 * throw.c (scm_lazy_catch): Slight docstring clarification.
2123
2124 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
2125
2126 * throw.c: Lazy-catch handlers are no longer allowed to return.
2127 Fixed comments throughout.
2128 (scm_ithrow): Signal an error when a lazy-catch handler returns.
2129 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
2130 recognized as such.
2131
2132 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
2133 refered to s_scm_minor_version previously.
2134
2135 * modules.h, modules.c: Moved around a lot of code so that
2136 deprecated features appear at the bottom.
2137 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
2138 module_prefix, make_modules_in_var, beautify_user_module_x_var,
2139 scm_the_root_module, scm_make_module, scm_ensure_user_module,
2140 scm_load_scheme_module): Deprecated.
2141 (scm_system_module_env_p): Return SCM_BOOL_T directly for
2142 environments corresponding to the root module.
2143 (convert_module_name, scm_c_resolve_module,
2144 scm_c_call_with_current_module, scm_c_define_module,
2145 scm_c_use_module, scm_c_export): New.
2146 (the_root_module): New static variant of scm_the_root_module. Use
2147 it everywhere instead of scm_the_root_module.
2148
2149 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
2150 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
2151 (scm_c_with_fluid): New.
2152 (scm_with_fluids): Use scm_c_with_fluids instead of
2153 scm_internal_with_fluids.
2154
2155 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
2156 `scm_init_goops'. Do not explicitly create/switch modules.
2157 Return SCM_UNSPECIFIED.
2158 (scm_init_goops): Only register `%init-goops-builtins' procedure.
2159 (scm_load_goops): Use scm_c_resolve_module instead of
2160 scm_resolve_module.
2161
2162 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
2163 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
2164 `scm_init_rw' prior to loading the startup files.
2165
2166 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
2167 scm_init_rdelim. Do not explicitly create/switch modules.
2168 Return SCM_UNSPECIFIED.
2169 (scm_init_rdelim): Only register `%init-rdelim-builtins'
2170 procedure.
2171
2172 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
2173 explicitly create/switch modules. Return SCM_UNSPECIFIED.
2174 (scm_init_rw): Only register `%init-rw-builtins' procedure.
2175
2176 * script.c (scm_shell): Evaluate the compiled switches in the
2177 current module, not in the root module.
2178
2179 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
2180
2181 * fluids.c (scm_c_with_fluids): Rename from
2182 scm_internal_with_fluids.
2183 (scm_internal_with_fluids): Deprecated.
2184 (scm_c_with_fluid): New.
2185
2186 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2187
2188 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
2189
2190 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
2191 accessed with SCM_C[AD]R.
2192
2193 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
2194
2195 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
2196
2197 * version.c (s_scm_major_version): doc fixes.
2198 (s_scm_minor_version): doc fixes.
2199 (s_scm_minor_version): new function.
2200
2201 * version.h (scm_init_version): new function.
2202
2203 * versiondat.h.in: add GUILE_MICRO_VERSION.
2204
2205 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2206
2207 * deprecation.c (scm_init_deprecation): Renamed
2208 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
2209
2210 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
2211
2212 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
2213 dependent on cpp_cnvt.awk
2214
2215 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2216
2217 * script.c (scm_compile_shell_switches): New command line option
2218 `--use-srfi' for loading a list of SRFIs on startup.
2219 (scm_shell_usage): Added `--use-srfi' to help message.
2220
2221 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
2222
2223 Merged from mvo-vcell-cleanup-1-branch.
2224
2225 The concept of vcells has been removed from Guile. With it,
2226 explicit obarrays and associated operations are gone. Use
2227 hashtables instead of obarrays.
2228
2229 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
2230 result as variable instead of vcell. Glocs no longer point to a
2231 vcell but to a variable. Use scm_c_define instead of
2232 scm_sysintern and treat the result as a variable (which it is),
2233 not a vcell.
2234
2235 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
2236 SCM_DEFVARIABLEP): Deprecated.
2237 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
2238 (variable_print): Do not print name of variable.
2239 (variable_equalp): Compare values, not vcells.
2240 (anonymous_variable_sym): Removed.
2241 (make_vcell_variable): Removed.
2242 (make_variable): New, as replacement.
2243 (scm_make_variable, scm_make_undefined_variable): Do not take name
2244 hint parameter.
2245 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
2246 error in that case.
2247 (scm_builtin_variable): Deprecated.
2248
2249 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
2250 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
2251 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
2252 scm_sysintern, scm_sysintern0, scm_symbol_value0,
2253 scm_string_to_obarray_symbol, scm_intern_symbol,
2254 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
2255 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
2256 Deprecated and moved to "symbols-deprecated.c".
2257 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
2258 (scm_init_symbols): Call scm_init_symbols_deprecated.
2259 * symbols-deprecated.c: New file.
2260 * Makefile.am: Added symbols-deprecated.c and related files in all
2261 the right places.
2262
2263 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
2264 SCM_GLOBAL_VCELL_INIT): Deprecated.
2265 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
2266 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
2267
2268 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
2269 SCM_GLOC_SYM.
2270
2271 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
2272 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
2273 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
2274 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
2275 Changed according to the `throughout' comments.
2276
2277 * modules.h, modules.c (scm_module_system_booted_p): Changed type
2278 to `int'.
2279 (scm_module_type): Removed.
2280 (the_root_module): Renamed to the_root_module_var. Now points to
2281 a variable instead of a vcell. Updated all uses.
2282 (scm_the_root_module): Return SCM_BOOL_F when module systems
2283 hasn't been booted yet.
2284 (SCM_VALIDATE_STRUCT_TYPE): Removed.
2285 (scm_post_boot_init_modules): Made static.
2286 (scm_set_current_module): Call scm_post_boot_init_modules on first
2287 call.
2288 (make_modules_in, beautify_user_module_x, resolve_module,
2289 try_module_autoload, module_make_local_var_x): Tacked on "_var"
2290 suffix. Now point to variables instead of vcells. Updated all
2291 uses.
2292 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
2293 and return SCM_BOOL_F in that case.
2294 (scm_module_transformer): Likewise.
2295 (sym_module, scm_lookup_closure_module, scm_env_module): New.
2296 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
2297 (scm_eval_closure_lookup): Do not allow new definitions when
2298 `interface' flag is set.
2299 (scm_standard_interface_eval_closure): New.
2300 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
2301 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
2302 scm_c_lookup, scm_c_module_define, scm_c_define,
2303 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
2304 scm_modules_prehistory): New.
2305 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
2306 instead of scm_intern0.
2307
2308 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
2309 symbol.
2310
2311 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
2312 hashtable operations to maintain the keywords, not obarray ones.
2313
2314 * init.c (scm_load_startup_files): Do not call
2315 scm_post_boot_init_modules. This is done by
2316 scm_set_current_module now.
2317 (scm_init_guile_1): Call scm_modules_prehistory. Call
2318 scm_init_variable early on.
2319
2320 * goops.c (s_scm_sys_goops_loaded): Get
2321 var_compute_applicable_methods from scm_sym2var, not from a direct
2322 invocation of scm_goops_lookup_closure.
2323
2324 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
2325
2326 * gc.c: Added simple debugging hack to mark phase of GC: When
2327 activated, do not tail-call scm_gc_mark. This gives nice
2328 backtraces.
2329 (scm_unhash_name): Removed.
2330
2331 * feature.c (features): Renamed to features_var. Now points to a
2332 variable instead of a vcell. Updated all uses.
2333
2334 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
2335 `scm_current_module_lookup_closure' which will do the right thing
2336 when the module system hasn't been booted yet.
2337 (SCM_GLOC_SYM): Removed.
2338 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
2339 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
2340
2341 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
2342 instead of with vcells. Do not overwrite `var' with the result of
2343 the lookup, use the new `real_var' instead. Remove `var2' in
2344 exchange (which was only used with threads).
2345 (sym_three_question_marks): New.
2346 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
2347 `SCM_GLOC_SYM'.
2348 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
2349 (scm_m_atfop): Expect the function definition to be a variable
2350 instead of a vcell.
2351 (scm_macroexp): Do not use `unmemocar', explicitely remember the
2352 symbol instead.
2353 (scm_unmemocopy): Removed thoughts about anti-macro interface.
2354 (scm_eval_args): Use more explicit code in the gloc branch of the
2355 atrocious struct ambiguity test. The optimizer will sort this
2356 out.
2357 (scm_deval_args): Likewise.
2358 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
2359 remember the symbol instead. Added some comments where
2360 scm_tc3_cons_gloc really exclusively refers to structs.
2361 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
2362 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
2363 of scm_sysintern in general.
2364
2365 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
2366 explicit magic.
2367
2368 * debug.c (s_scm_make_gloc): Only allow proper variables, no
2369 pairs. Put the variable directly in the gloc.
2370 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
2371 (scm_init_debug): Use scm_c_define instead scm_sysintern.
2372
2373 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
2374
2375 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
2376 scm_the_last_stack_fluid_var. It now points to a variable instead
2377 of a vcell. Updated all uses.
2378 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
2379 instead of a vcell. Updated all uses.
2380
2381 * _scm.h: Include "variables.h" and "modules.h" since almost
2382 everybody needs them now.
2383
2384 * root.h (scm_symhash, scm_symhash_vars): Removed.
2385 * gc.c (scm_init_storage): Do not initialize them.
2386
2387 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2388
2389 * eval.c (scm_init_eval): Initialize scm_undefineds and
2390 scm_listofnull.
2391
2392 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
2393 like the SCM_NEWCELL macro counterparts.
2394
2395 (scm_init_storage, scm_init_gc): Moved initialization of
2396 scm_tc16_allocated from scm_init_gc to scm_init_storage.
2397
2398 (scm_init_storage): Moved initialization of scm_undefineds and
2399 scm_listofnull to eval.c, initializion of scm_nullstr to
2400 strings.c, initializion of scm_nullvect to vectors.c.
2401
2402 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
2403 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
2404
2405 * init.c (scm_init_guile_1): Reordered some initializations and
2406 added dependcy information comments.
2407
2408 * load.c (scm_init_load): Use scm_nullstr.
2409
2410 * strings.c (scm_init_strings): Initialize scm_nullstr.
2411
2412 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
2413
2414 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
2415
2416 * values.c (print_values): Print as a unreadable object, not as
2417 multiple lines. Thanks to Matthias Köppe!
2418
2419 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2420
2421 * deprecation.c: Fixed copyright date.
2422
2423 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
2424 DEPRECATION_H to SCM_DEPRECATION_H.
2425
2426 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
2427
2428 * guile-doc-snarf.in: Update copyright.
2429 Fix relative path bug. Thanks to Sergey Poznyakoff.
2430
2431 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
2432
2433 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
2434 accept open ports. Thanks to Quetzalcoatl Bradley!
2435
2436 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2437
2438 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
2439 has 779 primitives on startup.
2440
2441 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
2442
2443 * eval.c (scm_i_eval): Copy expression before passing it to
2444 SCM_XEVAL. The copy operation was removed unintendedly during my
2445 change on 2001-03-25.
2446
2447 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
2448
2449 from Matthias Köppe (thanks!):
2450
2451 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
2452 portable.
2453
2454 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
2455 docstring.
2456
2457 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2458
2459 * gc.c (scm_init_gc): Added FIXME comment.
2460
2461 * hooks.c: Since hooks don't have a name any more, it is not
2462 necessary to include objprop.h.
2463
2464 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
2465
2466 (symbol_name, scm_make_hook_with_name): Removed.
2467
2468 (scm_create_hook): Don't set the hook's name property.
2469
2470 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
2471
2472 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
2473
2474 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
2475
2476 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
2477 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
2478 FLOBUFLEN and define it unconditionally.
2479
2480 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
2481
2482 * gh_data.c (gh_lookup): Call gh_module_lookup with
2483 `scm_current_module ()', not `#f'.
2484 (gh_module_lookup): Expect a module instead of an obarray as first
2485 argument and do lookup in that module.
2486
2487 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
2488 arrays. The length of array is already determined differently and
2489 scm_uniform_vector_length does not work on arrays.
2490
2491 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
2492
2493 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
2494 as well. "SCM (*)(...)" does not work on RedHat 7.1.
2495
2496 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
2497 they are not used. Changed `wrong type' error into `wrong num
2498 args' error. Changed all callers.
2499
2500 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
2501 arguments are supplied.
2502
2503 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
2504
2505 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
2506 describe `regexp/notbol' and `regexp/noteol' execution flags.
2507
2508 * strop.c (scm_substring_move_x): Doc fix; nfc.
2509
2510 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
2511
2512 * objects.c, objects.h (scm_valid_object_procedure_p): New.
2513 (scm_set_object_procedure_x): Use it to check argument. Fix
2514 docstring.
2515
2516 * evalext.c (scm_definedp): Fix docstring.
2517
2518 2001-05-05 Gary Houston <ghouston@arglist.com>
2519
2520 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
2521 support.
2522
2523 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
2524
2525 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
2526 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
2527 Change R4RS references to R5RS.
2528
2529 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
2530 docstring source are correctly reproduced in the output (ii)
2531 we don't anymore get occasional trailing quotes. Also reorganized
2532 and commented the code a little.
2533
2534 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
2535 fixes.
2536
2537 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2538
2539 * strop.c (scm_string_split): New procedure.
2540
2541 * strop.h (scm_string_split): Added prototype.
2542
2543 2001-05-04 Gary Houston <ghouston@arglist.com>
2544
2545 * socket.c: define uint32_t if netdb.h doesn't. thanks to
2546 Dale P. Smith.
2547
2548 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
2549
2550 * rw.c: Include "modules.h" and "strports.h".
2551
2552 * net_db.h (scm_gethost): Added prototype.
2553
2554 * deprecation.h, deprecation.c: New.
2555 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
2556 (DOT_X_FILES): Added "deprecation.x".
2557 (modinclude_HEADERS): Added "deprecation.h".
2558
2559 * init.c: Include "deprecation.h".
2560 (scm_init_guile_1): Call scm_init_deprecation.
2561
2562 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
2563
2564 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
2565 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
2566 New.
2567
2568 2001-04-29 Gary Houston <ghouston@arglist.com>
2569
2570 * rw.c: new file, implementing C part of module (ice-9 rw).
2571 (scm_read_string_x_partial): moved from ioext.c
2572 (scm_init_rw): new proc.
2573 * rw.h: new file.
2574 init.c: include rw.h and call scm_init_rw.
2575 Makefile.am: include rw.c and rw.h.
2576
2577 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
2578
2579 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
2580 know what's supposed to happen to it.
2581
2582 * list.h (scm_list_star): deprecation expired - removed.
2583
2584 * numbers.h (scm_dblproc): deprecation expired - removed.
2585 (SCM_UNEGFIXABLE): deprecation expired - removed.
2586 (SCM_FLOBUFLEN): deprecation expired - removed.
2587 (SCM_INEXP): deprecation expired - removed.
2588 (SCM_CPLXP): deprecation expired - removed.
2589 (SCM_REAL): deprecation expired - removed.
2590 (SCM_IMAG): deprecation expired - removed.
2591 (SCM_REALPART): deprecation expired - removed.
2592 (scm_makdbl): deprecation expired - removed.
2593 (SCM_SINGP): deprecation expired - removed.
2594 (SCM_NUM2DBL): deprecation expired - removed.
2595 (SCM_NO_BIGDIG): deprecation expired - removed.
2596
2597 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
2598 (scm_tc_dblr): deprecation expired - removed.
2599 (scm_tc_dblc): deprecation expired - removed.
2600 (scm_tc16_flo): deprecation expired - removed.
2601 (scm_tc_flo): deprecation expired - removed.
2602
2603 * tag.h (scm_tag): deprecation expired - removed.
2604
2605 * tag.c: (scm_tag): deprecation expired - removed.
2606
2607 * ioext.c: (scm_fseek): deprecation expired - removed.
2608
2609 * ioext.h (scm_fseek): deprecation expired - removed.
2610
2611 * gh_data.c (gh_int2scmb): deprecation expired - removed.
2612
2613 * gh.h (gh_int2scmb): deprecation expired - removed.
2614
2615 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
2616
2617 * stacks.c (scm_make_stack): Fix typo in docstring.
2618
2619 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
2620
2621 * error.c (scm_sysmissing): deprecation expired - removed.
2622
2623 * error.h (scm_sysmissing): deprecation expired - removed.
2624
2625 * gc.c
2626 (scm_init_gc): gc-thunk deprecation expired - removed.
2627 (scm_gc_vcell): deprecation expired - removed.
2628 (gc_async_thunk): scm_gc_vcell related code removed.
2629
2630 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
2631
2632 * strings.h
2633 (SCM_NSTRINGP): deprecation expired - removed.
2634 (SCM_NRWSTRINGP): deprecation expired - removed.
2635
2636 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
2637
2638 * chars.h
2639 (SCM_ICHRP): deprecation expired - removed.
2640 (SCM_ICHR): deprecation expired - removed.
2641 (SCM_MAKICHR): deprecation expired - removed.
2642
2643 * ports.h
2644 (SCM_INPORTP): deprecation expired - removed.
2645 (SCM_OUTPORTP): deprecation expired - removed.
2646
2647 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
2648
2649 * modules.c (scm_module_type): New.
2650 (scm_post_boot_init_modules): Initialize from Scheme value.
2651 (the_module, scm_current_module, scm_init_modules): the_module is
2652 now a C only fluid.
2653 (scm_current_module): Export to Scheme.
2654 (scm_set_current_module): Do not call out to Scheme, do all the
2655 work in C. Export procedure to Scheme. Only accept modules, `#f'
2656 is no longer valid as the current module. Only set
2657 scm_top_level_lookup_closure_var and scm_system_transformer when
2658 they are not deprecated.
2659 (scm_module_transformer, scm_current_module_transformer): New.
2660
2661 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
2662 scm_current_module_transformer, scm_module_transformer): New.
2663
2664 * gh_data.c: Removed FIXME comment about gh_lookup returning
2665 SCM_UNDEFINED. That's the right thing to do.
2666
2667 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
2668 into the conditionally compiled sections.
2669 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
2670 scm_current_module_transformer instead of scm_system_transformer.
2671 * init.c (start_stack): Move initialization of
2672 scm_system_transformer to the deprecated section.
2673
2674 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
2675
2676 * throw.c (scm_throw): Correct docstring.
2677
2678 2001-04-22 Gary Houston <ghouston@arglist.com>
2679
2680 * socket.c: attempted to improve the docstrings slightly.
2681
2682 * net_db.c: remove bogus "close" declaration.
2683 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
2684 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
2685 moved to socket.c.
2686 * net_db.h: declarations moved too.
2687
2688 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
2689 long.
2690 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
2691 (VALIDATE_INET6): new macro.
2692 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
2693 inet-pton and inet-ntop.
2694 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
2695 (scm_addr_vector): use ipv6_net_to_num.
2696
2697 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2698
2699 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
2700 smob number explicitly. Use SCM_TC2SMOBNUM instead.
2701
2702 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
2703 when compiled in debug mode.
2704
2705 (scm_gc_sweep): Only call smob's free function if it is defined.
2706
2707 * print.c (scm_iprin1): No need to check for validity of smob
2708 type or existence of print function.
2709
2710 * smob.[ch] (scm_smobs): Made into a fixed size global array.
2711 Resizing will not work well with preemptive threading.
2712
2713 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
2714
2715 (scm_make_smob_type): Extracted initialization of smob
2716 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
2717 of the critical section.
2718
2719 (scm_smob_prehistory): Initialize all smob descriptors. By
2720 default, don't assign a smob free function: Most smob types don't
2721 need one.
2722
2723 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
2724
2725 2001-04-21 Gary Houston <ghouston@arglist.com>
2726
2727 * socket.c (FLIP_NET_HOST_128): new macro.
2728 (scm_fill_sockaddr): use new macro.
2729 (scm_addr_vector): completed IPv6 address support. added const
2730 to the address parameter.
2731
2732 2001-04-20 Gary Houston <ghouston@arglist.com>
2733
2734 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
2735 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
2736 is defined.
2737 (scm_addr_vector): use a switch instead of multiple if statements.
2738 Add support for IPv6 (incomplete) .
2739 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
2740
2741 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2742
2743 * struct.c (scm_free_structs): Only pairs may be accessed with
2744 SCM_C[AD]R.
2745
2746 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2747
2748 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
2749
2750 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
2751 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
2752 parentheses in order to get the correct associativity.
2753
2754 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2755
2756 * unif.c (scm_array_to_list): Added missing handling of arrays of
2757 bytes. Thanks to Masao Uebayashi for the bug report.
2758
2759 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2760
2761 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
2762 consistently.
2763
2764 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2765
2766 * procs.h (SCM_CLOSURE_FORMALS): New macro.
2767
2768 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
2769 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
2770 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
2771 SCM_CLOSURE_FORMALS.
2772
2773 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
2774 (scm_i_procedure_arity): Prefer stronger predicates like
2775 SCM_NULLP or SCM_FALSEP over SCM_IMP.
2776
2777 * macros.c (macro_print): Extracted macro printing code from
2778 print.c and simplified it.
2779
2780 (scm_macro_type): Use SCM_MACRO_TYPE;
2781
2782 (scm_init_macros): Use macro_print for printing macros.
2783
2784 * print.c (scm_print_opts): Improved option documentation.
2785
2786 (scm_iprin1): Extracted printing of macros to macros.c.
2787 Simplified printing of ordinary closures.
2788
2789 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
2790 Martin Grabmueller for the bug report.
2791
2792 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2793
2794 This patch eliminates some further applications of SCM_C[AD]R to
2795 non pair cells.
2796
2797 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
2798 never been applied to real pairs.
2799
2800 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
2801
2802 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
2803
2804 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
2805 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
2806 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
2807
2808 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
2809 Added.
2810
2811 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
2812 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
2813
2814 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
2815 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
2816 SCM_SET{AND,OR}_CAR.
2817
2818 2001-04-17 Gary Houston <ghouston@arglist.com>
2819
2820 * some initial support for IPv6:
2821
2822 * socket.c (scm_fill_sockaddr): improve the argument validation.
2823 don't allocate memory until all args are checked. instead of
2824 unconditional memset of soka, try setting sin_len to 0 if
2825 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
2826 (scm_socket, scm_connect): extend docstrings for IPv6.
2827 (scm_init_socket): intern AF_INET6 and PF_INET6.
2828
2829 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
2830
2831 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
2832 matches SCM_DEFER_INTS at the beginning of the function.
2833
2834 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
2835
2836 * gc.c (scm_igc): Unconditionally call
2837 SCM_CRITICAL_SECTION_START/END.
2838
2839 * fluids.c (next_fluid_num): Unconditionally call
2840 SCM_CRITICAL_SECTION_START/END.
2841 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
2842
2843 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
2844 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
2845 Removed.
2846
2847 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
2848 Defined as nothing for the case of !defined(USE_THREADS).
2849 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
2850 Removed.
2851 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
2852 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
2853 LINE.
2854 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
2855 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
2856 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
2857 SCM_CRITICAL_SECTION_START/END.
2858 (SCM_REALLOW_INTS: Bug fix. Don't call
2859 SCM_THREAD_SWITCHING_CODE.
2860 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
2861 SCM_THREAD_SWITCHING_CODE directly.
2862 (SCM_ENTER_A_SECTION): Unconditionally use
2863 SCM_CRITICAL_SECTION_START/END. (was:
2864 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
2865
2866 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2867
2868 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
2869 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
2870 allowed to explicitly set this macro via the CFLAGS variable
2871 during make.
2872
2873 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
2874 (SCM_THREAD_CRITICAL_SECTION_START,
2875 SCM_THREAD_CRITICAL_SECTION_END): Renamed
2876 SCM_THREAD_CRITICAL_SECTION_START/END to
2877 SCM_CRITICAL_SECTION_START/END.
2878
2879 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
2880
2881 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
2882 instead of bzero.
2883
2884 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
2885 (MISSING_BZERO_DECL): Remove the declaration.
2886
2887 Thanks to NIIBE Yutaka.
2888
2889 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2890
2891 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
2892 goops module should be registered in order to work for an
2893 application which uses libguile statically linked.)
2894
2895 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2896
2897 * numbers.[ch] (scm_num2long, scm_num2long_long,
2898 scm_num2ulong_long, scm_num2ulong): Argument position is an
2899 unsigned integer.
2900
2901 * environments.c (eval_environment_folder,
2902 import_environment_folder), gh_data.c (gh_scm2longs,
2903 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
2904 for integers and pointers, respectively.
2905
2906 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
2907 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
2908 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
2909 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
2910
2911 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
2912 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
2913 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
2914 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
2915 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
2916 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
2917
2918 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
2919
2920 * strings.c (scm_read_only_string_p): Update docstring to reflect
2921 current (non-)usage of "read only" strings.
2922 (scm_make_shared_substring): Clarify docstring by changing
2923 "semantics" to "arguments".
2924
2925 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2926
2927 * hooks.c (scm_make_hook, scm_make_hook_with_name),
2928 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
2929 improvements.
2930
2931 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2932
2933 The following changes make the documentation more consistent.
2934
2935 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
2936 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
2937 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
2938 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
2939 ... @end lisp.
2940
2941 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
2942 (scm_array_dimensions, scm_make_shared_array),
2943 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
2944 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
2945 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
2946 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
2947 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
2948 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
2949 macros.c (scm_makmmacro), list.c (scm_append), environments.c
2950 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
2951 @example ... @end example to @lisp ... @end lisp.
2952
2953 * weaks.c (scm_weak_vector): Corrected docstring.
2954
2955 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
2956 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
2957 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
2958 (scm_hashx_set_x, scm_hashx_get_handle),
2959 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
2960 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
2961 vectors.c (scm_vector_fill_x), strings.c
2962 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
2963 objprop.c (scm_set_object_properties_x):
2964 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
2965 strports.c (scm_call_with_input_string), ports.c
2966 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
2967 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
2968 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
2969 (scm_make_weak_vector,scm_weak_vector_p),
2970 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
2971 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
2972 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
2973 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
2974 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
2975 Made parameter names match documentation by renaming parameters
2976 and/or fixing docstrings.
2977
2978 * numbers.c (scm_ash): Corrected Texinfo markup.
2979
2980 * strop.c (scm_string_index, scm_string_rindex),
2981 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
2982
2983 * vports.c (scm_make_soft_port), unif.c
2984 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
2985 (scm_dimensions_to_uniform_array, scm_transpose_array),
2986 (scm_array_in_bounds_p, scm_uniform_vector_ref),
2987 (scm_bit_count, scm_bit_position, scm_bit_count_star),
2988 (scm_array_to_list, scm_list_to_uniform_array),
2989 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
2990 (scm_open_input_string, scm_open_output_string),
2991 (scm_get_output_string), strop.c (scm_string_copy),
2992 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
2993 (scm_get_internal_real_time, scm_times),
2994 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
2995 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
2996 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
2997 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
2998 simpos.c (scm_system), random.c (scm_random_uniform),
2999 (scm_random_normal, scm_random_exp), ramap.c
3000 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
3001 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
3002 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
3003 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
3004 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
3005 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
3006 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
3007 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
3008 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
3009 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
3010 (scm_logand, scm_logior, scm_logxor, scm_lognot),
3011 (scm_integer_expt, scm_bit_extract, scm_logcount),
3012 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
3013 net_db.c (scm_inet_netof, scm_lnaof), modules.c
3014 (scm_interaction_environment), macros.c (scm_makacro),
3015 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
3016 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
3017 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
3018 (scm_fluid_ref), filesys.c (scm_open_fdes),
3019 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
3020 Docstring correction: `Returns' -> `Return'
3021
3022 * gc.c (scm_set_debug_cell_accesses_x):
3023 (s_scm_gc_set_debug_check_freelist_x):
3024 * fluids.c (scm_fluid_p): Added texinfo markup.
3025
3026 * error.c (scm_strerror): Made docstring more precise.
3027
3028 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
3029 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
3030 (scm_symbol_p, scm_symbol_to_string), strorder.c
3031 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
3032 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
3033 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
3034 (scm_string_ci_geq_p), strop.c (scm_string_copy),
3035 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
3036
3037 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3038
3039 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
3040 mode, as suggested by Michael Livshin.
3041
3042 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
3043
3044 * backtrace.c (display_backtrace_body): since the `print_state'
3045 variable is not used (instead its data field is used directly as
3046 `pstate'), protect it from the hungry compiler optimizations.
3047 thanks to Bill Schottstaedt for the report.
3048
3049 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3050
3051 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
3052 It is only defined and used if guile is compiled with
3053 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
3054 let cells with a free_cell type tag be visible outside of the
3055 garbage collector when in debug mode.
3056
3057 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
3058
3059 (scm_assert_cell_valid): Use a local static variable to avoid
3060 recursion.
3061
3062 (MARK): Only check for rogue cell pointers in debug mode. Use
3063 scm_cellp for this purpose and place all checks for rogue pointers
3064 into that function. Further, since due to conservative scanning
3065 we may encounter free cells during marking, don't use the standard
3066 cell type accessor macro to determine the cell type.
3067
3068 (scm_cellp): Check if the cell pointer actually points into a
3069 card header.
3070
3071 (scm_init_gc): Initalize scm_tc16_allocated.
3072
3073 * gc.h (GCH): Renamed to SCM_GC_H.
3074
3075 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
3076 might be unnecessary, but I feel better this way :-)
3077
3078 (SCM_GC_CELL_TYPE): New macro.
3079
3080 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
3081 in guile, and it is unlikely that they will be applied to real
3082 pairs anyway.
3083
3084 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
3085
3086 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
3087 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
3088
3089 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
3090 make sure that in debug mode no free cell will ever be visible
3091 outside of the garbage collector.
3092
3093 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3094
3095 * async.c (scm_asyncs_pending): Don't use != to compare SCM
3096 values.
3097
3098 * async.c (scm_system_async), variable.c (scm_make_variable,
3099 scm_make_undefined_variable): Use scm_cons to create a pair.
3100
3101 * debug.c (scm_reverse_lookup): Perform proper type checking.
3102 Remove suspicious use of SCM_SLOPPY_CONSP.
3103
3104 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
3105 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
3106 the corresponding optimization.
3107
3108 * eval.c (iqq): Use proper type check.
3109
3110 (scm_m_expand_body): Remove redundant type checks.
3111
3112 (promise_print): Don't access promise cells as pairs.
3113
3114 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
3115 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
3116 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
3117 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
3118 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
3119
3120 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
3121 (scm_iprin1): Use new macro predicate and accessors.
3122
3123 * eval.h (scm_tc16_macro): Removed declaration. It is declared
3124 in macros.h.
3125
3126 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
3127 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
3128 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
3129 SCM_VARIABLE_H. Even the macros that are used to inhibit
3130 including a header file twice should be in the SCM_ namespace.
3131
3132 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
3133 properties.c (scm_primitive_property_ref,
3134 scm_primitive_property_del_x): Prefer stronger predicates like
3135 SCM_NULLP or SCM_FALSEP over SCM_IMP.
3136
3137 * gc.c (MARK): Use proper macros to access procedure-with-setter
3138 cell elements and closure cell elements.
3139
3140 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
3141 access free cells as pairs.
3142
3143 (scm_unprotect_object): scm_hashq_get_handle returns #f if
3144 no hashtab entry is found.
3145
3146 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
3147 SCM_CLR_PORT_OPEN_FLAG.
3148
3149 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
3150 use SCM_SET_C[AD]R for uninitialized cells.
3151
3152 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
3153 If the hashtable has no slots, return #f instead of '(). This
3154 unifies the return value with most assoc-functions.
3155
3156 (scm_hash_fn_ref): Use proper type check.
3157
3158 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
3159 Removed references to non-existing functions from documentation.
3160
3161 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
3162 access keyword cell elements.
3163
3164 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
3165 macros.
3166
3167 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
3168
3169 * print.c (scm_iprlist): Added comment. Improved loop
3170 conditions.
3171
3172 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
3173 pairs.
3174
3175 * smob.c (scm_markcdr): Don't access smob cells as pairs.
3176
3177 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
3178
3179 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
3180 cells as pairs.
3181
3182 * variable.c (variable_print, variable_equalp, scm_variable_ref,
3183 scm_variable_set_x): Use proper macros to access variable cell
3184 elements.
3185
3186 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
3187
3188 * variable.h (SCM_VARVCELL): Don't access variable cells as
3189 pairs.
3190
3191 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
3192 added FIXME comment, removed register specifier.
3193
3194 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
3195
3196 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
3197 * init.c (scm_init_guile_1): Don't init goopscore module.
3198
3199 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
3200
3201 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
3202
3203 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3204
3205 * strop.c (scm_string_to_list): Fixed docstring markup.
3206 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
3207 (scm_string_downcase, scm_string_capitalize_x),
3208 (scm_string_capitalize): Rewrote and corrected docstrings.
3209 (scm_string_ci_to_symbol): Made docstring more explicit.
3210
3211 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
3212
3213 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
3214 eval.c can use it.
3215 (scm_call_with_values): Removed.
3216 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
3217 so that it can be exported.
3218 (scm_call_with_values): Removed.
3219
3220 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
3221 * eval.c: Include "libguile/values.h"
3222 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
3223 New.
3224 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
3225 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
3226 New delcarations to support above change.
3227
3228 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
3229 errors with last change.
3230
3231 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
3232
3233 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
3234 scm_i_eval): Moved the application of the system transformer from
3235 scm_i_eval to scm_primitive_eval.
3236
3237 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
3238
3239 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
3240
3241 * strop.c (scm_string_index): Fix docstring line break
3242 regression.
3243
3244 * list.c (scm_cons_star): Fix docstring typo.
3245
3246 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3247
3248 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
3249 (big2str), ports.c (scm_drain_input), read.c (scm_read,
3250 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
3251 scm_make_string, scm_string_append), strports.c (st_resize_port,
3252 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
3253 scm_makstr with calls to scm_allocate_string.
3254
3255 * strings.[ch] (scm_allocate_string): New function.
3256
3257 * strings.[ch] (scm_makstr): Deprecated.
3258
3259 2001-03-18 Gary Houston <ghouston@arglist.com>
3260
3261 * posix.c (scm_tmpnam): check that return value from tmpnam is not
3262 NULL. rewrote the docstring.
3263 (scm_mkstemp): new procedure implementing "mkstemp!".
3264 * posix.h: declare scm_mkstemp.
3265
3266 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
3267 normally it would be found in netdb.h.
3268
3269 2001-03-17 Gary Houston <ghouston@arglist.com>
3270
3271 * sort.c (scm_sort): move sortvec variable to avoid a compiler
3272 warning when HAVE_ARRAYS is not defined. move len too.
3273
3274 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
3275 (EXTRA_DOT_X_FILES): let configure set the value.
3276 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
3277
3278 * gc.c (scm_must_malloc): changed the comment explaining when
3279 scm_must variants of malloc/free etc., should be used, based on
3280 explanation from Dirk Herrmann.
3281 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
3282 string with procedure name. use scm_must_malloc instead of malloc.
3283 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
3284 of malloc/free.
3285 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
3286 scm_ungetc): use scm_must variants of malloc/realloc/free.
3287 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
3288
3289 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3290
3291 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
3292 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
3293 scm_wrong_type_arg instead.
3294
3295 (SCM_WNA): Deprecated.
3296
3297 * error.[ch] (scm_wta): Deprecated.
3298
3299 * numbers.c (s_i_log): Minor comment fix.
3300
3301 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
3302 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
3303 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
3304 wrong-num-args or misc errors.
3305
3306 * unif.c (scm_make_shared_array, scm_transpose_array,
3307 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
3308 Validate the rest argument (note: this is only done when guile is
3309 built with SCM_DEBUG_REST_ARGUMENT=1)
3310
3311 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
3312 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
3313
3314 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
3315 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
3316
3317 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3318
3319 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
3320 instead of scm_wrong_num_args.
3321
3322 * coop-threads.c: Don't include libguile/strings.h. (Was only
3323 needed for former implementation of SCM_WRONG_NUM_ARGS.)
3324
3325 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
3326 wrong-num-args errors.
3327
3328 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3329
3330 * error.[ch] (scm_error_num_args_subr): New function.
3331
3332 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3333
3334 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
3335 (scm_length, scm_append, scm_reverse, scm_list_ref),
3336 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
3337 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
3338 (scm_delete1_x), gc.c (scm_map_free_list),
3339 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
3340 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
3341 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
3342 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
3343 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
3344 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
3345 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
3346
3347 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
3348 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
3349 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
3350 symbols.c (scm_symbol_interned_p), numbers.c
3351 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
3352 markup.
3353
3354 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
3355
3356 * snarf.h (SCM_CONST_LONG): Deprecated.
3357 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
3358
3359 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3360
3361 * numbers.c (scm_num2ulong): Check that a bignum is positive
3362 before looking at the magnitude. Correctly check for overflow
3363 during conversion.
3364 (scm_num2long_long): Likewise.
3365 (scm_num2ulong_long): New.
3366 (ULONG_LONG_MAX): Define if not already defined.
3367 * numbers.h: (scm_num2ulong_long): New prototype.
3368
3369 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3370
3371 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
3372
3373 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
3374 (SCM_OPOUTSTRPORTP): New predicate macros.
3375 (scm_open_input_string, scm_open_output_string),
3376 (scm_get_output_string): New prototypes.
3377
3378 * strports.c (scm_open_input_string, scm_open_output_string),
3379 (scm_get_output_string): New procedures (SRFI-6 compliant).
3380 Made scm_tc16_strport non-static.
3381
3382 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3383
3384 * macros.h (SCM_ASSYNT): Removed unused object argument from
3385 signature.
3386
3387 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
3388 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
3389 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
3390 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
3391 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
3392 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
3393 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
3394 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
3395 scm_m_atdispatch): Removed unused object argument from call to
3396 SCM_ASSYNT.
3397
3398 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3399
3400 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
3401 const int* to reflect that the input array of integers remains
3402 unchanged. Thanks to Brett Viren for the hint.
3403
3404 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3405
3406 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
3407 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
3408 in various places.
3409 (gh_scm2newstr, gh_symbol2newstr): Change call to
3410 scm_must_malloc() to malloc(), because user-free()able memory is
3411 allocated.
3412
3413 * gc.c: Added declaration of `scm_debug_check_freelist'.
3414
3415 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3416
3417 * ports.c (scm_port_mode): Changed `mode' array size to 4.
3418
3419 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
3420
3421 * strports.c (scm_object_to_string): New procedure.
3422 (scm_strprint_obj): Deprecated.
3423 * strports.h: Reflect the changes.
3424
3425 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3426
3427 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
3428
3429 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
3430 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
3431 SCM_ASSYNT to check for correct argument types. Either use some
3432 SCM_VALIDATE_* macro or an explicit test.
3433
3434 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
3435 misc-errors.
3436
3437 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
3438 instead of calling scm_wta.
3439
3440 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3441
3442 * load.c (scm_primitive_load, scm_primitive_load_path),
3443 (scm_sys_search_load_path): Corrected docstrings (file ->
3444 filename).
3445
3446 * eval.c (scm_force): Added texinfo markup to docstring.
3447 (scm_promise_p): Renamed parameter to `obj' to match docstring.
3448
3449 * debug-malloc.c: Reinserted #include <stdio.h>.
3450
3451 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
3452
3453 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
3454
3455 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
3456 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
3457 Use SCM_LISTn instead of scm_listify.
3458
3459 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3460
3461 * _scm.h: Removed #include <errno.h>.
3462
3463 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
3464 errno variable (can be a macro on some systems, for example when
3465 using linux libc with threads).
3466
3467 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
3468 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
3469 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
3470 #include <errno.h> in these 20 out of 100 files.
3471
3472 2001-03-10 Gary Houston <ghouston@arglist.com>
3473
3474 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
3475 not already defined.
3476
3477 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3478
3479 * coop.c: Inserted #include <stdio.h>.
3480
3481 * iselect.c: Reinserted #include <stdio.h>.
3482
3483 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
3484
3485 * posix.c: Replaced `#define' of __USE_XOPEN right before
3486 including unistd.h with a define of _GNU_SOURCE at the very top of
3487 the file.
3488
3489 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
3490
3491 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
3492 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
3493 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
3494 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
3495 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
3496 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
3497 print.c, procprop.c, procs.c, properties.c, ramap.c,
3498 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
3499 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
3500 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
3501 Remove #include <stdio.h>
3502 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
3503
3504 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
3505
3506 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3507
3508 * posix.c (scm_gethostname): Set initial name length to 256 for
3509 Solaris.
3510
3511 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3512
3513 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
3514 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
3515 (scm_sethostname, scm_gethostname): New prototypes.
3516
3517 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
3518 <sys/file.h>, if present.
3519 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
3520 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
3521 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
3522 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
3523 (scm_sethostname, scm_gethostname): New procedures.
3524
3525 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
3526
3527 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
3528 not optional (ii) "recommend" spelling correction.
3529
3530 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3531
3532 * ramap.c (racp): Removed optimization which caused array copying
3533 to fail if the two arrays shared storage. Re-inserted the IVDEP
3534 macros removed in the change of 2000-03-09. (Don't really have a
3535 complete grasp of what they are for, but they seem to be necessary
3536 on Crays. This needs testing!) Thanks to Miroslav Silovic.
3537
3538 * hash.c (scm_string_hash): Don't downcase characters.
3539
3540 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3541
3542 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
3543 size from 277 --> 1009.
3544
3545 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
3546 function.
3547
3548 * coop-threads.c: Fixed change of 2001-03-06.
3549
3550 * validate.h: Code formatting.
3551
3552 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
3553
3554 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
3555 (*.doc): Add dependency on guile-snarf.awk.in.
3556
3557 * guile-snarf.awk.in: Neglect spaces at the end of
3558 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
3559 middle of docstrings. (To avoid the problem with gcc-2.96.)
3560
3561 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
3562
3563 * coop-threads.c (scm_call_with_new_thread), load.c
3564 (scm_primitive_load, scm_sys_search_load_path), random.c
3565 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
3566 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
3567 (potentially) issue a scm-misc-error or wrong-num-args error
3568 message.
3569
3570 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
3571 about the expected type with the wrong-type-arg error message.
3572
3573 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
3574 a C level bug that can't be fixed from scheme anyway.
3575
3576 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3577
3578 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
3579 Duplicate bindings are OK in a let* since a let* is semantically
3580 equivalent to a nested set of let:s.
3581
3582 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3583
3584 * print.c (scm_print_options): Fixed texinfo in docstring.
3585
3586 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
3587 the underlying functions getservent, getprotoent or getnetent
3588 return NULL instead of signalling an error.
3589
3590 2001-03-04 Gary Houston <ghouston@arglist.com>
3591
3592 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
3593 taking an unexpectedly large filename for an AF_UNIX socket from
3594 bind/connect/sendto (thanks to Martin Grabmueller).
3595
3596 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
3597 former and adjusted the latter.
3598 (scm_socket, scm_socketpair): cosmetic changes.
3599 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
3600 size_t as socklen_t substitute. don't restrict args/return values
3601 to INUM: allow full range of int or size_t.
3602 (scm_fill_sockaddr): check arguments before allocating memory, to
3603 avoid leakage. use malloc, not scm_must_malloc.
3604 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
3605 substitute. free the sockaddr structure before throwing an error.
3606 (scm_init_add_buffer): procedure removed, together with its static
3607 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
3608 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
3609 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
3610 scm_sendto): use a local buffer instead of scm_addr_buffer.
3611 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
3612 not size_t.
3613 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
3614 call to detect whether recvfrom could be bothered to set the address.
3615 (scm_init_socket): don't call scm_init_addr_buffer.
3616
3617 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3618
3619 * debug.c (scm_procedure_source, scm_procedure_environment),
3620 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
3621 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
3622 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
3623 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
3624 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
3625 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
3626 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
3627 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
3628 scm_array_to_list, scm_array_prototype), validate.h
3629 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
3630 scm_misc_error or scm_wrong_type_arg instead.
3631
3632 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
3633
3634 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3635
3636 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
3637 (scm_sys_tag_body): Added.
3638
3639 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3640
3641 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
3642 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
3643 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
3644 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
3645 options.c (scm_options), ports.c (scm_remove_from_port_table),
3646 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
3647 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
3648 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
3649 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
3650 instead.
3651
3652 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3653
3654 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
3655
3656 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
3657
3658 * eval.c (scm_s_duplicate_bindings): New error message.
3659 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
3660
3661 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
3662
3663 * eval.h (SCM_EVALIM2): New macro. Use it when a
3664 immediate, literal constant should be evaluated.
3665 * eval.c (scm_s_duplicate_formals): New error message string.
3666 (scm_c_improper_memq): New function.
3667 (scm_m_lambda): Check for duplicate arguments.
3668 (scm_ceval, scm_deval): When executing a body: only cons a new
3669 toplevel environment frame when it is different from the
3670 existing one; use EVALCAR instead of SIDEVAL so that we can properly
3671 check for empty combinations; use SCM_EVALIM2 for the same reason
3672 in the non-toplevel loop.
3673 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
3674 New labels with the meaning of their non-"nontoplevel" partners,
3675 but they are used when it is known that the body is not evaluated at
3676 top-level.
3677 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
3678 reporting for empty combinations.
3679
3680 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
3681
3682 * Remove dump facilities.
3683 * dump.c, dump.h: Removed.
3684 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
3685 * init.c: Remove #include "libguile/dump.h".
3686 (scm_init_guile_1): Remove scm_init_dump.
3687 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
3688 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
3689 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
3690 (scm_set_smob_dump, scm_set_smob_undump): Removed.
3691
3692 * keywords.c: Remove #include "libguile/dump.h".
3693 (keyword_dump, keyword_undump): Removed.
3694 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
3695
3696 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3697
3698 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
3699 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
3700 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
3701 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
3702 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
3703 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
3704 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
3705 to @code{} as the texinfo manual recommends, converted the
3706 examples to use a @lisp{}-environment.
3707
3708 * strports.c (scm_eval_string): Cleaned up the docstring.
3709
3710 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
3711 markup.
3712
3713 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
3714 (scm_number_to_string, scm_string_to_number, scm_number_p)
3715 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
3716 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
3717 (scm_ash): Added texinfo markup and removed obsolete @refill.
3718 (scm_gr_p): Corrected comment.
3719 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
3720 docstring) comments.
3721 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
3722 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
3723 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
3724 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
3725 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
3726 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
3727 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
3728 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
3729
3730 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3731
3732 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
3733 (Obviously nobody compiles with SCM_RECKLESS defined...)
3734
3735 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
3736
3737 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3738
3739 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
3740
3741 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
3742
3743 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
3744
3745 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
3746 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
3747 since use of `z' suggests that the arguments may be complex.
3748
3749 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
3750 typos.
3751
3752 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
3753
3754 * dump.c (scm_binary_write, scm_binary_read), eval.c
3755 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
3756 scm_guardian_greedy_p, scm_make_guardian), fports.c
3757 (scm_file_port_p): Minor docstring fixes.
3758
3759 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
3760
3761 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
3762
3763 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
3764 scm_i_eval.
3765 (make_class_from_template): Do not bother to set the current
3766 module around the call to DEFVAR, scm_eval takes care of that.
3767 (scm_init_goops): Make scm_module_goops and
3768 scm_goops_lookup_closure permanent objects.
3769
3770 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
3771 top level, create a fresh top-level environment for each
3772 expression instead of mutating the exisint frame. This is
3773 important when that frame is closed over.
3774
3775 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
3776 SCM_DIGSPERLONG instead of DIGSPERLONG.
3777
3778 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
3779
3780 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
3781 before applying arrow procedure in `cond' and before applying
3782 receiver procedure in call-with-current-continuation.
3783 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
3784 macro. The argument is expanded more than one time.
3785
3786 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
3787 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
3788
3789 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
3790
3791 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
3792 notice and license.
3793
3794 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3795
3796 * variable.c (scm_make_variable, scm_make_undefined_variable)
3797 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
3798 (scm_variable_bound_p), values.c (scm_values)
3799 (scm_call_with_values), unif.c (scm_bit_count)
3800 (scm_bit_set_star_x), symbols.c (scm_gentemp)
3801 (scm_gensym), strings.c (scm_string_p, scm_make_string)
3802 (scm_read_only_string_p, scm_string_length, scm_string_ref)
3803 (scm_string_set_x, scm_substring, scm_string_append), stime.c
3804 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
3805 (scm_copy_random_state, scm_random), print.c (scm_newline)
3806 (scm_write_char, scm_simple_format), debug-malloc.c
3807 (scm_malloc_stats), environments.c (scm_environment_p)
3808 (scm_environment_bound_p, scm_environment_ref)
3809 (scm_environment_fold, scm_environment_define)
3810 (scm_environment_undefine, scm_environment_set_x)
3811 (scm_environment_cell, scm_environment_observe)
3812 (scm_environment_observe_weak, scm_environment_unobserve)
3813 (scm_make_eval_environment, scm_eval_environment_p)
3814 (scm_eval_environment_set_local_x, scm_eval_environment_local)
3815 (scm_eval_environment_imported)
3816 (scm_eval_environment_set_imported_x, scm_make_import_environment)
3817 (scm_import_environment_p, scm_import_environment_imports)
3818 (scm_import_environment_set_imports_x, scm_make_export_environment)
3819 (scm_export_environment_p, scm_export_environment_private)
3820 (scm_export_environment_set_private_x)
3821 (scm_export_environment_signature)
3822 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
3823 Added texinfo markup.
3824
3825 * ports.c (scm_drain_input): Lowercased argument to @var.
3826 (scm_current_input_port, scm_current_output_port): Filled in
3827 missing explanation.
3828 (scm_current_load_port, scm_set_current_output_port)
3829 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
3830 Added texinfo markup.
3831
3832 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
3833 (scm_release_arbiter): Added texinfo markup to docstrings.
3834 Changed `Returns' to `Return'.
3835 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
3836
3837 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
3838
3839 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
3840 by doubling them to `@@'.
3841
3842 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3843
3844 * numbers.c (scm_lognot), random.c (scm_random,
3845 scm_random_normal, scm_random_solid_sphere_x,
3846 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
3847 scm_random_exp), dynwind.c
3848 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
3849
3850 * goops.c (scm_sys_initialize_object, scm_instance_p,
3851 scm_class_name, scm_class_precedence_list, scm_class_slots,
3852 scm_class_environment, scm_generic_function_name,
3853 scm_generic_function_methods, scm_method_generic_function,
3854 scm_method_specializers, scm_method_procedure, scm_make_unbound,
3855 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
3856 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
3857 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
3858 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
3859 scm_class_direct_supers, scm_class_direct_slots,
3860 scm_class_direct_subclasses, scm_class_direct_methods,
3861 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
3862 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
3863 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
3864 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
3865 scm_memoized_environment, scm_procedure_name,
3866 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
3867 objects.c
3868 (scm_class_of, scm_entity_p, scm_operator_p,
3869 scm_set_object_procedure_x, scm_object_procedure,
3870 scm_make_class_object), hooks.c (scm_make_hook_with_name,
3871 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
3872 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
3873 scm_hook_to_list), lang.c
3874 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
3875 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
3876 (scm_print_options, scm_port_with_print_state,
3877 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
3878 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
3879 scm_make_procedure_with_setter, scm_procedure), throw.c
3880 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
3881 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
3882 scm_stack_ref, scm_stack_length, scm_frame_p,
3883 scm_last_stack_frame, scm_frame_number, scm_frame_source,
3884 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
3885 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
3886 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
3887 (scm_dirname, scm_basename), dynwind.c
3888 (scm_wind_chain), read.c (scm_read_options, scm_read,
3889 scm_read_hash_extend), gc.c
3890 (scm_unhash_name), eval.c (scm_eval_options_interface,
3891 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
3892 (scm_display_error, scm_set_print_params_x,
3893 scm_display_application, scm_display_backtrace, scm_backtrace),
3894 async.c (scm_async, scm_system_async, scm_async_mark,
3895 scm_system_async_mark, scm_run_asyncs, scm_noop,
3896 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
3897 scm_mask_signals): Added docstrings.
3898
3899 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
3900
3901 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
3902 address of car/cdr. (Thanks to Dirk Herrmann)
3903 Use scm_sizet to obtain the length of strings.
3904 (Thanks to Matthias Koeppe)
3905
3906 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
3907
3908 * symbols.c (scm_mem2symbol): Put a empty statement after the
3909 next_symbol label. This is mandated by ANSI, appearantly.
3910
3911 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3912
3913 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
3914 sense to compile for a specific kernel version. Do not include
3915 <asm/signal.h> while defining __KERNEL__. This hack should no
3916 longer be needed and caused problems.
3917
3918 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
3919
3920 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
3921 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
3922 can not deal with immediates.
3923
3924 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
3925
3926 * list.c (scm_list_copy): Validate the first argument.
3927
3928 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
3929
3930 Fix evaluator so that top-level expressions are correctly
3931 evaluated with respect to the module system.
3932
3933 * modules.h. modules.c (scm_current_module_lookup_closure): New
3934 function.
3935
3936 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
3937 prototypes.
3938 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
3939 names to better reflect their meaning.
3940
3941 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
3942 evaluated at top-level and synronize lookup closure before
3943 executing every subform.
3944 (scm_primitve_eval_x, scm_primitive_eval): New functions.
3945 (scm_eval_x, scm_eval): Reimplement in terms of
3946 scm_primitive_eval_x and scm_primitive_eval, respectively.
3947
3948 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
3949
3950 * macros.c (scm_macro_name, scm_macro_transformer): Use
3951 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
3952 Thanks!
3953
3954 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
3955
3956 * dump.c (scm_store_bytes): Store data size before data.
3957 (scm_restore_bytes): Restore data size. Takes a pointer to size.
3958 * dump.h (scm_restore_bytes): Updated.
3959
3960 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
3961
3962 * dump.c: Use double cells for update schedule.
3963
3964 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
3965
3966 * ports.c (scm_unread_char): Take an optional argument.
3967
3968 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3969
3970 * modules.h (scm_selected_module, scm_current_module): Renamed
3971 scm_selected_module to scm_current_module to synchronize Scheme
3972 and C names.
3973 (scm_select_module, scm_set_current_module): Likewise. Changed
3974 all uses.
3975
3976 * ports.c (scm_port_for_each): Make a snapshot of the port table
3977 before iterating over it. The table might change while the user
3978 code is running. With the snapshot, the user can depend on the
3979 fact that each port that existed at the start of the iteration is
3980 encountered exactly once. (ice-9 popen) depends on this.
3981
3982 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
3983
3984 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
3985
3986 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
3987 range checking for the size parameter. Thanks to Martin
3988 Grabmueller for the hint.
3989
3990 (scm_makstr): Reordered string initialization to make interrupt
3991 deferring unnecessary.
3992
3993 * vectors.c (scm_make_vector): Fixed range checking.
3994
3995 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
3996
3997 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
3998
3999 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
4000 checking of the size parameter for type correctness and valid
4001 range. Thanks to Rob Browning for reporting the problem. Instead
4002 of deferring interrupts, scm_remember_upto_here_1 is used.
4003
4004 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
4005
4006 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
4007 (scm_dump_cell_update): Removed.
4008 (scm_dump_update): Renamed from scm_dump_object_update.
4009 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
4010 a pointer instead of returning a value.
4011 * keywords.c (keyword_undump): Updated.
4012
4013 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
4014
4015 * dump.c, dump.h: Modified a lot.
4016 (SCM_DUMP_COOKIE): Version 0.1
4017 (scm_dump_mark): Removed.
4018 (scm_restore_cell_object, scm_store_cell_object): New functions.
4019
4020 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
4021 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
4022 New slots: dump, undump.
4023 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
4024 Updated.
4025
4026 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
4027 (keyword_undump): Renamed from keyword_alloc.
4028 (scm_init_keywords): Set keyword_dump and keyword_undump.
4029
4030 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
4031
4032 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
4033 the deprecated SCM_DOUBLE_CELLP.
4034
4035 * tags.h (SCM_DOUBLE_CELLP): deprecated.
4036
4037 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
4038
4039 * dump.c, dump.h: New files.
4040 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
4041 * init.c: #include "libguile/dump.h".
4042 (scm_init_guile_1): Call scm_init_dump.
4043 * smob.h (scm_smob_descriptor): New slots: dump_mark,
4044 dump_dealloc, dump_store, undump_alloc, undump_restore,
4045 undump_init.
4046 * smob.c (scm_make_smob_type): Init the new slots.
4047 (scm_set_smob_dump, scm_set_smob_undump): New functions.
4048 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
4049
4050 * keywords.c: #include "libguile/dump.h".
4051 (keyword_dealloc, keyword_alloc): New functions.
4052 (scm_init_keywords): Set smob_dump and smob_undump.
4053
4054 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
4055
4056 * vectors.c (scm_c_make_vector): New function.
4057 * vectors.h (scm_c_make_vector): Declared.
4058 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
4059 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
4060 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
4061 (scm_make_method_cache, scm_i_vector2list,
4062 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
4063 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
4064 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
4065 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
4066 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
4067 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
4068 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
4069 (scm_vector, scm_make_vector): Use scm_c_make_vector.
4070
4071 * hashtab.c (scm_c_make_hash_table): New function.
4072 * hashtab.h (scm_c_make_hash_table): Declared.
4073 * environments.c (scm_make_leaf_environment,
4074 scm_make_eval_environment), gc.c (scm_init_storage),
4075 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
4076 Use scm_c_make_hash_table.
4077
4078 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4079
4080 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
4081
4082 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4083
4084 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
4085 end of docstring.
4086
4087 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
4088 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
4089 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
4090 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
4091 srcprop.c (scm_source_properties, scm_set_source_properties_x,
4092 scm_source_property, scm_set_source_property_x), sort.c
4093 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
4094 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
4095 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
4096 docstrings.
4097
4098 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4099
4100 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
4101 really get that arg.
4102
4103 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
4104
4105 * goops.c (s_scm_get_keyword): Bug fix.
4106
4107 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4108
4109 The following patch was sent by Martin Grabmueller. It makes sure
4110 that in case of parameter errors the correct function name is
4111 shown, and that parameter types are only checked once.
4112
4113 * strop.c (string_copy, string_upcase_x, string_downcase_x,
4114 string_capitalize_x): New functions. Each one performs the core
4115 functionality of the corresponding scm_* function.
4116
4117 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
4118 scm_string_downcase_x, scm_string_downcase,
4119 scm_string_capitalize_x, scm_string_capitalize): Reduced to
4120 parameter checking wrappers of the above functions.
4121
4122 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4123
4124 * continuations.c, dynl.c, keywords.c, load.c: Include
4125 strings.h. Thanks to Bill Schottstaedt for the bug report.
4126
4127 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4128
4129 * backtrace.c (display_header): Make sure that line and column
4130 information is shown independent of whether the port the code was
4131 read from had an associated filename. Thanks to Martin
4132 Grabmueller for providing this patch.
4133
4134 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4135
4136 * fports.[ch] (scm_file_port_p): New primitive.
4137
4138 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4139
4140 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
4141 These are now defined in fports.c, strports.c and vports.c.
4142
4143 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
4144 vports.c (scm_tc16_sfport): Made variables (were macros defined in
4145 tags.h).
4146
4147 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
4148 (scm_make_sfptob): Made static. These return a type code now.
4149
4150 fports.c (scm_init_fports), strports.c (scm_init_strports),
4151 vports.c (scm_init_vports): Create the corresponding port types.
4152
4153 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
4154 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
4155
4156 * init.c (scm_init_guile_1): Make sure strports are initialized
4157 before gdbint.
4158
4159 * ports.[ch] (scm_make_port_type): Changed the return type to
4160 scm_bits_t.
4161
4162 * ports.c (scm_ports_prehistory): Don't create any port types
4163 here.
4164
4165 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
4166 against scm_tc16_fport directly.
4167
4168 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4169
4170 * srcprop.c (scm_set_source_property_x): Fix to handle
4171 (set-source-property! <obj> 'copy <datum>) correctly.
4172
4173 2001-01-24 Gary Houston <ghouston@arglist.com>
4174
4175 * filesys.c (scm_link): docstring fix.
4176 * fports.h (scm_setfileno): obsolete declaration removed.
4177 * posix.c: bogus popen declaration removed.
4178
4179 * rdelim.c: new file, split from ioext.c.
4180 * rdelim.h: new file, split from ioext.h
4181 * Makefile.am: add rdelim.c and related files.
4182 * init.c: call scm_init_rdelim. include rdelim.h.
4183
4184 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4185
4186 This patch was sent by Martin Grabmueller and makes sure that
4187 parameter errors are reported correctly by the lexicographic
4188 ordering predicates.
4189
4190 * strorder.c (string_less_p, string_ci_less_p): New functions.
4191
4192 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
4193 functionality into string_less_p, string_ci_less_p respectively.
4194 The remaining code is just a wrapper to do the parameter
4195 checking.
4196
4197 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
4198 parameters and call string_less_p instead of scm_string_less_p.
4199
4200 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
4201 Check the parameters and call string_less_ci_p instead of
4202 scm_string_ci_less_p.
4203
4204 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4205
4206 This patch modifies scm_display_error to perform parameter
4207 checking. Thanks to Neil Jerram for the bug report.
4208
4209 * backtrace.[ch] (scm_i_display_error): New function.
4210
4211 * backtrace.c (scm_display_error): Added parameter check and
4212 extracted the core functionality into function
4213 scm_i_display_error.
4214
4215 * throw.c (handler_message): Call scm_i_display_error to display
4216 the error message.
4217
4218 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4219
4220 * eval.c (SCM_APPLY): Added # args check for application of
4221 procedures with arity 3. (Thanks to Anders Holst.)
4222
4223 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4224
4225 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
4226
4227 (SCM_OPDIRP): Deprecated.
4228
4229 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
4230 SCM_OPN.
4231
4232 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
4233 Instead, give an explicit error message in case the directory is
4234 closed.
4235
4236 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
4237 instead of SCM_OPENP and SCM_CLOSEDP.
4238
4239 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
4240
4241 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
4242
4243 * eval.c (inner_eval, scm_eval): Move all real functionality into
4244 inner_eval. Avoid to copy the expression twice by inlining some
4245 code from scm_i_eval.
4246
4247 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
4248
4249 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
4250 now has to be the last clause, as required by R5RS. Thanks to
4251 Martin Grabmueller for the patch.
4252
4253 2001-01-18 Gary Houston <ghouston@arglist.com>
4254
4255 * ioext.c: further simplify scm_read_string_x_partial by defining
4256 a macro SCM_EBLOCK.
4257
4258 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4259
4260 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
4261
4262 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4263
4264 * __scm.h: Added comment about architecture and compiler
4265 properties that are required by guile.
4266
4267 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
4268 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
4269
4270 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
4271
4272 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
4273
4274 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
4275 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
4276
4277 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4278
4279 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
4280 to the names in limits.h.
4281
4282 * numbers.c (abs_most_negative_fixnum): Added.
4283
4284 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
4285 fixnum-min) special case.
4286
4287 (scm_big_and): Fix for negative first parameter.
4288
4289 (scm_bit_extract): Fix for fixnum paramters.
4290 Thanks to Rob Browning for the bug report.
4291
4292 (scm_init_numbers): Initialize abs_most_negative_fixnum.
4293
4294 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
4295
4296 * symbols.c (scm_symbol_bound_p): Fixed comment.
4297 Thanks to Chris Cramer.
4298
4299 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
4300
4301 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
4302 Thanks to Bill Schottstaedt.
4303
4304 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
4305
4306 from Matthias Köppe:
4307
4308 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
4309 casts its result, so doesn't yield an lvalue per ANSI C.
4310
4311 * goops.c (s_scm_sys_set_object_setter_x): use
4312 SCM_SET_ENTITY_SETTER.
4313 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
4314
4315 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
4316 its result, so doesn't yield an lvalue per ANSI C.
4317 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
4318 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
4319 SCM_GC_SET_CARD_FLAGS.
4320 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
4321
4322 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
4323
4324 2001-01-08 Gary Houston <ghouston@arglist.com>
4325
4326 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
4327 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
4328 socket.c (scm_recvfrom): use the new macro, plus minor docstring
4329 changes.
4330 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
4331 for fdes. if current input port is used, check that it's a file
4332 port.
4333
4334 2001-01-06 Gary Houston <ghouston@arglist.com>
4335
4336 * ioext.c (scm_read_string_x_partial): new procedure, implements
4337 read-string!/partial.
4338 * ports.c (scm_take_from_input_buffers): new procedure used by
4339 scm_read_string_x_partial.
4340 (scm_drain_input): use scm_take_from_input_buffers.
4341
4342 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
4343
4344 * validate.h (SCM_VALIDATE_NUMBER): New.
4345
4346 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
4347
4348 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
4349 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
4350 SET_DESTROYED): new defines/macros.
4351 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
4352 (add_to_live_list): takes a `guardian_t *' now, not SCM.
4353 (guardian_print): print more info.
4354 (guardian_apply): check if the guardian is destroyed, and throw an
4355 error if so. take one more optional argument `throw_p'.
4356 (scm_guard): depending on the value of `throw_p', return a boolean
4357 result.
4358 (scm_get_one_zombie): remove redundant property test.
4359 (guardian_t): represent the various (currently 3, I hope nothing
4360 more gets added) boolean fields as bit flags.
4361 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
4362 (scm_destroy_guardian_x): new procedure.
4363
4364 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
4365 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
4366
4367 2001-01-01 Gary Houston <ghouston@arglist.com>
4368
4369 * fports.c (fport_write): bugfix: handle short writes for
4370 unbuffered ports too. optimize the buffered case by minimizing
4371 the number of write/flush calls.
4372 (write_all): new helper procedure.
4373
4374 The ChangeLog continues in the file: "ChangeLog-2000"