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