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