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