4083ae3b812a7eda6b7fc94135097e48c9639310
[bpt/guile.git] / libguile / ChangeLog
1 2003-08-22 Kevin Ryde <user42@zip.com.au>
2
3 * numbers.c (scm_difference): Correction to bignum - negative inum.
4
5 2003-08-14 Kevin Ryde <user42@zip.com.au>
6
7 * gc.h (scm_remember_upto_here_1, scm_remember_upto_here_2)
8 [__GNUC__]: Use volatile asm macros rather than a function call.
9 * gc.c (scm_remember_upto_here_1, scm_remember_upto_here_2): Undefine
10 macros while defining functions.
11
12 * simpos.c (getenv): Use <stdlib.h> for prototype.
13 (scm_system): In docstring, refer to status:exit-val rather than
14 "functions above".
15
16 2003-08-09 Kevin Ryde <user42@zip.com.au>
17
18 * srcprop.c (scm_source_properties): Return plist from hash if it's a
19 list set by source-properties! rather than an SRCPROPS object,
20
21 2003-07-29 Kevin Ryde <user42@zip.com.au>
22
23 * properties.c (scm_primitive_property_ref): In docstring, note
24 parameters to not-found-proc, use hyphens rather than underscores for
25 that parameter name.
26 (scm_primitive_property_set_x): In docstring, VAL is the value
27 parameter not CODE.
28
29 2003-07-27 Marius Vollmer <mvo@zagadka.de>
30
31 * print.c (scm_print_symbol_name): handle more weird characters by
32 escaping the symbol name properly. Thanks to Paul Jarc!
33
34 * posix.h (scm_setgroups): New prototype.
35 * posix.c (scm_setgroups): New. Thanks to Paul Jarc!
36 (scm_getgroups): Handle groups ids that don't fit into a fixnum.
37 Don't use SCM_WRITABLE_VELTS.
38
39 * gc.h (SCM_GC_SET_CELL_BVEC): New.
40 * gc-card.c (scm_i_init_card_freelist): Use it. Thanks to
41 Matthias Koeppe!
42
43 * __scm.h (SCM_C_INLINE_KEYWORD): New.
44 * numbers.c: Use it in place of SCM_C_INLINE so that the code
45 compiles when SCM_C_INLINE is undefined.
46
47 2003-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
48
49 * __scm.h: Reformulated the architecture and compiler properties
50 in terms of properties of scm_t_bits and SCM variables rather than
51 in terms of c standard types. This is since it is not known which
52 of the standard types scm_t_bits and SCM variables will be defined
53 to.
54
55 2003-07-24 Kevin Ryde <user42@zip.com.au>
56
57 * numbers.c (scm_angle): Use scm_flo0 for non-negative inum, bignum
58 and real.
59
60 2003-07-18 Kevin Ryde <user42@zip.com.au>
61
62 * numbers.c (scm_product): In complex * bignum, correction to
63 REAL/IMAG fetch, x is the complex, not y.
64
65 2003-07-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
66
67 * numbers.c (scm_odd_p, scm_even_p): Bugfix: Treat result of
68 scm_inf_p test as Scheme values.
69 (scm_sum): Bugfix: Normalize bignum created from a negative bignum
70 and a positive inum.
71 Use GNU indentation style.
72
73 2003-07-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
74
75 * values.c (scm_values): Build lists of length 1 by using
76 scm_list_1 instead of using scm_cons.
77
78 2003-07-10 Kevin Ryde <user42@zip.com.au>
79
80 * deprecation.c (scm_c_issue_deprecation_warning_fmt): Add va_end.
81 * list.c (scm_list_n): Ditto.
82
83 * gc-malloc.c (scm_gc_realloc): Define "ptr" at start of function.
84
85 2003-07-08 Matthias Koeppe <mkoeppe@merkur.math.uni-magdeburg.de>
86
87 * tags.h (scm_t_bits, scm_t_signed_bits, etc): Avoid solaris empty
88 defines of INTPTR_MAX and UINTPTR_MAX, combine conditionals for
89 scm_t_bits and scm_t_signed_bits to avoid any chance of one and not
90 the other using intptr_t.
91
92 2003-07-08 Kevin Ryde <user42@zip.com.au>
93
94 * numbers.c (scm_make_polar): Use sincos, when available.
95 (scm_magnitude): Use hypot.
96
97 * ports.c (scm_char_ready_p, scm_peek_char): In docstrings, don't use
98 @footnote since it doesn't go through to guile-procedures.txt.
99
100 * threads.c (scm_call_with_new_thread): In docstring, use "( )"
101 outside @var to quieten makeinfo, and use @code.
102
103 2003-07-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
104
105 * gc-malloc.c (decrease_mtrigger): new function
106 (increase_mtrigger): new function, separate debug registering and
107 mtrigger administration.
108 (scm_gc_realloc): bugfix: do mtrigger administration before the
109 actual realloc, for the realloc might invalidate a GC-d segment of
110 memory. Thanks to Sam Hocevar for pointing this out.
111 (scm_gc_realloc): use scm_malloc_reregister instead of
112 unregistering and registering in sequence.
113
114 2003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
115
116 * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
117
118 2003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
119
120 * __scm.h (SCM_ASRTGO): add "else" to macro expansions with if
121 clauses.
122
123 2003-06-29 Marius Vollmer <mvo@zagadka.de>
124
125 * deprecated.h (SCM_OPDIRP, scm_fport, scm_option, scm_srcprops,
126 scm_srcprops_chunk, scm_info_frame, scm_stack, scm_array,
127 scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_FUNC_NAME, SCM_WTA,
128 RETURN_SCM_WTA, SCM_VALIDATE_NUMBER_COPY,
129 SCM_VALIDATE_NUMBER_DEF_COPY, SCM_VALIDATE_OPDIR): Re-added from
130 the release_1_6 branch.
131
132 2003-06-25 Stefan Jahn <stefan@lkcc.org>
133
134 * continuations.c: Redeclaration of getcontext() via the
135 __asm__ ("getcontext") directive.
136
137 * continuations.h: Include <ucontext.h> instead of
138 <sys/ucontext.h>.
139
140 2003-06-21 Kevin Ryde <user42@zip.com.au>
141
142 * numbers.c (_GNU_SOURCE): #define, to get C99 things.
143 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, $asinh, $acosh,
144 $atanh, truncate): Use C library asinh, acosh, atanh and trunc, when
145 available.
146 (scm_inexact_to_exact): Expand isfinite to its definition !xisinf.
147 (isfinite): Remove, conflicts with C99 isfinite().
148
149 2003-06-19 Marius Vollmer <mvo@zagadka.de>
150
151 * deprecated.h, deprecated.c (scm_strhash, scm_sym2ovcell_soft,
152 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
153 scm_symbol_value0, scm_string_to_obarray_symbol scm_intern_symbol,
154 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
155 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp): Re-added from
156 the release_1_6 branch.
157
158 2003-06-14 Stefan Jahn <stefan@lkcc.org>
159
160 * threads.h: Redefined scm_getspecific() and scm_setspecific()
161 to be functions instead of macros.
162
163 * threads.c: Conditionalized inclusion of <sys/time.h> and
164 <unistd.h>.
165 (scm_getspecific, scm_setspecific): Made these two function
166 real part of the API.
167
168 * posix.c (s_scm_putenv): Added some code to make a
169 (putenv "FOO="), i.e. setting an empty string, work also on
170 Win32 systems. Thanks to Kevin Ryde for the proposal.
171
172 2003-06-12 Kevin Ryde <user42@zip.com.au>
173
174 * posix.c (scm_putenv): Free temporary ptr in mingw unset. Add
175 freebsd to comment about need to use unsetenv.
176
177 2003-06-02 Marius Vollmer <mvo@zagadka.de>
178
179 * ports.c (scm_peek_char): Safe the column of the port around the
180 getc/ungetc calls. Thanks to Dr. Peter Ivanyi!
181
182 2003-06-07 Kevin Ryde <user42@zip.com.au>
183
184 * tags.h: Use inttypes.h and stdint.h when available, for INTPTR_MAX
185 and friends required by scm_t_bits setups.
186
187 2003-06-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
188
189 * tags.h (scm_tc2_int): Added.
190
191 * tags.h (scm_tc3_int_1, scm_tc3_int_2): Expressed in terms of
192 scm_tc2_int.
193
194 * tags.h (scm_tcs_cons_imcar, scm_tcs_cons_nimcar, scm_tcs_struct,
195 scm_tcs_closures): Hard coded values replaced by symbolic ones.
196
197 2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
199 * eval.c: Partially undid my patch from 2003-05-31. This patch
200 caused the segfault referenced in the previous changelog entry.
201
202 2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
203
204 * tags.h: Fixed comment about the immediate type code layout.
205
206 * eval.c: Fixed handling of non-special instructions. Without
207 this patch, guile will segfault on (#\0) and similar instructions.
208
209 2003-06-05 Kevin Ryde <user42@zip.com.au>
210
211 * numbers.c (scm_max, scm_min): For inum, bignum and real, if other
212 operand is NaN, then return NaN. Also avoid passing NaN to mpz_cmp_d.
213
214 * read.c (scm_input_error): Pass arg list parameter to scm_error_scm,
215 rather than SCM_EOL. Needed by "Unknown # object" case in scm_lreadr.
216
217 2003-06-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
218
219 * __scm.h, gc-card.c (SCM_DEBUG_DEBUGGER_SUPPORT,
220 SCM_DEBUG_DEBUGGING_SUPPORT): Renamed macro
221 SCM_DEBUG_DEBUGGER_SUPPORT to SCM_DEBUG_DEBUGGING_SUPPORT and
222 generalized it to apply not only to C level functions but also to
223 scheme level functions.
224
225 * debug.c, debug.h, eval.c (make-iloc, scm_make_iloc, iloc?,
226 scm_iloc_p, dbg-make-iloc, scm_dbg_make_iloc, dbg-iloc?,
227 scm_dbg_iloc_p): Moved functions scm_make_iloc, scm_iloc_p to
228 eval.c, made them available under SCM_DEBUG_DEBUGGING_SUPPORT == 1
229 only and renamed them to scm_dbg_make_iloc, scm_dbg_iloc_p,
230 respectively.
231
232 * deprecated.h, eval.c, eval.h (SCM_ILOC00, SCM_IDINC,
233 SCM_IDSTMSK): Deprecated. The macro definitions are moved from
234 eval.h into eval.c and a copy is placed into deprecated.h.
235
236 * eval.c, eval.h (SCM_MAKE_ILOC): Removed from eval.h and placed
237 into eval.c. This definition was not part of the API in any
238 officially released version of guile and thus does not need to go
239 through a phase of deprecation.
240
241 2003-06-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
242
243 * deprecated.c, deprecated.h, eval.c, eval.h (scm_s_expression,
244 scm_s_test, scm_s_body, scm_s_bindings, scm_s_variable,
245 scm_s_clauses, scm_s_formals): Deprecated. In eval.c the
246 definitions are make static and renamed from scm_s_xxx to s_xxx.
247 In deprecated.c the original definitions are copied.
248
249 * deprecated.h, eval.c, eval (SCM_EVALIM2, SCM_EVALIM, SCM_XEVAL,
250 SCM_XEVALCAR): Deprecated. The macro definitions are moved from
251 eval.h into eval.c and a copy (slightly modified to work in user
252 code) is placed into deprecated.h.
253
254 * eval.c: Use the local static s_xxx definitions instead of the
255 scm_s_xxx definitions throughout.
256
257 2003-06-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
258
259 This set of patches separates the representation of the cxr family
260 of functions (car, cdr etc.) from the dsubr family of functions
261 (i. e. functions that take a double precision floating point
262 argument). Further, the algorithm for handling the cxr function
263 is improved.
264
265 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_1), numbers.c
266 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, scm_round, floor,
267 ceil, sqrt, fabs, exp, log, sin, cos, tan, asin, acos, atan, sinh,
268 cosh, tanh), objects.c (scm_class_of), procprop.c
269 (scm_i_procedure_arity), ramap.c (scm_array_map_x), tags.h
270 (scm_tc7_dsubr, scm_tcs_subrs): Introduce scm_tc7_dsubr as new
271 typecode for the dsubr family of functions.
272
273 * ramap.c (ramap_cxr, ramap_dsubr): Renamed ramap_cxr to
274 ramap_dsubr.
275
276 * eval.c (SCM_CEVAL, SCM_APPLY, call_cxr_1), pairs.c
277 (scm_init_pairs): Make use of the (now usable) second cell element
278 of a scm_tc7_cxr function to implement the cxr family of functions
279 more efficiently.
280
281 2003-05-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
282
283 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_0,
284 scm_trampoline_1, scm_trampoline_2): Postpone error cases to the
285 end of an if-else-if-sequence of checks.
286
287 2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
288
289 * eval.c (SCM_CEVAL): Improved readability of call-with-values
290 execution. Generalize apply_closure to apply_proc and use that
291 for call-with-values.
292
293 2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
294
295 * eval.c (SCM_CEVAL): Avoid one level of indirection when applying
296 a non closure.
297
298 2003-05-30 Stefan Jahn <stefan@lkcc.org>
299
300 * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
301 appropriately for mingw32 hosts.
302
303 * numbers.h: Defining copysign(), isnan() and finite() to
304 be prefixed by a single '_' for mingw32 hosts.
305
306 2003-05-30 Kevin Ryde <user42@zip.com.au>
307
308 * numbers.c (z_negative_one): New variable.
309 (scm_init_numbers): Initialize it.
310 (scm_logcount): Use it and mpz_hamdist to count zeros for negatives.
311
312 2003-05-29 Stefan Jahn <stefan@lkcc.org>
313
314 * win32-dirent.c: Use malloc() instead of scm_malloc().
315
316 * stime.c (s_scm_strftime): Add a type cast to avoid compiler
317 warning.
318
319 * posix.c (s_scm_putenv): Disable use of unsetenv() for the
320 mingw32 build.
321
322 * modules.c (s_scm_module_import_interface): Renamed local
323 variable interface to _interface. Seems like 'interface'
324 is a special compiler directive for the mingw32 compiler.
325
326 * mkstemp.c: Provide prototype to avoid compiler warning.
327
328 * load.c (s_scm_search_path): Fixed absolute and relative
329 path detections for native Windows platforms.
330
331 * gc.h, threads.h: Export some more symbols using SCM_API (necessary
332 to build on mingw32).
333
334 * gc-freelist.c ("s_scm_map_free_list",
335 "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
336
337 * fports.c (fport_fill_input): Disable use of
338 fport_wait_for_input() on Win32 platforms.
339
340 * filesys.c (s_scm_basename): Fixed __MINGW32__ code.
341
342 * Makefile.am: Modified some rules for cross compiling.
343
344 2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
345
346 * eval.c (SCM_CEVAL): In case of an application, all checks for a
347 proper function object and the correct number of arguments are now
348 performed in the application part of SCM_CEVAL.
349
350 (scm_badformalsp): Removed.
351
352 2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
353
354 * deprecated.c (scm_read_and_eval_x): Fixed C99-ism.
355
356 2003-05-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
357
358 * num2integral.i.c (NUM2INTEGRAL): Avoid warning about conditional
359 always being false by inserting preprocessor conditional. (Thanks
360 to Bruce Korb.)
361
362 * __scm.h (SCM_STACK_PTR): New macro. (Cast argument through
363 (void *) in order to avoid an aliasing warning; thanks to Bruce
364 Korb.)
365
366 * stackchk.h (SCM_STACK_OVERFLOW_P): Use SCM_STACK_PTR.
367
368 * threads.c (suspend, launch_thread, scm_threads_mark_stacks): Use
369 SCM_STACK_PTR.
370
371 * threads.c (scm_threads_mark_stacks): Bugfix: Changed
372 thread->base --> t->base.
373
374 * eval.c (SCM_CEVAL): Don't cast argument of SCM_STACK_OVERFLOW_P.
375
376 2003-05-20 Marius Vollmer <marius.vollmer@uni-dortmund.de>
377
378 * deprecated.h, deprecated.c (scm_makstr, scm_makfromstr,
379 scm_variable_set_name_hint, scm_builtin_variable,
380 scm_internal_with_fluids, scm_make_gsubr,
381 scm_make_gsubr_with_generic, scm_create_hook, SCM_LIST0,
382 SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5, SCM_LIST6,
383 SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify, scm_sloppy_memq,
384 scm_sloppy_memv, scm_sloppy_member, scm_read_and_eval_x,
385 scm_subr_entry, SCM_SUBR_DOC, scm_make_subr,
386 scm_make_subr_with_generic, scm_make_subr_opt,
387 scm_call_catching_errors, scm_make_smob_type_mfpe,
388 scm_set_smob_mfpe, scm_strprint_obj, scm_read_0str, scm_eval_0str,
389 SCM_CHARS, SCM_UCHARS, SCM_LENGTH): Re-added from the release_1_6
390 branch. Some have been slightly rewritten.
391 (scm_i_object_chars, scm_i_object_length): New, to support
392 SCM_CHARS, SCM_UCHARS, and SCM_LENTH.
393
394 2003-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
395
396 * eval.c (scm_m_do, unmemocopy, SCM_CEVAL): Reversed order of
397 names and inits in the memoized code of do.
398
399 2003-05-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
400
401 * c-tokenize.lex (yyget_lineno, yyget_in, yyget_out, yyget_leng,
402 yyget_text, yyset_lineno, yyset_in, yyset_out, yyget_debug,
403 yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get
404 a compilation error if error-on-warning is enabled).
405
406 >>>>>>> 1.1883
407 2003-05-17 Marius Vollmer <mvo@zagadka.de>
408
409 * c-tokenize.lex: Gobble up complete lines after a '#'. This
410 removes preprocessor directives from the snarfage that might
411 otherwise confuse us. These directives appear when compiling with
412 "-g3", for example.
413
414 2003-05-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
415
416 * ChangeLog: add my surname
417
418 * srcprop.c (scm_finish_srcprop): use
419 scm_gc_register_collectable_memory()
420 (scm_make_srcprops): idem.
421
422 2003-05-14 Han-Wen Nienhuys <hanwen@cs.uu.nl>
423
424 * gc-malloc.c (scm_gc_register_collectable_memory): avoid
425 wrap-around for scm_mtrigger
426 (scm_gc_register_collectable_memory): abort on overflowing
427 scm_mallocated().
428
429 2003-05-13 Kevin Ryde <user42@zip.com.au>
430
431 * numbers.c (xmpz_cmp_d): New macro, handling infs if gmp doesn't.
432 (scm_num_eq_p, scm_less_p, scm_max, scm_min): Use it.
433
434 2003-05-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
435
436 * backtrace.c (scm_display_error_message): Introduced fancy
437 printing with max level 7 and length 10. (Purpose: avoid printing
438 gigantic objects in error messages.)
439
440 * print.c, print.h (scm_i_port_with_print_state): New function.
441
442 * print.c (scm_iprin1, scm_printer_apply,
443 scm_port_with_print_state): Use scm_i_port_with_print_state.
444 (scm_simple_format): Modified not to destroy print states.
445 (print_state_mutex): New mutex.
446 (scm_make_print_state, scm_free_print_state, scm_prin1):
447 Lock/unlock print_state_mutex.
448
449 * deprecated.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK):
450 Use current names in definitions.
451
452 2003-05-10 Kevin Ryde <user42@zip.com.au>
453
454 * numbers.c (scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d.
455
456 * numbers.c (scm_integer_length): On negative bignums, adjust
457 mpz_sizeinbase to account for it looking at absolute value where we
458 want ones-complement.
459
460 * numbers.c (scm_gcd): In bignum/inum, don't pass yy==0 to mpz_gcd_ui
461 since we're only using the ulong return value, and x might not fit.
462
463 2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
464
465 * eval.c, eval.h, read.c, read.h (scm_sym_dot): Moved from eval to
466 read. This will allow to make the definition in read.c static.
467
468 2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
469
470 * eval.c, eval.h, evalext.c, evalext.h (scm_m_undefine): Moved
471 from evalext to eval. This will allow to make some of the
472 definitions in eval.c static.
473
474 2003-05-06 Kevin Ryde <user42@zip.com.au>
475
476 * numbers.c (scm_difference): In inum - bignum, handle negative inum.
477 (scm_logcount): Use mpz_com, not mpz_neg.
478
479 2003-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
480
481 The purpose of this patch is to make guile's internal memoizers
482 distinguishable from memoizing macros created on the scheme level
483 or from user provided primitive memoizing macros. The reason is,
484 that the internal memoizers are the only ones that are allowed to
485 transform their scheme input into memoizer byte code, while all
486 other memoizing macros may only transform scheme code into new
487 scheme code.
488
489 To achieve this, a new macro type 'builtin-macro!' is introduced.
490 Currently, 'builtin-macro!'s are handled as memoizing macros, but
491 this will change when the memoizer and executor are separated.
492
493 * macros.[ch] (scm_i_makbimacro): New.
494
495 * macros.h (SCM_BUILTIN_MACRO_P): New.
496
497 * macros.c (macro_print, scm_macro_type): Support builtin-macro!s.
498
499 * eval.c, goops.c: All of guile's primitive memoizing macros are
500 primitive builtin-macros now.
501
502 * eval.c (scm_macroexp, SCM_CEVAL): Make sure the primitive
503 builtin-macros are handled equally to memoizing macros.
504
505 2003-05-04 Marius Vollmer <mvo@zagadka.de>
506
507 * throw.c (scm_ithrow): Remove "asm volatile" hack. It used to
508 work around a bug in GCC 2.95.2 but is now a bug in itself.
509
510 2003-05-02 Marius Vollmer <mvo@zagadka.de>
511
512 * deprecated.h (scm_rstate, scm_rng, SCM_SLOPPY_CONSP,
513 SCM_SLOPPY_NCONSP, scm_tc7_ssymbol, scm_tc7_msymbol,
514 scm_tcs_symbols): New.
515
516 2003-04-30 Marius Vollmer <marius.vollmer@uni-dortmund.de>
517
518 * deprecated.h, deprecated.c (scm_protect_object,
519 scm_unprotect_object, SCM_SETAND_CAR, SCM_SETOR_CAR,
520 SCM_SET_AND_CDR, SCM_SET_OR_CDR, SCM_FREEP, SCM_NFREEP,
521 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
522 SCM_GCCDR, scm_remember, scm_the_root_module, scm_make_module,
523 scm_ensure_user_module, scm_load_scheme_module, scm_port,
524 scm_ptob_descriptor, scm_port_rw_active,
525 scm_close_all_ports_except): New.
526
527 * ports.c (scm_c_port_for_each): New function, mostly copied from
528 scm_port_for_each.
529 (scm_port_for_each): Reimplemented using scm_c_port_for_each.
530 * ports.h (scm_c_port_for_each): New prototype.
531
532 2003-04-28 Mikael Djurfeldt <djurfeldt@nada.kth.se>
533
534 * eval.c (scm_m_atdispatch): Removed until actually needed. (This
535 macro was introduced in anticipation of GOOPS method compilation
536 code.)
537
538 * goops.c: Removed binding of @dispatch.
539
540 2003-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
541
542 * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
543 instructions that bind the macros on the scheme level back to
544 goops.c in order to make sure again that the bindings go into the
545 (oop goops) module and are not visible from the outside.
546
547 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
548
549 * eval.c: Non functional change: Separated R5RS and non-R5RS
550 macros into different sections of the file and ordered the
551 memoizers alphabetically.
552
553 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
554
555 * eval.c (scm_ilookup): Rewritten to improve readability.
556
557 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
558
559 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
560 Partially reverted patch from 2003-04-23 in oder to find a better
561 compromise between readability and debuggability.
562
563 2003-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
564
565 * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
566 scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
567 definitions of the special goops memoizers from goops.[ch] to
568 eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
569 throughout guile.
570
571 2003-04-24 Mikael Djurfeldt <mdj@kvast.blakulla.net>
572
573 * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
574
575 * fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
576
577 * ports.c (scm_close_port, scm_flush_all_ports): Ditto.
578
579 * ioext.c (scm_fdes_to_ports): Ditto.
580
581 * vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
582 lock/unlock scm_i_port_table_mutex.
583
584 * strports.c (scm_mkstrport): Ditto.
585
586 * ports.c (scm_void_port, scm_port_for_each): Ditto.
587
588 * fports.c (scm_fdes_to_port): Ditto.
589
590 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
591
592 This set of patches contains no functional changes, only debatable
593 minor stylistic ones. Still, in order to prepare a patch between
594 my local copy and the CVS version, I decided to submit the changes
595 below. Then, the patch will hopefully only contain relevant
596 modifications :-)
597
598 * eval.c (iqq): Added const specifier.
599
600 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
601 Use NULL instead of 0 to indicate that a pointer is returned.
602 Removed some misleading 'fall through' comments.
603
604 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
605 Split up long expressions into smaller ones to be more debugging
606 friendly.
607
608 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
609
610 * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
611 SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
612 rather than casting to SCM.
613
614 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
615
616 * sort.c, pairs.h: Removed unnecessary includes.
617
618 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
619
620 * sort.c: Replaced hand-made trampline code by the new official
621 mechanism from eval.c. This fixes a segfault in the new test file
622 sort.test.
623
624 (quicksort, compare_function, scm_restricted_vector_sort_x,
625 scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
626 scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
627 scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
628 scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
629 eval.c.
630
631 (subr2less, lsubrless, closureless, applyless, scm_cmp_function,
632 cmp_fun_t): Removed.
633
634 (compare_function): Added.
635
636 * sort.c (quicksort, SWAP, stack_node): Replaced pointer
637 arithmetics with index arithmetics. Changed quicksort to work on
638 an array of SCM values instead of an array of characters. Avoid
639 bytewise copying of SCM elements. Avoid allocating memory on the
640 stack with alloca. Fixed some comments.
641
642 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
643
644 * eval.c (EXTEND_ENV): Eliminated.
645
646 (unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
647 EXTEND_ENV.
648
649 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
650
651 * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
652
653 * gc.card.c (scm_gc_marked_p): Fixed compiler warning when
654 compiling with SCM_DEBUG==1 by moving definition behind prototype.
655
656 * gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
657 scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
658 scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
659 scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
660 functions such that they check if the object is a non-immediate.
661 Further, renamed identifiers to use the scm_dbg_ prefix and made
662 their inclusion into the lib dependent of the
663 SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
664
665 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
666
667 * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
668 debug option.
669
670 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
671
672 * list.c (scm_ilength, scm_last_pair), unif.c (l2ra): Prefer
673 !SCM_CONSP over SCM_NCONSP. Now, guile itself does not include
674 any calls to SCM_NCONSP any more.
675
676 * unif.c (l2ra): Eliminate redundant check.
677
678 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
679
680 * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
681 scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
682 SCM_NNULLP. Now, guile itself does not include any calls to
683 SCM_NNULLP any more.
684
685 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
686
687 * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
688 scm_copy_tree): Place assignment expressions which are part of
689 other expressions into an expression of their own.
690
691 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
692
693 * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
694 compare SCM values with !=.
695
696 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
697
698 * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
699 scm_m_generalized_set_x, scm_init_evalext): Move the declaration
700 and definition of the memoizer for the generalized set! macro from
701 evalext.[ch] to eval.[ch]. Use the SCM_SYNTAX snarfer macro to
702 define the macro object.
703
704 * eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
705 scm_m_generalized_set_x): Since now scm_s_set_x is only used in
706 eval.c, it is made static and renamed to s_set_x.
707
708 * evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
709 over SCM_N<foo>.
710
711 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
712
713 * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
714 scm_init_eval): Made scm_undefineds static in eval.c, renamed it
715 to undefineds and registered the object as a permanent object.
716
717 * eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
718 static in eval.c, renamed it to f_apply and registered the object
719 as a permanent object.
720
721 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
722
723 * eval.c (SCM_BIT7, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
724 file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
725
726 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
727
728 * numbers.c (scm_logtest): Fixed argument bug in the call to
729 mpz_and, which showed up when compiling with SCM_DEBUG defined.
730
731 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
732
733 * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
734 type errors that showed up when compiling with SCM_DEBUG defined.
735
736 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
737
738 * continuations.c, continuations.h, eval.c, eval.h, extensions.c,
739 gsubr.c, guile.c, init.c, read.c, root.c, root.h, stackchk.h,
740 throw.c: Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
741 fix compile errors with --disable-deprecated.
742
743 2003-04-17 Rob Browning <rlb@defaultvalue.org>
744
745 * numbers.c (scm_integer_expt): fix case where we were declaring
746 vars in the middle of a statement block. Thanks to Thamer
747 Al-Harbash.
748
749 2003-04-17 Mikael Djurfeldt <djurfeldt@nada.kth.se>
750
751 * goops.c (TEST_CHANGE_CLASS): Update variable class after class
752 change.
753
754 * eq.c (scm_eqv_p): Turned into a primitive generic.
755
756 2003-04-16 Rob Browning <rlb@defaultvalue.org>
757
758 * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
759 Thanks to Boyd Gerber.
760 Added check for __arm__ in addition to arm for LINUX and copied
761 __s390__ defines from upstream libgc. Thanks to James Treacy for
762 reporting the problems.
763
764 * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT.
765
766 * socket.c: use SCM_CHAR_BIT.
767
768 * random.c (scm_c_random_bignum): use SCM_CHAR_BIT.
769
770 * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT.
771
772 2003-04-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
773
774 * feature.c (scm_init_feature): Always add threads feature.
775
776 2003-04-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
777
778 * goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
779 scm_at_assert_bound_ref. (We don't want the unbound check. See
780 oop/goops/active-slot.scm.)
781
782 2003-04-14 Rob Browning <rlb@defaultvalue.org>
783
784 * tags.h: scm_t_intptr should have been intptr_t.
785
786 2003-04-13 Rob Browning <rlb@defaultvalue.org>
787
788 * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
789 test. Instead use
790 #if defined (sparc) || defined (__sparc__) || defined (__sparc)
791 as gc_os_dep.c suggests is appropriate.
792
793 * goops.c (prep_hashsets): make static to match prototype.
794 (scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL. Thanks to Albert
795 Chin.
796
797 * c-tokenize.lex: remove trailing comma from enum. Thanks to
798 Albert Chin.
799
800 * gc_os_dep.c: add NetBSD powerpc config info. Thanks to Thomas
801 Klausner.
802
803 2003-04-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
804
805 * goops.c (scm_sys_prep_layout_x): Instance allocation is now
806 indicated through extra fields in getters-n-setters.
807 (scm_add_slot): Adapted to new format of getters_n_setters slot.
808 (Thanks to Andy Wingo.)
809
810 2003-02-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
811
812 * gc-segment.c: add comment
813
814 2003-04-07 Rob Browning <rlb@defaultvalue.org>
815
816 * debug.h: change "id" arg name to "info_id" to avoid objective-c
817 clash.
818
819 * num2integral.i.c (NUM2INTEGRAL): fix bug pointed out by Mikael
820 and add regression test to standalone/.
821
822 2003-04-06 Rob Browning <rlb@defaultvalue.org>
823
824 * strings.c (scm_mem2string): use memcpy rather than by-hand loop.
825 Thanks to Dale P. Smith.
826
827 * random.c: #include gmp.h.
828 (scm_c_random_bignum): normalize result on return.
829
830 * init.c: #include gmp.h.
831
832 * numbers.h: remove the gmp.h #include (not needed now).
833
834 * posix.h: change occurences of "id" to something else so we don't
835 cause trouble when included via objective-c (can't hurt, might
836 help). Still have usage in debug.h, though.
837
838 2003-04-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
839
840 * random.c (scm_c_random_bignum): Don't generate a random number
841 equal to m (the second argument of scm_c_random_bignum); only
842 generate numbers in the range 0 <= r < m.
843 (scm_c_default_rstate): Use SCM_VARIABLE_REF to access
844 scm_var_random_state.
845
846 * num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
847 clause.
848
849 2003-04-05 Rob Browning <rlb@defaultvalue.org>
850
851 * modules.c (scm_module_import_interface): move declaration of
852 uses before any code.
853
854 2003-04-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
855
856 * Makefile.am (scmconfig.h): Look for config.h in top_builddir,
857 not top_srcdir.
858
859 * hashtab.c (rehash_after_gc): Clear to_rehash list before
860 processing it in order to avoid an infinite loop.
861
862 * print.c (scm_prin1): Remember old state of pstate->writingp.
863
864 2003-04-05 Marius Vollmer <mvo@zagadka.de>
865
866 * Changed license terms to the plain LGPL thru-out.
867
868 2003-04-04 Rob Browning <rlb@defaultvalue.org>
869
870 * socket.c (FLIPCPY_NET_HOST_128): new macro.
871 (ipv6_net_to_num, ipv6_num_to_net, bignum_in_ipv6_range_p):
872 rewrite to handle GMP bignums.
873
874
875 * random.c (scm_c_random_bignum): rewrite to handle GMP bignums.
876
877 * ports.c (scm_getc): minor tweak.
878
879 * numbers.h: remove SCM_BIGDIG conditionals, reorganize, and
880 rewrite to handle GMP bignums.
881
882 * numbers.c: rewrite *many* functions to handle GMP bignums.
883
884 * num2integral.i.c (NUM2INTEGRAL, INTEGRAL2NUM, INTEGRAL2BIG):
885 handle GMP bignums.
886
887 * num2float.i.c (NUM2FLOAT): handle GMP bignums.
888
889 * init.c (check_config): remove SCM_BIGDIG conditionals.
890 (scm_init_guile_1): test to make sure mpz_t fits in a double_cell.
891
892 * gc-card.c ("sweep_card"): handle new mpz_t bignums.
893
894 * eval.c: remove SCM_BIGDIG conditionals.
895
896 * eq.c (s_scm_eqv_p): scm_i_bigcomp -> scm_i_bigcmp.
897
898 2003-03-31 Rob Browning <rlb@defaultvalue.org>
899
900 * Makefile.am (scmconfig.h): change srcdir to builddir. (Thanks
901 to Kevin Ryde.)
902
903 2003-03-27 Rob Browning <rlb@defaultvalue.org>
904
905 * threads.h: fix various preprocessor usages of new public
906 symbols to expect 0 or 1 values rather than 1 or undefined.
907 i.e. change #ifdef to #if, etc.
908
909 * threads.c: fix various preprocessor usages of new public
910 symbols to expect 0 or 1 values rather than 1 or undefined.
911 i.e. change #ifdef to #if, etc.
912
913 * tags.h: fix various preprocessor usages of new public
914 symbols to expect 0 or 1 values rather than 1 or undefined.
915 i.e. change #ifdef to #if, etc.
916
917 * stacks.c: fix various preprocessor usages of new public
918 symbols to expect 0 or 1 values rather than 1 or undefined.
919 i.e. change #ifdef to #if, etc.
920
921 * stackchk.h: fix various preprocessor usages of new public
922 symbols to expect 0 or 1 values rather than 1 or undefined.
923 i.e. change #ifdef to #if, etc.
924
925 * stackchk.c: fix various preprocessor usages of new public
926 symbols to expect 0 or 1 values rather than 1 or undefined.
927 i.e. change #ifdef to #if, etc.
928
929 * sort.c: fix various preprocessor usages of new public
930 symbols to expect 0 or 1 values rather than 1 or undefined.
931 i.e. change #ifdef to #if, etc.
932
933 * read.c: fix various preprocessor usages of new public
934 symbols to expect 0 or 1 values rather than 1 or undefined.
935 i.e. change #ifdef to #if, etc.
936
937 * random.c: fix various preprocessor usages of new public
938 symbols to expect 0 or 1 values rather than 1 or undefined.
939 i.e. change #ifdef to #if, etc.
940
941 * print.c: fix various preprocessor usages of new public
942 symbols to expect 0 or 1 values rather than 1 or undefined.
943 i.e. change #ifdef to #if, etc.
944
945 * objects.c: fix various preprocessor usages of new public
946 symbols to expect 0 or 1 values rather than 1 or undefined.
947 i.e. change #ifdef to #if, etc.
948
949 * numbers.h: fix various preprocessor usages of new public
950 symbols to expect 0 or 1 values rather than 1 or undefined.
951 i.e. change #ifdef to #if, etc.
952
953 * null-threads.c: fix various preprocessor usages of new public
954 symbols to expect 0 or 1 values rather than 1 or undefined.
955 i.e. change #ifdef to #if, etc.
956
957 * lang.c: fix various preprocessor usages of new public
958 symbols to expect 0 or 1 values rather than 1 or undefined.
959 i.e. change #ifdef to #if, etc.
960
961 * lang.h: fix various preprocessor usages of new public
962 symbols to expect 0 or 1 values rather than 1 or undefined.
963 i.e. change #ifdef to #if, etc.
964
965 * iselect.h: fix various preprocessor usages of new public
966 symbols to expect 0 or 1 values rather than 1 or undefined.
967 i.e. change #ifdef to #if, etc.
968
969 * init.c: fix various preprocessor usages of new public
970 symbols to expect 0 or 1 values rather than 1 or undefined.
971 i.e. change #ifdef to #if, etc.
972
973 * gh_data.c: fix various preprocessor usages of new public
974 symbols to expect 0 or 1 values rather than 1 or undefined.
975 i.e. change #ifdef to #if, etc.
976
977 * gh.h: fix various preprocessor usages of new public
978 symbols to expect 0 or 1 values rather than 1 or undefined.
979 i.e. change #ifdef to #if, etc.
980
981 * gen-scmconfig.c: change most new public symbols to be defined to
982 0 or 1 rather than being either 1 or undefined.
983
984 * gc_os_dep.c: fix various preprocessor usages of new public
985 symbols to expect 0 or 1 values rather than 1 or undefined.
986 i.e. change #ifdef to #if, etc.
987 (STACK_GROWS_DOWN): define to 0 or 1 rather than 1 or undef.
988
989 * gc.h: fix various preprocessor usages of new public
990 symbols to expect 0 or 1 values rather than 1 or undefined.
991 i.e. change #ifdef to #if, etc.
992
993 * gc-card.c: fix various preprocessor usages of new public
994 symbols to expect 0 or 1 values rather than 1 or undefined.
995 i.e. change #ifdef to #if, etc.
996
997 * gc-mark.c: fix various preprocessor usages of new public
998 symbols to expect 0 or 1 values rather than 1 or undefined.
999 i.e. change #ifdef to #if, etc.
1000
1001 * feature.c: fix various preprocessor usages of new public
1002 symbols to expect 0 or 1 values rather than 1 or undefined.
1003 i.e. change #ifdef to #if, etc.
1004
1005 * evalext.c: fix various preprocessor usages of new public
1006 symbols to expect 0 or 1 values rather than 1 or undefined.
1007 i.e. change #ifdef to #if, etc.
1008
1009 * eval.h: fix various preprocessor usages of new public
1010 symbols to expect 0 or 1 values rather than 1 or undefined.
1011 i.e. change #ifdef to #if, etc.
1012
1013 * eval.c: fix various preprocessor usages of new public
1014 symbols to expect 0 or 1 values rather than 1 or undefined.
1015 i.e. change #ifdef to #if, etc.
1016
1017 * eq.c: fix various preprocessor usages of new public
1018 symbols to expect 0 or 1 values rather than 1 or undefined.
1019 i.e. change #ifdef to #if, etc.
1020
1021 * coop.c: fix various preprocessor usages of new public
1022 symbols to expect 0 or 1 values rather than 1 or undefined.
1023 i.e. change #ifdef to #if, etc.
1024
1025 * coop-threads.c: fix various preprocessor usages of new public
1026 symbols to expect 0 or 1 values rather than 1 or undefined.
1027 i.e. change #ifdef to #if, etc.
1028
1029 * coop-pthreads.c: fix various preprocessor usages of new public
1030 symbols to expect 0 or 1 values rather than 1 or undefined.
1031 i.e. change #ifdef to #if, etc.
1032
1033 * coop-defs.h: fix various preprocessor usages of new public
1034 symbols to expect 0 or 1 values rather than 1 or undefined.
1035 i.e. change #ifdef to #if, etc.
1036
1037 * convert.i.c: fix various preprocessor usages of new public
1038 symbols to expect 0 or 1 values rather than 1 or undefined.
1039 i.e. change #ifdef to #if, etc.
1040
1041 * continuations.c: fix various preprocessor usages of new public
1042 symbols to expect 0 or 1 values rather than 1 or undefined.
1043 i.e. change #ifdef to #if, etc.
1044
1045 * _scm.h: fix various preprocessor usages of new public symbols to
1046 expect 0 or 1 values rather than 1 or undefined. i.e. change
1047 #ifdef to #if, etc.
1048
1049 2003-03-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1050
1051 * init.c (scm_init_guile_1): Call scm_i_init_deprecated.
1052
1053 * deprecated.c, deprecated.h: New files, to collect deprecated
1054 things in one place.
1055 * Makefile.am: Added them in all the right places.
1056
1057 * Makefile.am (EXTRA_DIST): Added "scmconfig.h.top".
1058 (scmconfig.h): Get "scmconfig.h.top" from $(srcdir) so that VPATH
1059 builds work.
1060 (DOT_X_FILES): Removed "iselect.x".
1061 (DOT_DOC_FILES): Removed "iselect.doc".
1062
1063 2003-03-25 Rob Browning <rlb@defaultvalue.org>
1064
1065 * win32-socket.h: #include "libguile/__scm.h". Replace usage of
1066 HAVE_WINSOCK2_H with SCM_HAVE_WINSOCK2_H.
1067
1068 * win32-socket.c: #include <config.h> if HAVE_CONFIG_H.
1069
1070 * vports.c: #include <config.h> if HAVE_CONFIG_H.
1071
1072 * unif.c: #include <config.h> if HAVE_CONFIG_H. Replace usage of
1073 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1074
1075 * threads.h: replace usage of struct timespect with
1076 scm_t_timespec. Replace usage of USE_PTHREAD_THREADS with
1077 SCM_USE_PTHREAD_THREADS. Remove typedef for struct timespec in
1078 favor of scm_t_timespec from scmconfig.h.
1079
1080 * threads.c: move libguile/_scm.h include to the top so we pick up
1081 any critical defines like _GNU_SOURCE early. Replace usage of
1082 struct timespect with scm_t_timespec. Replace usage of
1083 STACK_GROWS_UP with SCM_STACK_GROWS_UP. Replace usage of
1084 USE_PTHREAD_THREADS with SCM_USE_PTHREAD_THREADS.
1085
1086 * threads-plugin.h: replace usage of struct timespect with
1087 scm_t_timespec.
1088
1089 * threads-plugin.c: #include <config.h> if HAVE_CONFIG_H. Replace
1090 usage of struct timespect with scm_t_timespec.
1091
1092 * tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
1093 HAVE_INTTYPES_H handling to scmconfig.h. #include
1094 "libguile/__scm.h". Rework handling for scm_t_bits,
1095 scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
1096 SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr,
1097 scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and
1098 SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to
1099 SCM_HAVE_ARRAYS.
1100
1101 * symbols.c: #include <config.h> if HAVE_CONFIG_H.
1102
1103 * struct.c: #include <config.h> if HAVE_CONFIG_H.
1104
1105 * strports.c: #include <config.h> if HAVE_CONFIG_H.
1106
1107 * strop.c: #include <config.h> if HAVE_CONFIG_H.
1108
1109 * stime.h: move handling of time related headers to scmconfig.h.
1110
1111 * stime.c: #include <config.h> if HAVE_CONFIG_H.
1112
1113 * stacks.c: replace usage of STACK_GROWS_UP with
1114 SCM_STACK_GROWS_UP.
1115
1116 * sort.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1117 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1118
1119 * socket.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1120 of uint32 and HAVE_UINT_32 with scm_t_int32.
1121
1122 * smob.c: #include <config.h> if HAVE_CONFIG_H.
1123
1124 * simpos.c: #include <config.h> if HAVE_CONFIG_H.
1125
1126 * script.c: #include <config.h> if HAVE_CONFIG_H.
1127
1128 * scmsigs.c: #include <config.h> if HAVE_CONFIG_H.
1129
1130 * scmconfig.h.top: new file -- preamble for scmconfig.h.
1131
1132 * rw.c: #include <config.h> if HAVE_CONFIG_H.
1133
1134 * regex-posix.c: #include <config.h> if HAVE_CONFIG_H.
1135
1136 * read.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1137
1138 * rdelim.c: #include <config.h> if HAVE_CONFIG_H.
1139
1140 * random.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1141 of LONG32, LONG64, SIZEOF_LONG, and HAVE_LONG_LONGS with
1142 scm_t_int32, scm_t_int64, and SCM_HAVE_T_INT64. Rename usage of
1143 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1144
1145 * ramap.c: replace usage of HAVE_LONG_LONGS with
1146 "SCM_SIZEOF_LONG_LONG != 0".
1147
1148 * putenv.c: #include <config.h> if HAVE_CONFIG_H. #include
1149 "libguile/scmconfig.h".
1150
1151 * pthread-threads.c: #include <config.h> if HAVE_CONFIG_H.
1152
1153 * print.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1154 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1155
1156 * posix.c: #include <config.h> if HAVE_CONFIG_H.
1157
1158 * ports.c: #include <config.h> if HAVE_CONFIG_H.
1159
1160 * objects.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1161
1162 * numbers.h: replace usage of HAVE_FLOATINGPOINT_H with
1163 SCM_HAVE_FLOATINGPOINT_H. Replace usage of HAVE_IEEEFP_H with
1164 SCM_HAVE_IEEEFP_H. Replace usage of HAVE_NAN_H with
1165 SCM_HAVE_NAN_H. Replace usage of STDC_HEADERS with
1166 SCM_HAVE_STDC_HEADERS. Replace usage of ptrdiff_t with
1167 scm_t_ptrdiff. Replace usage of HAVE_LONG_LONGS with
1168 "SCM_SIZEOF_LONG_LONG != 0".
1169
1170 * numbers.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1171 of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0". Replace
1172 usage of ptrdiff_t with scm_t_ptrdiff. Replace usage of
1173 SIZEOF_PTRDIFF_T with SCM_SIZEOF_SCM_T_PTRDIFF.
1174
1175 * num2integral.i.c: #include <config.h> if HAVE_CONFIG_H.
1176
1177 * null-threads.h: replace usage of struct timespect with
1178 scm_t_timespec.
1179
1180 * net_db.c: #include <config.h> if HAVE_CONFIG_H.
1181
1182 * mkstemp.c: #include <config.h> if HAVE_CONFIG_H. #include
1183 "libguile/__scm.h". Remove definition of gcc_uint64_t in favor of
1184 scm_t_uint64 and rename usages.
1185
1186 * mallocs.c: #include <config.h> if HAVE_CONFIG_H.
1187
1188 * load.c: #include <config.h> if HAVE_CONFIG_H.
1189
1190 * iselect.h: move handling of time related headers to scmconfig.h.
1191 Rename usage of HAVE_SYS_SELECT_H to SCM_HAVE_SYS_SELECT_H.
1192 Rename usage of HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Rename
1193 usage of USE_COOP_THREADS to SCM_USE_COOP_THREADS.
1194
1195 * iselect.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1196 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1197 USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1198
1199 * ioext.c: #include <config.h> if HAVE_CONFIG_H.
1200
1201 * inline.h: #include "libguile/__scm.h" at the top. Change code
1202 to use SCM_C_INLINE and SCM_INLINE_C_INCLUDINT_INLINE_H to decide
1203 what to do instead of creating a new public #define. Rename usage
1204 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1205 USE_NULL_THREADS to SCM_USE_NULL_THREADS. Rename usage of
1206 USE_COPT_THREADS to SCM_USE_COPT_THREADS.
1207
1208 * inline.c: rearrange handling -- now we just #define
1209 SCM_INLINE_C_INCLUDING_INLINE_H to 1 and #include
1210 "libguile/inline.h". scmconfig.h will define SCM_C_INLINE as
1211 appropriate, and we use that in inline.h along with the above
1212 define to determine how to respond.
1213
1214 * init.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1215 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1216
1217 * guile.c: #include <config.h> if HAVE_CONFIG_H.
1218
1219 * gh_data.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1220 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1221
1222 * gh.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1223
1224 * gen-scmconfig.h.in: new file -- see gen-scmconfig.c for details.
1225
1226 * gen-scmconfig.c: new file -- see comments in file for details.
1227
1228 * gdbinit.c: #include <config.h> if HAVE_CONFIG_H.
1229
1230 * gc_os_dep.c: #include <config.h> if HAVE_CONFIG_H. Replace
1231 usage of STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1232
1233 * gc.h: replace usage of SIZEOF_LONG with
1234 SCM_SIZEOF_UNSIGNED_LONG. Replace usage of USE_PTHREAD_THREADS
1235 with SCM_USE_PTHREAD_THREADS. Remove SCM_SIZEOF_LONG definition
1236 since we handle that in scmconfig.h now.
1237
1238 * gc.c: #include <config.h> if HAVE_CONFIG_H.
1239
1240 * gc-mark.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1241 of HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of
1242 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1243
1244 * gc-malloc.c: #include <config.h> if HAVE_CONFIG_H.
1245
1246 * gc-card.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1247 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1248
1249 * fports.c: #include <config.h> if HAVE_CONFIG_H.
1250
1251 * filesys.c: #include <config.h> if HAVE_CONFIG_H.
1252
1253 * feature.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1254 of USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1255
1256 * extensions.c: #include <config.h> if HAVE_CONFIG_H.
1257
1258 * evalext.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1259 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1260
1261 * eval.c: #include <config.h> if HAVE_CONFIG_H. #include
1262 "libguile/__scm.h" rather than scmconfig.h. Rename usage of
1263 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1264 with "SCM_SIZEOF_LONG_LONG != 0".
1265
1266 * error.c: #include <config.h> if HAVE_CONFIG_H.
1267
1268 * eq.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1269 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1270 with "SCM_SIZEOF_LONG_LONG != 0".
1271
1272 * deprecation.c: #include <config.h> if HAVE_CONFIG_H.
1273
1274 * coop.c: replace usage of struct timespect with scm_t_timespec.
1275 #include <config.h> if HAVE_CONFIG_H.
1276
1277 * coop-threads.c: #include "libguile/_scm.h" early. Replace
1278 usage of struct timespect with scm_t_timespec. Replace usage of
1279 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1280
1281 * coop-pthreads.c: #include "libguile/_scm.h" early. Replace
1282 usage of struct timespect with scm_t_timespec. Replace usage of
1283 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1284
1285 * coop-defs.h: move handling of time related headers to
1286 scmconfig.h. Add #include "libguile/__scm.h". Rename usage of
1287 HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Replace usage of struct
1288 timespect with scm_t_timespec.
1289
1290 * convert.i.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1291
1292 * convert.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1293
1294 * convert.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1295 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1296
1297 * continuations.c: move libguile/_scm.h include to the top so we
1298 pick up any critical defines like _GNU_SOURCE early.
1299
1300 * backtrace.c: #include <config.h> if HAVE_CONFIG_H.
1301
1302 * async.c: #include <config.h> if HAVE_CONFIG_H.
1303
1304 * alloca.c: #include <config.h> if HAVE_CONFIG_H.
1305
1306 * _scm.h: #include <config.h> if HAVE_CONFIG_H.
1307 Rename usage of USE_PTHREAD_THREADS to SCM_USE_PTHREAD_THREADS.
1308
1309 * __scm.h: move libguile/scmconfig.h include up to the top, so
1310 we're sure to pick up any critical defines like _GNU_SOURCE early.
1311 #include <limits.h> removed in favor of scmconfig.h inclusion when
1312 appropriate. STDC_HEADERS based inclusion of stdlib.h,
1313 sys/types.h, stddef.h, and sys/stdtypes.h removed in favor of
1314 scmconfig.h inclusion when appropriate. Various Win32 related
1315 definitions removed in favor of scmconfig.h inclusion when
1316 appropriate.
1317 (HAVE_UINTPTR_T): definition removed (see NEWS).
1318 (SIZEOF_PTRDIFF_T): definition removed (see NEWS).
1319 (HAVE_LONG_LONGS): definition removed (see NEWS).
1320 (HAVE_LONG_LONG): definition removed (see NEWS).
1321 (HAVE_PTRDIFF_T): definition removed (see NEWS).
1322
1323 * Makefile.am: scmconfig.h is now generated by building and
1324 running gen-scmconfig.h and capturing its output. gen-scmconfig
1325 uses config.h and the configure.in generated gen-scmconfig.h to
1326 decide what to output. See gen-scmconfig.c for details.
1327 (noinst_PROGRAMS): add gen-scmconfig.
1328 (gen_scmconfig_SOURCES): new variable.
1329 (gen-scmconfig.$(OBJEXT)): new target - be careful to handle
1330 cross-compiling right.
1331 (scmconfig.h): build scmconfig.h from gen-scmconfig's output.
1332 (BUILT_SOURCES): add scmconfig.h.
1333
1334 2003-03-19 Marius Vollmer <mvo@zagadka.de>
1335
1336 * gc_os_dep.c: Added defines for sparc-unknown-netbsdelf1.5 from
1337 Adrian Bunk. Thanks!
1338
1339 2003-03-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1340
1341 * goops.c (make_class_from_template): New fourth arg:
1342 applicablep.
1343 (scm_class_extended_generic_with_setter, scm_class_self): Fixed
1344 cpls.
1345
1346 * smob.c (scm_set_smob_apply): Call scm_i_inherit_applicable.
1347
1348 * goops.c, objects.c, objects.h (scm_make_extended_class): New
1349 second arg: applicablep.
1350 (scm_i_inherit_applicable): New function.
1351
1352 * goops.c, goops.h (scm_class_applicable,
1353 scm_class_extended_accessor): New classes.
1354
1355 2003-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1356
1357 * procs.c (scm_procedure_documentation): Removed redundant
1358 SCM_NIMP test and replaced other calls to SCM_IMP by more explicit
1359 predicates.
1360
1361 2003-03-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1362
1363 * list.c, list.h (scm_filter, scm_filter_x): New functions.
1364
1365 * modules.c (scm_module_import_interface): New function.
1366
1367 * goops.c, goops.h (scm_class_accessor_method): Renamed from
1368 scm_class_accessor.
1369 (scm_class_accessor): New class.
1370
1371 2003-03-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1372
1373 * goops.c (scm_primitive_generic_generic): Enable primitive
1374 generic if not enabled.
1375 (scm_sys_goops_loaded): Setup unextended primitive generics.
1376
1377 * goops.c, goops.h (scm_c_extend_primitive_generic): New function.
1378
1379 * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
1380 snarf macros.
1381
1382 * numbers.c (scm_abs): Use SCM_PRIMITIVE_GENERIC. (This is only a
1383 testing example. All uses of SCM_GPROC should be converted.)
1384
1385 * procprop.c (scm_stand_in_scm_proc): Use scm_assq instead of
1386 scm_assoc.
1387
1388 * eq.c (scm_equal_p): Turned into a primitive generic.
1389
1390 2003-02-27 Rob Browning <rlb@defaultvalue.org>
1391
1392 * Makefile.am (scmconfig.h): new target -- generate file from
1393 ../config.h.
1394 (modinclude_HEADERS): remove version.h.
1395 (nodist_modinclude_HEADERS): add version.h.
1396
1397 2003-02-24 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1398
1399 This fixes a serious GC bug, introduced during the latest
1400 reorganization of the GC, which disabled freeing of structs and
1401 GOOPS objects:
1402
1403 * struct.c (scm_struct_prehistory): Init scm_i_structs_to_free to
1404 SCM_EOL.
1405 (scm_struct_prehistory): Move scm_free_structs to
1406 scm_before_mark_c_hook.
1407
1408 * gc-card.c (sweep_card): Check that we haven't swept structs on
1409 this card before. That can happen if scm_i_sweep_all_segments has
1410 been called from some other place than scm_igc.
1411
1412 2003-02-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1413
1414 * environments.c (DEFAULT_OBARRAY_SIZE): Changed from 137 to 31
1415 (since hash tables now adapt their size).
1416
1417 * modules.c (scm_modules_prehistory): Changed from 2001 to 1533
1418 (current number of prehistory bindings; hashtable code will select
1419 a prime which is greater than this value).
1420
1421 * symbols.c (scm_symbols_prehistory): Changed from 1009 to 2139
1422 (current number of initial symbols).
1423
1424 * properties.c (scm_init_properties): Don't specify size of
1425 scm_properties_whash.
1426
1427 * objprop.c (scm_init_objprop): Don't specify size of
1428 scm_object_whash.
1429
1430 * keywords.c (scm_init_keywords): Don't specify a hash table size.
1431
1432 * hooks.c (scm_c_hook_add): Fixed bug in append mode.
1433
1434 The following changes introduce the use of resizable hash tables
1435 throughout Guile. It also renames the old *-hash-table* functions
1436 to *-alist-vector* and places them, together with the rest of the
1437 weak vector support, in the module (ice-9 weak-vector). We should
1438 probably introduce a new, better, API for weak references, for
1439 example "weak pairs" a la MIT-Scheme. (In Chez scheme, they even
1440 look like and are used like ordinary pairs.)
1441
1442 * environments.c (obarray_enter, obarray_retrieve, obarray_remove,
1443 leaf_environment_fold, obarray_remove_all): Use hashtable
1444 accessors.
1445
1446 * gc.c (scm_init_storage): Moved hook initialization to
1447 scm_storage_prehistory.
1448 (scm_storage_prehistory): New function.
1449 (scm_igc): Added commentary about placement of
1450 scm_after_sweep_c_hook.
1451
1452 * gc-mark.c (scm_mark_all): Use hashtable accessors.
1453 (scm_gc_mark_dependencies): Use SCM_WVECT_WEAK_KEY_P and
1454 SCM_WVECT_WEAK_VALUE_P.
1455
1456 * hashtab.c, hashtab.h (scm_hash_for_each, scm_hash_map): New
1457 functions.
1458 (scm_vector_to_hash_table, scm_c_make_resizing_hash_table):
1459 Removed.
1460 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
1461 scm_make_doubly_weak_hash_table): Moved here from weaks.c.
1462
1463 * init.c (scm_init_guile_1): Removed call to scm_init_weaks; Added
1464 calls to scm_storage_prehistory and scm_hashtab_prehistory.
1465
1466 * modules.c (module-reverse-lookup): Use hashtable accessors.
1467
1468 * symbols.c, symbols.h (scm_i_hash_symbol): New function.
1469
1470 * weaks.c, weaks.h (scm_make_weak_key_alist_vector,
1471 scm_make_weak_value_alist_vector,
1472 scm_make_doubly_weak_alist_vector): New functions.
1473
1474 * weaks.c (scm_init_weaks_builtins): New function.
1475
1476 * weaks.h (SCM_WVECTF_WEAK_KEY, SCM_WVECTF_WEAK_VALUE,
1477 SCM_WVECTF_NOSCAN, SCM_WVECT_WEAK_KEY_P, SCM_WVECT_WEAK_VALUE_P,
1478 SCM_WVECT_NOSCAN_P): New macros.
1479
1480 * weaks.c (scm_scan_weak_vectors): Use SCM_WVECT_WEAK_KEY_P
1481 and SCM_WVECT_WEAK_VALUE_P.
1482
1483 * weaks.c, weaks.h (scm_i_allocate_weak_vector): Renamed from
1484 allocate_weak_vector and exported.
1485
1486 2003-02-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1487
1488 * hashtab.c: Undid thread safety. (We decided that it's better to
1489 let the user explicitly protect the tables (or not) according what
1490 is suitable for the application.)
1491
1492 2003-02-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1493
1494 * hashtab.c (scm_hash_fn_remove_x, scm_internal_hash_fold): Made
1495 thread safe and handle resizing tables.
1496 (scm_ihashx, scm_sloppy_assx, scm_delx_x): Removed
1497 SCM_DEFER/ALLOW_INTS.
1498
1499 2003-02-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1500
1501 * hashtab.c (scm_vector_to_hash_table,
1502 scm_c_make_resizing_hash_table, scm_make_hash_table): New
1503 functions.
1504 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x): Made thread
1505 safe and handle resizing tables.
1506
1507 * weaks.c (scm_make_weak_key_hash_table,
1508 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1509 Size argument made optional. Return resizable table if not
1510 specified.
1511
1512 2003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1513
1514 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
1515 Fixed formals tests for closures. (Thanks to Kevin Ryde.)
1516
1517 2003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1518
1519 * debug.c (scm_procedure_source): Handle all objects for which
1520 procedure? is #t. (Thanks to Bill Schottstaedt.)
1521
1522 2003-01-23 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1523
1524 * futures.c (mark_futures): Don't need to mark data of recycled
1525 futures.
1526 (scan_futures, cleanup_undead): Be smarter about marking
1527 futures---avoid unnecessary passes through future lists.
1528
1529 * futures.h, futures.c: New files; Introduced recycling of
1530 futures. For fine-grained threading this lifts performance to
1531 another level. We can now use parallelization in inner loops of
1532 Guile programs without impossible overhead.
1533
1534 * threads.h, threads.c: Moved futures to their own file.
1535
1536 * Makefile.am (libguile_la_SOURCES): Added futures.c.
1537 (DOT_X_FILES): Added futures.x.
1538 (DOT_DOC_FILES): Added futures.doc.
1539 (modinclude_HEADERS): Added futures.h.
1540
1541 * threads.c, threads.h (scm_i_create_thread): Renamed from
1542 create_thread and made global.
1543
1544 * futures.c (scm_make_future): New procedure.
1545
1546 * eval.c: #include "libguile/futures.h".
1547
1548 * init.c: #include "futures.h"
1549 (scm_init_guile_1): Call scm_init_futures.
1550
1551 * stime.c (SCM_TIME_UNITS_PER_SECOND): Renamed from CLKTCK.
1552
1553 * stime.h (SCM_TIME_UNITS_PER_SECOND): Definition moved here.
1554
1555 * eval.c, eval.h (scm_trampoline_0, scm_i_call_closure_0): New
1556 functions.
1557
1558 * eval.c (scm_trampoline_1): Fixed arguments test for closures.
1559
1560 2003-01-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1561
1562 * threads.c (create_thread): Don't unwind dynwind chain of parent
1563 thread before creation. Just start the new thread with an empty
1564 dynwind chain.
1565
1566 2003-01-20 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1567
1568 * evalext.c, evalext.h (scm_self_evaluating_p): New function.
1569
1570 2003-01-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1571
1572 * threads.c (scm_timed_wait_condition_variable): Support timed
1573 waiting also for simple condition variables.
1574
1575 * goops.c (TEST_CHANGE_CLASS): Use scm_change_object_class instead
1576 of calling the procedure change-object-class.
1577
1578 2003-01-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1579
1580 * ramap.c (scm_ramapc): Typo in error message.
1581
1582 2003-01-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1583
1584 * goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
1585 slots with instance allocation.
1586
1587 * goops.c, goops.h (scm_class_extended_generic_with_setter): New
1588 class.
1589 (scm_compute_applicable_methods): Use scm_generic_function_methods.
1590
1591 * goops.c (scm_generic_function_methods): Support extended
1592 generic functions.
1593
1594 2002-12-29 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1595
1596 * eval.c (unmemocopy): Bugfix: scm_sym_delay --> scm_sym_future.
1597 Thanks to Neil for pointing this out!
1598
1599 2002-12-29 Neil Jerram <neil@ossau.uklinux.net>
1600
1601 * lang.h: Remove declarations matching definitions removed from
1602 lang.c (just below).
1603
1604 2002-12-28 Neil Jerram <neil@ossau.uklinux.net>
1605
1606 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
1607 scm_m_while, scm_nil_eq): Remove definitions that were superfluous
1608 and already commented out.
1609
1610 * read.h (scm_lreadparen), read.c (scm_lreadr, scm_read_token,
1611 scm_lreadparen): Support reading vectors with Elisp syntax if
1612 SCM_ELISP_READ_EXTENSIONS is defined. (SCM_ELISP_READ_EXTENSIONS
1613 is not currently defined, and there isn't even a configure switch
1614 to enable it yet.)
1615
1616 2002-12-26 Marius Vollmer <mvo@zagadka.ping.de>
1617
1618 * Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
1619 builds work.
1620 (EXTRA_DIST): Added version.h.in.
1621
1622 2002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1623
1624 This change makes it possible for one thread to do lazy sweeping
1625 while other threads are running. Now only the mark phase need to
1626 have all threads asleep. We should look further into this issue.
1627 Presently, I've put the locking of scm_i_sweep_mutex at
1628 "conservative" places due to my current lack of knowledge about
1629 the garbage collector. Please feel free to restrict these regions
1630 further to allow for maximal parallelism!
1631
1632 * gc.c, gc.h (scm_i_sweep_mutex): New mutex.
1633
1634 * gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
1635 scm_gc_register_collectable_memory): Substitute locking of
1636 scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
1637 (scm_igc): Lock sweep mutex here instead of in callers; Calls to
1638 scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
1639 the single-thread section (which now only contains the mark
1640 phase).
1641 (scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
1642 Removed SCM_DEFER/ALLOW_INTS. Simply call scm_igc directly.
1643
1644 * threads.c (gc_section_mutex): Removed.
1645
1646 2002-12-19 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1647
1648 * threads.c (create_thread): Clear parent field in root state in
1649 order not to unnecessarily remember dead threads.
1650
1651 * eval.c (call_subr2o_1, call_lsubr2_2): New functions.
1652 (scm_trampoline_1, scm_trampoline_2): Use them.
1653
1654 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1655
1656 Partial introduction of real plugin interface.
1657
1658 * Makefile.am (modinclude_HEADERS): Added threads-plugin.h.
1659 (EXTRA_DIST): Added threads-plugin.c.
1660
1661 * threads-plugin.h, threads-plugin.c: New files.
1662
1663 * threads.h: #include "libguile/threads-plugin.h".
1664
1665 * threads.c: #include "libguile/threads-plugin.c".
1666
1667 * pthread-threads.c: Temporarily remove debugging functions.
1668
1669 * threads.c, threads.h (scm_yield): Added back.
1670
1671 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1672
1673 * threads.c (really_launch): Detach before unlocking
1674 thread_admin_mutex in order not to risk being joined.
1675 (scm_i_thread_put_to_sleep, scm_i_thread_wake_up): Keep
1676 thread_admin_mutex locked during GC.
1677
1678 * pthread-threads.c, pthread-threads.h: Improvements to debugging
1679 functions.
1680
1681 2002-12-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1682
1683 * pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
1684 support for debugging mutex operations.
1685
1686 * threads.c (scm_thread): Removed filed joining_threads.
1687 (thread_print): Print thread number as well as address of thread
1688 structure.
1689 (scm_join_thread): Bugfix.
1690 (scm_lock_mutex, scm_try_mutex, scm_unlock_mutex,
1691 scm_timed_wait_condition_variable, scm_signal_condition_variable,
1692 scm_broadcast_condition_variable): Use the low-level API.
1693 (scm_all_threads): Return copy of thread list (to prevent
1694 unintended destruction).
1695 (scm_threads_prehistory): Initialize heap_mutex of fake thread.
1696
1697 * pthread-threads.c, pthread-threads.h, threads.c: Fixes to
1698 pthread "native" recursive mutex support.
1699
1700 2002-12-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1701
1702 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): New definitions.
1703 Simply lock a thread C API recursive mutex.
1704 (SCM_NONREC_CRITICAL_SECTION_START,
1705 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1706 SCM_REC_CRITICAL_SECTION_END): Removed.
1707
1708 * eval.c: Replaced SOURCE_SECTION_START / SOURCE_SECTION_END with
1709 direct calls to scm_rec_mutex_lock / unlock around the three calls
1710 to scm_m_expand_body.
1711
1712 * eval.c, eval.h (promise_free): New function.
1713 (scm_force): Rewritten; Now thread-safe; Removed
1714 SCM_DEFER/ALLOW_INTS.
1715
1716 * pthread-threads.h: Added partially implemented plugin interface
1717 for recursive mutexes. These are, for now, only intended to be
1718 used internally within the Guile implementation.
1719
1720 * pthread-threads.c: New file.
1721
1722 * threads.c: Conditionally #include "pthread-threads.c".
1723
1724 * eval.c, eval.h (scm_makprom, scm_force): Rewritten to be
1725 thread-safe;
1726
1727 * snarf.h (SCM_MUTEX, SCM_GLOBAL_MUTEX, SCM_REC_MUTEX,
1728 SCM_GLOBAL_REC_MUTEX): New macros.
1729
1730 * eval.c, threads.c, threads.h, snarf.h: Rewrote critical section
1731 macros---use mutexes instead.
1732
1733 * tags.h (SCM_IM_FUTURE): New tag.
1734
1735 * eval.c (scm_m_future): New primitive macro.
1736 (SCM_CEVAL): Support futures.
1737 (unmemocopy): Support unmemoization of futures.
1738
1739 * print.c (scm_isymnames): Name of future isym.
1740
1741 * version.c: Unmade some changes to my private copy that got
1742 committed by mistake.
1743
1744 2002-12-11 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1745
1746 * gc-malloc.c, gc.h, init.c: Reverted gc-malloc change of
1747 2002-12-10.
1748
1749 * gc.c (scm_igc): Don't call scm_i_thread_invalidate_freelists.
1750
1751 * gc.c (scm_gc_sweep): Call it here instead, which is a more
1752 logical place.
1753
1754 * threads.c (create_thread): Remember root object until the handle
1755 of the new thread is on all_threads list.
1756
1757 * root.c (scm_make_root): Moved copying of fluids until after
1758 creation of root handle so that the fluids are GC protected. Also
1759 removed the critical section.
1760
1761 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1762
1763 * gc-malloc.c, gc.h (scm_gc_malloc_prehistory): New function.
1764
1765 * gc-malloc.c (malloc_mutex): New mutex.
1766 (scm_gc_malloc_prehistory): Initialize it.
1767 (scm_realloc): Serialize call to realloc
1768 (scm_calloc): Same for calloc.
1769 Thanks to Wolfgang Jaehrling!
1770 (Now we have to make sure all calls to malloc/realloc are made
1771 through scm_malloc.)
1772
1773 * init.c (scm_init_guile_1): Call scm_gc_malloc_prehistory.
1774
1775 * threads.c (really_launch): Release heap (to prevent deadlock).
1776 (create_thread): Release heap before locking thread admin mutex.
1777
1778 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1779
1780 * threads.c (scm_i_thread_invalidate_freelists): New
1781 function.
1782
1783 * gc.c (scm_igc): Call scm_i_thread_invalidate_freelists.
1784
1785 * modules.c (scm_export): Inserted a return statement.
1786
1787 2002-12-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1788
1789 * modules.c (scm_export): new function
1790
1791 * gc-card.c: add a note about malloc()/free() overhead.
1792
1793 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1794
1795 * Makefile.am (c-tokenize.$(OBJEXT)): Don't look for c-tokenize.c
1796 in srcdir.
1797
1798 2002-12-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1799
1800 These changes remove scm_ints_disabled (which hasn't has any
1801 effect in Guile for quite some time).
1802
1803 * async.c, error.h (scm_ints_disabled): Removed.
1804
1805 * gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
1806 root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
1807 SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
1808 (old_ints): Removed.
1809
1810 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
1811 critical section.
1812 (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
1813 SCM_ALLOW_INTS.
1814
1815 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1816
1817 * threads.c (scm_mutex_lock, scm_cond_wait, scm_cond_timedwait):
1818 Removed accidental #if 0 around these functions.
1819
1820 These changes are the start of support for preemptive
1821 multithreading. Marius and I have agreed that I commit this code
1822 into the repository although it isn't thoroughly tested and surely
1823 introduces many bugs. The bugs should only be exposed when using
1824 threads, though. Signalling and error handling for threads is
1825 very likely broken. Work on making the implementation cleaner and
1826 more efficient is needed.
1827
1828 * __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
1829 (SCM_NONREC_CRITICAL_SECTION_START,
1830 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1831 SCM_REC_CRITICAL_SECTION_END): New macros.
1832 (SCM_CRITICAL_SECTION_START/END): Defined here.
1833
1834 * eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
1835 the three calls to scm_m_expand_body.
1836
1837 * gc.h: #include "libguile/pthread-threads.h";
1838 (SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
1839
1840 * gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
1841 scm_t_key;
1842
1843 * gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
1844 access.
1845
1846 * gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
1847
1848 * gc-freelist.c, threads.c (really_launch): Use
1849 SCM_FREELIST_CREATE.
1850
1851 * gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
1852
1853 * gc.c (scm_i_expensive_validation_check, scm_gc,
1854 scm_gc_for_newcell): Put threads to sleep before doing GC-related
1855 heap administration so that those pieces of code are executed
1856 single-threaded. We might consider rewriting these code sections
1857 in terms of a "call_gc_code_singly_threaded" construct instead of
1858 calling the pair of scm_i_thread_put_to_sleep () and
1859 scm_i_thread_wake_up (). Also, we would want to have as many of
1860 these sections eleminated.
1861
1862 * init.c (scm_init_guile_1): Call scm_threads_prehistory.
1863
1864 * inline.h: #include "libguile/threads.h"
1865
1866 * pthread-threads.h: Macros now conform more closely to the
1867 pthreads interface. Some of them now take a second argument.
1868
1869 * threads.c, threads.h: Many changes.
1870
1871 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1872
1873 * Makefile.am (version.h): Changed $^ --> $< in rule for
1874 version.h.
1875
1876 2002-12-08 Rob Browning <rlb@defaultvalue.org>
1877
1878 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
1879 (SCM_MINOR_VERSION): use @--@ substitution now.
1880 (SCM_MICRO_VERSION): use @--@ substitution now.
1881 (scm_effective_version): new function prototype.
1882
1883 * version.c (scm_effective_version): new function, also add
1884 effective-version.
1885
1886 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
1887 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
1888 SCM_LIBRARY_DIR.
1889 (version.h): generate this here rather than configure.in. This
1890 approach tracks source edits better (i.e. more immediately).
1891 Might be worth considering for other .in files too.
1892
1893 2002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
1894
1895 Reorganized thread package selection. A thread package now only
1896 implements a small set of pthread like functions and Guile
1897 implements the rest on top of that. Guile's implementation is
1898 what the "coop-pthreads" package has been previously. Support for
1899 "coop" threads has been removed until I get time to add it again.
1900
1901 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
1902 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
1903 null-threads.c, coop-pthreads.c.
1904 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
1905 pthread-threads.h.
1906
1907 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
1908
1909 * threads.h: Do not include "libguile/coop-defs.h". Include
1910 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
1911 (previously deprecated) C level thread API prototypes. They are
1912 now in the thread package specific headers, "null-threads.h" and
1913 "pthread-threads.h".
1914 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
1915 New.
1916 (scm_threads_init): Removed.
1917 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
1918 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
1919 SCM_I_THREAD_SWITCH_COUNT): Define here.
1920 (scm_single_thread_p): Removed.
1921 (scm_call_with_new_thread): Take two args directly instead of list
1922 of two args.
1923 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
1924 SCM_SET_THREAD_LOCAL_DATA): Define here.
1925
1926 * threads.c: Merged with "coop-pthreads.c".
1927
1928 * null-threads.h: Implement pthread-like API as a set of macros.
1929
1930 * pthread-threads.h: New, implement pthread-like API by deferring
1931 to pthread itself.
1932
1933 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
1934 has been lost in the reorganization.
1935
1936 2002-12-01 Mikael Djurfeldt <mdj@linnaeus>
1937
1938 The following change makes it possible to move procedure
1939 application dispatch outside inner loops. The motivation was
1940 clean implementation of efficient replacements of R5RS primitives
1941 in SRFI-1.
1942
1943 The semantics is clear: scm_trampoline_N returns an optimized
1944 version of scm_call_N (or NULL if the procedure isn't applicable
1945 on N args).
1946
1947 Applying the optimization to map and for-each increases efficiency
1948 noticeably. For example, (map abs ls) is 8 times faster than
1949 before.
1950
1951 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
1952
1953 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
1954
1955 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
1956 (map, for-each): Handle also application on two args as a special
1957 case; Use trampolines.
1958
1959 Other changes:
1960
1961 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
1962 (subr2oless): Removed.
1963 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
1964 vector GC protected.
1965
1966 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
1967 scm_out_of_range.
1968
1969 2002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1970
1971 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
1972
1973 2002-11-17 Mikael Djurfeldt <mdj@linnaeus>
1974
1975 * debug.c (scm_make_iloc): Added missing "return".
1976
1977 2002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
1978
1979 * strports.c (scm_eval_string_in_module): Validate second arg to
1980 be a module. Thanks to Arno Peters!
1981
1982 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1983
1984 * .cvsignore: remove goops.c
1985
1986 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1987
1988 * modules.c (scm_env_top_level, scm_lookup_closure_module,
1989 module_variable, scm_module_lookup_closure,
1990 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
1991 scm_system_module_env_p): Don't compare SCM values with C
1992 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
1993 over SCM_NFALSEP.
1994
1995 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1996
1997 * eval.h (SCM_MAKE_ILOC): New macro.
1998
1999 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
2000 the iloc bitpattern here.
2001
2002 2002-11-14 Mikael Djurfeldt <mdj@linnaeus>
2003
2004 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
2005 part of the API, otherwise it's difficult to write Guile
2006 extensions using non-blocking I/O => moved #include
2007 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
2008
2009 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
2010 s_unlock_mutex.
2011
2012 2002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
2013
2014 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
2015 are defined in configure.in.
2016
2017 * threads.c: Removed SCM_API from function definitions. SCM_API
2018 is only for declarations.
2019
2020 2002-11-07 Mikael Djurfeldt <mdj@linnaeus>
2021
2022 * coop-pthreads.h: Added support for thread specific data to the
2023 generic C API for the coop-pthreads case.
2024
2025 * threads.c, threads.h (scm_cond_init): Undo unintentional API
2026 change.
2027 (scm_cond_broadcast): Added missing function.
2028
2029 2002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2030
2031 * coop.c (coop_next_runnable_thread): Removed, wich should have
2032 happened when GUILE_ISELECT was hard-wired.
2033
2034 2002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
2035
2036 * Makefile.am (libguile_la_SOURCES): Added threads.c
2037 (DOT_DOC_FILES): Added threads.doc.
2038 (DOT_X_FILES): Added threads.x.
2039 (EXTRA_libguile_la_SOURCES): Removed threads.c.
2040 (noinst_HEADERS): Added coop-pthreads.c.
2041 (modinclude_HEADERS): Added coop-pthreads.h.
2042
2043 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
2044 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
2045
2046 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
2047 Thanks to Bill Schottstaedt!
2048
2049 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
2050
2051 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
2052 SCM_COPT_THREADS is defined.
2053 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
2054 is defined.
2055
2056 * coop-pthreads.c: Some harmless renamings of internal stuff.
2057 (create_thread): New, generalized version of
2058 scm_call_with_new_thread.
2059 (scm_call_with_new_thread): Use it.
2060 (scm_spawn_thread): New, use create_thread.
2061
2062 2002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
2063
2064 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
2065 start testing it now.
2066
2067 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
2068 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
2069 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
2070 is defined.
2071
2072 2002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
2073
2074 * scmsigs.c (signal_cell_handlers, install_handler_data,
2075 scm_delq_spine_x, really_install_handler, install_handler): New
2076 scheme for triggering signal handlers, to simplify take_signal.
2077 (take_signal): Simplified, to avoid race conditions.
2078 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
2079 hasn't exited yet.
2080
2081 * async.c (scm_async_click): Reset pending_asyncs, handle
2082 signal_asyncs. Don't set cdr of a non-signal async to #f.
2083 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
2084 always. Set pending_asyncs.
2085 (scm_system_async_mark_for_thread): Check that thread has not
2086 exited.
2087 (scm_unmask_signals, decrease_block): Call scm_async_click after
2088 block_asyncs becomes zero.
2089
2090 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
2091 active_asyncs.
2092
2093 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
2094 fields.
2095 * root.c (root_mark): Mark them.
2096 (make_root): Initialize them.
2097
2098 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
2099 USE_COOP_THREADS.
2100 (scm_internal_select): Define one version for USE_COOP_THREADS and
2101 one for USE_NULL_THREADS.
2102 (scm_init_iselect): Likewise.
2103
2104 * inline.h (scm_cell, scm_double_cell): Also allow
2105 USE_COPT_THREADS to not protect the slot initializers.
2106
2107 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
2108 because threads need to be initialized before the stack, but
2109 gsubrs such as scm_timed_condition_variable_wait can only be
2110 created later.
2111
2112 * threads.h: Include "coop-pthreads.h" when requested.
2113 (scm_threads_make_mutex, scm_threads_lock_mutex,
2114 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
2115 not implemented anyway.
2116 (scm_init_thread_procs, scm_try_mutex,
2117 scm_timed_condition_variable_wait,
2118 scm_broadcast_condition_variable, scm_c_thread_exited_p,
2119 scm_thread_exited_p): New prototypes.
2120 (struct timespec): Define if not already defined.
2121 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2122 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2123 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2124 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
2125 deprecated.
2126
2127 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
2128 requested.
2129 (scm_thread_exited_p): New.
2130 (scm_try_mutex, scm_broadcast_condition_variable): Newly
2131 registered procedures.
2132 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
2133 Use the latter as the procedure for "wait-condition-variable",
2134 thus offering a optional timeout parameter to Scheme.
2135 (scm_wait_condition_variable): Implement in terms of
2136 scm_timed_wait_condition_variable.
2137 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2138 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
2139 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2140 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
2141 scm_make_mutex, etc, and deprecate.
2142 (scm_init_threads): Do not create smobs, leave this to
2143 scm_threads_init. Do not include "threads.x" file.
2144 (scm_init_thread_procs): New, include "threads.x" here.
2145
2146 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
2147 scm_null_mutex_lock, scm_null_mutex_unlock,
2148 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
2149 scm_null_condvar_wait, scm_null_condvar_signal,
2150 scm_null_condvar_destroy): Removed.
2151 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
2152 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
2153 scm_cond_destory): Do not define, they are now deprecated and
2154 handled by threads.{h,c}.
2155
2156 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
2157 (scm_threads_init): Create smobs here, using the appropriate
2158 sizes.
2159 (block): Removed, now unused.
2160 (scm_c_thread_exited_p): New.
2161 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
2162 scm_null_mutex_destroy, scm_null_condvar_init,
2163 scm_null_condvar_wait, scm_null_condvar_signal,
2164 scm_null_condvar_destroy): Removed and updated users to do their
2165 task directly.
2166 (scm_try_mutex, timeval_subtract,
2167 scm_timed_wait_condition_variable,
2168 scm_broadcast_condition_variable): New.
2169 (scm_wait_condition_variable): Removed.
2170
2171 * coop-defs.h (coop_m): Added 'level' field.
2172 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2173 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2174 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2175 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
2176 define.
2177 (coop_condition_variable_broadcast): New.
2178
2179 * coop-threads.c (scm_threads_init): Create smobs here, using the
2180 appropriate sizes.
2181 (scm_c_thread_exited_p, scm_try_mutex,
2182 scm_timed_wait_condition_variable,
2183 scm_broadcast_condition_variable): New.
2184 (scm_wait_condition_variable): Removed.
2185
2186 * coop.c (coop_new_mutex_init): Initialize level.
2187 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
2188 level.
2189 (coop_condition_variable_signal): Renamed to
2190 coop_condition_variable_broadcast and reimplemented in terms of
2191 that. Thus...
2192 (coop_condition_variable_broadcast): New.
2193
2194 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
2195
2196 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
2197
2198 2002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
2199
2200 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
2201 of system headers.
2202
2203 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
2204 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
2205 give better error messages. Thanks to Bill Schottstaedt!
2206
2207 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2208
2209 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
2210 scm_definedp to scm_defined_p and deprecated scm_definedp.
2211
2212 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2213
2214 * async.h, async.c (scm_system_async): Fixed deprecation to work
2215 correctly when deprecated features are excluded.
2216
2217 2002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2218
2219 * async.c (scm_system_async_mark_for_thread): Validate thread
2220 argument.
2221
2222 * coop-threads.c (scm_i_thread_root): Do not validate argument.
2223
2224 * feature.c (scm_init_feature): Don't add 'threads' for
2225 USE_NULL_THREADS.
2226
2227 * inline.h (scm_cell, scm_double_cell): Also allow
2228 USE_NULL_THREADS to not protect the slot initializers.
2229
2230 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
2231 "USE_THREAD".
2232
2233 * Makefile.am (noinst_HEADERS): Added null-threads.c.
2234 (modinclude_HEADERS): Added null-threads.h.
2235
2236 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
2237 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
2238 (scm_init_threads): Use generic type names scm_t_mutex and
2239 scm_t_cond instead of coop_m and coop_c.
2240
2241 * null-threads.c, null-threads.h: New files.
2242
2243 2002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
2244
2245 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
2246 This is to support makes that know about "$<" only in pattern
2247 rules, like Sun's make.
2248
2249 2002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
2250
2251 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
2252 substitution. Thanks to David Allouche!
2253
2254 2002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
2255
2256 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
2257 !SCM_ENABLE_DEPRECATED.
2258
2259 2002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2260
2261 * async.c (scm_system_async_mark_for_thread): Only call
2262 scm_i_thread_root when USE_THREADS is defined. Use scm_root
2263 otherwise.
2264
2265 * scmsigs.c (take_signal): Only call scm_i_thread_root when
2266 USE_THREADS is defined. Use scm_root otherwise.
2267 (scm_sigaction_for_thread): Ignore THREAD argument when
2268 USE_THREADS is not defined. Also, move THREAD argument defaulting
2269 out of HAVE_SIGACTION section, which was a bug.
2270
2271 2002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2272
2273 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
2274 signal_handlers, not the closure that is used as the async.
2275 The closure is stored in signal_handler_cells, as previously.
2276
2277 2002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
2278
2279 * root.h (scm_root_state): Added 'block_async' slot.
2280 (scm_active_asyncs): Removed abbrev.
2281 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
2282
2283 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
2284 abbrev.
2285
2286 * async.h (scm_call_with_blocked_asyncs,
2287 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
2288 scm_c_call_with_unblocked_asyncs): New prototypes.
2289 (scm_mask_signals, scm_unmask_signals): Deprecated.
2290 (scm_mask_ints): Turned into a macro.
2291 * async.c (scm_mask_ints): Removed.
2292 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
2293 this should not be necessary.
2294 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
2295 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
2296 deprecation warning and check for errornous use. Set block_asyncs
2297 instead of scm_mask_ints.
2298 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
2299 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
2300 scm_c_call_with_unblocked_asyncs): New.
2301
2302 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
2303 Asyncs are enabled by default.
2304
2305 2002-10-09 Neil Jerram <neil@ossau.uklinux.net>
2306
2307 * vports.c (scm_make_soft_port): Allow vector argument to carry a
2308 6th element: an input waiting thunk.
2309 (sf_input_waiting): New.
2310
2311 2002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
2312
2313 * root.c (root_mark): Mark active_asyncs slot.
2314
2315 * async.c (scm_async_click): Set the cdr of a executed handler
2316 cell to SCM_BOOL_F, not SCM_EOL.
2317 (scm_i_queue_async_cell): Queue the cell at the end of the list,
2318 and only if the handler procedure is not already present.
2319 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
2320 with SCM_BOOL_F.
2321 * scmsigs.c (scm_sigaction_for_thread): Likewise.
2322
2323 2002-10-04 Rob Browning <rlb@defaultvalue.org>
2324
2325 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
2326
2327 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
2328 scm_lt_dlopenext, and scm_lt_dlerror.
2329 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
2330 and scm_lt_dlerror.
2331 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
2332 and scm_lt_dlerror.
2333 (sysdep_dynl_init): switch to scm_lt_dlinit();
2334
2335 * Makefile.am (libguile_la_LIBADD): switch to use
2336 libguile-ltdl.la.
2337
2338 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
2339
2340 2002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
2341
2342 * scmsigs.h (scm_sigaction_for_thread): New prototype.
2343 * scmsigs.c (got_signal): Removed.
2344 (signal_handler_cells, signal_handler_threads): New.
2345 (take_signal): Queue the cell of the signal for the specified
2346 thread. Reset the signal handler on systems that don't have
2347 sigaction.
2348 (sys_deliver_signals): Removed.
2349 (close_1): New.
2350 (scm_sigaction_for_thread): Renamed from scm_sigaction and
2351 extended to also set the thread of a signal and allocate a cell
2352 for it. Keep the Scheme name "sigaction". Check that signum is
2353 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
2354 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
2355 (scm_init_scmsigs): Allocate signal_handler_cells and
2356 signal_handler_threads vectors.
2357
2358 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
2359 that system asnycs and user asyncs are separated. Reimplemented
2360 system asyncs to work per-thread.
2361
2362 * gc.c (scm_init_gc): Do not use scm_system_async.
2363
2364 * async.h (scm_asyncs_pending, scm_set_tick_rate,
2365 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
2366 Removed prototypes.
2367 (scm_i_queue_async_cell): New.
2368
2369 * __scm.h (scm_asyncs_pending_p): Removed.
2370 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
2371 scm_asyncs_pending_p.
2372
2373 * async.h (scm_system_async_mark_for_thread): New prototype.
2374
2375 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
2376
2377 * root.h (scm_root_state): Added new "active_asyncs" slot.
2378 * root.c (scm_make_root): Initialize it to SCM_EOL.
2379
2380 * coop-defs.h (coop_t): Added new "handle" slot.
2381 * coop-threads.c (all_threads, scm_current_thread,
2382 scm_all_threads, scm_i_thread_root): New.
2383 (scm_threads_init): Add main thread to all_threads.
2384 (scheme_launch_thread): Remove thread from all_threads when it
2385 terminates.
2386 (scm_call_with_new_thread): Initialize handle slot of coop_t
2387 structure and add new thread to all_threads.
2388 (scm_spawn_thread): Likewise.
2389
2390 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
2391 * threads.c (scm_current_thread, scm_all_threads): Register as
2392 primitives.
2393
2394 * dynl.c: Use scm_lt_ prefix for libltdl functions.
2395
2396 2002-09-29 Neil Jerram <neil@ossau.uklinux.net>
2397
2398 * script.c (scm_compile_shell_switches): Fix bad spelling of
2399 `explicitly' in comment.
2400
2401 2002-09-28 Neil Jerram <neil@ossau.uklinux.net>
2402
2403 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
2404 Refer to provided? in doc string rather than deprecated feature?.
2405
2406 2002-09-24 Gary Houston <ghouston@arglist.com>
2407
2408 * inline.h (scm_double_cell): prevent reordering of statements
2409 with any following code (for GCC 3 strict-aliasing).
2410 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
2411 the earlier version of the reordering prevention.
2412
2413 2002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2414
2415 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
2416
2417 2002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2418
2419 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
2420 protection.
2421
2422 2002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2423
2424 * inline.h: include stdio.h
2425
2426 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
2427
2428 2002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2429
2430 * gc-segment.c (scm_i_make_initial_segment): check user settings
2431 for sanity.
2432
2433 * gc-malloc.c (scm_gc_init_malloc): check user settings for
2434 sanity.
2435
2436 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
2437
2438 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
2439
2440 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
2441 these won't ever wrap around with high memory usage. Thanks to
2442 Sven Hartrumpf for finding this.
2443
2444 * gc-freelist.c: include <stdio.h>
2445
2446 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
2447
2448 2002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
2449
2450 * vectors.h (SCM_VECTOR_REF): New.
2451
2452 * snarf.h (SCM_DEFINE_PUBLIC): New.
2453
2454 2002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
2455
2456 * socket.c (scm_addr_vector): Added size of address to arguments.
2457 Use it to avoid accessing a non-existent path in a sockaddr_un.
2458 Changed all callers.
2459
2460 2002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2461
2462 * gc.h: remove DOUBLECELL card flags.
2463
2464 * gc-malloc.c (scm_calloc): try to use calloc() before calling
2465 scm_realloc().
2466
2467 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
2468 init loop; handle this from scm_init_card_freelist()
2469
2470 * gc-card.c (scm_init_card_freelist): init bit vector here.
2471
2472 * numbers.c (scm_make_real): prevent reordering of statements
2473 num2float.i.c (FLOAT2NUM): idem
2474
2475 2002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2476
2477 * eval.h: prepend libguile/ to include path
2478
2479 2002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
2480
2481 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
2482 years. Thanks to Martin Grabmüller!
2483
2484 2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2485
2486 * gc-segment.c (scm_i_get_new_heap_segment): use float in stead of
2487 unsigned numbers for computing minimum heap increment. This
2488 prevents weird results when a a negative minimum increment is
2489 computed.
2490
2491 2002-08-24 Marius Vollmer <mvo@zagadka.ping.de>
2492
2493 * gc_os_dep.c: When we have __libc_stack_end, use that directly
2494 instead of the old tricks.
2495
2496 * guile-snarf.in: Do not expect the input file to be the first
2497 argument after the optional "-o" option, just pass everything to
2498 the pre-processor without extracting the input file name.
2499
2500 2002-08-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2501
2502 * gc-segment.c (scm_i_get_new_heap_segment): Oops. We want segment
2503 length *at* least SCM_MIN_HEAP_SEG_SIZE, not at most.
2504
2505 2002-08-22 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2506
2507 * gc.h, gc.c: make scm_cells_allocated unsigned again. Thanks to
2508 Bill Schottstaedt for the bug report
2509
2510 2002-08-20 Marius Vollmer <mvo@zagadka.ping.de>
2511
2512 * print.c (scm_iprin1): Print primitives generics always as
2513 "primitive-generic" even when they have no primitive methods yet.
2514
2515 2002-08-17 Gary Houston <ghouston@arglist.com>
2516
2517 * coop.c (coop_create): removed bogus 2nd argument in scm_malloc
2518 call.
2519
2520 2002-08-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2521
2522 * ports.c (scm_add_to_port_table): small bugfix.
2523
2524 * mallocs.c (scm_malloc_obj): use scm_gc_malloc in stead of
2525 malloc.
2526
2527 * gc-segment.c (scm_i_get_new_heap_segment): remove cluster cruft:
2528 only use SCM_MIN_HEAP_SEG_SIZE.
2529
2530 * ports.c (scm_add_to_port_table): add backwards compatibility
2531 function
2532
2533 * ports.h: use scm_i_ prefix for port table and port table size.
2534
2535 2002-08-15 Mikael Djurfeldt <mdj@linnaeus>
2536
2537 * vports.c (scm_make_soft_port): Initialize pt variable.
2538
2539 2002-08-13 Marius Vollmer <mvo@zagadka.ping.de>
2540
2541 * strports.h (scm_c_eval_string_in_module,
2542 scm_eval_string_in_module): New prototypes.
2543 * strports.c (scm_eval_string_in_module): New, but use
2544 "eval-string" as the Scheme name and make second parameter
2545 optional.
2546 (scm_eval_string): Implement using scm_eval_string_in_module.
2547 (scm_c_eval_string_in_module): New.
2548 Thanks to Ralf Mattes for the suggestion!
2549
2550 2002-08-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2551
2552 * gc-card.c ("sweep_card"): remove SCM_MISC_ERROR messages: print
2553 message and abort.
2554
2555 * gc-mark.c ("scm_gc_mark_dependencies"): idem.
2556
2557 * ports.c ("scm_new_port_table_entry"): return a boxed SCM in
2558 stead of scm_t_port*. The function now takes a tag argument.
2559
2560 2002-08-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2561
2562 * gc.h: add scm_debug_cells_gc_interval to public interface
2563
2564 * gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
2565
2566 * gc.c (scm_i_expensive_validation_check): separate expensive
2567 validation checks from cheap ones.
2568
2569 2002-08-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2570
2571 * read.c (scm_input_error): new function: give meaningful error
2572 messages, and throw read-error
2573
2574 * gc-malloc.c (scm_calloc): add scm_calloc.
2575
2576 2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2577
2578 * tags.h: remove GC bits documentation from the tags table.
2579
2580 * read.c (INPUT_ERROR): Prepare for file:line:column error
2581 messages for errors in scm_lreadr() and friends.
2582
2583 2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2584
2585 * gc-malloc.c (scm_malloc): use scm_realloc() (simplifies
2586 implementation).
2587 (scm_gc_calloc): new function
2588
2589 2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2590
2591 * ports.c (scm_new_port_table_entry): init port entry to 0
2592 completely.
2593
2594 * ports.c (scm_new_port_table_entry): change function from
2595 scm_add_to_port_table. This prevents cells with null-pointers from
2596 being exposed to GC.
2597
2598 * vports.c (scm_make_soft_port) strports.c (scm_mkstrport),
2599 fports.c (scm_fdes_to_port): Use scm_new_port_table_entry().
2600
2601 * gc.c (scm_gc_stats): add cell-yield and malloc-yield statistic
2602 to gc-stats.
2603
2604 * numbers.c (big2str): return "0" for 0 iso. ""
2605
2606 * gc-segment.c, gc-malloc.c gc-mark.c, gc-freelist.c, gc-card.c,
2607 private-gc.h: new file
2608
2609 * gc.c: completely revised and cleaned up the GC. It now uses lazy
2610 sweeping. More documentation in workbook/newgc.text
2611
2612 2002-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2613
2614 * random.c (rstate_free): Return zero.
2615
2616 2002-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2617
2618 * environments.c (remove_key_from_alist): Removed.
2619
2620 (obarray_remove): Simplified.
2621
2622 2002-07-24 Stefan Jahn <stefan@lkcc.org>
2623
2624 * continuations.h: ia64: Include <signal.h> before
2625 <sys/ucontext.h>.
2626
2627 2002-07-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2628
2629 * modules.c (scm_sym2var): Don't compare SCM values with ==.
2630
2631 2002-07-21 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2632
2633 * goops.c (scm_compute_applicable_methods): use
2634 scm_remember_upto_here_1 iso scm_remember_upto_here
2635
2636 * macros.c: include deprecation.h
2637
2638 * vectors.c (scm_vector_move_right_x): remove side effect in
2639 macro arg.
2640 (scm_vector_move_left_x): idem.
2641
2642 * net_db.c, posix.c, socket.c: variable naming: change ans to
2643 result.
2644
2645 * sort.c (scm_merge_vector_x): accept vector as argument
2646 iso. SCM*. This is needed for full GC correctness.
2647
2648 * gc.h: undo previous undocumented changes related to #ifdef
2649 GENGC.
2650
2651 2002-07-20 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2652
2653 * *.c: add space after commas everywhere.
2654
2655 * *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
2656 Document cases where SCM_WRITABLE_VELTS() is used.
2657
2658 * vectors.h (SCM_VELTS): prepare for write barrier, and let
2659 SCM_VELTS() return a const pointer
2660 (SCM_VECTOR_SET): add macro.
2661
2662 2002-07-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2663
2664 * eval.c (SCM_CEVAL), macros.c (macro_print, scm_makmacro,
2665 scm_sym_macro, scm_macro_type), macros.h (scm_makmacro):
2666 Deprecated the special kind of built-in dynamic syntax transformer
2667 that was inaccurately named "macro". Note: The built-in syntax
2668 transformers that are named "mmacro" or "memoizing-macro" still
2669 exist, and it is these which come much closer to what one would
2670 call a macro.
2671
2672 2002-07-13 Neil Jerram <neil@ossau.uklinux.net>
2673
2674 * eval.c (unmemocopy): Fix for
2675 1001-local-eval-error-backtrace-segfaults (unmemoization crash
2676 with internal definitions and local-eval).
2677
2678 2002-07-12 Gary Houston <ghouston@arglist.com>
2679
2680 * dynl.c: Don't define stub procedures if DYNAMIC_LINKING is not
2681 defined. They don't do anything useful, especially since the
2682 only case where DYNAMIC_LINKING is undefined seems to be
2683 when --with-modules=no is given to configure, which is basically
2684 requesting that the "dynamic linking module" be omitted.
2685
2686 * Makefile.am (libguile_la_SOURCES): move dynl.c from
2687 libguile_la_SOURCES to EXTRA_libguile_la_SOURCES.
2688
2689 * extensions.c (load_extension): check DYNAMIC_LINKING for
2690 scm_dynamic_call.
2691 * init.c (scm_init_guile_1): check DYNAMIC_LINKING for
2692 scm_init_dynamic_linking.
2693
2694 2002-07-10 Marius Vollmer <mvo@zagadka.ping.de>
2695
2696 * guile.c, iselect.h, net_db.c, posix.c, socket.c: No need to
2697 check for Cygwin when including <winsock2.h>, this is already
2698 check for by configure. Thus, revert change from 2002-07-07.
2699
2700 2002-07-10 Gary Houston <ghouston@arglist.com>
2701
2702 * eq.c: include <string.h>
2703 * dynl.c: docstring editing.
2704
2705 2002-07-09 Gary Houston <ghouston@arglist.com>
2706
2707 * dynl.c (scm_dynamic_call): docstring editing.
2708
2709 2002-07-08 Rob Browning <rlb@defaultvalue.org>
2710
2711 * gc_os_dep.c: HURD fixes.
2712
2713 2002-07-07 Marius Vollmer <mvo@zagadka.ping.de>
2714
2715 Crosscompiling and Cygwin fixes by Jan Nieuwenhuizen. Thanks!
2716
2717 * Makefile.am: Override default rule for c-tokenize.$(OBJECT);
2718 this should be compiled for BUILD host.
2719 Override default rule for
2720 guile_filter_doc_snarfage$(EEXECT); this should run on BUILD host.
2721 Add missing $(EXEEXT) to guile_filter_doc_snarfage invocation.
2722 (snarf2checkedtexi): Use GUILE_FOR_BUILD instead of preinstguile.
2723
2724 * guile.c, iselect.h, net_db.c, posix.c, socket.c: Do not include
2725 <winsock2.h> on Cygwin even when we have it.
2726
2727 2002-07-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
2728
2729 * __scm.h (SCM_CAUTIOUS), eval.c (scm_eval_args, deval_args,
2730 SCM_CEVAL): Removed compile time option SCM_CAUTIOUS to clean up
2731 the code. Full number of arguments checking of closures is
2732 mandatory now. However, the option to disable the checking has
2733 most probably not been used anyway.
2734
2735 2002-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2736
2737 * __scm.h (SCM_RECKLESS), backtrace.c (SCM_ASSERT), debug.c
2738 (scm_debug_options), eval.c (scm_lookupcar, scm_lookupcar1,
2739 scm_badargsp, SCM_CEVAL, SCM_APPLY, scm_map, scm_for_each),
2740 feature.c (scm_init_feature), gsubr.c (scm_gsubr_apply), numbers.c
2741 (scm_logand, scm_logior, scm_logxor, scm_i_dbl2big), srcprop.c
2742 (scm_source_properties, scm_set_source_properties_x,
2743 scm_source_property): Removed compile time option SCM_RECKLESS to
2744 clean up the code. Full number of arguments checking of closures
2745 is mandatory now. However, the option to disable the checking has
2746 most probably not been used anyway.
2747
2748 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
2749 scm_source_property): Use !SCM_CONSP instead of SCM_NCONSP.
2750
2751 2002-06-30 Gary Houston <ghouston@arglist.com>
2752
2753 * dynl.c: Removed all SCM_DEFER_INTS/SCM_ALLOW_INTS, which won't
2754 do anything useful. Added a comment about need for a mutex if
2755 pre-emptive threading is supported.
2756
2757 * posix.c (scm_convert_exec_args), dynl.c
2758 (scm_make_argv_from_stringlist): static procs: 1) renamed both to
2759 allocate_string_pointers. 2) simplified: don't reallocate the
2760 strings, just make an array of pointers 3) avoid memory leaks on
2761 error 4) let the procedure report errors in its own name.
2762 Consequences: 1) the procedures now assume that SCM strings are
2763 nul-terminated, which should always be the case. 2) Since strings
2764 are not reallocated, it's now possible for strings passed to
2765 dynamic-args-call to be mutated.
2766
2767 2002-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2768
2769 * __scm.h, eval.c, eval.h: Removed compile time option
2770 MEMOIZE_LOCALS to clean up the code. Now, caching of local
2771 variable positions during memoization is mandatory. However, the
2772 option to disable the caching has most probably not been used
2773 anyway.
2774
2775 2002-06-18 Marius Vollmer <mvo@zagadka.ping.de>
2776
2777 * print.c (scm_simple_format): Print missing part of format before
2778 ~% control. Thanks to Daniel Skarda!
2779
2780 2002-06-01 Marius Vollmer <mvo@zagadka.ping.de>
2781
2782 * mkstemp.c: Added exception notice to license statement.
2783
2784 2002-05-22 Marius Vollmer <mvo@zagadka.ping.de>
2785
2786 * numbers.c (mem2ureal): When returning an inexact zero, make sure
2787 it is represented as a floating point value so that we can change
2788 its sign.
2789
2790 From John W. Eaton <jwe@bevo.che.wisc.edu>
2791
2792 * numbers.c (idbl2str): Don't omit sign when printing negative zero.
2793
2794 2002-05-14 Thien-Thi Nguyen <ttn@giblet.glug.org>
2795
2796 * gc_os_dep.c: For I386/OPENBSD, allow for `__i386__'
2797 in addition to `i386'. Thanks to Dale P. Smith.
2798
2799 2002-05-08 Marius Vollmer <mvo@zagadka.ping.de>
2800
2801 * eq.c (real_eqv): New.
2802 (scm_eqv_p): Use it when comparing reals and complexes.
2803
2804 * numbers.c: Include <string.h>, for strncmp.
2805 (mem2complex): Do not create negative NaNs.
2806 (scm_leq_p, scm_geq_p): Explicitely return #f when comparing a
2807 NaN.
2808 (scm_inexact_to_exact): Signal error when converting a NaN.
2809
2810 2002-05-06 Marius Vollmer <mvo@zagadka.ping.de>
2811
2812 * posix.c (scm_putenv): Handle removing variables explicitely by
2813 calling unsetenv.
2814
2815 From John W. Eaton.
2816
2817 * numbers.h: Conditionally include floatingpoint.h, ieeefp.h, and
2818 nan.h. Provide declarations for scm_inf_p, scm_nan_p, scn_inf,
2819 and scm_nan.
2820 * numbers.c: [SCO && ! HAVE_ISNAN] (isnan): New function.
2821 [SCO && ! HAVE_ISINF] (isinf): New function.
2822 (xisinf, xisnan): New functions.
2823 (IS_INF): Delete.
2824 (isfinite): Define in terms of xisinf.
2825 (scm_inf_p, scm_nan_p): New functions.
2826 (guile_Inf, guile_NaN): New file-scope vars.
2827 (guile_ieee_init): New function.
2828 (scm_inf, scm_nan): New functions.
2829 (idbl2str): Handle Inf and NaN. Remove funny label and
2830 corresponding gotos.
2831 (ALLOW_DIVIDE_BY_ZERO): New macro.
2832 (scm_divide): Allow division by zero to occur if
2833 ALLOW_DIVIDE_BY_ZERO is defined.
2834 Handle bignums and ints as special cases.
2835
2836 Additional stuff by me:
2837
2838 numbers.c (mem2ureal): Recognize "inf.0" and "nan.xxx".
2839 (scm_even_p, scm_odd_p): Treat infinity as even and odd.
2840 (iflo2str): Don't output a '+' for negative numbers or for Inf and
2841 NaN. They will provide their own sign.
2842 (scm_divide): Only allow divides by inexact zeros. Dividing by
2843 exact zeros still signals an errors.
2844
2845 2002-04-22 Thien-Thi Nguyen <ttn@giblet.glug.org>
2846
2847 * goops.h (scm_slot_exists_p): Rename from scm_slots_exists_p.
2848 * goops.c (scm_slot_exists_p): Rename from scm_slots_exists_p.
2849 (scm_slot_exists_p): Rename from scm_slots_exists_p.
2850 Thanks to Andreas Rottmann.
2851
2852 2002-04-20 Gary Houston <ghouston@arglist.com>
2853
2854 * removal of unused fields in root state (thanks to Christopher
2855 Cramer for pointing out the disuse.)
2856 * root.h (scm_root_state): removed def_inp, def_outp, def_errp.
2857 (scm_def_inp, scm_def_outp, scm_def_errp): removed.
2858
2859 * root.c (root_mark): don't mark them.
2860 (scm_make_root): don't set them to #f.
2861 * init.c (scm_init_standard_ports): don't initialise with the
2862 default ports.
2863
2864 2002-04-17 Marius Vollmer <mvo@zagadka.ping.de>
2865
2866 * Makefile.am (EXTRA_DIST): Added cpp_err_symbols.c and
2867 cpp_sig_symbols.c.
2868
2869 2002-04-16 Marius Vollmer <mvo@zagadka.ping.de>
2870
2871 * guile-snarf.in: Do not clean input file. This would write to
2872 the $(srcdir) during a VPATH build, which is not allowed. It also
2873 isn't needed since it only works when an output filename has been
2874 specified and in that case we don't need to clean the input file
2875 because the output file will already exist.
2876
2877 2002-03-31 Marius Vollmer <mvo@zagadka.ping.de>
2878
2879 * guile-snarf: Install the trap for removing $cleanfile only when
2880 the value of $cleanfile is actually known.
2881
2882 2002-04-10 Rob Browning <rlb@defaultvalue.org>
2883
2884 * .cvsignore: add versiondat.h and *.c.clean.c.
2885
2886 2002-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2887
2888 * srcprop.[ch] (scm_c_source_property_breakpoint_p): New
2889 function, replaces macro SRCBRKP.
2890
2891 (SRCBRKP): Deprecated.
2892
2893 * eval.c (SCM_CEVAL): Replaced use of SRCBRKP by call to
2894 scm_c_source_property_breakpoint_p. Removed some use of arg1 as
2895 temporary variable.
2896
2897 2002-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2898
2899 * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
2900 CHECK_EXIT and removed all references to them.
2901
2902 2002-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2903
2904 * debug.h (scm_ready_p, debug_print): Removed declarations.
2905
2906 * eval.c (EVALCELLCAR): Removed.
2907
2908 (SCM_CEVAL): Eliminated label loopnoap. Removed side-effecting
2909 operation from condition.
2910
2911 2002-03-24 Marius Vollmer <mvo@zagadka.ping.de>
2912
2913 * guile-snarf.in: When the output filename is "-", write to
2914 stdout. When no "-o" option is given, use "-" as the output
2915 filename (i.e., stdout). Only 'clean' the inputfile or remove the
2916 output file on error when the output file name is not "-". Define
2917 the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
2918
2919 * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
2920
2921 2002-03-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2922
2923 * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
2924 and the corresponding goto statements. Removed redundant code.
2925
2926 2002-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2927
2928 * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
2929 Eliminated redundant SCM_IMP check. Exlined call to EVALCAR.
2930 Re-enabled handing of rpsubrs and asubrs.
2931
2932 2002-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2933
2934 * eval.c (SIDEVAL): Removed.
2935
2936 (SCM_CEVAL): Minimized scope of variable orig_sym. Eliminated
2937 goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap. Changed
2938 argument checking order for set! to locals, variables and symbols.
2939 Improvements to control structure. Removed some uses of arg1 and
2940 arg2 as temporary variables.
2941
2942 2002-03-15 Thien-Thi Nguyen <ttn@giblet.glug.org>
2943
2944 * guile-snarf.in: Remove "--compat=1.4" support.
2945 Add "-d" and "-D" support.
2946
2947 (deprecated_list): New var.
2948 (compat_mode_clean_xxx): Delete.
2949 (grep_deprecated): New func.
2950 ("main"): If "-d" or "-D", call `grep_deprecated'.
2951
2952 2002-03-15 Neil Jerram <neil@ossau.uklinux.net>
2953
2954 * hooks.h: Change scm_t_c_hookype_t everywhere to
2955 scm_t_c_hook_type.
2956
2957 Docstring fixes:
2958
2959 * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
2960
2961 * ports.c (scm_sys_make_void_port): Use `@file'.
2962
2963 * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
2964 than `else'.
2965
2966 * macros.c (scm_makmacro): Don't say that the form replaces its
2967 source, because it doesn't.
2968 (scm_makmmacro): Clarify difference between this and scm_makmacro.
2969
2970 * backtrace.c (scm_display_error), filesys.c (scm_umask,
2971 scm_select, scm_basename), goops.c (scm_method_generic_function),
2972 numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
2973 scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
2974 spelling mistakes.
2975
2976 * debug.c (scm_debug_options), eval.c
2977 (scm_eval_options_interface), read.c (scm_read_options): Change
2978 incorrect @var in docstring to @code.
2979
2980 2002-03-14 Marius Vollmer <mvo@zagadka.ping.de>
2981
2982 * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
2983
2984 * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
2985 guile-snarf can remove trailing non-init code.
2986
2987 * guile-snarf.in (modern_snarf): Remove everything following and
2988 including "^:^" from the output.
2989
2990 2002-03-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2991
2992 * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
2993
2994 * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
2995
2996 2002-03-13 Thien-Thi Nguyen <ttn@giblet.glug.org>
2997
2998 * guile-snarf.in: Update copyright.
2999 Rewrite to internalize error handling.
3000 Add "--compat=1.4" handling.
3001 Add commentary.
3002
3003 * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
3004 (snarfcppopts): New var.
3005 (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
3006 (.c.doc): Use $(snarfcppopts).
3007
3008 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
3009 continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
3010 dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
3011 extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
3012 goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
3013 ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
3014 modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
3015 pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
3016 properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
3017 root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
3018 srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
3019 strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
3020 unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
3021 weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
3022
3023 2002-03-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3024
3025 * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
3026 The next step will be to remove the union 't' and simplify the
3027 code of SCM_CEVAL that way.
3028
3029 2002-03-12 Neil Jerram <neil@ossau.uklinux.net>
3030
3031 * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
3032 rreadfds, rwritefds, rexceptfds): Made static.
3033
3034 * gc.c (terminating), fports.c (terminating): Renamed
3035 scm_i_terminating.
3036
3037 2002-03-11 Marius Vollmer <mvo@zagadka.ping.de>
3038
3039 * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
3040 potential overflow problems. Thanks to John W Eaton!
3041
3042 * strop.c (string_capitalize_x): Treat characters as unsigned so
3043 that 8-bit chars work. Thanks to David Pirotte!
3044
3045 2002-03-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3046
3047 * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
3048 'slot-set!' and 'nil-cond'. Removed some uses of t.arg1, arg2 and
3049 proc as temporary variables. Introduced temporary variables with
3050 hopefully descriptive names for clarification. Replaced SCM_N?IMP
3051 by a more explicit predicate in some places.
3052
3053 2002-03-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
3054
3055 * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
3056 Added lots of comments regarding the implementation of #@dispatch.
3057 Changed intra-procedure communication to use t.arg1 instead of
3058 arg2. Removed some uses of t.arg1, t.lloc and proc as temporary
3059 variables. Introduced temporary variables with hopefully
3060 descriptive names for clarification. Replaced SCM_N?IMP by a more
3061 explicit predicate in some places. Use SCM_INSTANCE_HASH instead
3062 of computing the expression explicitly. Eliminate now unused
3063 label nontoplevel_cdrxbegin.
3064
3065 * goops.h (SCM_INSTANCE_HASH): New macro.
3066
3067 * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
3068
3069 2002-03-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
3070
3071 * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
3072 "guile-snarf" moved back from `noinst_SCRIPTS'.
3073
3074 2002-03-08 Neil Jerram <neil@ossau.uklinux.net>
3075
3076 * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
3077 exists when adding a source property other than those that are
3078 handled explicitly, add the new property to the SRCPROPS obj's
3079 plist.
3080
3081 * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
3082 of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
3083
3084 * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
3085 debug.status. It isn't needed, and it can overflow the bits
3086 reserved for it (which may lead to a segv or a GC abort).
3087
3088 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3089
3090 * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed
3091 side-effecting operations from conditions and macro calls.
3092 Replaced SCM_N?IMP by a more explicit predicate in some places.
3093 Minimized the scope of some variables.
3094
3095 2002-03-02 Stefan Jahn <stefan@lkcc.org>
3096
3097 * convert.i.c: Fixed int <-> long conversions which would have
3098 failed if their sizes were different.
3099
3100 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3101
3102 * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
3103 'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
3104 as temporary variables. Removed side-effecting operations from
3105 conditions and macro calls. Introduced temporary variables with
3106 hopefully descriptive names for clarification. Replaced SCM_N?IMP
3107 by a more explicit predicate in some places. Removed code that
3108 was conditionally compiled if SICP was defined - which it never
3109 is.
3110
3111 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3112
3113 * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
3114 Removed some uses of t.arg1 and proc as temporary variables.
3115 Removed side-effecting operations from conditions and macro calls.
3116 Introduced temporary variables with hopefully descriptive names
3117 for clarification. Replaced SCM_N?IMP by a more explicit
3118 predicate in some places.
3119
3120 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3121
3122 * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
3123 explicit predicate in some places.
3124
3125 (CHECK_EQVISH): Removed.
3126
3127 (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
3128 variables. Removed side-effecting operations from conditions and
3129 macro calls. Introduced temporary variables for clarification.
3130 Sorted if-else-if check for the type of the last form in a list by
3131 frequency. Avoided some unnecessary tail-recursion calls.
3132
3133 2002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3134
3135 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
3136 init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
3137 scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
3138 SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct
3139 scm_cell and all its uses to scm_t_cell in accordance to Guile's
3140 naming scheme for types.
3141
3142 * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
3143 CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
3144 scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
3145 (scm_make_environment), eval.c (scm_closure), fports.c
3146 (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
3147 scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
3148 list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
3149 ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
3150 smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
3151 (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
3152 unif.c (scm_make_uve), variable.c (make_variable), vectors.c
3153 (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
3154 scm_alloc_cell to scm_cell.
3155
3156 * environments.c (core_environments_observe), gc.c
3157 (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
3158 inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
3159 (FLOAT2NUM), numbers.c (scm_make_real), procs.c
3160 (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
3161 SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
3162 symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
3163 (allocate_weak_vector): Renamed scm_alloc_double_cell to
3164 scm_double_cell.
3165
3166 2002-02-27 Stefan Jahn <stefan@lkcc.org>
3167
3168 * convert.i.c, convert.c: Better range checking.
3169
3170 * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
3171
3172 * deprecation.c (vsnprintf): Define to `_vsnprintf' for
3173 Windows (MinGW).
3174
3175 2002-02-26 Thien-Thi Nguyen <ttn@giblet.glug.org>
3176
3177 * Makefile.am: Update path to pre-inst-guile automake frag.
3178
3179 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3180
3181 * gc.c (scm_gc_sweep): Make it compile even when deprecated
3182 features are excluded.
3183
3184 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3185
3186 * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
3187
3188 2002-02-25 Gary Houston <ghouston@arglist.com>
3189
3190 * convert.c: include <string.h> for convert_i.c.
3191
3192 2002-02-24 Rob Browning <rlb@defaultvalue.org>
3193
3194 * .cvsignore: add stamp-h1.
3195
3196 2002-02-21 Neil Jerram <neil@ossau.uklinux.net>
3197
3198 * unif.c (scm_array_to_list): Correct name, which had been
3199 accidentally changed to scm_t_arrayo_list!
3200
3201 2002-02-20 Mikael Djurfeldt <mdj@linnaeus>
3202
3203 * gc.c (scm_gc_sweep): Print an error message when aborting due to
3204 underflowing scm_mallocated.
3205
3206 2002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3207
3208 * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
3209 scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
3210 Reimplemented using the new scm_gc_malloc, etc., functions and
3211 deprecated.
3212
3213 2002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
3214
3215 * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
3216 to `noinst_PROGRAMS'.
3217 (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
3218 (noinst_PROGRAMS, noinst_SCRIPTS): New.
3219
3220 2002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3221
3222 * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
3223 non-zero is returned from a port or smob free function.
3224 (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
3225 scm_gc_register_collectable_memory,
3226 scm_gc_unregister_collectable_memory, scm_gc_malloc,
3227 scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
3228
3229 * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
3230 debug-malloc.c, dynl.c, environments.c, environments.h,
3231 extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
3232 guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
3233 ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
3234 smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
3235 vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
3236 scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
3237 appropriate. Return zero from smob and port free functions.
3238
3239 * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
3240
3241 * deprecation.h, deprecation.c: Reimplemented to allow deprecation
3242 messages while the GC is running.
3243 (scm_c_issue_deprecation_warning_fmt): New.
3244
3245 * fports.c (scm_setvbuf): Reset read buffer to saved values when
3246 it is pointing to the putback buffer.
3247
3248 2002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
3249
3250 * gsubr.c (create_gsubr): On "too many args" error,
3251 also display arg count and name. Thanks to Bill Schottstaedt.
3252
3253 2002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
3254
3255 * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
3256
3257 (bin_SCRIPTS): Remove guile-snarf-docs-texi.
3258 (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
3259 (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
3260
3261 * guile-snarf-docs-texi.in: Bye bye.
3262
3263 2002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3264
3265 * symbols.c (scm_make_symbol): Fix typo in docstring.
3266
3267 * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
3268 scm_make_symbol): New prototypes.
3269
3270 2002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
3271
3272 * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
3273 (SCM_SYMBOL_INTERNED_P): New.
3274 * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
3275 SCM_MAKINUM since hash values can well be bignums.
3276 (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
3277 This signals a interned symbol.
3278 (scm_mem2uninterned_symbol, scm_symbol_interned_p,
3279 scm_make_symbol): New.
3280
3281 * print.c (scm_iprin1): Print uninterned symbols unreadably.
3282
3283 2002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
3284
3285 * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
3286 are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
3287 Thanks to Dave Love.
3288
3289 2002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
3290
3291 * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
3292 This might help to make unintended clashes less likely.
3293 (scm_string_to_symbol): Protect the string until the symbols is
3294 created.
3295
3296 2002-01-31 Stefan Jahn <stefan@lkcc.org>
3297
3298 * convert.c, convert.h, convert.i.c: New files containing C
3299 array to Scheme conversion helpers meant to be replacement
3300 functions for the deprecated gh interface.
3301
3302 * Makefile.am: Setup rules for new `convert.*' files.
3303
3304 2002-01-28 Stefan Jahn <stefan@lkcc.org>
3305
3306 * symbols.c (scm_c_symbol2str): New function, replacement for
3307 `gh_scm2newsymbol()'.
3308
3309 * strings.c (scm_c_substring2str): New function. Proper
3310 replacement for `gh_get_substr()'.
3311
3312 * socket.c: Include `stdint.h' if available for the `uint32_t'
3313 declaration.
3314
3315 * scmsigs.c (scm_sigaction): Initialize `chandler' (inhibits
3316 compiler warning).
3317
3318 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
3319
3320 2002-01-22 Neil Jerram <neil@ossau.uklinux.net>
3321
3322 Other changes unrelated to Elisp...
3323
3324 * eval.c (scm_m_if): Use s_if rather than repeating string literal
3325 "if".
3326 (comments): Fix a few typos.
3327 (scm_for_each): Add parentheses around oddly unparenthesized
3328 if/while conditions.
3329
3330 * read.c (scm_read_opts): Add full stop at end of doc for
3331 `keywords' option.
3332
3333 * script.c (scm_compile_shell_switches): Use scm_str2symbol
3334 instead of gh_symbol2scm.
3335
3336 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
3337 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
3338
3339 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
3340 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
3341
3342 First batch of changes for Elisp support...
3343
3344 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
3345 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
3346 throw.c, vectors.c, weaks.c: Add #include for lang.h.
3347
3348 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
3349 conditionalize compilation and initialization of Elisp support
3350 function.
3351
3352 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
3353 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
3354 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
3355 filesys.c (fill_select_type, retrieve_select_type), fluids.c
3356 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
3357 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
3358 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
3359 scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
3360 options.c (change_option_setting, scm_options), posix.c
3361 (environ_list_to_c), print.c (scm_iprlist), throw.c
3362 (scm_exit_status), vectors.c (scm_vector), weaks.c
3363 (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
3364
3365 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
3366 just SCM_FALSEP.
3367
3368 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
3369 of just SCM_BOOLP.
3370
3371 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
3372 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
3373 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
3374 (scm_m_atfop): Support function aliasing. Support both function
3375 args, which need transformation, and macro args, which do not.
3376 Add explanatory comments.
3377 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
3378 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
3379 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
3380 SCM_NULLP || SCM_NILP instead of checks against (removed)
3381 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
3382 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
3383
3384 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
3385 scm_m_while, scm_nil_eq): Commented out; I don't think we need
3386 these, but I don't want to remove them yet, just in case.
3387 (scm_init_lang): Define `%nil' variable on Scheme level to hold
3388 Elisp nil value.
3389
3390 * lang.h (SCM_NILP): Test against Elisp nil value instead of
3391 against (removed) scm_lisp_nil.
3392 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
3393 (SCM_NULL_OR_NIL_P): New.
3394
3395 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
3396 SCM_VALIDATE_NULL.
3397
3398 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
3399 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
3400 value).
3401
3402 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
3403 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
3404 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
3405 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
3406
3407 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
3408 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
3409 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
3410 Numbering shifted down accordingly.
3411 (SCM_ELISP_NIL): New IFLAG.
3412
3413 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
3414
3415 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3416
3417 * eval.c: Removed outdated references to "everr". Improved some
3418 comments.
3419
3420 (scm_deval_args, deval_args): Renamed scm_deval_args to
3421 deval_args, since it is not part of the interface.
3422
3423 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
3424 use references to debug.vect[0] before it exists. Add parentheses
3425 to switch statement.
3426
3427 * goops.h: Added local emacs variables.
3428
3429 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3430
3431 * eval.[ch] (scm_deval_args): Made static.
3432
3433 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
3434 test.
3435
3436 * strings.c (scm_c_string2str): Clarified comment. Replaced
3437 THINKME by FIXME for uniformness. Removed question about whether
3438 arguments need to be protected from garbage collection: Arguments
3439 must be protected as any other variable.
3440
3441 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3442
3443 * procs.h (SCM_CLOSURE_BODY): New Macro.
3444
3445 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
3446 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
3447 get_slot_value, set_slot_value), procs.c
3448 (scm_procedure_documentation), sort.c (closureless), stacks.c
3449 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
3450 SCM_CLOSURE_BODY.
3451
3452 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
3453
3454 2001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
3455
3456 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
3457 use "cp" instead.
3458
3459 2001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
3460
3461 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
3462 everywhere.
3463
3464 * continuations.c (scm_make_continuation): Do not retain the
3465 throw_value when the continuation is invoked.
3466
3467 2001-12-08 Stefan Jahn <stefan@lkcc.org>
3468
3469 * strings.c (scm_c_string2str): New function. Converts a
3470 given Scheme string into a C string. Also put in two
3471 THINKME's regarding the malloc policy for the missing converter
3472 routines.
3473
3474 2001-12-01 Neil Jerram <neil@ossau.uklinux.net>
3475
3476 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
3477 gh_symbol2scm.
3478
3479 2001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3480
3481 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
3482 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
3483
3484 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
3485 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
3486 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
3487 macros.
3488
3489 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
3490
3491 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
3492 SCM_GC_CELL_* macros when accessing free cells.
3493
3494 2001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
3495
3496 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
3497 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
3498 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
3499 * strings.h (SCM_MAKE_STRING_TAG): New.
3500 * procs.h (SCM_MAKE_CCLO_TAG): New.
3501 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
3502
3503 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
3504 !SCM_ENABLE_DEPRECATED.
3505
3506 * async.c, async.h (scm_system_async_mark_from_signal_handler):
3507 New.
3508
3509 * scmsigs.c (scm_take_signal): Removed all code that assumes that
3510 signal handlers are allowed to divert the flow of control. Call
3511 scm_system_async_mark_from_signal_handler instead of
3512 scm_system_async_mark.
3513
3514
3515 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
3516 scm_alloc_double_cell in their place.
3517
3518 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
3519 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
3520 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
3521 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
3522 scm_deprecated_newcell and scm_deprecated_newcell2.
3523
3524 gc.c (scm_tc16_allocated): Only define when including deprecated
3525 features.
3526 (scm_debug_newcell, scm_debug_newcell2): Removed.
3527 (scm_init_storage): Do not initialize scm_tc16_allocated.
3528 (scm_init_gc): Do it here.
3529 (allocated_mark): New, from old code.
3530 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
3531
3532 * inline.c, inline.h: New files.
3533 * Makefile.am: Added them in all the right places.
3534
3535 * _scm.h: Include "libguile/inline.h".
3536
3537 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
3538 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
3539 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
3540 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
3541 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
3542 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
3543 scm_alloc_double_cell, respectively.
3544
3545 2001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
3546
3547 * modules.c (scm_c_use_module): Adapt to changes to
3548 `process-use-modules'.
3549
3550 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3551
3552 * numbers.c (scm_divide): Fix more division by zero errors.
3553
3554 2001-11-21 Gary Houston <ghouston@arglist.com>
3555
3556 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
3557 obsolete. autogen.sh says:
3558 invalid unused variable name: `OMIT_DEPENDENCIES'
3559
3560 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3561
3562 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
3563 reporting the bug.
3564
3565 2001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
3566
3567 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
3568 Thanks to Eric Gillespie, Jr!
3569
3570 2001-11-21 Stefan Jahn <stefan@lkcc.org>
3571
3572 * win32-socket.c (getservent, setservent, endservent,
3573 getprotoent, setprotoent, endprotoent): New functions.
3574 Appropriate replacements for M$-Windows.
3575
3576 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
3577 these definitions for GUILE_DEBUG.
3578
3579 * net_db.c: Include "win32-socket.h" if compiling with a native
3580 M$-Windows compiler. Include some pieces of code (protoent and
3581 servent interface) protected by HAVE_* macros when using a
3582 native M$-Windows compiler.
3583
3584 2001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
3585
3586 * modules.c (scm_c_export): Do nothing when the first argument is
3587 already the terminating NULL. Thanks to Han-Wen Nienhuys!
3588
3589 2001-11-20 Thien-Thi Nguyen <ttn@glug.org>
3590
3591 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
3592 also include `buildstamp'.
3593
3594 2001-11-18 Rob Browning <rlb@defaultvalue.org>
3595
3596 * version.c
3597 (s_scm_major_version): use SCM_MAJOR_VERSION.
3598 (s_scm_minor_version): use SCM_MINOR_VERSION.
3599 (s_scm_micro_version): use SCM_MICRO_VERSION.
3600 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
3601 SCM_MICRO_VERSION.
3602
3603 * version.h.in
3604 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
3605 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
3606 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
3607
3608 2001-11-18 Neil Jerram <neil@ossau.uklinux.net>
3609
3610 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
3611 Rewrite docstrings without reference to substring-move-left/right,
3612 since the latter no longer exist.
3613
3614 2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3615
3616 * eval.c: Removed bogus comment about acros.
3617
3618 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
3619 Minimize scope of local variable. Eliminate dependency on
3620 macro DEBUG_EXTENSIONS.
3621
3622 (s_splicing): New error message string.
3623
3624 (scm_m_body): Issue 'bad body' message rather than 'missing
3625 expression' message.
3626
3627 (scm_m_quote): Eliminate unnecessary copying.
3628
3629 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
3630 checking of the body to scm_m_body.
3631
3632 (scm_m_do): Move comment to function header. Rename arg1 to
3633 binding. Made the code a bit easier to read.
3634
3635 (evalcar): Removed.
3636
3637 (iqq): Added a comment. Changed the depth parameter to
3638 unsigned. Use size_t for vector lengths. Make sure vector object
3639 is gc protected as long as its contents are read. Add some syntax
3640 checks. Get rid of unnecessary SCM_IMP test. Clean up the
3641 control structure a bit.
3642
3643 (scm_m_delay): Added comment about the implementation of
3644 scm_m_delay.
3645
3646 (scm_m_define): Add comment about guile's currying define
3647 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
3648 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
3649
3650 (scm_m_letrec1): Removed. Part of the functionality is taken
3651 over by the new function 'transform_bindings'.
3652
3653 (transform_bindings): New function. Takes over some of the
3654 functionality of removed function 'scm_m_letrec1', namely to split
3655 a list of bindings into a reversed list of variables and a list of
3656 initializers.
3657
3658 (scm_m_letrec): Call 'transform_bindings'.
3659
3660 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
3661 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
3662 test. Use 'transform_bindings'. Fixed scoping error with named
3663 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
3664 Jerram for suggesting the fix). Cleaned up the control structure
3665 a bit.
3666
3667 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
3668 unnecessary consing. Eliminated unnecessary
3669 SCM_DEFER/ALLOW_INTS.
3670
3671 (SCM_CEVAL): Un-obfuscated some loops.
3672
3673 2001-11-16 Neil Jerram <neil@ossau.uklinux.net>
3674
3675 * gc.h (scm_unhash_name): Old declaration removed.
3676
3677 * eval.c (s_scm_eval): Change @var{primitive-eval} to
3678 @code{primitive-eval}.
3679
3680 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
3681 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
3682 Change @deffnx lines in docstrings to say {Scheme Procedure}
3683 rather than primitive or procedure.
3684
3685 * posix.c (scm_execl), filesys.c (scm_close), unif.c
3686 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
3687 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
3688 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
3689 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
3690 (scm_string_split, scm_string_ci_to_symbol), strings.c
3691 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
3692 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
3693 Docstring fixes and improvements reflecting edits that have been
3694 made in the reference manual source.
3695
3696 * objprop.c (scm_object_properties, scm_set_object_properties_x,
3697 scm_object_property, scm_set_object_property_x): Remove invalid
3698 @deffnx lines for corresponding procedure property primitives.
3699
3700 These changes add a @deffnx C function declaration and function
3701 index entries for each Guile primitive to the copy of the doc
3702 snarf output that is used for reference manual synchronization.
3703 Online help is unchanged.
3704
3705 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
3706 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
3707 name to SCM_SNARF_DOCS.
3708
3709 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
3710 snarf-check-and-output-texi.
3711
3712 * Makefile.am (guile-procedures.texi): New rule.
3713 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
3714 Changed so that the last stage of doc snarfing is now performed
3715 twice, once to produce guile-procedures.txt for online help, and
3716 once to produce guile.texi for reference manual synchronization.
3717
3718 2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3719
3720 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
3721 safely usable as a single statement followed by a ';', for example
3722 in an if statement.
3723
3724 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
3725
3726 2001-11-13 Neil Jerram <neil@ossau.uklinux.net>
3727
3728 * random.c (scm_random_solid_sphere_x,
3729 scm_random_hollow_sphere_x): Correct "shere" typos.
3730
3731 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
3732
3733 * version.c (scm_version): Update docstring to include
3734 `micro-version'.
3735
3736 2001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
3737
3738 * modules.c (scm_c_export): Call va_end after collecting the
3739 symbols.
3740
3741 * strop.h, strop.c (scm_substring_move_left_x,
3742 scm_substring_move_right_x): Removed.
3743
3744 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
3745 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
3746 configure does.
3747
3748 2001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
3749
3750 * numbers.c: Document macros to define when including
3751 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
3752 now rely on SIZEOF_ macros that have been figured out at
3753 configure time.
3754
3755 * num2integral.i.c: Adapt to new interface.
3756 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
3757 target type by casting it and checking whether it is still the
3758 same. Do not try to handle bignums for integral types that are
3759 smaller than fixnums. When handling bignums, collect the
3760 magnituse first into a unsigned type, and correctly check for
3761 overflow.
3762 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
3763 only -MIN_VALUE can still be negative of all negative numbers (in
3764 twos-complement).
3765
3766 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
3767
3768 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
3769 HAVE_LONG_LONG depending on whether their size is non-zero.
3770
3771 2001-11-11 Thien-Thi Nguyen <ttn@glug.org>
3772
3773 * strop.c (scm_string_null_p): Docfix; nfc.
3774 Thanks to Scott Lenser.
3775
3776 2001-11-07 Neil Jerram <neil@ossau.uklinux.net>
3777
3778 * extensions.c (scm_load_extension): Canonicalize docstring
3779 whitespace.
3780
3781 * unif.c (scm_uniform_array_write), ports.c
3782 (scm_current_output_port, scm_force_output), dynwind.c
3783 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
3784 filesys.c (scm_open, scm_lstat), struct.c
3785 (scm_make_struct_layout), random.c (scm_random,
3786 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
3787 (scm_i_index): Remove superfluous whitespace from end of docstring
3788 lines.
3789
3790 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
3791 strings.c (scm_make_string), variable.c (scm_make_variable,
3792 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
3793 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
3794 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
3795 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
3796 newline at end of docstrings.
3797
3798 * modules.c (scm_set_current_module): Add missing newline to
3799 docstring.
3800
3801 2001-11-07 Stefan Jahn <stefan@lkcc.org>
3802
3803 * win32-socket.[ch]: New files. Defines Winsock-API error codes
3804 and makes them available through Guile. That is because the
3805 Winsock-API does not store its errors in `errno' and thus cannot
3806 return error messages via `strerror (errno)'.
3807
3808 * socket.c (scm_init_socket): Initialize `win32-socket' part
3809 here under M$-Windows.
3810
3811 * numbers.h: Added missing declaration of
3812 `scm_sys_check_number_conversions()'.
3813
3814 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
3815 and use in `(strerror)' and `(system-error)'.
3816
3817 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
3818 `win32-socket.[ch]' to extra source and header files.
3819
3820 2001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
3821
3822 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
3823 a call to turn-on-debugging when --debug has been given instead of
3824 turning it on directly. Also, handle new `--no-debug' option,
3825 which might suppress the call to turn-on-debugging.
3826
3827 2001-11-05 Stefan Jahn <stefan@lkcc.org>
3828
3829 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
3830
3831 2001-11-04 Stefan Jahn <stefan@lkcc.org>
3832
3833 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
3834 here (was at guile_LDADD) which describes the dependency
3835 correctly and allows a clean build on Win32.
3836
3837 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
3838 into FOO.
3839
3840 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
3841 import macros for external libraries (libcrypt, libqthreads,
3842 libreadline and libregex).
3843
3844 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
3845
3846 * posix.c (flock): Added support for flock() in M$-Windows.
3847
3848 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
3849 of __SCM_IMPORT__.
3850
3851 * fports.c (getflags): Differentiate reading and writing pipes
3852 descriptors.
3853
3854 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
3855 M$-Windows.
3856
3857 * coop.c (coop_condition_variable_timed_wait_mutex): Use
3858 conditionalized error code if `ETIMEDOUT' is not available.
3859 (scm_thread_usleep): Remove bogus declaration of `struct timeval
3860 timeout'.
3861
3862 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
3863 belongs. That is because NO_PREPRO_MAGIC gets undefined after
3864 each inclusion of `num2integral.i.c'.
3865 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
3866
3867 2001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
3868
3869 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
3870 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
3871
3872 2001-11-02 Mikael Djurfeldt <mdj@linnaeus>
3873
3874 * print.c (scm_iprin1): Mark print state as revealed when
3875 dispatching to generic write or display.
3876
3877 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
3878
3879 2001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
3880
3881 Support for native Win32. Thanks to Stefan Jahn!
3882
3883 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
3884 and win32-dirent.h to extra source and header files. These
3885 include the uname() and the POSIX dirent interface implementation
3886 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
3887 linkers which do not allow unresolved symbols inside shared
3888 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
3889 dependency.
3890
3891 * __scm.h: Defined SCM_API. This macro gets prepended to all
3892 function and data definitions which should be exported or imported
3893 in the resulting dynamic link library in the Win32 port.
3894
3895 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
3896 chars.h, continuations.h, coop-defs.h, coop-threads.h,
3897 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
3898 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
3899 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
3900 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
3901 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
3902 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
3903 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
3904 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
3905 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
3906 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
3907 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
3908 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
3909 vports.h, weaks.h:
3910 Prefixed each each exported symbol with SCM_API.
3911
3912 * continuations.c: Added comment about the use of the extern
3913 declarations of {get,set}context() functions used in the ia64 port.
3914
3915 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
3916 is meant to be a `unsigned long *'.
3917
3918 * filesys.c: Include `direct.h' if possible. Use local
3919 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
3920 macros for M$-Windows. Implementation of `fstat_Win32()' which is
3921 able to differentiate between sockets and other file descriptors.
3922 Use this function as wrapper in `scm_fstat()'. Fixed typo in
3923 `scm_dirname()'.
3924
3925 * fports.c: Include `io.h' is possible. Put `*fp' into referring
3926 statement block in `scm_fport_buffer_add()'.
3927 Some corrections in `getflags()'.
3928
3929 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
3930
3931 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
3932 build on Win32. Disable preloaded symbols on Win2 platforms.
3933
3934 * ioext.c, ports.c: Include `io.h' is possible.
3935
3936 * mkstemp.c: Include `process.h' is possible.
3937
3938 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
3939 too.
3940 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
3941
3942 * posix.c: Remove unnecessary dirent includes and defines. Include
3943 local `win32-uname.h' for MinGW. Extern declaration of
3944 `mkstemp()' for systems where it does not exists. Make
3945 `getlogin()' available on M$-Windows.
3946
3947 * scmsigs.c: Made `usleep()' avalable on MinGW.
3948
3949 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
3950
3951 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
3952
3953 * win32-uname.c: Include "win32-uname.h", not "uname.h".
3954
3955 2001-10-28 Mikael Djurfeldt <mdj@linnaeus>
3956
3957 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
3958 Don't apply scm_uniform_vector_length on arrays.
3959
3960 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
3961
3962 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
3963 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
3964 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
3965 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
3966 scm_list_<n> over scm_cons[2]?.
3967
3968 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
3969 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
3970 SCM_C[AD][AD]R instead of explicit form.
3971
3972 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
3973 comparison parameters.
3974
3975 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
3976 !SCM_NULLP instead of SCM_NIMP.
3977
3978 (scm_m_case): Don't copy the form. Renamed proc to clause and
3979 minimized its scope. Renamed x to clauses. Removed side
3980 effecting operation from macro call.
3981
3982 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
3983 minimized its scope. Renamed x to clauses. Minimized the scope
3984 of variable 'len'. Make sure the else clause is treated specially
3985 even in case of '=>' occurences. Don't change the else to #t in
3986 order to be able to distinguish this case in the evaluator. Leave
3987 type checking of the recipient to the evaluator.
3988
3989 (scm_c_improper_memq): Made the comment somewhat clearer.
3990
3991 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
3992 test for SCM_IM_LET at the place of the formal parameters.
3993 Simplified the formal parameter checking.
3994
3995 (scm_m_letstar): Added Comment. Renamed proc to bindings.
3996 Renamed arg1 to binding and minimized its scope. Eliminated
3997 unnecessary consing.
3998
3999 (scm_m_do): Renamed proc to bindings. Minimized the scope of
4000 variable 'len'.
4001
4002 (build_binding_list): New static function.
4003
4004 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
4005 Further, split up the 'letrec' unmemoizing code to the
4006 corresponding parts for 'do', 'let' and 'letrec', adding comments
4007 to each form. Cleanup the handling of the do form (This removes
4008 some *real* code :-).
4009
4010 (SCM_CEVAL): Removed side effecting operation from macro call.
4011 Handle the 'else clause of the 'cond form specially - the symbol
4012 'else is not replaced with #t any more.
4013
4014 2001-10-14 Gary Houston <ghouston@arglist.com>
4015
4016 * version.c (scm_version): use sprintf instead of snprintf,
4017 for portability. thanks to Bill Schottstaedt.
4018
4019 2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
4020
4021 * read.c (scm_lreadr): When user-defined hash procedure returns
4022 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
4023 an exception. (This prevents parsing of uniform vectors from
4024 interfering with parsing of numbers.)
4025
4026 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
4027
4028 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
4029 PTRDIFF_MIN. Thanks to Ken Raeburn.
4030
4031 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
4032
4033 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
4034
4035 * eval.c (scm_m_atbind): First try to find the variable without
4036 defining it locally; when it has not been found, define it
4037 locally.
4038
4039 * modules.c (module_variable): Pass over variables that exist but
4040 are unbound.
4041
4042 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
4043
4044 * backtrace.c (display_backtrace_file_and_line): Only use
4045 scm_basename when POSIX support is compiled in. Thanks to Chris
4046 Cramer.
4047
4048 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
4049
4050 * numbers.c (mem2uinteger): Return number read so far when coming
4051 across a hexdigit after having read a # or if not reading a hex
4052 value. This will enable the calling code to correctly handle
4053 forms like 1e2. (The background is, that the exponent markers d,
4054 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
4055 providing this patch.
4056
4057 (mem2complex): Fix erroneous double-negation. Now, numbers like
4058 1-i will be read correctly.
4059
4060 2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
4061
4062 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
4063
4064 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
4065
4066 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
4067
4068 * print.c (scm_print_state_vtable, print_state_pool):
4069 Initialize. These variables are now registered as gc roots.
4070
4071 (scm_current_pstate): Update documentation.
4072
4073 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
4074 scm_prin1, scm_init_print): print_state_pool is registered as a
4075 gc root and thus does not need to be protected by a surrounding
4076 pair any more.
4077
4078 (make_print_state): The car of print_state_pool no longer holds
4079 the scm_print_state_vtable.
4080
4081 (scm_current_pstate, scm_make_print_state, print_circref,
4082 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
4083 SCM_N<foo>.
4084
4085 (scm_prin1): When building lists, prefer scm_list_<n> over
4086 scm_cons[2]?.
4087
4088 (scm_iprlist): Removed a redundant SCM_IMP test.
4089
4090 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
4091
4092 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
4093
4094 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
4095
4096 (scm_memcons, scm_mem_to_proc): When building lists, prefer
4097 scm_list_<n> over scm_cons[2]?.
4098
4099 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
4100
4101 (scm_procedure_name): Use SCM_CADR instead of explicit form.
4102
4103 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
4104 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
4105 for some reason his patch didn't make it into the cvs.
4106
4107 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
4108
4109 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
4110 little bit - should even be somewhat more accurate now.
4111
4112 2001-10-08 Rob Browning <rlb@defaultvalue.org>
4113
4114 * gc.c: support ia64 register backing store.
4115 (SCM_MARK_BACKING_STORE): new macro.
4116
4117 * continuations.h: support ia64 register backing store.
4118 (struct scm_t_contregs): add ia64 register backing store.
4119
4120 * continuations.c: support ia64 register backing store.
4121 (continuation_mark): mark ia64 register backing store.
4122 (continuation_free): free ia64 register backing store.
4123 (scm_make_continuation): capture ia64 register backing store.
4124 (copy_stack_and_call): copy ia64 register backing store.
4125
4126 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4127
4128 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
4129 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
4130 instead of SCM_NIMP to test for that case.
4131
4132 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
4133 scm_t_bits instead of long.
4134
4135 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
4136
4137 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
4138 SCM_T_SIGNED_BITS_MIN): New.
4139 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
4140 Use them to make these macros computable by the preprocessor.
4141
4142 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
4143 whether the integral type fits in a fixnum, not the compiler.
4144 This removes a spurious compiler warning. Also, honor the
4145 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
4146 needed for `long long's.
4147
4148 * numbers.c: Define NO_PREPRO_MAGOC when including
4149 num2integral.c.i for `long long' and `signed long long'.
4150
4151 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
4152
4153 These changes fixes a race condition in the Guile coop - pthread
4154 compatibility code.
4155
4156 * coop.c (mother_awake_p): New variable.
4157 (coop_create): Set mother_awake_p before creating or signalling
4158 mother; wait until mother is going to sleep before returning.
4159 (mother): Reset mother_awake_p before going to sleep.
4160
4161 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4162
4163 * options.c (protected_objects, scm_init_options): The content of
4164 protected_objects is now protected from garbage collection using
4165 scm_gc_register_root instead of scm_permanent_object.
4166
4167 (get_option_setting): New static function that computes an option
4168 setting as it was formerly done in the function scm_options.
4169
4170 (get_documented_option_setting): New static function that
4171 returns option documentation as it was formerly done in the
4172 function scm_options. Note that documentation C strings are no
4173 longer precomputed into SCM objects. Instead, they are converted
4174 into SCM strings every time get_documented_option_setting is
4175 called.
4176
4177 (change_option_setting): New static functions that modifies the
4178 option setting as it was formerly done in the function
4179 scm_options. The function is now exception safe, i. e. won't
4180 cause a memory leak when interrupted. Further, only non-immediate
4181 option values are added to the protection list.
4182
4183 (scm_options): This function now has only the purpose to dispatch
4184 to to get_option_setting, get_documented_option_setting or
4185 change_option_setting, depending on the arguments given to
4186 scm_options.
4187
4188 (scm_init_opts): Don't convert documentation C strings into SCM
4189 strings. Further, don't protect any object values: They _must_
4190 be immediate values, otherwise there is no guarantee that they
4191 have not been collected before anyway.
4192
4193 * options.[ch] (scm_t_option): Made type unsigned, name into a
4194 constant char* and val into a scm_t_bits type.
4195
4196 (scm_options, scm_init_opts): The number of options is guaranteed
4197 to be larger or equal to zero. Thus, the type is changed to
4198 unsigned.
4199
4200 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4201
4202 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
4203 testing an unsigned value for being >= 0.
4204
4205 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4206
4207 * numbers.h: Removed old comment about using SCM_CAR to access
4208 non-pair cells.
4209
4210 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
4211 the return value is signed. Thanks to Brian Crowder for the bug
4212 report.
4213
4214 (SCM_SRS): Avoid unnecessary casting and don't unpack input
4215 values. With this patch, SCM_SRS can be safely used for other
4216 types than scm_t_signed_bits. However, it should still better be
4217 an internal macro and thus be renamed to SCM_I_SRS.
4218
4219 (SCM_MAKINUM, SCM_INUM): Use proper casting.
4220
4221 2001-10-03 Gary Houston <ghouston@arglist.com>
4222
4223 * continuations.h, unif.h: in the descriptions of the bit patterns
4224 of the heap cells, make bit 0 the least significant.
4225
4226 2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
4227
4228 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
4229 Thanks to Golubev I. N.
4230
4231 2001-09-25 Gary Houston <ghouston@arglist.com>
4232
4233 * ports.c (scm_drain_input): extended the docstring. thanks to
4234 Alex Schroeder and Thien-Thi Nguyen.
4235
4236 2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
4237
4238 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
4239 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
4240 macros. (The NUM names might soon change.)
4241
4242 * numbers.h: Added missing declarations.
4243
4244 2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
4245
4246 * Makefile.am: Distribute num2float.i.c.
4247
4248 * num2float.i.c: New file, multiply included by numbers.c, used
4249 to "templatize" the float <-> num conversion routines.
4250
4251 * numbers.c: New functions: scm_num2float, scm_float2num,
4252 scm_num2double, scm_double2num.
4253
4254 2001-09-21 Rob Browning <rlb@defaultvalue.org>
4255
4256 * .cvsignore: really add version.h
4257
4258 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
4259 Otherwise it fails on the alpha. However, we might rather choose
4260 this size conditionally.
4261
4262 * numbers.c (scm_gcd): change "k" to a long from an int.
4263 Otherwise it fails on the alpha. However, we might rather choose
4264 this size conditionally.
4265
4266 * error.c (scm_wta): coerce char* to intptr_t before int
4267 assignment.
4268
4269 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
4270 int.
4271
4272 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
4273
4274 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
4275
4276 * numbers.c (scm_integer_expt): Accept inexact integer in second
4277 argument. (Thanks to Bill Schottstaedt.)
4278
4279 2001-09-20 Rob Browning <rlb@defaultvalue.org>
4280
4281 * .cvsignore: add version.h
4282
4283 * versiondat.h.in: removed (obsolete).
4284
4285 * version.h.in: renamed from version.h.
4286 (SCM_GUILE_MAJOR_VERSION): new public macro.
4287 (SCM_GUILE_MINOR_VERSION): new public macro.
4288 (SCM_GUILE_MICRO_VERSION): new public macro.
4289
4290 * version.h: renamed to version.h.in.
4291
4292 * version.c
4293 (scm_major_version): support integer *_VERSION macros.
4294 (scm_minor_version): support integer *_VERSION macros.
4295 (scm_micro_version): support integer *_VERSION macros.
4296 (scm_version): support integer *_VERSION macros.
4297
4298 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
4299
4300 * error.c, error.h: Made error keys globally accessible.
4301 Applications might want to test for these or use them in a direct
4302 call to scm_error.
4303
4304 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
4305 routines are passed an inexact. This change in behavior is
4306 motivated by concordance with R5RS: It is more common that a
4307 primitive doesn't want to accept an inexact for an exact.
4308
4309 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4310
4311 The following patch partially undoes my patch from 2001-06-30,
4312 where I added the function scm_gc_mark_cell_conservatively. The
4313 function is buggy, since it breaks guile during conservative
4314 marking if a pointer on the stack points directly into the list of
4315 free cells on the heap: With conservative cell marking this will
4316 cause the whole free list to be scanned and marked - boom!
4317
4318 * gc.c (allocated_mark, MARK, heap_segment,
4319 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
4320 (scm_gc_mark_cell_conservatively): Remove function
4321 scm_gc_mark_cell_conservatively and update the corresponding
4322 comments and uses accordingly. Thanks to Christopher Cramer for
4323 the patch. (Minor corrections by me.)
4324
4325 2001-09-15 Gary Houston <ghouston@arglist.com>
4326
4327 * root.h (scm_root_state): removed the continuation_stack and
4328 continuation_stack_ptr members, which have no apparent purpose.
4329 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
4330 removed.
4331
4332 * root.c (root_mark), init.c (restart_stack, start_stack), gc
4333 (scm_igc): remove all references to contination_stack and
4334 continuation_stack_ptr, avoiding allocation of a vector and
4335 useless processing during gc.
4336
4337 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
4338
4339 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
4340
4341 (TCONC_IN): Make sure that the cell word 0 is initialized last.
4342
4343 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
4344
4345 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
4346
4347 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
4348 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
4349
4350 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
4351
4352 * guardians.c (mark_dependencies_in_tconc,
4353 whine_about_self_centered_zombies, scm_init_guardians): Register
4354 the static global variable `self_centered_zombies' via
4355 scm_gc_register_root, to make some cdr-ing unnecessary.
4356
4357 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
4358
4359 * backtrace.c (display_backtrace_file,
4360 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
4361 values, use SCM_FALSEP when comparing SCM values against #f.
4362 Thanks to Rob Browning for the bug report.
4363
4364 2001-09-12 Martin Baulig <martin@home-of-linux.org>
4365
4366 * strings.[ch] (scm_str2string): New function.
4367
4368 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
4369
4370 * gc.c (scm_done_free): Always subtract size from scm_mallocated
4371 when computing nm, even if it's negative.
4372 (scm_must_malloc): Abort on overflow of scm_mtrigger.
4373 (scm_must_realloc): Likewise.
4374
4375 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
4376
4377 * numbers.c (scm_sys_check_number_conversions): new function,
4378 defined if Guile is compiled in debugging mode. currently checks
4379 `scm_num2ulong', should check much much more.
4380
4381 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
4382 unsigned, ensure that it's positive. thanks to Martin Baulig!
4383
4384 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
4385
4386 * __scm.h: Added new section about compile time selectable
4387 features.
4388
4389 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
4390 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
4391 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
4392 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
4393 Removed.
4394
4395 * deprecation.c (scm_include_deprecated_features): Simplified.
4396
4397 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
4398 `SCM_IMP´ instead of `!SCM_CELLP´.
4399
4400 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
4401 Extract side-effecting operations from macros.
4402
4403 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
4404 scm_top_level_lookup_closure_var and scm_system_transformer.
4405
4406 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
4407
4408 (heap_segment): Use CELL_P instead of SCM_CELLP.
4409
4410 * init.c (start_stack): Don't initialize
4411 scm_top_level_lookup_closure_var and scm_system_transformer.
4412
4413 * modules.c (scm_set_current_module): Don't access
4414 scm_top_level_lookup_closure_var and scm_system_transformer.
4415
4416 (scm_sym2var): Don't call scm_variable_set_name_hint.
4417
4418 (scm_post_boot_init_modules): Removed deprecated initializations.
4419
4420 * print.c (scm_ipruk): Don't access cell contents of non cells.
4421
4422 * strings.c (scm_string_set_x): All strings are writable.
4423
4424 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
4425 type. There is only one string type now.
4426
4427 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
4428
4429 * tags.h: Remove comments about two different string types.
4430
4431 (SCM_CELLP, SCM_NCELLP): Deprecated.
4432
4433 * variable.c (make_variable): Remove code variant for vcells.
4434
4435 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
4436 SCM_VARIABLE_LOC): Remove code variant for vcells.
4437
4438 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
4439 SCM_ENABLE_DEPRECATED with the logic reversed.
4440
4441 * dynl.c (moddata, registered_mods), dynl.[ch]
4442 (scm_register_module_xxx, scm_registered_modules,
4443 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
4444 (*top-level-lookup-closure*), eval.[ch]
4445 (scm_top_level_lookup_closure_var, scm_system_transformer,
4446 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
4447 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
4448 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
4449 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
4450 scm_unprotect_object), modules.c (root_module_lookup_closure,
4451 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
4452 beautify_user_module_x_var, try_module_autoload_var,
4453 scm_module_full_name), modules.[ch] (scm_the_root_module,
4454 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
4455 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
4456 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
4457 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
4458 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
4459 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
4460 scm_make_shared_substring), tags.h (scm_tc7_substring,
4461 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
4462 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
4463 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
4464 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
4465 Removed.
4466
4467 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
4468 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
4469 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
4470 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
4471 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
4472 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
4473 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
4474 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
4475 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
4476 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
4477 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
4478 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
4479 (setzone, scm_strftime, scm_strptime), vports.c
4480 (scm_make_soft_port): Remove calls to
4481 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
4482 gone, all strings are 0-terminated anyway.
4483
4484 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
4485 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
4486 double inclusion of the same headers to the SCM_<filename>_H
4487 format.
4488
4489 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
4490 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
4491 print.c (scm_iprin1): The type scm_tc7_substring does not exist
4492 any more.
4493
4494 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
4495 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
4496 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
4497 !SCM_<foo> over SCM_N<foo>.
4498
4499 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
4500
4501 * Makefile.am: Remove references to symbols-deprecated.c.
4502
4503 * symbols.c (scm_init_symbols): Don't initialize deprecated
4504 symbol functions.
4505
4506 * symbols-deprecated.c: Removed.
4507
4508 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
4509 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
4510 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
4511 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
4512 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
4513 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
4514 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
4515 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
4516 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
4517 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
4518 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
4519 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
4520 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
4521 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
4522 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
4523 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
4524 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
4525 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
4526 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
4527 scm_intern0, scm_sysintern, scm_sysintern0,
4528 scm_sysintern0_no_module_lookup, scm_symbol_value0,
4529 scm_string_to_obarray_symbol, scm_intern_symbol,
4530 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
4531 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
4532 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
4533 vectors.[ch] (scm_vector_set_length_x): Removed.
4534
4535 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
4536 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
4537 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
4538 Renamed the macros that are defined to inhibit double inclusion of
4539 the same headers to the SCM_<filename>_H format.
4540
4541 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
4542 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
4543 SCM_N<foo>.
4544
4545 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
4546
4547 * continuations.h (scm_contregs), debug.h (scm_debug_info,
4548 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
4549 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
4550 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
4551 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
4552 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
4553 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
4554 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
4555 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
4556 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
4557 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
4558 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
4559
4560 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
4561 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
4562 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
4563 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
4564 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
4565 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
4566 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
4567 double inclusion of the same headers to the SCM_<filename>_H
4568 format.
4569
4570 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
4571 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
4572 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
4573 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
4574 !SCM_<foo> over SCM_N<foo>.
4575
4576 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
4577
4578 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
4579 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
4580 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
4581 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
4582 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
4583 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
4584 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
4585 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
4586 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
4587 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
4588 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
4589 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
4590 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
4591 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
4592 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
4593 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
4594 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
4595 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
4596 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
4597 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
4598 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
4599 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
4600 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
4601 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
4602 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
4603 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
4604 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
4605 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
4606 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
4607 the macros that are defined to inhibit double inclusion of the
4608 same headers to the SCM_<filename>_H format.
4609
4610 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
4611
4612 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
4613 "scm_t_portable" with "scm_port_table" which was an artifact from
4614 the great "scm_*_t -> scm_t_" renaming.
4615
4616 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
4617
4618 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
4619 used; nfc. Thanks to Bill Schottstaedt.
4620
4621 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
4622 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
4623 Thanks to Chris Cramer.
4624
4625 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
4626
4627 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
4628
4629 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
4630 dynamic scope.
4631 * dynwind.h (scm_swap_bindings): Declare.
4632 * dynwind.c (scm_swap_bindings): Make non-static.
4633
4634 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
4635
4636 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
4637 doing exactly nothing about them). thanks Neil!
4638
4639 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
4640
4641 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
4642
4643 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
4644
4645 * gc.c: Fix omission bug: Add `heap_segment' forward decl
4646 (proto) in the case when either `GUILE_DEBUG' or
4647 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
4648
4649 (map_free_list): Fix typo: Ref `f' correctly.
4650
4651 Thanks to Chris Cramer.
4652
4653 2001-08-15 Rob Browning <rlb@defaultvalue.org>
4654
4655 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
4656 variables.
4657 (libpath.h): change libguileversion to libguileinterface.
4658
4659 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
4660
4661 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
4662 ChangeLog-2000. Thanks to Daniel Skarda!
4663
4664 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
4665
4666 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
4667 do it from the Makefile.
4668
4669 * Makefile.am: rearrange the snarfing slightly, so that .doc files
4670 are of a reasonable size.
4671
4672 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
4673
4674 * stacks.c (scm_make_stack): Improve docstring by explaining use
4675 of cutting args.
4676
4677 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
4678
4679 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
4680 scm_char_whitespace_p, scm_char_upper_case_p,
4681 scm_char_lower_case_p, scm_char_is_both_p): Do not require
4682 characters to fulfill isascii in addition to the primary
4683 predicate.
4684
4685 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
4686
4687 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
4688 scm_istr2flo, scm_istring2number): Removed.
4689
4690 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
4691 SCM_SLOPPY_<foo>.
4692
4693 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
4694 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
4695 Added.
4696
4697 (scm_string_to_number): Use new number parser.
4698
4699 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
4700 handles complex numbers.
4701
4702 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
4703 SCM_<foo>_H.
4704
4705 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
4706 SCM_N<pred>.
4707
4708 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
4709
4710 (scm_i_mem2number): Added.
4711
4712 (scm_exact_to_inexact): Changed signature.
4713
4714 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
4715 here instead of within scm_i_mem2number. Call scm_i_mem2number
4716 instead of scm_istr2int and scm_istring2number.
4717
4718 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
4719
4720 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
4721 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
4722 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
4723 !SCM_<pred> over SCM_N<pred>.
4724
4725 (scm_eval_body): Remove side effecting code from macro call.
4726
4727 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
4728 SCM_NIMP test.
4729
4730 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
4731
4732 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
4733
4734 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
4735
4736 Removed vcell slot from structs.
4737
4738 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
4739 subsequent indices.
4740
4741 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
4742 zero. Use scm_vtable_index_layout instead of "0" when accessing
4743 said slot.
4744 (scm_init_struct): Remove vcell slot layout code from
4745 required_vtable_fields.
4746
4747 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
4748
4749 * goops.c (build_class_class_slots): Removed vcell slot
4750 definition.
4751
4752 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
4753 Removed vcell slot layout code.
4754 (scm_si_vcell): Removed.
4755
4756 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
4757
4758 "Glocs" have been removed.
4759
4760 * tags.h: Update tag system docs.
4761 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
4762 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
4763 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
4764 or SCM_NCONSP, respectively.
4765
4766 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
4767 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
4768 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
4769
4770 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
4771 tell glocs from structs.
4772
4773 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
4774
4775 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
4776 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
4777 instead of with glocs.
4778 (EVALCAR): Do not test for glocs.
4779 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
4780 condition.
4781 (scm_unmemocar): Do not handle glocs.
4782 (scm_m_atfop): Memoize as a variable, not as a gloc.
4783 (scm_eval_args, scm_deval_args): Do not handle glocs.
4784 (scm_ceval, scm_deval): Likewise.
4785
4786 * eval.h (SCM_XEVALCAR): Do not test for glocs.
4787 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
4788 Removed.
4789
4790 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
4791
4792 * dynwind.c (scm_swap_bindings): Likewise.
4793 (scm_dowinds): Updated to recognize lists of variables instead of
4794 lists of glocs.
4795
4796 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
4797
4798
4799 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
4800 where it is needed.
4801
4802 2001-07-25 Gary Houston <ghouston@arglist.com>
4803
4804 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
4805 docstrings to reflect the n-ary implementation.
4806
4807 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
4808
4809 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
4810 value of a variable, not the plain "return" statement.
4811
4812 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
4813
4814 * eval.c: Allow variables in memoized code (in addition to glocs).
4815 (scm_lookupcar): Handle variables in lost races. Replace symbol
4816 with variable directly, do not make a gloc.
4817 (scm_unmemocar): Rewrite variables using a reverse lookup, just
4818 like glocs.
4819 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
4820 the main switch.
4821
4822 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
4823
4824 * variable.c (scm_i_variable_print): Use "value" instead of
4825 "binding" since a binding is the mapping between symbols and
4826 variables, not between variables and their values.
4827
4828 * tags.h (scm_tc7_variable): New.
4829 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
4830 * print.c (scm_iprin1): Likewise.
4831
4832 * variable.h (scm_tc16_variable): Removed.
4833 (SCM_VARIABLEP): Test for new tc7 code.
4834 (scm_i_variable_print): New.
4835 * variable.c (scm_tc16_variable): Removed.
4836 (variable_print): Renamed to scm_i_variable_print and made
4837 non-static.
4838 (variable_equal_p): Removed.
4839 (make_variable): Construct a tc7 object instead of a smob.
4840 (scm_init_variable): Do not register smob.
4841
4842 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
4843
4844 * tags.h: Include inttypes.h when we have it.
4845
4846 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
4847
4848 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
4849 is taken by the new SCM_IM_CALL_WITH_VALUES.
4850 * print.c (scm_isymnames): Update table accordingly.
4851
4852 2001-07-22 Gary Houston <ghouston@arglist.com>
4853
4854 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
4855 SCM_MAKINUM to convert regoff_t value to SCM.
4856
4857 2001-07-21 Gary Houston <ghouston@arglist.com>
4858
4859 * scmsigs.c: include sys/time.h for itimer stuff.
4860
4861 2001-07-19 Rob Browning <rlb@defaultvalue.org>
4862
4863 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
4864
4865 * c-tokenize.lex: add option %nounput to quiet warning.
4866 Add prototype for yylex to quiet warning.
4867
4868 * scmconfig.h.in: add flags for setitimer and getitimer.
4869
4870 * scmsigs.h (scm_init_scmsigs): new prototype.
4871 (scm_init_scmsigs): new prototype.
4872
4873 * scmsigs.c (s_scm_setitimer): new function.
4874 (s_scm_setitimer): new function.
4875
4876 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4877
4878 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
4879 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
4880 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
4881 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
4882 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
4883 guile-func-name-check.in, guile-snarf-docs-texi.in,
4884 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
4885 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
4886 objprop.c, objprop.h, options.c, options.h, random.h,
4887 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
4888 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
4889 version.c, version.h: Updated copyright notice.
4890
4891 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4892
4893 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
4894 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
4895 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
4896 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
4897 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
4898 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
4899 sym_environment, scm_sym_change_class): New static variables to
4900 hold predefined symbols.
4901
4902 (build_class_class_slots): Build the list using scm_list_n
4903 instead of cons. Also, slots are already created as lists, thus
4904 making a call to maplist unnecessary.
4905
4906 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
4907 scm_class_direct_subclasses, scm_class_direct_methods,
4908 scm_class_precedence_list, scm_class_slots, scm_class_environment,
4909 scm_method_procedure, create_standard_classes, purgatory): Use
4910 predefined symbols.
4911
4912 (build_slots_list, compute_getters_n_setters,
4913 scm_sys_initialize_object, scm_sys_inherit_magic_x,
4914 get_slot_value_using_name, set_slot_value_using_name,
4915 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
4916 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
4917 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
4918
4919 (scm_sys_prep_layout_x): Minimize variable scopes.
4920
4921 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
4922 scm_sys_fast_slot_set_x): Fix signedness.
4923
4924 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
4925 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
4926 scm_memoize_method, scm_wrap_object): Use packing and unpacking
4927 when converting to and from SCM values.
4928
4929 (scm_enable_primitive_generic_x): Add rest argument checking.
4930
4931 (map, filter_cpl, maplist, scm_sys_initialize_object,
4932 scm_sys_prep_layout_x, slot_definition_using_name,
4933 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
4934 call_memoize_method, scm_make, scm_make_class): Prefer explicit
4935 predicates over SCM_N?IMP tests.
4936
4937 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
4938 checking.
4939
4940 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
4941 alias.
4942
4943 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
4944
4945 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
4946
4947 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
4948
4949 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
4950
4951 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
4952
4953 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
4954
4955 * strings.c (s_scm_string): fix arg position in assert.
4956
4957 2001-07-11 Gary Houston <ghouston@arglist.com>
4958
4959 * strports.c (st_write): use memcpy, not strncpy. thanks to
4960 Dale P. Smith.
4961
4962 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
4963
4964 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
4965 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
4966 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
4967 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
4968 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
4969 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
4970 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
4971 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
4972 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
4973 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
4974 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
4975 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
4976 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
4977 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
4978 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
4979 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
4980 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
4981 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
4982 weaks.c, weaks.h: Remove "face-lift" comment.
4983
4984 2001-07-08 Rob Browning <rlb@defaultvalue.org>
4985
4986 * .cvsignore: add stamp-h.in.
4987
4988 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4989
4990 * hooks.c (scm_make_hook, scm_add_hook_x),
4991 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
4992 value info to the docstrings.
4993
4994 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4995
4996 Some more compatibility patches for Windows.
4997
4998 * posix.c (getlogin): getlogin() implementation for Windows.
4999
5000 * backtrace.c, ioext.c: Include <stdio.h>.
5001
5002 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
5003 exist.
5004
5005 * cpp_sig_symbols.in: Added SIGBREAK.
5006
5007 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
5008
5009 * strports.c (scm_read_0str, scm_eval_0str): Call
5010 scm_c_read_string and scm_c_eval_string respectively, not
5011 themselves. Thanks to Dale P. Smith!
5012
5013 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5014
5015 * unif.c (scm_array_set_x): The variable args does not
5016 necessarily have to be a list. Further, got rid of a redundant
5017 SCM_NIMP test.
5018
5019 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5020
5021 * list.c (SCM_I_CONS): Make sure the cell type is initialized
5022 last.
5023
5024 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
5025 init_heap_seg): Fixed signedness.
5026
5027 (init_heap_seg): Replaced strange for-loop with a while loop.
5028
5029 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
5030
5031 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
5032
5033 The following patch adds conservative marking for the elements of
5034 free or allocated cells.
5035
5036 * gc.c (allocated_mark, heap_segment): New static functions.
5037
5038 (which_seg): Deleted, since the functionality is now provided by
5039 function heap_segment.
5040
5041 (map_free_list): Use heap_segment instead of which_seg.
5042
5043 (MARK): If cell debugging is disabled, mark free cells
5044 conservatively.
5045
5046 (scm_mark_locations, scm_cellp): Extracted the search for the
5047 heap segment of a SCM value into function heap_segment.
5048
5049 (scm_init_storage): Allocated cells must be marked
5050 conservatively.
5051
5052 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
5053
5054 The following patch changes the representation of weak vectors to
5055 double cells instead of using an extension of the vector's
5056 allocated memory.
5057
5058 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
5059 the result of SCM_WVECT_GC_CHAIN.
5060
5061 (scm_gc_sweep): Weak vectors don't have extra fields any more.
5062
5063 * weaks.c (allocate_weak_vector): New static function. It does
5064 not patch any previously created vector object during the
5065 construction of a weak vector, and thus doesn't need to switch
5066 off interrupts during vector creation.
5067
5068 (scm_make_weak_vector, scm_make_weak_key_hash_table,
5069 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
5070 Use allocate_weak_vector to provide the new weak vector object.
5071
5072 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
5073 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
5074 now stored in the double cell.
5075
5076 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
5077 Use SCM_WVECT_TYPE.
5078
5079 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
5080 using an entry of the double cell.
5081
5082 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
5083
5084 * stamp-h.in: bye bye
5085
5086 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
5087
5088 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
5089 scm_eval_0str.
5090
5091 * load.c, load.h (scm_c_primitive_load,
5092 scm_c_primitive_load_path): New.
5093
5094 * strports.c, strports.h (scm_c_read_string): Renamed from
5095 scm_read_0str. Also, added "const" qualifier to argument.
5096 (scm_c_eval_string): Renamed from scm_eval_0str.
5097 (scm_read_0str, scm_eval_0str): Deprecated.
5098
5099 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5100
5101 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
5102 SCM_LIST1.
5103
5104 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
5105
5106 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
5107 scm_list_n): New functions.
5108 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
5109 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
5110 (lots of files): Use the new functions.
5111
5112 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
5113
5114 * strings.c: #include "libguile/deprecation.h".
5115
5116 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5117
5118 * read.c (scm_lreadr): When reading a hash token, check for a
5119 user-defined hash procedure first, so that overriding the builtin
5120 hash characters is possible (this was needed for implementing
5121 SRFI-4's read synax `f32(...)').
5122
5123 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
5124 because the latter is unsigned now and breaks comparisons like
5125 (n < (scm_t_signed_bits)MIN_VALUE).
5126
5127 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
5128
5129 * eval.h, eval.c (scm_call_4): New function.
5130
5131 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
5132 directly rather than dispatching to them via scm_ithrow and a lazy
5133 catch.
5134
5135 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
5136 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
5137 for trap handler procedures.
5138
5139 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
5140 procedures not being #f.
5141
5142 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
5143
5144 * Makefile.am (c-tokenize.c): add rule to generate it.
5145 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
5146
5147 filter-doc-snarfage.c: remove.
5148
5149 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5150
5151 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
5152
5153 The following set of changes makes compiling Guile under various
5154 Windows compilers easier. Compilation under GNU systems should
5155 not be affected at all.
5156
5157 Thanks to Stefan Jahn for all necessary information, patches and
5158 testing.
5159
5160 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
5161 getpgrp, ttyname, primitive-fork and some header inclusion for
5162 Windows.
5163
5164 * random.c: Define M_PI, if not predefined and use __int64 for
5165 LONG64 under Windows.
5166
5167 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
5168 Windows and conditionalize some signal names.
5169
5170 * socket.c (scm_getsockopt): Added missing comma.
5171 Include socket library header under Windows.
5172
5173 * stime.c (CLKTCK): Add cast to int, to make it compile under
5174 Windows.
5175
5176 * ports.c (truncate): New function, compiled only under Windows.
5177
5178 * net_db.c: Do not declare errno under Windows.
5179
5180 * iselect.h, inet_aton.c: Include socket library headers under
5181 Windows.
5182
5183 * guile.c (inner_main): Under Windows, initialize socket library
5184 and initialize gdb_interface data structures.
5185
5186 * gdb_interface.h: Under Windows, gdb_interface cannot be
5187 initialized statically. Initialize at runtime instead.
5188
5189 * fports.c (write_all): ssize_t -> size_t.
5190 (fport_print): Conditionalize call to ttyname().
5191 (getflags): New function, compiled only under Windows.
5192
5193 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
5194 primitives chown, link, fcntl.
5195 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
5196 as path seperator.
5197
5198 * backtrace.c: Include <io.h> under Windows.
5199
5200 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
5201
5202 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
5203 declaration.
5204
5205 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
5206
5207 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
5208 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
5209 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
5210 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
5211 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
5212 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
5213 (scm_dynamic_wind, scm_dowinds), environments.c
5214 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
5215 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
5216 goops.c (GETVAR, purgatory, make_class_from_template,
5217 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
5218 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
5219 (scm_primitive_load), modules.c (scm_resolve_module,
5220 scm_c_define_module, scm_c_use_module, scm_c_export,
5221 module_variable, scm_eval_closure_lookup, scm_sym2var,
5222 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
5223 ports.c (scm_port_for_each), print.c (scm_printer_apply),
5224 properties.c (scm_primitive_property_ref), ramap.c (ramap,
5225 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
5226 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
5227 (scm_object_to_string, scm_call_with_output_string,
5228 scm_call_with_input_string), throw.c (scm_body_thunk,
5229 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
5230 scm_make_shared_array), vports.c (sf_flush, sf_write,
5231 sf_fill_input, sf_close): Use one of the above functions.
5232 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
5233
5234 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
5235
5236 * filesys.c (scm_close), ports.c (scm_close_port,
5237 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
5238 instead of SCM_NEGATE_BOOL.
5239
5240 * filesys.c (scm_stat): Clean up type dispatch.
5241
5242 * filesys.c (scm_stat), ports.c (scm_input_port_p,
5243 scm_output_port_p): Get rid of redundant IM type check.
5244
5245 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
5246 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
5247 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
5248 scm_return_entry), numbers.c (scm_number_to_string), objects.c
5249 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
5250 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
5251 scm_addr_vector), stime.c (scm_strftime), strings.c
5252 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
5253 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
5254 scm_string_split), strports.c (scm_strport_to_string), symbols.c
5255 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
5256 instead of scm_makfromstr.
5257
5258 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
5259 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
5260 scm_read_hash_extend), stime.c (scm_strftime), strings.c
5261 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
5262 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
5263 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
5264 !SCM_<pred> over SCM_N<pred>.
5265
5266 * strings.[ch] (scm_makfromstr): Deprecated.
5267
5268 (scm_mem2string): New function, replaces scm_makfromstr.
5269
5270 * strings.c (scm_substring), strop.c (string_copy,
5271 scm_string_split), strports.c (scm_strport_to_string), symbols.c
5272 (scm_symbol_to_string): Fix gc problem.
5273
5274 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
5275 SCM_<foo>_H.
5276
5277 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
5278 warning about comparing signed and unsigned values. This fix is
5279 not optimal, since it won't work reliably if sizeof (c_start) >
5280 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
5281 solution is to define this macro as an inline function, thus
5282 allowing to specifiy the types of c_start and c_end.
5283
5284 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
5285
5286 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
5287 scm_t_debug_frame*.
5288
5289 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
5290 Rename <foo>H to SCM_<foo>_H.
5291
5292 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
5293 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
5294
5295 (narrow_stack): Make i unsigned. Don't use side-effecting
5296 operations in conditions.
5297
5298 (narrow_stack, scm_make_stack, scm_stack_id,
5299 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
5300
5301 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
5302 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
5303 more.
5304
5305 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
5306 signedness.
5307
5308 (scm_last_stack_frame): Remove bogus `;´.
5309
5310 * stacks.h (SCM_FRAMEP): Fix type check.
5311
5312 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
5313
5314 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
5315 c-tokenize.c when doing maintainer-clean.
5316
5317 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
5318
5319 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
5320 simplify.
5321
5322 * eval.c: all hash signs are in column 0.
5323
5324 * Makefile.am (guile_filter_doc_snarfage): build using
5325 c-tokenize.c, not filter-doc-snarfage.c.
5326 rearrange snarfing dependencies a bit.
5327
5328 * c-tokenize.lex: new file.
5329
5330 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
5331
5332 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
5333 scm_t_srcpropso_plist. See the big type renaming.
5334 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
5335 Thanks to Seth Alves!
5336
5337 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
5338 they aren't defined already.
5339
5340 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
5341
5342 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
5343 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
5344 problem.
5345
5346 * backtrace.c (display_expression, scm_set_print_params_x,
5347 display_application, display_frame, scm_backtrace), numbers.c
5348 (scm_istring2number), objects.c (scm_class_of,
5349 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
5350 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
5351
5352 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
5353 always positive.
5354
5355 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
5356 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
5357
5358 * objects.c (scm_class_of): Type fix.
5359
5360 (scm_mcache_lookup_cmethod): Improved comment, simplified,
5361 eliminated goto.
5362
5363 * pairs.h (scm_error_pair_access): The function can return if
5364 called recursively.
5365
5366 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5367
5368 * init.c (scm_init_guile_1): Removed initialization of tag.c.
5369
5370 * gdbint.c, init.c: Removed inclusion of tag.h.
5371
5372 * tag.h, tag.c: Removed files.
5373
5374 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
5375
5376 2001-06-20 Gary Houston <ghouston@arglist.com>
5377
5378 * deprecation.c, extensions.c, rw.c: include string.h.
5379
5380 2001-06-19 Gary Houston <ghouston@arglist.com>
5381
5382 * filter-doc-snarfage.c (process): added ungetc in
5383 MULTILINE_COOKIE case since otherwise it fails when there's no
5384 space between the '(' and the quote of the following string
5385 (gcc 3.0).
5386
5387 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
5388
5389 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
5390
5391 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
5392
5393 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
5394 extension takes place.
5395 * strings.h (SCM_STRING_LENGTH): Likewise.
5396 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
5397
5398 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
5399 it.
5400
5401 * tags.h: Include <stdint.h> when we have it.
5402 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
5403 available. Else use "unsigned long".
5404 (scm_signed_bits_t): New.
5405
5406 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
5407 (SCM_INUM): Cast result to scm_signed_bits_t.
5408
5409 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
5410
5411 * mkstemp.c: Update path to #include file scmconfig.h.
5412 Thanks to Golubev I. N.
5413
5414 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
5415
5416 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
5417
5418 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
5419 the macro definition.
5420
5421 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
5422 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
5423 instead of SCM_INST_TYPE.
5424
5425 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
5426 the object is a struct before accessing its struct flags.
5427
5428 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
5429
5430 2001-06-10 Gary Houston <ghouston@arglist.com>
5431
5432 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
5433 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
5434 work reliably anymore. try it from boot-9.scm instead.
5435
5436 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
5437
5438 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
5439 Thanks to Matthias Köppe!
5440
5441 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
5442
5443 * snarf.h, filter-doc-snarfage.c: more changes to cope with
5444 space-happy C preprocessors.
5445
5446 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
5447 inside cookies. thanks to Matthias Köppe!
5448
5449 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
5450
5451 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
5452 keywords. Fix gc protection.
5453
5454 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
5455 operations in macro calls.
5456
5457 * pairs.c (scm_error_pair_access): Avoid recursion.
5458
5459 Thanks to Matthias Koeppe for reporting the bugs that correspond
5460 to the following set of patches.
5461
5462 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
5463 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
5464 bitvector base address using SCM_BITVECTOR_BASE.
5465
5466 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
5467 unsigned long*.
5468
5469 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
5470
5471 * goops.c (SCM_CLASS_REDEF): Removed.
5472
5473 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
5474 SCM_<foo>_H.
5475
5476 Thanks to Matthias Koeppe for reporting the bugs that correspond
5477 to the following set of patches.
5478
5479 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
5480 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
5481 scm_sys_allocate_instance, clear_method_cache,
5482 scm_sys_invalidate_method_cache_x, scm_make,
5483 create_standard_classes, scm_make_port_classes, scm_make_class,
5484 scm_add_slot): Use SCM_SET_SLOT to set slot values.
5485
5486 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
5487
5488 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
5489
5490 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
5491 UNARY_ELTS_CODE): Remove bogus break statement.
5492
5493 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
5494 Don't access bit vectors elements as SCM objects.
5495
5496 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
5497 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
5498 Don't assign to an unpacked value.
5499
5500 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
5501
5502 * __scm.h (SCM_NORETURN): Moved here from error.h.
5503
5504 (SCM_UNUSED): New macro.
5505
5506 (SCM_DEBUG_PAIR_ACCESSES): New macro.
5507
5508 * backtrace.c (display_error_handler), continuations.c
5509 (continuation_print), debug.c (debugobj_print), dynwind.c
5510 (guards_print), environments.c (observer_print,
5511 core_environments_finalize, leaf_environment_cell,
5512 leaf_environment_print, eval_environment_print,
5513 eval_environment_observer, import_environment_define,
5514 import_environment_undefine, import_environment_print,
5515 import_environment_observer, export_environment_define,
5516 export_environment_undefine, export_environment_print,
5517 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
5518 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
5519 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
5520 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
5521 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
5522 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
5523 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
5524 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
5525 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
5526 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
5527 set_slot_value, test_slot_existence, scm_change_object_class,
5528 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
5529 default_setter), guardians.c (guardian_print, guardian_gc_init,
5530 guardian_zombify, whine_about_self_centered_zombies), guile.c
5531 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
5532 mallocs.c (malloc_print), numbers.c (scm_print_real,
5533 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
5534 end_input_default, scm_port_print, fill_input_void_port,
5535 write_void_port), root.c (root_print), smob.c (scm_mark0,
5536 scm_free0, scm_smob_print, scm_smob_apply_1_error,
5537 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
5538 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
5539 (scm_struct_free_0, scm_struct_free_standard,
5540 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
5541 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
5542 scm_handle_by_throw, scm_ithrow), weaks.c
5543 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
5544 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
5545 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
5546
5547 * error.h (SCM_NORETURN): Moved to __scm.h.
5548
5549 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
5550 Renamed <foo>H to SCM_<foo>_H.
5551
5552 * gc.c (debug_cells_gc_interval): New static variable.
5553
5554 (scm_assert_cell_valid): If selected by the user, perform
5555 additional garbage collections.
5556
5557 (scm_set_debug_cell_accesses_x): Extended to let the user specify
5558 if additional garbage collections are desired.
5559
5560 (mark_gc_async): If additional garbage collections are selected
5561 by the user, don't call the after-gc-hook. Instead require the
5562 user to run the hook manually.
5563
5564 * pairs.c (scm_error_pair_access): New function. Only compiled
5565 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
5566
5567 * pairs.h (SCM_VALIDATE_PAIR): New macro.
5568
5569 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
5570 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
5571 is a real pair object. (Glocs are also accepted, but that may
5572 change.) If not, abort with an error message.
5573
5574 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
5575
5576 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
5577
5578 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
5579 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
5580
5581 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
5582
5583 * extensions.c (scm_c_register_extension): Allow NULL as library
5584 name.
5585 (load_extension): Ignore NULL library names when comparing.
5586
5587 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
5588 non-pointers are being compared. Thanks to Alexander Klimov!
5589
5590 2001-06-04 Gary Houston <ghouston@arglist.com>
5591
5592 * rw.c (scm_write_string_partial): new procedure implementing
5593 write-string/partial in (ice-9 rw).
5594 * rw.h: declare scm_write_string_partial.
5595
5596 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
5597
5598 * keywords.c (keyword_print): Substract 1 from length of symbol
5599 name, accounting for the silly dash.
5600
5601 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
5602 Do not emit deprecation warning.
5603
5604 Added exception notice to all files.
5605
5606 * dynl.c: Include "deprecation.h".
5607
5608 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
5609
5610 * dynl.c (scm_register_module_xxx, scm_registered_modules,
5611 scm_clear_registered_modules): Deprecated.
5612
5613 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
5614
5615 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
5616 guile-snarf-docs-texi.
5617
5618 * fports.c: HAVE_ST_BLKSIZE changed to
5619 HAVE_STRUCT_STAT_ST_BLKSIZE.
5620 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
5621 HAVE_STRUCT_STAT_ST_BLKSIZE.
5622
5623 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
5624 HAVE_STRUCT_STAT_ST_RDEV.
5625 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
5626 HAVE_STRUCT_STAT_ST_BLKSIZE.
5627 (scm_stat2scm): HAVE_ST_BLOCKS changed to
5628 HAVE_STRUCT_STAT_ST_BLOCKS.
5629
5630 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
5631
5632 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
5633 of scm_eval_x to allow module changes between the forms in the
5634 string. Set/restore module using scm_c_call_with_current_module.
5635
5636 * mkstemp.c: New file, slightly modified from libiberties
5637 mkstemps.c.
5638
5639 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
5640
5641 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
5642 filter-doc-snarfage.c: new files.
5643
5644 * Makefile.am: add stuff to [build,] use and distribute
5645 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
5646
5647 * guile-snarf.in: grok the new snarf output.
5648
5649 * snarf.h: make the output both texttools- and `read'-friendly.
5650
5651 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
5652 guile-snarf-docs. (should also deprecate, I guess. maybe not).
5653
5654 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
5655
5656 * print.c (scm_simple_format): Support "~~" and "~%". Signal
5657 error for unsupported format controls and for superflous
5658 arguments. Thanks to Daniel Skarda!
5659
5660 * print.h, print.c (scm_print_symbol_name): Factored out of
5661 scm_iprin1.
5662 (scm_iprin1): Call it.
5663
5664 * keywords.c (keyword_print): Use scm_print_symbol_name so that
5665 weird names are printed correctly.
5666
5667 * print.c (scm_print_symbol_name): Symbols whose name starts with
5668 `#' or `:' or ends with `:' are considered weird.
5669
5670 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5671
5672 * numbers.c (scm_difference, scm_divide): Clarified comments for -
5673 and /.
5674
5675 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5676
5677 * debug.h: Removed prototype for scm_eval_string.
5678
5679 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5680
5681 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
5682 (make-string 2000 #\!))' in an older version).
5683
5684 Change strncpy to memcpy to allow embedded NUL characters in
5685 symbol prefix.
5686
5687 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
5688
5689 * hooks.c (scm_create_hook): deprecated.
5690 (make_hook): deleted.
5691 (scm_make_hook): all the hook creation code is now here.
5692
5693 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
5694 a hook, make it permanent, and do a `scm_c_define' on it.
5695
5696 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
5697
5698 * socket.c (s_scm_inet_pton): fix docstring quoting.
5699 (s_scm_inet_ntop): ditto.
5700
5701 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
5702
5703 * hashtab.c (scm_internal_hash_fold): fix argument position in
5704 SCM_ASSERT.
5705
5706 * environments.c (s_scm_import_environment_set_imports_x): fix
5707 argument position in SCM_ASSERT.
5708
5709 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
5710 (s_scm_make_iloc): ditto.
5711
5712 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
5713
5714 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
5715
5716 * eval.c (promise_print): Read the promise's value as an object.
5717
5718 (SCM_CEVAL): Don't perform side-effecting operations in macro
5719 parameters.
5720
5721 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
5722 conditional expression.
5723
5724 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
5725 initializer.
5726
5727 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
5728 text, removed redundant computation of effective_length and fixed
5729 the overflow check.
5730
5731 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
5732 values.
5733
5734 (wrap_init): Don't use SCM_C[AD]R for non pairs.
5735
5736 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
5737
5738 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
5739 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
5740
5741 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
5742
5743 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
5744 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
5745 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
5746 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
5747
5748 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
5749
5750 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
5751
5752 * ramap.c (ramap_rp): Removed bogus `;´.
5753
5754 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
5755 problem.
5756
5757 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
5758 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
5759 Read SCM objects rather than scm_bits_t values.
5760
5761 * tags.h (SCM_VOIDP_TEST): Removed.
5762
5763 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
5764 value of 2 now corresponds to the former 1, the current 1
5765 corresponds to the former situation that SCM_VOIDP_TEST was
5766 defined.
5767
5768 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
5769 If this appears to be not ANSI compliant, we will change it to
5770 typedef struct scm_unused_struct { } * SCM;
5771 Thanks to Han-Wen Nienhuys for the suggestion.
5772
5773 * unif.c (scm_array_set_x): Fix typing problem, and use
5774 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
5775 dealing with uniform vectors.
5776
5777 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
5778
5779 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
5780 (scm_igc): mark from them, too (precisely, not conservatively!).
5781
5782 * root.h (scm_gc_registered_roots): new object in
5783 scm_sys_protects.
5784
5785 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
5786 `scm_protect_object'. shouldn't call it at all, though, it seems.
5787
5788 * gc.c (scm_[un]protect_object): deprecated.
5789 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
5790 (scm_gc_[un]register_root[s]): new.
5791
5792 * gc.h: add prototypes for scm_gc_[un]protect_object,
5793 scm_gc_[un]register_root[s].
5794
5795 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
5796
5797 revert the controversial part of the 2001-05-24 changes.
5798
5799 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
5800
5801 * modules.c (scm_env_module): Exported to Scheme.
5802
5803 * eval.c (scm_debug_opts): New option `show-file-name'.
5804
5805 * debug.h (SCM_SHOW_FILE_NAME): New.
5806
5807 * backtrace.c: Include "libguile/filesys.h".
5808 (sym_base, display_backtrace_get_file_line,
5809 display_backtrace_file, display_backtrace_file_and_line): New.
5810 (display_frame): Call display_backtrace_file_and_line if that is
5811 requested.
5812 (display_backtrace_body): Call scm_display_backtrace_file if
5813 requested.
5814
5815 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
5816 Prototypes removed since there's no definition for these
5817 functions.
5818
5819 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5820
5821 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
5822 Changed use of scm_array->scm_array_t and
5823 scm_array_dim->scm_array_dim_t to enable build with
5824 --disable-deprecated.
5825
5826 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
5827
5828 The purpose of this set of changes is to regularize Guile's usage
5829 of ANSI C integral types, with the following ideas in mind:
5830
5831 - SCM does not nesessarily have to be long.
5832 - long is not nesessarily enough to store pointers.
5833 - long is not nesessarily the same size as int.
5834
5835 The changes are incomplete and possibly buggy. Please test on
5836 something exotic.
5837
5838 * validate.h
5839 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
5840 new macros.
5841
5842 * unif.h: type renaming:
5843 scm_array -> scm_array_t
5844 scm_array_dim -> scm_array_dim_t
5845 the old names are deprecated, all in-Guile uses changed.
5846
5847 * tags.h (scm_ubits_t): new typedef, representing unsigned
5848 scm_bits_t.
5849
5850 * stacks.h: type renaming:
5851 scm_info_frame -> scm_info_frame_t
5852 scm_stack -> scm_stack_t
5853 the old names are deprecated, all in-Guile uses changed.
5854
5855 * srcprop.h: type renaming:
5856 scm_srcprops -> scm_srcprops_t
5857 scm_srcprops_chunk -> scm_srcprops_chunk_t
5858 the old names are deprecated, all in-Guile uses changed.
5859
5860 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
5861 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
5862 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
5863 vectors.c, vports.c, weaks.c:
5864 various int/size_t -> size_t/scm_bits_t changes.
5865
5866 * random.h: type renaming:
5867 scm_rstate -> scm_rstate_t
5868 scm_rng -> scm_rng_t
5869 scm_i_rstate -> scm_i_rstate_t
5870 the old names are deprecated, all in-Guile uses changed.
5871
5872 * procs.h: type renaming:
5873 scm_subr_entry -> scm_subr_entry_t
5874 the old name is deprecated, all in-Guile uses changed.
5875
5876 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
5877 type renaming:
5878 scm_option -> scm_option_t
5879 the old name is deprecated, all in-Guile uses changed.
5880
5881 * objects.c: various long -> scm_bits_t changes.
5882 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
5883
5884 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
5885 SCM_I_FIXNUM_BIT.
5886
5887 * num2integral.i.c: new file, multiply included by numbers.c, used
5888 to "templatize" the various integral <-> num conversion routines.
5889
5890 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
5891 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
5892 deprecated.
5893 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
5894 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
5895 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
5896 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
5897 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
5898 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
5899 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
5900 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
5901 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
5902 scm_num2size): new functions.
5903
5904 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
5905
5906 * load.c: change int -> size_t in various places (where the
5907 variable is used to store a string length).
5908 (search-path): call scm_done_free, not scm_done_malloc.
5909
5910 * list.c (scm_ilength): return a scm_bits_t, not long.
5911 some other {int,long} -> scm_bits_t changes.
5912
5913 * hashtab.c: various [u]int -> scm_bits_t changes.
5914 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
5915 (scm_ihashx): n: uint -> scm_bits_t
5916 use scm_bits2num instead of scm_ulong2num.
5917
5918 * gsubr.c: various int -> scm_bits_t changes.
5919
5920 * goops.[hc]: various {int,long} -> scm_bits_t changes.
5921
5922 * gh_data.c (gh_num2int): no loss of precision any more.
5923
5924 * gh.h (gh_str2scm): len: int -> size_t
5925 (gh_{get,set}_substr): start: int -> scm_bits_t,
5926 len: int -> size_t
5927 (gh_<num>2scm): n: int -> scm_bits_t
5928 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
5929 (gh_length): return scm_bits_t, not unsigned long.
5930
5931 * gc.[hc]: various small changes relating to many things stopping
5932 being long and starting being scm_[u]bits_t instead.
5933 scm_mallocated should no longer wrap around.
5934
5935 * fports.h: type renaming:
5936 scm_fport -> scm_fport_t
5937 the old name is deprecated, all in-Guile uses changed.
5938
5939 * fports.c (fport_fill_input): count: int -> scm_bits_t
5940 (fport_flush): init_size, remaining, count: int -> scm_bits_t
5941
5942 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
5943 those prototypes, as the functions they prototype don't exist.
5944
5945 * fports.c (default_buffer_size): int -> size_t
5946 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
5947 default_size: int -> size_t
5948 (scm_setvbuf): csize: int -> scm_bits_t
5949
5950 * fluids.c (n_fluids): int -> scm_bits_t
5951 (grow_fluids): old_length, i: int -> scm_bits_t
5952 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
5953 scm_bits_t
5954 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
5955
5956 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
5957 the new and shiny SCM_NUM2INT.
5958
5959 * extensions.c: extension -> extension_t (and made a typedef).
5960
5961 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
5962 there are no nasty surprises if/when the various deeply magic tag
5963 bits move somewhere else.
5964
5965 * eval.c: changed the locals used to store results of SCM_IFRAME,
5966 scm_ilength and such to be of type scm_bits_t (and not int/long).
5967 (iqq): depth, edepth: int -> scm_bits_t
5968 (scm_eval_stack): int -> scm_bits_t
5969 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
5970 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
5971 i: int -> scm_bits_t
5972
5973 * environments.c: changed the many calls to scm_ulong2num to
5974 scm_ubits2num.
5975 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
5976
5977 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
5978
5979 * debug.h: type renaming:
5980 scm_debug_info -> scm_debug_info_t
5981 scm_debug_frame -> scm_debug_frame_t
5982 the old names are deprecated, all in-Guile uses changed.
5983 (scm_debug_eframe_size): int -> scm_bits_t
5984
5985 * debug.c (scm_init_debug): use scm_c_define instead of the
5986 deprecated scm_define.
5987
5988 * continuations.h: type renaming:
5989 scm_contregs -> scm_contregs_t
5990 the old name is deprecated, all in-Guile uses changed.
5991 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
5992 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
5993
5994 * continuations.c (scm_make_continuation): change the type of
5995 stack_size from long to scm_bits_t.
5996
5997 * ports.h: type renaming:
5998 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
5999 scm_port -> scm_port_t
6000 scm_ptob_descriptor -> scm_ptob_descriptor_t
6001 the old names are deprecated, all in-Guile uses changed.
6002 (scm_port_t.entry): int -> scm_bits_t.
6003 (scm_port_t.line_number): int -> long.
6004 (scm_port_t.putback_buf_size): int -> size_t.
6005
6006 * __scm.h (long_long, ulong_long): deprecated (they pollute the
6007 global namespace and have little value beside that).
6008 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
6009 SCM handle).
6010 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
6011 exist (for size_t & ptrdiff_t).
6012 (scm_sizet): deprecated.
6013
6014 * Makefile.am (noinst_HEADERS): add num2integral.i.c
6015
6016 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
6017
6018 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
6019 SCM_VARIABLE_INIT since that it what it used to be.
6020
6021 * deprecation.c (scm_include_deprecated_features): Make docstring
6022 ANSIsh. Thanks to Matthias Köppe!
6023
6024 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
6025
6026 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
6027 needed for weak-key hashtables.
6028
6029 * procs.c (scm_make_subr_with_generic): Add missing last argument
6030 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
6031
6032 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
6033 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
6034
6035 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
6036
6037 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
6038
6039 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
6040 `duplicate_string'. Do not use an indirect cell, store symbol
6041 directly in collision list of hash table.
6042 (duplicate_string): Removed.
6043
6044 * init.c (scm_init_guile_1): Call scm_init_extensions.
6045
6046 * Makefile.am: Add "extensions.c" and related files in all the
6047 right places.
6048
6049 * extensions.h, extension.c: New files.
6050
6051 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
6052
6053 * modules.h (scm_system_module_env_p): Move out of deprecated
6054 section.
6055
6056 * rw.h (scm_init_rw): Added prototype.
6057
6058 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
6059 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
6060 New functions. They replace scm_make_gsubr and
6061 scm_make_gsubr_with_generic. The `make' variants only create the
6062 gsubr object, while the `define' variants also put it into the
6063 current module. Changed all callers.
6064 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
6065
6066 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
6067 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
6068 functions. They replace scm_make_subr, scm_make_subr_opt and
6069 scm_make_subr_with_generic. The `make' variants only create the
6070 subr object, while the `define' variants also put it into the
6071 current module. Changed all callers.
6072 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
6073 Deprecated.
6074
6075 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
6076 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
6077 the comments above.
6078
6079 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
6080
6081 * throw.c (scm_lazy_catch): Slight docstring clarification.
6082
6083 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
6084
6085 * throw.c: Lazy-catch handlers are no longer allowed to return.
6086 Fixed comments throughout.
6087 (scm_ithrow): Signal an error when a lazy-catch handler returns.
6088 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
6089 recognized as such.
6090
6091 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
6092 refered to s_scm_minor_version previously.
6093
6094 * modules.h, modules.c: Moved around a lot of code so that
6095 deprecated features appear at the bottom.
6096 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
6097 module_prefix, make_modules_in_var, beautify_user_module_x_var,
6098 scm_the_root_module, scm_make_module, scm_ensure_user_module,
6099 scm_load_scheme_module): Deprecated.
6100 (scm_system_module_env_p): Return SCM_BOOL_T directly for
6101 environments corresponding to the root module.
6102 (convert_module_name, scm_c_resolve_module,
6103 scm_c_call_with_current_module, scm_c_define_module,
6104 scm_c_use_module, scm_c_export): New.
6105 (the_root_module): New static variant of scm_the_root_module. Use
6106 it everywhere instead of scm_the_root_module.
6107
6108 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
6109 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
6110 (scm_c_with_fluid): New.
6111 (scm_with_fluids): Use scm_c_with_fluids instead of
6112 scm_internal_with_fluids.
6113
6114 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
6115 `scm_init_goops'. Do not explicitly create/switch modules.
6116 Return SCM_UNSPECIFIED.
6117 (scm_init_goops): Only register `%init-goops-builtins' procedure.
6118 (scm_load_goops): Use scm_c_resolve_module instead of
6119 scm_resolve_module.
6120
6121 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
6122 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
6123 `scm_init_rw' prior to loading the startup files.
6124
6125 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
6126 scm_init_rdelim. Do not explicitly create/switch modules.
6127 Return SCM_UNSPECIFIED.
6128 (scm_init_rdelim): Only register `%init-rdelim-builtins'
6129 procedure.
6130
6131 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
6132 explicitly create/switch modules. Return SCM_UNSPECIFIED.
6133 (scm_init_rw): Only register `%init-rw-builtins' procedure.
6134
6135 * script.c (scm_shell): Evaluate the compiled switches in the
6136 current module, not in the root module.
6137
6138 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
6139
6140 * fluids.c (scm_c_with_fluids): Rename from
6141 scm_internal_with_fluids.
6142 (scm_internal_with_fluids): Deprecated.
6143 (scm_c_with_fluid): New.
6144
6145 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6146
6147 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
6148
6149 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
6150 accessed with SCM_C[AD]R.
6151
6152 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
6153
6154 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
6155
6156 * version.c (s_scm_major_version): doc fixes.
6157 (s_scm_minor_version): doc fixes.
6158 (s_scm_minor_version): new function.
6159
6160 * version.h (scm_init_version): new function.
6161
6162 * versiondat.h.in: add GUILE_MICRO_VERSION.
6163
6164 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
6165
6166 * deprecation.c (scm_init_deprecation): Renamed
6167 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
6168
6169 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
6170
6171 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
6172 dependent on cpp_cnvt.awk
6173
6174 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6175
6176 * script.c (scm_compile_shell_switches): New command line option
6177 `--use-srfi' for loading a list of SRFIs on startup.
6178 (scm_shell_usage): Added `--use-srfi' to help message.
6179
6180 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
6181
6182 Merged from mvo-vcell-cleanup-1-branch.
6183
6184 The concept of vcells has been removed from Guile. With it,
6185 explicit obarrays and associated operations are gone. Use
6186 hashtables instead of obarrays.
6187
6188 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
6189 result as variable instead of vcell. Glocs no longer point to a
6190 vcell but to a variable. Use scm_c_define instead of
6191 scm_sysintern and treat the result as a variable (which it is),
6192 not a vcell.
6193
6194 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
6195 SCM_DEFVARIABLEP): Deprecated.
6196 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
6197 (variable_print): Do not print name of variable.
6198 (variable_equalp): Compare values, not vcells.
6199 (anonymous_variable_sym): Removed.
6200 (make_vcell_variable): Removed.
6201 (make_variable): New, as replacement.
6202 (scm_make_variable, scm_make_undefined_variable): Do not take name
6203 hint parameter.
6204 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
6205 error in that case.
6206 (scm_builtin_variable): Deprecated.
6207
6208 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
6209 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
6210 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
6211 scm_sysintern, scm_sysintern0, scm_symbol_value0,
6212 scm_string_to_obarray_symbol, scm_intern_symbol,
6213 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
6214 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
6215 Deprecated and moved to "symbols-deprecated.c".
6216 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
6217 (scm_init_symbols): Call scm_init_symbols_deprecated.
6218 * symbols-deprecated.c: New file.
6219 * Makefile.am: Added symbols-deprecated.c and related files in all
6220 the right places.
6221
6222 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
6223 SCM_GLOBAL_VCELL_INIT): Deprecated.
6224 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
6225 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
6226
6227 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
6228 SCM_GLOC_SYM.
6229
6230 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
6231 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
6232 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
6233 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
6234 Changed according to the `throughout' comments.
6235
6236 * modules.h, modules.c (scm_module_system_booted_p): Changed type
6237 to `int'.
6238 (scm_module_type): Removed.
6239 (the_root_module): Renamed to the_root_module_var. Now points to
6240 a variable instead of a vcell. Updated all uses.
6241 (scm_the_root_module): Return SCM_BOOL_F when module systems
6242 hasn't been booted yet.
6243 (SCM_VALIDATE_STRUCT_TYPE): Removed.
6244 (scm_post_boot_init_modules): Made static.
6245 (scm_set_current_module): Call scm_post_boot_init_modules on first
6246 call.
6247 (make_modules_in, beautify_user_module_x, resolve_module,
6248 try_module_autoload, module_make_local_var_x): Tacked on "_var"
6249 suffix. Now point to variables instead of vcells. Updated all
6250 uses.
6251 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
6252 and return SCM_BOOL_F in that case.
6253 (scm_module_transformer): Likewise.
6254 (sym_module, scm_lookup_closure_module, scm_env_module): New.
6255 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
6256 (scm_eval_closure_lookup): Do not allow new definitions when
6257 `interface' flag is set.
6258 (scm_standard_interface_eval_closure): New.
6259 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
6260 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
6261 scm_c_lookup, scm_c_module_define, scm_c_define,
6262 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
6263 scm_modules_prehistory): New.
6264 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
6265 instead of scm_intern0.
6266
6267 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
6268 symbol.
6269
6270 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
6271 hashtable operations to maintain the keywords, not obarray ones.
6272
6273 * init.c (scm_load_startup_files): Do not call
6274 scm_post_boot_init_modules. This is done by
6275 scm_set_current_module now.
6276 (scm_init_guile_1): Call scm_modules_prehistory. Call
6277 scm_init_variable early on.
6278
6279 * goops.c (s_scm_sys_goops_loaded): Get
6280 var_compute_applicable_methods from scm_sym2var, not from a direct
6281 invocation of scm_goops_lookup_closure.
6282
6283 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
6284
6285 * gc.c: Added simple debugging hack to mark phase of GC: When
6286 activated, do not tail-call scm_gc_mark. This gives nice
6287 backtraces.
6288 (scm_unhash_name): Removed.
6289
6290 * feature.c (features): Renamed to features_var. Now points to a
6291 variable instead of a vcell. Updated all uses.
6292
6293 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
6294 `scm_current_module_lookup_closure' which will do the right thing
6295 when the module system hasn't been booted yet.
6296 (SCM_GLOC_SYM): Removed.
6297 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
6298 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
6299
6300 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
6301 instead of with vcells. Do not overwrite `var' with the result of
6302 the lookup, use the new `real_var' instead. Remove `var2' in
6303 exchange (which was only used with threads).
6304 (sym_three_question_marks): New.
6305 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
6306 `SCM_GLOC_SYM'.
6307 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
6308 (scm_m_atfop): Expect the function definition to be a variable
6309 instead of a vcell.
6310 (scm_macroexp): Do not use `unmemocar', explicitely remember the
6311 symbol instead.
6312 (scm_unmemocopy): Removed thoughts about anti-macro interface.
6313 (scm_eval_args): Use more explicit code in the gloc branch of the
6314 atrocious struct ambiguity test. The optimizer will sort this
6315 out.
6316 (scm_deval_args): Likewise.
6317 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
6318 remember the symbol instead. Added some comments where
6319 scm_tc3_cons_gloc really exclusively refers to structs.
6320 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
6321 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
6322 of scm_sysintern in general.
6323
6324 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
6325 explicit magic.
6326
6327 * debug.c (s_scm_make_gloc): Only allow proper variables, no
6328 pairs. Put the variable directly in the gloc.
6329 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
6330 (scm_init_debug): Use scm_c_define instead scm_sysintern.
6331
6332 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
6333
6334 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
6335 scm_the_last_stack_fluid_var. It now points to a variable instead
6336 of a vcell. Updated all uses.
6337 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
6338 instead of a vcell. Updated all uses.
6339
6340 * _scm.h: Include "variables.h" and "modules.h" since almost
6341 everybody needs them now.
6342
6343 * root.h (scm_symhash, scm_symhash_vars): Removed.
6344 * gc.c (scm_init_storage): Do not initialize them.
6345
6346 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
6347
6348 * eval.c (scm_init_eval): Initialize scm_undefineds and
6349 scm_listofnull.
6350
6351 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
6352 like the SCM_NEWCELL macro counterparts.
6353
6354 (scm_init_storage, scm_init_gc): Moved initialization of
6355 scm_tc16_allocated from scm_init_gc to scm_init_storage.
6356
6357 (scm_init_storage): Moved initialization of scm_undefineds and
6358 scm_listofnull to eval.c, initializion of scm_nullstr to
6359 strings.c, initializion of scm_nullvect to vectors.c.
6360
6361 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
6362 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
6363
6364 * init.c (scm_init_guile_1): Reordered some initializations and
6365 added dependcy information comments.
6366
6367 * load.c (scm_init_load): Use scm_nullstr.
6368
6369 * strings.c (scm_init_strings): Initialize scm_nullstr.
6370
6371 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
6372
6373 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
6374
6375 * values.c (print_values): Print as a unreadable object, not as
6376 multiple lines. Thanks to Matthias Köppe!
6377
6378 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
6379
6380 * deprecation.c: Fixed copyright date.
6381
6382 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
6383 DEPRECATION_H to SCM_DEPRECATION_H.
6384
6385 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
6386
6387 * guile-doc-snarf.in: Update copyright.
6388 Fix relative path bug. Thanks to Sergey Poznyakoff.
6389
6390 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
6391
6392 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
6393 accept open ports. Thanks to Quetzalcoatl Bradley!
6394
6395 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6396
6397 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
6398 has 779 primitives on startup.
6399
6400 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
6401
6402 * eval.c (scm_i_eval): Copy expression before passing it to
6403 SCM_XEVAL. The copy operation was removed unintendedly during my
6404 change on 2001-03-25.
6405
6406 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
6407
6408 from Matthias Köppe (thanks!):
6409
6410 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
6411 portable.
6412
6413 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
6414 docstring.
6415
6416 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
6417
6418 * gc.c (scm_init_gc): Added FIXME comment.
6419
6420 * hooks.c: Since hooks don't have a name any more, it is not
6421 necessary to include objprop.h.
6422
6423 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
6424
6425 (symbol_name, scm_make_hook_with_name): Removed.
6426
6427 (scm_create_hook): Don't set the hook's name property.
6428
6429 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
6430
6431 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
6432
6433 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
6434
6435 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
6436 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
6437 FLOBUFLEN and define it unconditionally.
6438
6439 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
6440
6441 * gh_data.c (gh_lookup): Call gh_module_lookup with
6442 `scm_current_module ()', not `#f'.
6443 (gh_module_lookup): Expect a module instead of an obarray as first
6444 argument and do lookup in that module.
6445
6446 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
6447 arrays. The length of array is already determined differently and
6448 scm_uniform_vector_length does not work on arrays.
6449
6450 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
6451
6452 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
6453 as well. "SCM (*)(...)" does not work on RedHat 7.1.
6454
6455 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
6456 they are not used. Changed `wrong type' error into `wrong num
6457 args' error. Changed all callers.
6458
6459 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
6460 arguments are supplied.
6461
6462 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
6463
6464 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
6465 describe `regexp/notbol' and `regexp/noteol' execution flags.
6466
6467 * strop.c (scm_substring_move_x): Doc fix; nfc.
6468
6469 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
6470
6471 * objects.c, objects.h (scm_valid_object_procedure_p): New.
6472 (scm_set_object_procedure_x): Use it to check argument. Fix
6473 docstring.
6474
6475 * evalext.c (scm_definedp): Fix docstring.
6476
6477 2001-05-05 Gary Houston <ghouston@arglist.com>
6478
6479 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
6480 support.
6481
6482 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
6483
6484 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
6485 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
6486 Change R4RS references to R5RS.
6487
6488 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
6489 docstring source are correctly reproduced in the output (ii)
6490 we don't anymore get occasional trailing quotes. Also reorganized
6491 and commented the code a little.
6492
6493 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
6494 fixes.
6495
6496 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6497
6498 * strop.c (scm_string_split): New procedure.
6499
6500 * strop.h (scm_string_split): Added prototype.
6501
6502 2001-05-04 Gary Houston <ghouston@arglist.com>
6503
6504 * socket.c: define uint32_t if netdb.h doesn't. thanks to
6505 Dale P. Smith.
6506
6507 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
6508
6509 * rw.c: Include "modules.h" and "strports.h".
6510
6511 * net_db.h (scm_gethost): Added prototype.
6512
6513 * deprecation.h, deprecation.c: New.
6514 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
6515 (DOT_X_FILES): Added "deprecation.x".
6516 (modinclude_HEADERS): Added "deprecation.h".
6517
6518 * init.c: Include "deprecation.h".
6519 (scm_init_guile_1): Call scm_init_deprecation.
6520
6521 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
6522
6523 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
6524 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
6525 New.
6526
6527 2001-04-29 Gary Houston <ghouston@arglist.com>
6528
6529 * rw.c: new file, implementing C part of module (ice-9 rw).
6530 (scm_read_string_x_partial): moved from ioext.c
6531 (scm_init_rw): new proc.
6532 * rw.h: new file.
6533 init.c: include rw.h and call scm_init_rw.
6534 Makefile.am: include rw.c and rw.h.
6535
6536 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
6537
6538 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
6539 know what's supposed to happen to it.
6540
6541 * list.h (scm_list_star): deprecation expired - removed.
6542
6543 * numbers.h (scm_dblproc): deprecation expired - removed.
6544 (SCM_UNEGFIXABLE): deprecation expired - removed.
6545 (SCM_FLOBUFLEN): deprecation expired - removed.
6546 (SCM_INEXP): deprecation expired - removed.
6547 (SCM_CPLXP): deprecation expired - removed.
6548 (SCM_REAL): deprecation expired - removed.
6549 (SCM_IMAG): deprecation expired - removed.
6550 (SCM_REALPART): deprecation expired - removed.
6551 (scm_makdbl): deprecation expired - removed.
6552 (SCM_SINGP): deprecation expired - removed.
6553 (SCM_NUM2DBL): deprecation expired - removed.
6554 (SCM_NO_BIGDIG): deprecation expired - removed.
6555
6556 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
6557 (scm_tc_dblr): deprecation expired - removed.
6558 (scm_tc_dblc): deprecation expired - removed.
6559 (scm_tc16_flo): deprecation expired - removed.
6560 (scm_tc_flo): deprecation expired - removed.
6561
6562 * tag.h (scm_tag): deprecation expired - removed.
6563
6564 * tag.c: (scm_tag): deprecation expired - removed.
6565
6566 * ioext.c: (scm_fseek): deprecation expired - removed.
6567
6568 * ioext.h (scm_fseek): deprecation expired - removed.
6569
6570 * gh_data.c (gh_int2scmb): deprecation expired - removed.
6571
6572 * gh.h (gh_int2scmb): deprecation expired - removed.
6573
6574 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
6575
6576 * stacks.c (scm_make_stack): Fix typo in docstring.
6577
6578 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
6579
6580 * error.c (scm_sysmissing): deprecation expired - removed.
6581
6582 * error.h (scm_sysmissing): deprecation expired - removed.
6583
6584 * gc.c
6585 (scm_init_gc): gc-thunk deprecation expired - removed.
6586 (scm_gc_vcell): deprecation expired - removed.
6587 (gc_async_thunk): scm_gc_vcell related code removed.
6588
6589 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
6590
6591 * strings.h
6592 (SCM_NSTRINGP): deprecation expired - removed.
6593 (SCM_NRWSTRINGP): deprecation expired - removed.
6594
6595 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
6596
6597 * chars.h
6598 (SCM_ICHRP): deprecation expired - removed.
6599 (SCM_ICHR): deprecation expired - removed.
6600 (SCM_MAKICHR): deprecation expired - removed.
6601
6602 * ports.h
6603 (SCM_INPORTP): deprecation expired - removed.
6604 (SCM_OUTPORTP): deprecation expired - removed.
6605
6606 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
6607
6608 * modules.c (scm_module_type): New.
6609 (scm_post_boot_init_modules): Initialize from Scheme value.
6610 (the_module, scm_current_module, scm_init_modules): the_module is
6611 now a C only fluid.
6612 (scm_current_module): Export to Scheme.
6613 (scm_set_current_module): Do not call out to Scheme, do all the
6614 work in C. Export procedure to Scheme. Only accept modules, `#f'
6615 is no longer valid as the current module. Only set
6616 scm_top_level_lookup_closure_var and scm_system_transformer when
6617 they are not deprecated.
6618 (scm_module_transformer, scm_current_module_transformer): New.
6619
6620 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
6621 scm_current_module_transformer, scm_module_transformer): New.
6622
6623 * gh_data.c: Removed FIXME comment about gh_lookup returning
6624 SCM_UNDEFINED. That's the right thing to do.
6625
6626 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
6627 into the conditionally compiled sections.
6628 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
6629 scm_current_module_transformer instead of scm_system_transformer.
6630 * init.c (start_stack): Move initialization of
6631 scm_system_transformer to the deprecated section.
6632
6633 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
6634
6635 * throw.c (scm_throw): Correct docstring.
6636
6637 2001-04-22 Gary Houston <ghouston@arglist.com>
6638
6639 * socket.c: attempted to improve the docstrings slightly.
6640
6641 * net_db.c: remove bogus "close" declaration.
6642 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
6643 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
6644 moved to socket.c.
6645 * net_db.h: declarations moved too.
6646
6647 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
6648 long.
6649 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
6650 (VALIDATE_INET6): new macro.
6651 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
6652 inet-pton and inet-ntop.
6653 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
6654 (scm_addr_vector): use ipv6_net_to_num.
6655
6656 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
6657
6658 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
6659 smob number explicitly. Use SCM_TC2SMOBNUM instead.
6660
6661 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
6662 when compiled in debug mode.
6663
6664 (scm_gc_sweep): Only call smob's free function if it is defined.
6665
6666 * print.c (scm_iprin1): No need to check for validity of smob
6667 type or existence of print function.
6668
6669 * smob.[ch] (scm_smobs): Made into a fixed size global array.
6670 Resizing will not work well with preemptive threading.
6671
6672 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
6673
6674 (scm_make_smob_type): Extracted initialization of smob
6675 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
6676 of the critical section.
6677
6678 (scm_smob_prehistory): Initialize all smob descriptors. By
6679 default, don't assign a smob free function: Most smob types don't
6680 need one.
6681
6682 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
6683
6684 2001-04-21 Gary Houston <ghouston@arglist.com>
6685
6686 * socket.c (FLIP_NET_HOST_128): new macro.
6687 (scm_fill_sockaddr): use new macro.
6688 (scm_addr_vector): completed IPv6 address support. added const
6689 to the address parameter.
6690
6691 2001-04-20 Gary Houston <ghouston@arglist.com>
6692
6693 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
6694 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
6695 is defined.
6696 (scm_addr_vector): use a switch instead of multiple if statements.
6697 Add support for IPv6 (incomplete) .
6698 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
6699
6700 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
6701
6702 * struct.c (scm_free_structs): Only pairs may be accessed with
6703 SCM_C[AD]R.
6704
6705 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6706
6707 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
6708
6709 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
6710 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
6711 parentheses in order to get the correct associativity.
6712
6713 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
6714
6715 * unif.c (scm_array_to_list): Added missing handling of arrays of
6716 bytes. Thanks to Masao Uebayashi for the bug report.
6717
6718 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
6719
6720 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
6721 consistently.
6722
6723 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
6724
6725 * procs.h (SCM_CLOSURE_FORMALS): New macro.
6726
6727 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
6728 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
6729 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
6730 SCM_CLOSURE_FORMALS.
6731
6732 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
6733 (scm_i_procedure_arity): Prefer stronger predicates like
6734 SCM_NULLP or SCM_FALSEP over SCM_IMP.
6735
6736 * macros.c (macro_print): Extracted macro printing code from
6737 print.c and simplified it.
6738
6739 (scm_macro_type): Use SCM_MACRO_TYPE;
6740
6741 (scm_init_macros): Use macro_print for printing macros.
6742
6743 * print.c (scm_print_opts): Improved option documentation.
6744
6745 (scm_iprin1): Extracted printing of macros to macros.c.
6746 Simplified printing of ordinary closures.
6747
6748 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
6749 Martin Grabmueller for the bug report.
6750
6751 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
6752
6753 This patch eliminates some further applications of SCM_C[AD]R to
6754 non pair cells.
6755
6756 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
6757 never been applied to real pairs.
6758
6759 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
6760
6761 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
6762
6763 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
6764 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
6765 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
6766
6767 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
6768 Added.
6769
6770 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
6771 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
6772
6773 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
6774 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
6775 SCM_SET{AND,OR}_CAR.
6776
6777 2001-04-17 Gary Houston <ghouston@arglist.com>
6778
6779 * some initial support for IPv6:
6780
6781 * socket.c (scm_fill_sockaddr): improve the argument validation.
6782 don't allocate memory until all args are checked. instead of
6783 unconditional memset of soka, try setting sin_len to 0 if
6784 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
6785 (scm_socket, scm_connect): extend docstrings for IPv6.
6786 (scm_init_socket): intern AF_INET6 and PF_INET6.
6787
6788 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
6789
6790 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
6791 matches SCM_DEFER_INTS at the beginning of the function.
6792
6793 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
6794
6795 * gc.c (scm_igc): Unconditionally call
6796 SCM_CRITICAL_SECTION_START/END.
6797
6798 * fluids.c (next_fluid_num): Unconditionally call
6799 SCM_CRITICAL_SECTION_START/END.
6800 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
6801
6802 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
6803 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
6804 Removed.
6805
6806 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
6807 Defined as nothing for the case of !defined(USE_THREADS).
6808 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
6809 Removed.
6810 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
6811 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
6812 LINE.
6813 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
6814 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
6815 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
6816 SCM_CRITICAL_SECTION_START/END.
6817 (SCM_REALLOW_INTS: Bug fix. Don't call
6818 SCM_THREAD_SWITCHING_CODE.
6819 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
6820 SCM_THREAD_SWITCHING_CODE directly.
6821 (SCM_ENTER_A_SECTION): Unconditionally use
6822 SCM_CRITICAL_SECTION_START/END. (was:
6823 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
6824
6825 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6826
6827 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
6828 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
6829 allowed to explicitly set this macro via the CFLAGS variable
6830 during make.
6831
6832 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
6833 (SCM_THREAD_CRITICAL_SECTION_START,
6834 SCM_THREAD_CRITICAL_SECTION_END): Renamed
6835 SCM_THREAD_CRITICAL_SECTION_START/END to
6836 SCM_CRITICAL_SECTION_START/END.
6837
6838 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
6839
6840 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
6841 instead of bzero.
6842
6843 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
6844 (MISSING_BZERO_DECL): Remove the declaration.
6845
6846 Thanks to NIIBE Yutaka.
6847
6848 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6849
6850 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
6851 goops module should be registered in order to work for an
6852 application which uses libguile statically linked.)
6853
6854 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
6855
6856 * numbers.[ch] (scm_num2long, scm_num2long_long,
6857 scm_num2ulong_long, scm_num2ulong): Argument position is an
6858 unsigned integer.
6859
6860 * environments.c (eval_environment_folder,
6861 import_environment_folder), gh_data.c (gh_scm2longs,
6862 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
6863 for integers and pointers, respectively.
6864
6865 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
6866 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
6867 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
6868 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
6869
6870 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
6871 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
6872 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
6873 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
6874 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
6875 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
6876
6877 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
6878
6879 * strings.c (scm_read_only_string_p): Update docstring to reflect
6880 current (non-)usage of "read only" strings.
6881 (scm_make_shared_substring): Clarify docstring by changing
6882 "semantics" to "arguments".
6883
6884 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6885
6886 * hooks.c (scm_make_hook, scm_make_hook_with_name),
6887 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
6888 improvements.
6889
6890 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6891
6892 The following changes make the documentation more consistent.
6893
6894 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
6895 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
6896 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
6897 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
6898 ... @end lisp.
6899
6900 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
6901 (scm_array_dimensions, scm_make_shared_array),
6902 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
6903 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
6904 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
6905 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
6906 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
6907 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
6908 macros.c (scm_makmmacro), list.c (scm_append), environments.c
6909 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
6910 @example ... @end example to @lisp ... @end lisp.
6911
6912 * weaks.c (scm_weak_vector): Corrected docstring.
6913
6914 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
6915 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
6916 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
6917 (scm_hashx_set_x, scm_hashx_get_handle),
6918 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
6919 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
6920 vectors.c (scm_vector_fill_x), strings.c
6921 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
6922 objprop.c (scm_set_object_properties_x):
6923 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
6924 strports.c (scm_call_with_input_string), ports.c
6925 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
6926 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
6927 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
6928 (scm_make_weak_vector,scm_weak_vector_p),
6929 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
6930 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
6931 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
6932 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
6933 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
6934 Made parameter names match documentation by renaming parameters
6935 and/or fixing docstrings.
6936
6937 * numbers.c (scm_ash): Corrected Texinfo markup.
6938
6939 * strop.c (scm_string_index, scm_string_rindex),
6940 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
6941
6942 * vports.c (scm_make_soft_port), unif.c
6943 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
6944 (scm_dimensions_to_uniform_array, scm_transpose_array),
6945 (scm_array_in_bounds_p, scm_uniform_vector_ref),
6946 (scm_bit_count, scm_bit_position, scm_bit_count_star),
6947 (scm_array_to_list, scm_list_to_uniform_array),
6948 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
6949 (scm_open_input_string, scm_open_output_string),
6950 (scm_get_output_string), strop.c (scm_string_copy),
6951 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
6952 (scm_get_internal_real_time, scm_times),
6953 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
6954 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
6955 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
6956 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
6957 simpos.c (scm_system), random.c (scm_random_uniform),
6958 (scm_random_normal, scm_random_exp), ramap.c
6959 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
6960 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
6961 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
6962 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
6963 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
6964 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
6965 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
6966 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
6967 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
6968 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
6969 (scm_logand, scm_logior, scm_logxor, scm_lognot),
6970 (scm_integer_expt, scm_bit_extract, scm_logcount),
6971 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
6972 net_db.c (scm_inet_netof, scm_lnaof), modules.c
6973 (scm_interaction_environment), macros.c (scm_makacro),
6974 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
6975 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
6976 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
6977 (scm_fluid_ref), filesys.c (scm_open_fdes),
6978 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
6979 Docstring correction: `Returns' -> `Return'
6980
6981 * gc.c (scm_set_debug_cell_accesses_x):
6982 (s_scm_gc_set_debug_check_freelist_x):
6983 * fluids.c (scm_fluid_p): Added texinfo markup.
6984
6985 * error.c (scm_strerror): Made docstring more precise.
6986
6987 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
6988 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
6989 (scm_symbol_p, scm_symbol_to_string), strorder.c
6990 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
6991 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
6992 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
6993 (scm_string_ci_geq_p), strop.c (scm_string_copy),
6994 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
6995
6996 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
6997
6998 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
6999 mode, as suggested by Michael Livshin.
7000
7001 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
7002
7003 * backtrace.c (display_backtrace_body): since the `print_state'
7004 variable is not used (instead its data field is used directly as
7005 `pstate'), protect it from the hungry compiler optimizations.
7006 thanks to Bill Schottstaedt for the report.
7007
7008 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
7009
7010 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
7011 It is only defined and used if guile is compiled with
7012 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
7013 let cells with a free_cell type tag be visible outside of the
7014 garbage collector when in debug mode.
7015
7016 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
7017
7018 (scm_assert_cell_valid): Use a local static variable to avoid
7019 recursion.
7020
7021 (MARK): Only check for rogue cell pointers in debug mode. Use
7022 scm_cellp for this purpose and place all checks for rogue pointers
7023 into that function. Further, since due to conservative scanning
7024 we may encounter free cells during marking, don't use the standard
7025 cell type accessor macro to determine the cell type.
7026
7027 (scm_cellp): Check if the cell pointer actually points into a
7028 card header.
7029
7030 (scm_init_gc): Initalize scm_tc16_allocated.
7031
7032 * gc.h (GCH): Renamed to SCM_GC_H.
7033
7034 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
7035 might be unnecessary, but I feel better this way :-)
7036
7037 (SCM_GC_CELL_TYPE): New macro.
7038
7039 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
7040 in guile, and it is unlikely that they will be applied to real
7041 pairs anyway.
7042
7043 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
7044
7045 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
7046 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
7047
7048 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
7049 make sure that in debug mode no free cell will ever be visible
7050 outside of the garbage collector.
7051
7052 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
7053
7054 * async.c (scm_asyncs_pending): Don't use != to compare SCM
7055 values.
7056
7057 * async.c (scm_system_async), variable.c (scm_make_variable,
7058 scm_make_undefined_variable): Use scm_cons to create a pair.
7059
7060 * debug.c (scm_reverse_lookup): Perform proper type checking.
7061 Remove suspicious use of SCM_SLOPPY_CONSP.
7062
7063 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
7064 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
7065 the corresponding optimization.
7066
7067 * eval.c (iqq): Use proper type check.
7068
7069 (scm_m_expand_body): Remove redundant type checks.
7070
7071 (promise_print): Don't access promise cells as pairs.
7072
7073 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
7074 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
7075 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
7076 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
7077 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
7078
7079 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
7080 (scm_iprin1): Use new macro predicate and accessors.
7081
7082 * eval.h (scm_tc16_macro): Removed declaration. It is declared
7083 in macros.h.
7084
7085 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
7086 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
7087 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
7088 SCM_VARIABLE_H. Even the macros that are used to inhibit
7089 including a header file twice should be in the SCM_ namespace.
7090
7091 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
7092 properties.c (scm_primitive_property_ref,
7093 scm_primitive_property_del_x): Prefer stronger predicates like
7094 SCM_NULLP or SCM_FALSEP over SCM_IMP.
7095
7096 * gc.c (MARK): Use proper macros to access procedure-with-setter
7097 cell elements and closure cell elements.
7098
7099 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
7100 access free cells as pairs.
7101
7102 (scm_unprotect_object): scm_hashq_get_handle returns #f if
7103 no hashtab entry is found.
7104
7105 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
7106 SCM_CLR_PORT_OPEN_FLAG.
7107
7108 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
7109 use SCM_SET_C[AD]R for uninitialized cells.
7110
7111 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
7112 If the hashtable has no slots, return #f instead of '(). This
7113 unifies the return value with most assoc-functions.
7114
7115 (scm_hash_fn_ref): Use proper type check.
7116
7117 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
7118 Removed references to non-existing functions from documentation.
7119
7120 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
7121 access keyword cell elements.
7122
7123 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
7124 macros.
7125
7126 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
7127
7128 * print.c (scm_iprlist): Added comment. Improved loop
7129 conditions.
7130
7131 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
7132 pairs.
7133
7134 * smob.c (scm_markcdr): Don't access smob cells as pairs.
7135
7136 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
7137
7138 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
7139 cells as pairs.
7140
7141 * variable.c (variable_print, variable_equalp, scm_variable_ref,
7142 scm_variable_set_x): Use proper macros to access variable cell
7143 elements.
7144
7145 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
7146
7147 * variable.h (SCM_VARVCELL): Don't access variable cells as
7148 pairs.
7149
7150 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
7151 added FIXME comment, removed register specifier.
7152
7153 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
7154
7155 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
7156 * init.c (scm_init_guile_1): Don't init goopscore module.
7157
7158 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
7159
7160 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
7161
7162 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7163
7164 * strop.c (scm_string_to_list): Fixed docstring markup.
7165 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
7166 (scm_string_downcase, scm_string_capitalize_x),
7167 (scm_string_capitalize): Rewrote and corrected docstrings.
7168 (scm_string_ci_to_symbol): Made docstring more explicit.
7169
7170 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
7171
7172 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
7173 eval.c can use it.
7174 (scm_call_with_values): Removed.
7175 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
7176 so that it can be exported.
7177 (scm_call_with_values): Removed.
7178
7179 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
7180 * eval.c: Include "libguile/values.h"
7181 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
7182 New.
7183 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
7184 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
7185 New delcarations to support above change.
7186
7187 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
7188 errors with last change.
7189
7190 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
7191
7192 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
7193 scm_i_eval): Moved the application of the system transformer from
7194 scm_i_eval to scm_primitive_eval.
7195
7196 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
7197
7198 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
7199
7200 * strop.c (scm_string_index): Fix docstring line break
7201 regression.
7202
7203 * list.c (scm_cons_star): Fix docstring typo.
7204
7205 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
7206
7207 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
7208 (big2str), ports.c (scm_drain_input), read.c (scm_read,
7209 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
7210 scm_make_string, scm_string_append), strports.c (st_resize_port,
7211 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
7212 scm_makstr with calls to scm_allocate_string.
7213
7214 * strings.[ch] (scm_allocate_string): New function.
7215
7216 * strings.[ch] (scm_makstr): Deprecated.
7217
7218 2001-03-18 Gary Houston <ghouston@arglist.com>
7219
7220 * posix.c (scm_tmpnam): check that return value from tmpnam is not
7221 NULL. rewrote the docstring.
7222 (scm_mkstemp): new procedure implementing "mkstemp!".
7223 * posix.h: declare scm_mkstemp.
7224
7225 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
7226 normally it would be found in netdb.h.
7227
7228 2001-03-17 Gary Houston <ghouston@arglist.com>
7229
7230 * sort.c (scm_sort): move sortvec variable to avoid a compiler
7231 warning when HAVE_ARRAYS is not defined. move len too.
7232
7233 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
7234 (EXTRA_DOT_X_FILES): let configure set the value.
7235 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
7236
7237 * gc.c (scm_must_malloc): changed the comment explaining when
7238 scm_must variants of malloc/free etc., should be used, based on
7239 explanation from Dirk Herrmann.
7240 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
7241 string with procedure name. use scm_must_malloc instead of malloc.
7242 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
7243 of malloc/free.
7244 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
7245 scm_ungetc): use scm_must variants of malloc/realloc/free.
7246 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
7247
7248 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7249
7250 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
7251 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
7252 scm_wrong_type_arg instead.
7253
7254 (SCM_WNA): Deprecated.
7255
7256 * error.[ch] (scm_wta): Deprecated.
7257
7258 * numbers.c (s_i_log): Minor comment fix.
7259
7260 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
7261 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
7262 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
7263 wrong-num-args or misc errors.
7264
7265 * unif.c (scm_make_shared_array, scm_transpose_array,
7266 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
7267 Validate the rest argument (note: this is only done when guile is
7268 built with SCM_DEBUG_REST_ARGUMENT=1)
7269
7270 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
7271 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
7272
7273 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
7274 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
7275
7276 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7277
7278 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
7279 instead of scm_wrong_num_args.
7280
7281 * coop-threads.c: Don't include libguile/strings.h. (Was only
7282 needed for former implementation of SCM_WRONG_NUM_ARGS.)
7283
7284 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
7285 wrong-num-args errors.
7286
7287 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7288
7289 * error.[ch] (scm_error_num_args_subr): New function.
7290
7291 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7292
7293 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
7294 (scm_length, scm_append, scm_reverse, scm_list_ref),
7295 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
7296 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
7297 (scm_delete1_x), gc.c (scm_map_free_list),
7298 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
7299 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
7300 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
7301 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
7302 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
7303 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
7304 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
7305
7306 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
7307 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
7308 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
7309 symbols.c (scm_symbol_interned_p), numbers.c
7310 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
7311 markup.
7312
7313 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
7314
7315 * snarf.h (SCM_CONST_LONG): Deprecated.
7316 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
7317
7318 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
7319
7320 * numbers.c (scm_num2ulong): Check that a bignum is positive
7321 before looking at the magnitude. Correctly check for overflow
7322 during conversion.
7323 (scm_num2long_long): Likewise.
7324 (scm_num2ulong_long): New.
7325 (ULONG_LONG_MAX): Define if not already defined.
7326 * numbers.h: (scm_num2ulong_long): New prototype.
7327
7328 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7329
7330 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
7331
7332 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
7333 (SCM_OPOUTSTRPORTP): New predicate macros.
7334 (scm_open_input_string, scm_open_output_string),
7335 (scm_get_output_string): New prototypes.
7336
7337 * strports.c (scm_open_input_string, scm_open_output_string),
7338 (scm_get_output_string): New procedures (SRFI-6 compliant).
7339 Made scm_tc16_strport non-static.
7340
7341 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
7342
7343 * macros.h (SCM_ASSYNT): Removed unused object argument from
7344 signature.
7345
7346 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
7347 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
7348 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
7349 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
7350 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
7351 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
7352 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
7353 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
7354 scm_m_atdispatch): Removed unused object argument from call to
7355 SCM_ASSYNT.
7356
7357 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
7358
7359 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
7360 const int* to reflect that the input array of integers remains
7361 unchanged. Thanks to Brett Viren for the hint.
7362
7363 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7364
7365 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
7366 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
7367 in various places.
7368 (gh_scm2newstr, gh_symbol2newstr): Change call to
7369 scm_must_malloc() to malloc(), because user-free()able memory is
7370 allocated.
7371
7372 * gc.c: Added declaration of `scm_debug_check_freelist'.
7373
7374 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7375
7376 * ports.c (scm_port_mode): Changed `mode' array size to 4.
7377
7378 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
7379
7380 * strports.c (scm_object_to_string): New procedure.
7381 (scm_strprint_obj): Deprecated.
7382 * strports.h: Reflect the changes.
7383
7384 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
7385
7386 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
7387
7388 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
7389 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
7390 SCM_ASSYNT to check for correct argument types. Either use some
7391 SCM_VALIDATE_* macro or an explicit test.
7392
7393 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
7394 misc-errors.
7395
7396 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
7397 instead of calling scm_wta.
7398
7399 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7400
7401 * load.c (scm_primitive_load, scm_primitive_load_path),
7402 (scm_sys_search_load_path): Corrected docstrings (file ->
7403 filename).
7404
7405 * eval.c (scm_force): Added texinfo markup to docstring.
7406 (scm_promise_p): Renamed parameter to `obj' to match docstring.
7407
7408 * debug-malloc.c: Reinserted #include <stdio.h>.
7409
7410 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
7411
7412 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
7413
7414 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
7415 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
7416 Use SCM_LISTn instead of scm_listify.
7417
7418 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7419
7420 * _scm.h: Removed #include <errno.h>.
7421
7422 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
7423 errno variable (can be a macro on some systems, for example when
7424 using linux libc with threads).
7425
7426 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
7427 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
7428 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
7429 #include <errno.h> in these 20 out of 100 files.
7430
7431 2001-03-10 Gary Houston <ghouston@arglist.com>
7432
7433 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
7434 not already defined.
7435
7436 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7437
7438 * coop.c: Inserted #include <stdio.h>.
7439
7440 * iselect.c: Reinserted #include <stdio.h>.
7441
7442 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
7443
7444 * posix.c: Replaced `#define' of __USE_XOPEN right before
7445 including unistd.h with a define of _GNU_SOURCE at the very top of
7446 the file.
7447
7448 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
7449
7450 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
7451 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
7452 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
7453 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
7454 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
7455 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
7456 print.c, procprop.c, procs.c, properties.c, ramap.c,
7457 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
7458 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
7459 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
7460 Remove #include <stdio.h>
7461 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
7462
7463 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
7464
7465 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7466
7467 * posix.c (scm_gethostname): Set initial name length to 256 for
7468 Solaris.
7469
7470 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7471
7472 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
7473 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
7474 (scm_sethostname, scm_gethostname): New prototypes.
7475
7476 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
7477 <sys/file.h>, if present.
7478 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
7479 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
7480 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
7481 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
7482 (scm_sethostname, scm_gethostname): New procedures.
7483
7484 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
7485
7486 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
7487 not optional (ii) "recommend" spelling correction.
7488
7489 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7490
7491 * ramap.c (racp): Removed optimization which caused array copying
7492 to fail if the two arrays shared storage. Re-inserted the IVDEP
7493 macros removed in the change of 2000-03-09. (Don't really have a
7494 complete grasp of what they are for, but they seem to be necessary
7495 on Crays. This needs testing!) Thanks to Miroslav Silovic.
7496
7497 * hash.c (scm_string_hash): Don't downcase characters.
7498
7499 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7500
7501 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
7502 size from 277 --> 1009.
7503
7504 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
7505 function.
7506
7507 * coop-threads.c: Fixed change of 2001-03-06.
7508
7509 * validate.h: Code formatting.
7510
7511 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
7512
7513 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
7514 (*.doc): Add dependency on guile-snarf.awk.in.
7515
7516 * guile-snarf.awk.in: Neglect spaces at the end of
7517 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
7518 middle of docstrings. (To avoid the problem with gcc-2.96.)
7519
7520 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
7521
7522 * coop-threads.c (scm_call_with_new_thread), load.c
7523 (scm_primitive_load, scm_sys_search_load_path), random.c
7524 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
7525 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
7526 (potentially) issue a scm-misc-error or wrong-num-args error
7527 message.
7528
7529 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
7530 about the expected type with the wrong-type-arg error message.
7531
7532 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
7533 a C level bug that can't be fixed from scheme anyway.
7534
7535 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7536
7537 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
7538 Duplicate bindings are OK in a let* since a let* is semantically
7539 equivalent to a nested set of let:s.
7540
7541 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7542
7543 * print.c (scm_print_options): Fixed texinfo in docstring.
7544
7545 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
7546 the underlying functions getservent, getprotoent or getnetent
7547 return NULL instead of signalling an error.
7548
7549 2001-03-04 Gary Houston <ghouston@arglist.com>
7550
7551 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
7552 taking an unexpectedly large filename for an AF_UNIX socket from
7553 bind/connect/sendto (thanks to Martin Grabmueller).
7554
7555 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
7556 former and adjusted the latter.
7557 (scm_socket, scm_socketpair): cosmetic changes.
7558 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
7559 size_t as socklen_t substitute. don't restrict args/return values
7560 to INUM: allow full range of int or size_t.
7561 (scm_fill_sockaddr): check arguments before allocating memory, to
7562 avoid leakage. use malloc, not scm_must_malloc.
7563 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
7564 substitute. free the sockaddr structure before throwing an error.
7565 (scm_init_add_buffer): procedure removed, together with its static
7566 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
7567 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
7568 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
7569 scm_sendto): use a local buffer instead of scm_addr_buffer.
7570 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
7571 not size_t.
7572 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
7573 call to detect whether recvfrom could be bothered to set the address.
7574 (scm_init_socket): don't call scm_init_addr_buffer.
7575
7576 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
7577
7578 * debug.c (scm_procedure_source, scm_procedure_environment),
7579 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
7580 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
7581 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
7582 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
7583 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
7584 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
7585 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
7586 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
7587 scm_array_to_list, scm_array_prototype), validate.h
7588 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
7589 scm_misc_error or scm_wrong_type_arg instead.
7590
7591 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
7592
7593 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7594
7595 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
7596 (scm_sys_tag_body): Added.
7597
7598 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
7599
7600 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
7601 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
7602 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
7603 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
7604 options.c (scm_options), ports.c (scm_remove_from_port_table),
7605 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
7606 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
7607 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
7608 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
7609 instead.
7610
7611 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7612
7613 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
7614
7615 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
7616
7617 * eval.c (scm_s_duplicate_bindings): New error message.
7618 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
7619
7620 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
7621
7622 * eval.h (SCM_EVALIM2): New macro. Use it when a
7623 immediate, literal constant should be evaluated.
7624 * eval.c (scm_s_duplicate_formals): New error message string.
7625 (scm_c_improper_memq): New function.
7626 (scm_m_lambda): Check for duplicate arguments.
7627 (scm_ceval, scm_deval): When executing a body: only cons a new
7628 toplevel environment frame when it is different from the
7629 existing one; use EVALCAR instead of SIDEVAL so that we can properly
7630 check for empty combinations; use SCM_EVALIM2 for the same reason
7631 in the non-toplevel loop.
7632 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
7633 New labels with the meaning of their non-"nontoplevel" partners,
7634 but they are used when it is known that the body is not evaluated at
7635 top-level.
7636 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
7637 reporting for empty combinations.
7638
7639 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
7640
7641 * Remove dump facilities.
7642 * dump.c, dump.h: Removed.
7643 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
7644 * init.c: Remove #include "libguile/dump.h".
7645 (scm_init_guile_1): Remove scm_init_dump.
7646 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
7647 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
7648 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
7649 (scm_set_smob_dump, scm_set_smob_undump): Removed.
7650
7651 * keywords.c: Remove #include "libguile/dump.h".
7652 (keyword_dump, keyword_undump): Removed.
7653 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
7654
7655 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7656
7657 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
7658 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
7659 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
7660 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
7661 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
7662 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
7663 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
7664 to @code{} as the texinfo manual recommends, converted the
7665 examples to use a @lisp{}-environment.
7666
7667 * strports.c (scm_eval_string): Cleaned up the docstring.
7668
7669 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
7670 markup.
7671
7672 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
7673 (scm_number_to_string, scm_string_to_number, scm_number_p)
7674 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
7675 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
7676 (scm_ash): Added texinfo markup and removed obsolete @refill.
7677 (scm_gr_p): Corrected comment.
7678 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
7679 docstring) comments.
7680 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
7681 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
7682 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
7683 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
7684 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
7685 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
7686 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
7687 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
7688
7689 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
7690
7691 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
7692 (Obviously nobody compiles with SCM_RECKLESS defined...)
7693
7694 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
7695
7696 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7697
7698 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
7699
7700 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
7701
7702 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
7703
7704 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
7705 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
7706 since use of `z' suggests that the arguments may be complex.
7707
7708 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
7709 typos.
7710
7711 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
7712
7713 * dump.c (scm_binary_write, scm_binary_read), eval.c
7714 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
7715 scm_guardian_greedy_p, scm_make_guardian), fports.c
7716 (scm_file_port_p): Minor docstring fixes.
7717
7718 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
7719
7720 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
7721
7722 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
7723 scm_i_eval.
7724 (make_class_from_template): Do not bother to set the current
7725 module around the call to DEFVAR, scm_eval takes care of that.
7726 (scm_init_goops): Make scm_module_goops and
7727 scm_goops_lookup_closure permanent objects.
7728
7729 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
7730 top level, create a fresh top-level environment for each
7731 expression instead of mutating the exisint frame. This is
7732 important when that frame is closed over.
7733
7734 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
7735 SCM_DIGSPERLONG instead of DIGSPERLONG.
7736
7737 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
7738
7739 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
7740 before applying arrow procedure in `cond' and before applying
7741 receiver procedure in call-with-current-continuation.
7742 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
7743 macro. The argument is expanded more than one time.
7744
7745 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
7746 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
7747
7748 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
7749
7750 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
7751 notice and license.
7752
7753 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7754
7755 * variable.c (scm_make_variable, scm_make_undefined_variable)
7756 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
7757 (scm_variable_bound_p), values.c (scm_values)
7758 (scm_call_with_values), unif.c (scm_bit_count)
7759 (scm_bit_set_star_x), symbols.c (scm_gentemp)
7760 (scm_gensym), strings.c (scm_string_p, scm_make_string)
7761 (scm_read_only_string_p, scm_string_length, scm_string_ref)
7762 (scm_string_set_x, scm_substring, scm_string_append), stime.c
7763 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
7764 (scm_copy_random_state, scm_random), print.c (scm_newline)
7765 (scm_write_char, scm_simple_format), debug-malloc.c
7766 (scm_malloc_stats), environments.c (scm_environment_p)
7767 (scm_environment_bound_p, scm_environment_ref)
7768 (scm_environment_fold, scm_environment_define)
7769 (scm_environment_undefine, scm_environment_set_x)
7770 (scm_environment_cell, scm_environment_observe)
7771 (scm_environment_observe_weak, scm_environment_unobserve)
7772 (scm_make_eval_environment, scm_eval_environment_p)
7773 (scm_eval_environment_set_local_x, scm_eval_environment_local)
7774 (scm_eval_environment_imported)
7775 (scm_eval_environment_set_imported_x, scm_make_import_environment)
7776 (scm_import_environment_p, scm_import_environment_imports)
7777 (scm_import_environment_set_imports_x, scm_make_export_environment)
7778 (scm_export_environment_p, scm_export_environment_private)
7779 (scm_export_environment_set_private_x)
7780 (scm_export_environment_signature)
7781 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
7782 Added texinfo markup.
7783
7784 * ports.c (scm_drain_input): Lowercased argument to @var.
7785 (scm_current_input_port, scm_current_output_port): Filled in
7786 missing explanation.
7787 (scm_current_load_port, scm_set_current_output_port)
7788 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
7789 Added texinfo markup.
7790
7791 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
7792 (scm_release_arbiter): Added texinfo markup to docstrings.
7793 Changed `Returns' to `Return'.
7794 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
7795
7796 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
7797
7798 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
7799 by doubling them to `@@'.
7800
7801 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7802
7803 * numbers.c (scm_lognot), random.c (scm_random,
7804 scm_random_normal, scm_random_solid_sphere_x,
7805 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
7806 scm_random_exp), dynwind.c
7807 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
7808
7809 * goops.c (scm_sys_initialize_object, scm_instance_p,
7810 scm_class_name, scm_class_precedence_list, scm_class_slots,
7811 scm_class_environment, scm_generic_function_name,
7812 scm_generic_function_methods, scm_method_generic_function,
7813 scm_method_specializers, scm_method_procedure, scm_make_unbound,
7814 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
7815 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
7816 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
7817 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
7818 scm_class_direct_supers, scm_class_direct_slots,
7819 scm_class_direct_subclasses, scm_class_direct_methods,
7820 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
7821 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
7822 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
7823 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
7824 scm_memoized_environment, scm_procedure_name,
7825 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
7826 objects.c
7827 (scm_class_of, scm_entity_p, scm_operator_p,
7828 scm_set_object_procedure_x, scm_object_procedure,
7829 scm_make_class_object), hooks.c (scm_make_hook_with_name,
7830 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
7831 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
7832 scm_hook_to_list), lang.c
7833 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
7834 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
7835 (scm_print_options, scm_port_with_print_state,
7836 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
7837 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
7838 scm_make_procedure_with_setter, scm_procedure), throw.c
7839 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
7840 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
7841 scm_stack_ref, scm_stack_length, scm_frame_p,
7842 scm_last_stack_frame, scm_frame_number, scm_frame_source,
7843 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
7844 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
7845 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
7846 (scm_dirname, scm_basename), dynwind.c
7847 (scm_wind_chain), read.c (scm_read_options, scm_read,
7848 scm_read_hash_extend), gc.c
7849 (scm_unhash_name), eval.c (scm_eval_options_interface,
7850 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
7851 (scm_display_error, scm_set_print_params_x,
7852 scm_display_application, scm_display_backtrace, scm_backtrace),
7853 async.c (scm_async, scm_system_async, scm_async_mark,
7854 scm_system_async_mark, scm_run_asyncs, scm_noop,
7855 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
7856 scm_mask_signals): Added docstrings.
7857
7858 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
7859
7860 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
7861 address of car/cdr. (Thanks to Dirk Herrmann)
7862 Use scm_sizet to obtain the length of strings.
7863 (Thanks to Matthias Koeppe)
7864
7865 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
7866
7867 * symbols.c (scm_mem2symbol): Put a empty statement after the
7868 next_symbol label. This is mandated by ANSI, appearantly.
7869
7870 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
7871
7872 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
7873 sense to compile for a specific kernel version. Do not include
7874 <asm/signal.h> while defining __KERNEL__. This hack should no
7875 longer be needed and caused problems.
7876
7877 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
7878
7879 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
7880 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
7881 can not deal with immediates.
7882
7883 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
7884
7885 * list.c (scm_list_copy): Validate the first argument.
7886
7887 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
7888
7889 Fix evaluator so that top-level expressions are correctly
7890 evaluated with respect to the module system.
7891
7892 * modules.h. modules.c (scm_current_module_lookup_closure): New
7893 function.
7894
7895 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
7896 prototypes.
7897 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
7898 names to better reflect their meaning.
7899
7900 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
7901 evaluated at top-level and synronize lookup closure before
7902 executing every subform.
7903 (scm_primitve_eval_x, scm_primitive_eval): New functions.
7904 (scm_eval_x, scm_eval): Reimplement in terms of
7905 scm_primitive_eval_x and scm_primitive_eval, respectively.
7906
7907 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
7908
7909 * macros.c (scm_macro_name, scm_macro_transformer): Use
7910 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
7911 Thanks!
7912
7913 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
7914
7915 * dump.c (scm_store_bytes): Store data size before data.
7916 (scm_restore_bytes): Restore data size. Takes a pointer to size.
7917 * dump.h (scm_restore_bytes): Updated.
7918
7919 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
7920
7921 * dump.c: Use double cells for update schedule.
7922
7923 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
7924
7925 * ports.c (scm_unread_char): Take an optional argument.
7926
7927 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
7928
7929 * modules.h (scm_selected_module, scm_current_module): Renamed
7930 scm_selected_module to scm_current_module to synchronize Scheme
7931 and C names.
7932 (scm_select_module, scm_set_current_module): Likewise. Changed
7933 all uses.
7934
7935 * ports.c (scm_port_for_each): Make a snapshot of the port table
7936 before iterating over it. The table might change while the user
7937 code is running. With the snapshot, the user can depend on the
7938 fact that each port that existed at the start of the iteration is
7939 encountered exactly once. (ice-9 popen) depends on this.
7940
7941 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
7942
7943 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
7944
7945 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
7946 range checking for the size parameter. Thanks to Martin
7947 Grabmueller for the hint.
7948
7949 (scm_makstr): Reordered string initialization to make interrupt
7950 deferring unnecessary.
7951
7952 * vectors.c (scm_make_vector): Fixed range checking.
7953
7954 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
7955
7956 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
7957
7958 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
7959 checking of the size parameter for type correctness and valid
7960 range. Thanks to Rob Browning for reporting the problem. Instead
7961 of deferring interrupts, scm_remember_upto_here_1 is used.
7962
7963 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
7964
7965 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
7966 (scm_dump_cell_update): Removed.
7967 (scm_dump_update): Renamed from scm_dump_object_update.
7968 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
7969 a pointer instead of returning a value.
7970 * keywords.c (keyword_undump): Updated.
7971
7972 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
7973
7974 * dump.c, dump.h: Modified a lot.
7975 (SCM_DUMP_COOKIE): Version 0.1
7976 (scm_dump_mark): Removed.
7977 (scm_restore_cell_object, scm_store_cell_object): New functions.
7978
7979 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
7980 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
7981 New slots: dump, undump.
7982 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
7983 Updated.
7984
7985 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
7986 (keyword_undump): Renamed from keyword_alloc.
7987 (scm_init_keywords): Set keyword_dump and keyword_undump.
7988
7989 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
7990
7991 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
7992 the deprecated SCM_DOUBLE_CELLP.
7993
7994 * tags.h (SCM_DOUBLE_CELLP): deprecated.
7995
7996 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
7997
7998 * dump.c, dump.h: New files.
7999 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
8000 * init.c: #include "libguile/dump.h".
8001 (scm_init_guile_1): Call scm_init_dump.
8002 * smob.h (scm_smob_descriptor): New slots: dump_mark,
8003 dump_dealloc, dump_store, undump_alloc, undump_restore,
8004 undump_init.
8005 * smob.c (scm_make_smob_type): Init the new slots.
8006 (scm_set_smob_dump, scm_set_smob_undump): New functions.
8007 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
8008
8009 * keywords.c: #include "libguile/dump.h".
8010 (keyword_dealloc, keyword_alloc): New functions.
8011 (scm_init_keywords): Set smob_dump and smob_undump.
8012
8013 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
8014
8015 * vectors.c (scm_c_make_vector): New function.
8016 * vectors.h (scm_c_make_vector): Declared.
8017 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
8018 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
8019 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
8020 (scm_make_method_cache, scm_i_vector2list,
8021 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
8022 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
8023 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
8024 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
8025 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
8026 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
8027 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
8028 (scm_vector, scm_make_vector): Use scm_c_make_vector.
8029
8030 * hashtab.c (scm_c_make_hash_table): New function.
8031 * hashtab.h (scm_c_make_hash_table): Declared.
8032 * environments.c (scm_make_leaf_environment,
8033 scm_make_eval_environment), gc.c (scm_init_storage),
8034 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
8035 Use scm_c_make_hash_table.
8036
8037 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8038
8039 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
8040
8041 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8042
8043 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
8044 end of docstring.
8045
8046 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
8047 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
8048 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
8049 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
8050 srcprop.c (scm_source_properties, scm_set_source_properties_x,
8051 scm_source_property, scm_set_source_property_x), sort.c
8052 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
8053 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
8054 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
8055 docstrings.
8056
8057 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8058
8059 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
8060 really get that arg.
8061
8062 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
8063
8064 * goops.c (s_scm_get_keyword): Bug fix.
8065
8066 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
8067
8068 The following patch was sent by Martin Grabmueller. It makes sure
8069 that in case of parameter errors the correct function name is
8070 shown, and that parameter types are only checked once.
8071
8072 * strop.c (string_copy, string_upcase_x, string_downcase_x,
8073 string_capitalize_x): New functions. Each one performs the core
8074 functionality of the corresponding scm_* function.
8075
8076 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
8077 scm_string_downcase_x, scm_string_downcase,
8078 scm_string_capitalize_x, scm_string_capitalize): Reduced to
8079 parameter checking wrappers of the above functions.
8080
8081 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
8082
8083 * continuations.c, dynl.c, keywords.c, load.c: Include
8084 strings.h. Thanks to Bill Schottstaedt for the bug report.
8085
8086 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8087
8088 * backtrace.c (display_header): Make sure that line and column
8089 information is shown independent of whether the port the code was
8090 read from had an associated filename. Thanks to Martin
8091 Grabmueller for providing this patch.
8092
8093 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8094
8095 * fports.[ch] (scm_file_port_p): New primitive.
8096
8097 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8098
8099 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
8100 These are now defined in fports.c, strports.c and vports.c.
8101
8102 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
8103 vports.c (scm_tc16_sfport): Made variables (were macros defined in
8104 tags.h).
8105
8106 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
8107 (scm_make_sfptob): Made static. These return a type code now.
8108
8109 fports.c (scm_init_fports), strports.c (scm_init_strports),
8110 vports.c (scm_init_vports): Create the corresponding port types.
8111
8112 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
8113 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
8114
8115 * init.c (scm_init_guile_1): Make sure strports are initialized
8116 before gdbint.
8117
8118 * ports.[ch] (scm_make_port_type): Changed the return type to
8119 scm_bits_t.
8120
8121 * ports.c (scm_ports_prehistory): Don't create any port types
8122 here.
8123
8124 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
8125 against scm_tc16_fport directly.
8126
8127 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8128
8129 * srcprop.c (scm_set_source_property_x): Fix to handle
8130 (set-source-property! <obj> 'copy <datum>) correctly.
8131
8132 2001-01-24 Gary Houston <ghouston@arglist.com>
8133
8134 * filesys.c (scm_link): docstring fix.
8135 * fports.h (scm_setfileno): obsolete declaration removed.
8136 * posix.c: bogus popen declaration removed.
8137
8138 * rdelim.c: new file, split from ioext.c.
8139 * rdelim.h: new file, split from ioext.h
8140 * Makefile.am: add rdelim.c and related files.
8141 * init.c: call scm_init_rdelim. include rdelim.h.
8142
8143 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8144
8145 This patch was sent by Martin Grabmueller and makes sure that
8146 parameter errors are reported correctly by the lexicographic
8147 ordering predicates.
8148
8149 * strorder.c (string_less_p, string_ci_less_p): New functions.
8150
8151 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
8152 functionality into string_less_p, string_ci_less_p respectively.
8153 The remaining code is just a wrapper to do the parameter
8154 checking.
8155
8156 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
8157 parameters and call string_less_p instead of scm_string_less_p.
8158
8159 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
8160 Check the parameters and call string_less_ci_p instead of
8161 scm_string_ci_less_p.
8162
8163 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8164
8165 This patch modifies scm_display_error to perform parameter
8166 checking. Thanks to Neil Jerram for the bug report.
8167
8168 * backtrace.[ch] (scm_i_display_error): New function.
8169
8170 * backtrace.c (scm_display_error): Added parameter check and
8171 extracted the core functionality into function
8172 scm_i_display_error.
8173
8174 * throw.c (handler_message): Call scm_i_display_error to display
8175 the error message.
8176
8177 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8178
8179 * eval.c (SCM_APPLY): Added # args check for application of
8180 procedures with arity 3. (Thanks to Anders Holst.)
8181
8182 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8183
8184 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
8185
8186 (SCM_OPDIRP): Deprecated.
8187
8188 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
8189 SCM_OPN.
8190
8191 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
8192 Instead, give an explicit error message in case the directory is
8193 closed.
8194
8195 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
8196 instead of SCM_OPENP and SCM_CLOSEDP.
8197
8198 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
8199
8200 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
8201
8202 * eval.c (inner_eval, scm_eval): Move all real functionality into
8203 inner_eval. Avoid to copy the expression twice by inlining some
8204 code from scm_i_eval.
8205
8206 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
8207
8208 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
8209 now has to be the last clause, as required by R5RS. Thanks to
8210 Martin Grabmueller for the patch.
8211
8212 2001-01-18 Gary Houston <ghouston@arglist.com>
8213
8214 * ioext.c: further simplify scm_read_string_x_partial by defining
8215 a macro SCM_EBLOCK.
8216
8217 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
8218
8219 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
8220
8221 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
8222
8223 * __scm.h: Added comment about architecture and compiler
8224 properties that are required by guile.
8225
8226 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
8227 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
8228
8229 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
8230
8231 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
8232
8233 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
8234 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
8235
8236 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
8237
8238 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
8239 to the names in limits.h.
8240
8241 * numbers.c (abs_most_negative_fixnum): Added.
8242
8243 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
8244 fixnum-min) special case.
8245
8246 (scm_big_and): Fix for negative first parameter.
8247
8248 (scm_bit_extract): Fix for fixnum paramters.
8249 Thanks to Rob Browning for the bug report.
8250
8251 (scm_init_numbers): Initialize abs_most_negative_fixnum.
8252
8253 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
8254
8255 * symbols.c (scm_symbol_bound_p): Fixed comment.
8256 Thanks to Chris Cramer.
8257
8258 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
8259
8260 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
8261 Thanks to Bill Schottstaedt.
8262
8263 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
8264
8265 from Matthias Köppe:
8266
8267 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
8268 casts its result, so doesn't yield an lvalue per ANSI C.
8269
8270 * goops.c (s_scm_sys_set_object_setter_x): use
8271 SCM_SET_ENTITY_SETTER.
8272 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
8273
8274 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
8275 its result, so doesn't yield an lvalue per ANSI C.
8276 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
8277 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
8278 SCM_GC_SET_CARD_FLAGS.
8279 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
8280
8281 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
8282
8283 2001-01-08 Gary Houston <ghouston@arglist.com>
8284
8285 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
8286 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
8287 socket.c (scm_recvfrom): use the new macro, plus minor docstring
8288 changes.
8289 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
8290 for fdes. if current input port is used, check that it's a file
8291 port.
8292
8293 2001-01-06 Gary Houston <ghouston@arglist.com>
8294
8295 * ioext.c (scm_read_string_x_partial): new procedure, implements
8296 read-string!/partial.
8297 * ports.c (scm_take_from_input_buffers): new procedure used by
8298 scm_read_string_x_partial.
8299 (scm_drain_input): use scm_take_from_input_buffers.
8300
8301 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
8302
8303 * validate.h (SCM_VALIDATE_NUMBER): New.
8304
8305 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
8306
8307 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
8308 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
8309 SET_DESTROYED): new defines/macros.
8310 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
8311 (add_to_live_list): takes a `guardian_t *' now, not SCM.
8312 (guardian_print): print more info.
8313 (guardian_apply): check if the guardian is destroyed, and throw an
8314 error if so. take one more optional argument `throw_p'.
8315 (scm_guard): depending on the value of `throw_p', return a boolean
8316 result.
8317 (scm_get_one_zombie): remove redundant property test.
8318 (guardian_t): represent the various (currently 3, I hope nothing
8319 more gets added) boolean fields as bit flags.
8320 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
8321 (scm_destroy_guardian_x): new procedure.
8322
8323 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
8324 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
8325
8326 2001-01-01 Gary Houston <ghouston@arglist.com>
8327
8328 * fports.c (fport_write): bugfix: handle short writes for
8329 unbuffered ports too. optimize the buffered case by minimizing
8330 the number of write/flush calls.
8331 (write_all): new helper procedure.
8332
8333 The ChangeLog continues in the file: "ChangeLog-2000"