(scm_source_properties): Return plist from hash if it's a
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
8e5b4b9e
KR
12003-07-29 Kevin Ryde <user42@zip.com.au>
2
3 * properties.c (scm_primitive_property_ref): In docstring, note
4 parameters to not-found-proc, use hyphens rather than underscores for
5 that parameter name.
6 (scm_primitive_property_set_x): In docstring, VAL is the value
7 parameter not CODE.
8
20703ac4
MV
92003-07-27 Marius Vollmer <mvo@zagadka.de>
10
c6ccee34
MV
11 * print.c (scm_print_symbol_name): handle more weird characters by
12 escaping the symbol name properly. Thanks to Paul Jarc!
13
2f4931bf
MV
14 * posix.h (scm_setgroups): New prototype.
15 * posix.c (scm_setgroups): New. Thanks to Paul Jarc!
16 (scm_getgroups): Handle groups ids that don't fit into a fixnum.
17 Don't use SCM_WRITABLE_VELTS.
18
265c456f
MV
19 * gc.h (SCM_GC_SET_CELL_BVEC): New.
20 * gc-card.c (scm_i_init_card_freelist): Use it. Thanks to
21 Matthias Koeppe!
22
20703ac4
MV
23 * __scm.h (SCM_C_INLINE_KEYWORD): New.
24 * numbers.c: Use it in place of SCM_C_INLINE so that the code
25 compiles when SCM_C_INLINE is undefined.
26
59c4bb82
DH
272003-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
28
29 * __scm.h: Reformulated the architecture and compiler properties
30 in terms of properties of scm_t_bits and SCM variables rather than
31 in terms of c standard types. This is since it is not known which
32 of the standard types scm_t_bits and SCM variables will be defined
33 to.
34
d7850c8d
KR
352003-07-24 Kevin Ryde <user42@zip.com.au>
36
37 * numbers.c (scm_angle): Use scm_flo0 for non-negative inum, bignum
38 and real.
39
8a0c514f
KR
402003-07-18 Kevin Ryde <user42@zip.com.au>
41
42 * numbers.c (scm_product): In complex * bignum, correction to
43 REAL/IMAG fetch, x is the complex, not y.
44
0aacf84e
MD
452003-07-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
46
47 * numbers.c (scm_odd_p, scm_even_p): Bugfix: Treat result of
48 scm_inf_p test as Scheme values.
49 (scm_sum): Bugfix: Normalize bignum created from a negative bignum
50 and a positive inum.
51 Use GNU indentation style.
52
192de9a4
DH
532003-07-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
54
55 * values.c (scm_values): Build lists of length 1 by using
56 scm_list_1 instead of using scm_cons.
57
bbb4438a
KR
582003-07-10 Kevin Ryde <user42@zip.com.au>
59
b58c85ce
KR
60 * deprecation.c (scm_c_issue_deprecation_warning_fmt): Add va_end.
61 * list.c (scm_list_n): Ditto.
62
bbb4438a
KR
63 * gc-malloc.c (scm_gc_realloc): Define "ptr" at start of function.
64
287f8ad1
KR
652003-07-08 Matthias Koeppe <mkoeppe@merkur.math.uni-magdeburg.de>
66
67 * tags.h (scm_t_bits, scm_t_signed_bits, etc): Avoid solaris empty
68 defines of INTPTR_MAX and UINTPTR_MAX, combine conditionals for
69 scm_t_bits and scm_t_signed_bits to avoid any chance of one and not
70 the other using intptr_t.
71
005d2366
KR
722003-07-08 Kevin Ryde <user42@zip.com.au>
73
0aacf84e 74 * numbers.c (scm_make_polar): Use sincos, when available.
005d2366
KR
75 (scm_magnitude): Use hypot.
76
77 * ports.c (scm_char_ready_p, scm_peek_char): In docstrings, don't use
78 @footnote since it doesn't go through to guile-procedures.txt.
79
80 * threads.c (scm_call_with_new_thread): In docstring, use "( )"
81 outside @var to quieten makeinfo, and use @code.
82
cbfe8e62
HWN
832003-07-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
84
85 * gc-malloc.c (decrease_mtrigger): new function
86 (increase_mtrigger): new function, separate debug registering and
87 mtrigger administration.
88 (scm_gc_realloc): bugfix: do mtrigger administration before the
89 actual realloc, for the realloc might invalidate a GC-d segment of
90 memory. Thanks to Sam Hocevar for pointing this out.
91 (scm_gc_realloc): use scm_malloc_reregister instead of
92 unregistering and registering in sequence.
93
aeb4c2e1
HWN
942003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
95
96 * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
97
4c27f8d2
HWN
982003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
99
100 * __scm.h (SCM_ASRTGO): add "else" to macro expansions with if
101 clauses.
102
983e697d
MV
1032003-06-29 Marius Vollmer <mvo@zagadka.de>
104
105 * deprecated.h (SCM_OPDIRP, scm_fport, scm_option, scm_srcprops,
106 scm_srcprops_chunk, scm_info_frame, scm_stack, scm_array,
107 scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_FUNC_NAME, SCM_WTA,
108 RETURN_SCM_WTA, SCM_VALIDATE_NUMBER_COPY,
109 SCM_VALIDATE_NUMBER_DEF_COPY, SCM_VALIDATE_OPDIR): Re-added from
110 the release_1_6 branch.
111
78b6566e
SJ
1122003-06-25 Stefan Jahn <stefan@lkcc.org>
113
114 * continuations.c: Redeclaration of getcontext() via the
115 __asm__ ("getcontext") directive.
116
117 * continuations.h: Include <ucontext.h> instead of
118 <sys/ucontext.h>.
119
1ebb8497
KR
1202003-06-21 Kevin Ryde <user42@zip.com.au>
121
122 * numbers.c (_GNU_SOURCE): #define, to get C99 things.
123 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, $asinh, $acosh,
124 $atanh, truncate): Use C library asinh, acosh, atanh and trunc, when
125 available.
126 (scm_inexact_to_exact): Expand isfinite to its definition !xisinf.
127 (isfinite): Remove, conflicts with C99 isfinite().
128
fbf85ba4
MV
1292003-06-19 Marius Vollmer <mvo@zagadka.de>
130
131 * deprecated.h, deprecated.c (scm_strhash, scm_sym2ovcell_soft,
132 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
133 scm_symbol_value0, scm_string_to_obarray_symbol scm_intern_symbol,
134 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
135 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp): Re-added from
136 the release_1_6 branch.
137
fcc5d734
SJ
1382003-06-14 Stefan Jahn <stefan@lkcc.org>
139
140 * threads.h: Redefined scm_getspecific() and scm_setspecific()
141 to be functions instead of macros.
142
143 * threads.c: Conditionalized inclusion of <sys/time.h> and
144 <unistd.h>.
145 (scm_getspecific, scm_setspecific): Made these two function
146 real part of the API.
147
148 * posix.c (s_scm_putenv): Added some code to make a
149 (putenv "FOO="), i.e. setting an empty string, work also on
150 Win32 systems. Thanks to Kevin Ryde for the proposal.
151
c3ae8e07
KR
1522003-06-12 Kevin Ryde <user42@zip.com.au>
153
75b14838
KR
154 * posix.c (scm_putenv): Free temporary ptr in mingw unset. Add
155 freebsd to comment about need to use unsetenv.
c3ae8e07 156
9d9fa092
MV
1572003-06-02 Marius Vollmer <mvo@zagadka.de>
158
159 * ports.c (scm_peek_char): Safe the column of the port around the
160 getc/ungetc calls. Thanks to Dr. Peter Ivanyi!
161
f2478375
KR
1622003-06-07 Kevin Ryde <user42@zip.com.au>
163
164 * tags.h: Use inttypes.h and stdint.h when available, for INTPTR_MAX
165 and friends required by scm_t_bits setups.
166
6375e040
DH
1672003-06-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
168
169 * tags.h (scm_tc2_int): Added.
170
171 * tags.h (scm_tc3_int_1, scm_tc3_int_2): Expressed in terms of
172 scm_tc2_int.
173
174 * tags.h (scm_tcs_cons_imcar, scm_tcs_cons_nimcar, scm_tcs_struct,
175 scm_tcs_closures): Hard coded values replaced by symbolic ones.
176
f5c6ec2f
DH
1772003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
178
179 * eval.c: Partially undid my patch from 2003-05-31. This patch
180 caused the segfault referenced in the previous changelog entry.
181
47dbd81e
DH
1822003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
183
184 * tags.h: Fixed comment about the immediate type code layout.
185
186 * eval.c: Fixed handling of non-special instructions. Without
187 this patch, guile will segfault on (#\0) and similar instructions.
188
3ec52c51
KR
1892003-06-05 Kevin Ryde <user42@zip.com.au>
190
191 * numbers.c (scm_max, scm_min): For inum, bignum and real, if other
192 operand is NaN, then return NaN. Also avoid passing NaN to mpz_cmp_d.
193
e418bd7c
KR
194 * read.c (scm_input_error): Pass arg list parameter to scm_error_scm,
195 rather than SCM_EOL. Needed by "Unknown # object" case in scm_lreadr.
196
d0624e39
DH
1972003-06-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
199 * __scm.h, gc-card.c (SCM_DEBUG_DEBUGGER_SUPPORT,
200 SCM_DEBUG_DEBUGGING_SUPPORT): Renamed macro
201 SCM_DEBUG_DEBUGGER_SUPPORT to SCM_DEBUG_DEBUGGING_SUPPORT and
202 generalized it to apply not only to C level functions but also to
203 scheme level functions.
204
205 * debug.c, debug.h, eval.c (make-iloc, scm_make_iloc, iloc?,
206 scm_iloc_p, dbg-make-iloc, scm_dbg_make_iloc, dbg-iloc?,
207 scm_dbg_iloc_p): Moved functions scm_make_iloc, scm_iloc_p to
208 eval.c, made them available under SCM_DEBUG_DEBUGGING_SUPPORT == 1
209 only and renamed them to scm_dbg_make_iloc, scm_dbg_iloc_p,
210 respectively.
211
212 * deprecated.h, eval.c, eval.h (SCM_ILOC00, SCM_IDINC,
213 SCM_IDSTMSK): Deprecated. The macro definitions are moved from
214 eval.h into eval.c and a copy is placed into deprecated.h.
215
216 * eval.c, eval.h (SCM_MAKE_ILOC): Removed from eval.h and placed
217 into eval.c. This definition was not part of the API in any
218 officially released version of guile and thus does not need to go
219 through a phase of deprecation.
220
e90c3a89
DH
2212003-06-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
222
d0624e39
DH
223 * deprecated.c, deprecated.h, eval.c, eval.h (scm_s_expression,
224 scm_s_test, scm_s_body, scm_s_bindings, scm_s_variable,
225 scm_s_clauses, scm_s_formals): Deprecated. In eval.c the
e90c3a89
DH
226 definitions are make static and renamed from scm_s_xxx to s_xxx.
227 In deprecated.c the original definitions are copied.
228
d0624e39
DH
229 * deprecated.h, eval.c, eval (SCM_EVALIM2, SCM_EVALIM, SCM_XEVAL,
230 SCM_XEVALCAR): Deprecated. The macro definitions are moved from
e90c3a89
DH
231 eval.h into eval.c and a copy (slightly modified to work in user
232 code) is placed into deprecated.h.
233
234 * eval.c: Use the local static s_xxx definitions instead of the
235 scm_s_xxx definitions throughout.
236
14b18ed6
DH
2372003-06-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
238
239 This set of patches separates the representation of the cxr family
240 of functions (car, cdr etc.) from the dsubr family of functions
241 (i. e. functions that take a double precision floating point
242 argument). Further, the algorithm for handling the cxr function
243 is improved.
244
245 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_1), numbers.c
246 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, scm_round, floor,
247 ceil, sqrt, fabs, exp, log, sin, cos, tan, asin, acos, atan, sinh,
248 cosh, tanh), objects.c (scm_class_of), procprop.c
249 (scm_i_procedure_arity), ramap.c (scm_array_map_x), tags.h
250 (scm_tc7_dsubr, scm_tcs_subrs): Introduce scm_tc7_dsubr as new
251 typecode for the dsubr family of functions.
252
253 * ramap.c (ramap_cxr, ramap_dsubr): Renamed ramap_cxr to
254 ramap_dsubr.
255
256 * eval.c (SCM_CEVAL, SCM_APPLY, call_cxr_1), pairs.c
257 (scm_init_pairs): Make use of the (now usable) second cell element
258 of a scm_tc7_cxr function to implement the cxr family of functions
259 more efficiently.
260
2ca0d207
DH
2612003-05-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
262
263 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_0,
264 scm_trampoline_1, scm_trampoline_2): Postpone error cases to the
265 end of an if-else-if-sequence of checks.
266
9a069bdd
DH
2672003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
268
269 * eval.c (SCM_CEVAL): Improved readability of call-with-values
270 execution. Generalize apply_closure to apply_proc and use that
271 for call-with-values.
272
e910e9d2
DH
2732003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
274
275 * eval.c (SCM_CEVAL): Avoid one level of indirection when applying
276 a non closure.
277
1e498fbd
SJ
2782003-05-30 Stefan Jahn <stefan@lkcc.org>
279
280 * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
281 appropriately for mingw32 hosts.
282
283 * numbers.h: Defining copysign(), isnan() and finite() to
284 be prefixed by a single '_' for mingw32 hosts.
285
c47e2599
KR
2862003-05-30 Kevin Ryde <user42@zip.com.au>
287
288 * numbers.c (z_negative_one): New variable.
289 (scm_init_numbers): Initialize it.
290 (scm_logcount): Use it and mpz_hamdist to count zeros for negatives.
291
2e945bcc
SJ
2922003-05-29 Stefan Jahn <stefan@lkcc.org>
293
294 * win32-dirent.c: Use malloc() instead of scm_malloc().
295
296 * stime.c (s_scm_strftime): Add a type cast to avoid compiler
297 warning.
298
299 * posix.c (s_scm_putenv): Disable use of unsetenv() for the
300 mingw32 build.
301
302 * modules.c (s_scm_module_import_interface): Renamed local
303 variable interface to _interface. Seems like 'interface'
304 is a special compiler directive for the mingw32 compiler.
305
306 * mkstemp.c: Provide prototype to avoid compiler warning.
307
308 * load.c (s_scm_search_path): Fixed absolute and relative
309 path detections for native Windows platforms.
310
311 * gc.h, threads.h: Export some more symbols using SCM_API (necessary
312 to build on mingw32).
313
314 * gc-freelist.c ("s_scm_map_free_list",
315 "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
316
317 * fports.c (fport_fill_input): Disable use of
318 fport_wait_for_input() on Win32 platforms.
319
320 * filesys.c (s_scm_basename): Fixed __MINGW32__ code.
321
322 * Makefile.am: Modified some rules for cross compiling.
323
ddd8f927
DH
3242003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
325
326 * eval.c (SCM_CEVAL): In case of an application, all checks for a
327 proper function object and the correct number of arguments are now
328 performed in the application part of SCM_CEVAL.
329
330 (scm_badformalsp): Removed.
331
f8ba2197
DH
3322003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
333
334 * deprecated.c (scm_read_and_eval_x): Fixed C99-ism.
335
79f55b7c
MD
3362003-05-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
337
a502595f
MD
338 * num2integral.i.c (NUM2INTEGRAL): Avoid warning about conditional
339 always being false by inserting preprocessor conditional. (Thanks
340 to Bruce Korb.)
341
79f55b7c
MD
342 * __scm.h (SCM_STACK_PTR): New macro. (Cast argument through
343 (void *) in order to avoid an aliasing warning; thanks to Bruce
344 Korb.)
345
346 * stackchk.h (SCM_STACK_OVERFLOW_P): Use SCM_STACK_PTR.
347
348 * threads.c (suspend, launch_thread, scm_threads_mark_stacks): Use
349 SCM_STACK_PTR.
350
351 * threads.c (scm_threads_mark_stacks): Bugfix: Changed
352 thread->base --> t->base.
353
354 * eval.c (SCM_CEVAL): Don't cast argument of SCM_STACK_OVERFLOW_P.
355
47dee228
MV
3562003-05-20 Marius Vollmer <marius.vollmer@uni-dortmund.de>
357
358 * deprecated.h, deprecated.c (scm_makstr, scm_makfromstr,
359 scm_variable_set_name_hint, scm_builtin_variable,
360 scm_internal_with_fluids, scm_make_gsubr,
361 scm_make_gsubr_with_generic, scm_create_hook, SCM_LIST0,
362 SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5, SCM_LIST6,
363 SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify, scm_sloppy_memq,
85494587
MV
364 scm_sloppy_memv, scm_sloppy_member, scm_read_and_eval_x,
365 scm_subr_entry, SCM_SUBR_DOC, scm_make_subr,
366 scm_make_subr_with_generic, scm_make_subr_opt,
367 scm_call_catching_errors, scm_make_smob_type_mfpe,
368 scm_set_smob_mfpe, scm_strprint_obj, scm_read_0str, scm_eval_0str,
369 SCM_CHARS, SCM_UCHARS, SCM_LENGTH): Re-added from the release_1_6
370 branch. Some have been slightly rewritten.
371 (scm_i_object_chars, scm_i_object_length): New, to support
372 SCM_CHARS, SCM_UCHARS, and SCM_LENTH.
373
e681d187
DH
3742003-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
375
376 * eval.c (scm_m_do, unmemocopy, SCM_CEVAL): Reversed order of
377 names and inits in the memoized code of do.
378
7e59d9d4
MD
3792003-05-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
380
381 * c-tokenize.lex (yyget_lineno, yyget_in, yyget_out, yyget_leng,
382 yyget_text, yyset_lineno, yyset_in, yyset_out, yyget_debug,
383 yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get
384 a compilation error if error-on-warning is enabled).
385
9d9fa092 386>>>>>>> 1.1883
9950a42c
MV
3872003-05-17 Marius Vollmer <mvo@zagadka.de>
388
389 * c-tokenize.lex: Gobble up complete lines after a '#'. This
390 removes preprocessor directives from the snarfage that might
391 otherwise confuse us. These directives appear when compiling with
392 "-g3", for example.
393
0068984b
HWN
3942003-05-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
395
26e68795
HWN
396 * ChangeLog: add my surname
397
0068984b
HWN
398 * srcprop.c (scm_finish_srcprop): use
399 scm_gc_register_collectable_memory()
400 (scm_make_srcprops): idem.
401
131805f0
HWN
4022003-05-14 Han-Wen Nienhuys <hanwen@cs.uu.nl>
403
404 * gc-malloc.c (scm_gc_register_collectable_memory): avoid
405 wrap-around for scm_mtrigger
406 (scm_gc_register_collectable_memory): abort on overflowing
407 scm_mallocated().
408
d4611024
KR
4092003-05-13 Kevin Ryde <user42@zip.com.au>
410
411 * numbers.c (xmpz_cmp_d): New macro, handling infs if gmp doesn't.
412 (scm_num_eq_p, scm_less_p, scm_max, scm_min): Use it.
413
7aaf8dc9
MD
4142003-05-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
415
dfd03fb9
MD
416 * backtrace.c (scm_display_error_message): Introduced fancy
417 printing with max level 7 and length 10. (Purpose: avoid printing
418 gigantic objects in error messages.)
419
420 * print.c, print.h (scm_i_port_with_print_state): New function.
421
422 * print.c (scm_iprin1, scm_printer_apply,
423 scm_port_with_print_state): Use scm_i_port_with_print_state.
424 (scm_simple_format): Modified not to destroy print states.
425 (print_state_mutex): New mutex.
426 (scm_make_print_state, scm_free_print_state, scm_prin1):
427 Lock/unlock print_state_mutex.
428
7aaf8dc9
MD
429 * deprecated.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK):
430 Use current names in definitions.
431
a4d9ffa1
KR
4322003-05-10 Kevin Ryde <user42@zip.com.au>
433
434 * numbers.c (scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d.
435
d25e96a4
KR
436 * numbers.c (scm_integer_length): On negative bignums, adjust
437 mpz_sizeinbase to account for it looking at absolute value where we
438 want ones-complement.
439
440 * numbers.c (scm_gcd): In bignum/inum, don't pass yy==0 to mpz_gcd_ui
441 since we're only using the ulong return value, and x might not fit.
442
5bf6a6f0
DH
4432003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
444
445 * eval.c, eval.h, read.c, read.h (scm_sym_dot): Moved from eval to
446 read. This will allow to make the definition in read.c static.
447
f58c472a
DH
4482003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
449
450 * eval.c, eval.h, evalext.c, evalext.h (scm_m_undefine): Moved
451 from evalext to eval. This will allow to make some of the
452 definitions in eval.c static.
453
90382aeb
KR
4542003-05-06 Kevin Ryde <user42@zip.com.au>
455
456 * numbers.c (scm_difference): In inum - bignum, handle negative inum.
457 (scm_logcount): Use mpz_com, not mpz_neg.
458
3b88ed2a
DH
4592003-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
460
461 The purpose of this patch is to make guile's internal memoizers
462 distinguishable from memoizing macros created on the scheme level
463 or from user provided primitive memoizing macros. The reason is,
464 that the internal memoizers are the only ones that are allowed to
465 transform their scheme input into memoizer byte code, while all
466 other memoizing macros may only transform scheme code into new
467 scheme code.
468
469 To achieve this, a new macro type 'builtin-macro!' is introduced.
470 Currently, 'builtin-macro!'s are handled as memoizing macros, but
471 this will change when the memoizer and executor are separated.
472
473 * macros.[ch] (scm_i_makbimacro): New.
474
475 * macros.h (SCM_BUILTIN_MACRO_P): New.
476
477 * macros.c (macro_print, scm_macro_type): Support builtin-macro!s.
478
479 * eval.c, goops.c: All of guile's primitive memoizing macros are
480 primitive builtin-macros now.
481
482 * eval.c (scm_macroexp, SCM_CEVAL): Make sure the primitive
483 builtin-macros are handled equally to memoizing macros.
484
b0780eb1
MV
4852003-05-04 Marius Vollmer <mvo@zagadka.de>
486
487 * throw.c (scm_ithrow): Remove "asm volatile" hack. It used to
488 work around a bug in GCC 2.95.2 but is now a bug in itself.
489
1cbf4fe9
MV
4902003-05-02 Marius Vollmer <mvo@zagadka.de>
491
492 * deprecated.h (scm_rstate, scm_rng, SCM_SLOPPY_CONSP,
493 SCM_SLOPPY_NCONSP, scm_tc7_ssymbol, scm_tc7_msymbol,
494 scm_tcs_symbols): New.
495
1a61d41b
MV
4962003-04-30 Marius Vollmer <marius.vollmer@uni-dortmund.de>
497
096ecbaf
MV
498 * deprecated.h, deprecated.c (scm_protect_object,
499 scm_unprotect_object, SCM_SETAND_CAR, SCM_SETOR_CAR,
500 SCM_SET_AND_CDR, SCM_SET_OR_CDR, SCM_FREEP, SCM_NFREEP,
501 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
502 SCM_GCCDR, scm_remember, scm_the_root_module, scm_make_module,
503 scm_ensure_user_module, scm_load_scheme_module, scm_port,
504 scm_ptob_descriptor, scm_port_rw_active,
505 scm_close_all_ports_except): New.
506
1a61d41b
MV
507 * ports.c (scm_c_port_for_each): New function, mostly copied from
508 scm_port_for_each.
509 (scm_port_for_each): Reimplemented using scm_c_port_for_each.
510 * ports.h (scm_c_port_for_each): New prototype.
511
c8e1d354
MD
5122003-04-28 Mikael Djurfeldt <djurfeldt@nada.kth.se>
513
514 * eval.c (scm_m_atdispatch): Removed until actually needed. (This
515 macro was introduced in anticipation of GOOPS method compilation
516 code.)
517
518 * goops.c: Removed binding of @dispatch.
519
a4aa2134
DH
5202003-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
521
522 * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
523 instructions that bind the macros on the scheme level back to
524 goops.c in order to make sure again that the bindings go into the
525 (oop goops) module and are not visible from the outside.
526
9fbee57e
DH
5272003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
528
529 * eval.c: Non functional change: Separated R5RS and non-R5RS
530 macros into different sections of the file and ordered the
531 memoizers alphabetically.
532
12841895
DH
5332003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
534
535 * eval.c (scm_ilookup): Rewritten to improve readability.
536
6a3f13f0
DH
5372003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
538
539 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
540 Partially reverted patch from 2003-04-23 in oder to find a better
541 compromise between readability and debuggability.
542
b0c5d67b
DH
5432003-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
544
545 * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
546 scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
547 definitions of the special goops memoizers from goops.[ch] to
548 eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
549 throughout guile.
550
b9ad392e
MD
5512003-04-24 Mikael Djurfeldt <mdj@kvast.blakulla.net>
552
553 * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
554
555 * fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
556
557 * ports.c (scm_close_port, scm_flush_all_ports): Ditto.
558
559 * ioext.c (scm_fdes_to_ports): Ditto.
560
561 * vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
562 lock/unlock scm_i_port_table_mutex.
563
564 * strports.c (scm_mkstrport): Ditto.
565
566 * ports.c (scm_void_port, scm_port_for_each): Ditto.
567
568 * fports.c (scm_fdes_to_port): Ditto.
569
d0b07b5d
DH
5702003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
571
572 This set of patches contains no functional changes, only debatable
573 minor stylistic ones. Still, in order to prepare a patch between
574 my local copy and the CVS version, I decided to submit the changes
575 below. Then, the patch will hopefully only contain relevant
576 modifications :-)
577
578 * eval.c (iqq): Added const specifier.
579
580 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
581 Use NULL instead of 0 to indicate that a pointer is returned.
582 Removed some misleading 'fall through' comments.
583
584 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
585 Split up long expressions into smaller ones to be more debugging
586 friendly.
587
a98e8e98
DH
5882003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
589
590 * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
591 SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
592 rather than casting to SCM.
593
c178c3a6
DH
5942003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
595
596 * sort.c, pairs.h: Removed unnecessary includes.
597
d339981a
DH
5982003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
599
600 * sort.c: Replaced hand-made trampline code by the new official
601 mechanism from eval.c. This fixes a segfault in the new test file
602 sort.test.
603
604 (quicksort, compare_function, scm_restricted_vector_sort_x,
605 scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
606 scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
607 scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
608 scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
609 eval.c.
610
611 (subr2less, lsubrless, closureless, applyless, scm_cmp_function,
612 cmp_fun_t): Removed.
613
614 (compare_function): Added.
615
616 * sort.c (quicksort, SWAP, stack_node): Replaced pointer
617 arithmetics with index arithmetics. Changed quicksort to work on
618 an array of SCM values instead of an array of characters. Avoid
619 bytewise copying of SCM elements. Avoid allocating memory on the
620 stack with alloca. Fixed some comments.
621
821f18a4
DH
6222003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
623
624 * eval.c (EXTEND_ENV): Eliminated.
625
626 (unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
627 EXTEND_ENV.
628
94fb5a6e
DH
6292003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
630
631 * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
632
633 * gc.card.c (scm_gc_marked_p): Fixed compiler warning when
634 compiling with SCM_DEBUG==1 by moving definition behind prototype.
635
636 * gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
637 scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
638 scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
639 scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
640 functions such that they check if the object is a non-immediate.
641 Further, renamed identifiers to use the scm_dbg_ prefix and made
642 their inclusion into the lib dependent of the
643 SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
644
fce0b22d
DH
6452003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
646
647 * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
648 debug option.
649
1685446c
DH
6502003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
651
821f18a4 652 * list.c (scm_ilength, scm_last_pair), unif.c (l2ra): Prefer
1685446c
DH
653 !SCM_CONSP over SCM_NCONSP. Now, guile itself does not include
654 any calls to SCM_NCONSP any more.
655
656 * unif.c (l2ra): Eliminate redundant check.
657
9ff1720f
DH
6582003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
659
660 * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
661 scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
662 SCM_NNULLP. Now, guile itself does not include any calls to
663 SCM_NNULLP any more.
664
05b15362
DH
6652003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
666
667 * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
668 scm_copy_tree): Place assignment expressions which are part of
669 other expressions into an expression of their own.
670
0c88d7df
DH
6712003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
672
673 * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
674 compare SCM values with !=.
675
5cb22e96
DH
6762003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
677
678 * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
679 scm_m_generalized_set_x, scm_init_evalext): Move the declaration
680 and definition of the memoizer for the generalized set! macro from
681 evalext.[ch] to eval.[ch]. Use the SCM_SYNTAX snarfer macro to
682 define the macro object.
683
684 * eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
685 scm_m_generalized_set_x): Since now scm_s_set_x is only used in
686 eval.c, it is made static and renamed to s_set_x.
687
688 * evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
689 over SCM_N<foo>.
690
a44a9715
DH
6912003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
692
693 * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
694 scm_init_eval): Made scm_undefineds static in eval.c, renamed it
695 to undefineds and registered the object as a permanent object.
696
697 * eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
698 static in eval.c, renamed it to f_apply and registered the object
699 as a permanent object.
700
1b43d24c
DH
7012003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
702
5cb22e96 703 * eval.c (SCM_BIT7, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
1b43d24c
DH
704 file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
705
aec16f99
DH
7062003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
707
708 * numbers.c (scm_logtest): Fixed argument bug in the call to
709 mpz_and, which showed up when compiling with SCM_DEBUG defined.
710
f96460ce
DH
7112003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
712
713 * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
714 type errors that showed up when compiling with SCM_DEBUG defined.
715
d0f6ceb8
DH
7162003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
717
718 * continuations.c, continuations.h, eval.c, eval.h, extensions.c,
719 gsubr.c, guile.c, init.c, read.c, root.c, root.h, stackchk.h,
720 throw.c: Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
721 fix compile errors with --disable-deprecated.
722
19a7a089
RB
7232003-04-17 Rob Browning <rlb@defaultvalue.org>
724
725 * numbers.c (scm_integer_expt): fix case where we were declaring
726 vars in the middle of a statement block. Thanks to Thamer
727 Al-Harbash.
728
47cd67db
MD
7292003-04-17 Mikael Djurfeldt <djurfeldt@nada.kth.se>
730
0fd7dcd3
MD
731 * goops.c (TEST_CHANGE_CLASS): Update variable class after class
732 change.
733
47cd67db
MD
734 * eq.c (scm_eqv_p): Turned into a primitive generic.
735
3b8b889c
RB
7362003-04-16 Rob Browning <rlb@defaultvalue.org>
737
312006bb
RB
738 * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
739 Thanks to Boyd Gerber.
740 Added check for __arm__ in addition to arm for LINUX and copied
741 __s390__ defines from upstream libgc. Thanks to James Treacy for
742 reporting the problems.
c7ef2ea1 743
3b8b889c
RB
744 * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT.
745
746 * socket.c: use SCM_CHAR_BIT.
747
748 * random.c (scm_c_random_bignum): use SCM_CHAR_BIT.
749
750 * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT.
751
43261b39
MD
7522003-04-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
753
754 * feature.c (scm_init_feature): Always add threads feature.
755
58241edc
MD
7562003-04-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
757
758 * goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
759 scm_at_assert_bound_ref. (We don't want the unbound check. See
760 oop/goops/active-slot.scm.)
761
94e91275
RB
7622003-04-14 Rob Browning <rlb@defaultvalue.org>
763
764 * tags.h: scm_t_intptr should have been intptr_t.
765
3071ea27
RB
7662003-04-13 Rob Browning <rlb@defaultvalue.org>
767
768 * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
769 test. Instead use
770 #if defined (sparc) || defined (__sparc__) || defined (__sparc)
771 as gc_os_dep.c suggests is appropriate.
772
773 * goops.c (prep_hashsets): make static to match prototype.
774 (scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL. Thanks to Albert
775 Chin.
776
777 * c-tokenize.lex: remove trailing comma from enum. Thanks to
778 Albert Chin.
779
780 * gc_os_dep.c: add NetBSD powerpc config info. Thanks to Thomas
781 Klausner.
782
21ab2aeb
MD
7832003-04-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
784
785 * goops.c (scm_sys_prep_layout_x): Instance allocation is now
786 indicated through extra fields in getters-n-setters.
787 (scm_add_slot): Adapted to new format of getters_n_setters slot.
788 (Thanks to Andy Wingo.)
789
dff96e95
HWN
7902003-02-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
791
792 * gc-segment.c: add comment
793
07921c76
RB
7942003-04-07 Rob Browning <rlb@defaultvalue.org>
795
b5331f10
RB
796 * debug.h: change "id" arg name to "info_id" to avoid objective-c
797 clash.
798
07921c76
RB
799 * num2integral.i.c (NUM2INTEGRAL): fix bug pointed out by Mikael
800 and add regression test to standalone/.
801
8022003-04-06 Rob Browning <rlb@defaultvalue.org>
803
804 * strings.c (scm_mem2string): use memcpy rather than by-hand loop.
805 Thanks to Dale P. Smith.
806
807 * random.c: #include gmp.h.
808 (scm_c_random_bignum): normalize result on return.
809
810 * init.c: #include gmp.h.
811
812 * numbers.h: remove the gmp.h #include (not needed now).
813
814 * posix.h: change occurences of "id" to something else so we don't
815 cause trouble when included via objective-c (can't hurt, might
816 help). Still have usage in debug.h, though.
817
938f6b7c
MD
8182003-04-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
819
372691d8
MD
820 * random.c (scm_c_random_bignum): Don't generate a random number
821 equal to m (the second argument of scm_c_random_bignum); only
822 generate numbers in the range 0 <= r < m.
c5f268f8
MD
823 (scm_c_default_rstate): Use SCM_VARIABLE_REF to access
824 scm_var_random_state.
372691d8 825
938f6b7c
MD
826 * num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
827 clause.
828
6cdb8c3f
RB
8292003-04-05 Rob Browning <rlb@defaultvalue.org>
830
938f6b7c 831 * modules.c (scm_module_import_interface): move declaration of
6cdb8c3f
RB
832 uses before any code.
833
15635be5
MD
8342003-04-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
835
1ecfd013
MD
836 * Makefile.am (scmconfig.h): Look for config.h in top_builddir,
837 not top_srcdir.
838
15635be5
MD
839 * hashtab.c (rehash_after_gc): Clear to_rehash list before
840 processing it in order to avoid an infinite loop.
841
842 * print.c (scm_prin1): Remember old state of pstate->writingp.
843
73be1d9e
MV
8442003-04-05 Marius Vollmer <mvo@zagadka.de>
845
846 * Changed license terms to the plain LGPL thru-out.
847
ad815c06
RB
8482003-04-04 Rob Browning <rlb@defaultvalue.org>
849
850 * socket.c (FLIPCPY_NET_HOST_128): new macro.
851 (ipv6_net_to_num, ipv6_num_to_net, bignum_in_ipv6_range_p):
852 rewrite to handle GMP bignums.
853
854
855 * random.c (scm_c_random_bignum): rewrite to handle GMP bignums.
856
857 * ports.c (scm_getc): minor tweak.
858
859 * numbers.h: remove SCM_BIGDIG conditionals, reorganize, and
860 rewrite to handle GMP bignums.
861
862 * numbers.c: rewrite *many* functions to handle GMP bignums.
863
864 * num2integral.i.c (NUM2INTEGRAL, INTEGRAL2NUM, INTEGRAL2BIG):
865 handle GMP bignums.
866
867 * num2float.i.c (NUM2FLOAT): handle GMP bignums.
868
869 * init.c (check_config): remove SCM_BIGDIG conditionals.
870 (scm_init_guile_1): test to make sure mpz_t fits in a double_cell.
871
872 * gc-card.c ("sweep_card"): handle new mpz_t bignums.
873
874 * eval.c: remove SCM_BIGDIG conditionals.
875
876 * eq.c (s_scm_eqv_p): scm_i_bigcomp -> scm_i_bigcmp.
877
6cdb8c3f
RB
8782003-03-31 Rob Browning <rlb@defaultvalue.org>
879
880 * Makefile.am (scmconfig.h): change srcdir to builddir. (Thanks
881 to Kevin Ryde.)
882
8832003-03-27 Rob Browning <rlb@defaultvalue.org>
884
885 * threads.h: fix various preprocessor usages of new public
886 symbols to expect 0 or 1 values rather than 1 or undefined.
887 i.e. change #ifdef to #if, etc.
888
889 * threads.c: fix various preprocessor usages of new public
890 symbols to expect 0 or 1 values rather than 1 or undefined.
891 i.e. change #ifdef to #if, etc.
892
893 * tags.h: fix various preprocessor usages of new public
894 symbols to expect 0 or 1 values rather than 1 or undefined.
895 i.e. change #ifdef to #if, etc.
896
897 * stacks.c: fix various preprocessor usages of new public
898 symbols to expect 0 or 1 values rather than 1 or undefined.
899 i.e. change #ifdef to #if, etc.
900
901 * stackchk.h: fix various preprocessor usages of new public
902 symbols to expect 0 or 1 values rather than 1 or undefined.
903 i.e. change #ifdef to #if, etc.
904
905 * stackchk.c: fix various preprocessor usages of new public
906 symbols to expect 0 or 1 values rather than 1 or undefined.
907 i.e. change #ifdef to #if, etc.
908
909 * sort.c: fix various preprocessor usages of new public
910 symbols to expect 0 or 1 values rather than 1 or undefined.
911 i.e. change #ifdef to #if, etc.
912
913 * read.c: fix various preprocessor usages of new public
914 symbols to expect 0 or 1 values rather than 1 or undefined.
915 i.e. change #ifdef to #if, etc.
916
917 * random.c: fix various preprocessor usages of new public
918 symbols to expect 0 or 1 values rather than 1 or undefined.
919 i.e. change #ifdef to #if, etc.
920
921 * print.c: fix various preprocessor usages of new public
922 symbols to expect 0 or 1 values rather than 1 or undefined.
923 i.e. change #ifdef to #if, etc.
924
925 * objects.c: fix various preprocessor usages of new public
926 symbols to expect 0 or 1 values rather than 1 or undefined.
927 i.e. change #ifdef to #if, etc.
928
929 * numbers.h: 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 * null-threads.c: fix various preprocessor usages of new public
934 symbols to expect 0 or 1 values rather than 1 or undefined.
935 i.e. change #ifdef to #if, etc.
936
937 * lang.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 * lang.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 * iselect.h: 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 * init.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 * gh_data.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 * gh.h: 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 * gen-scmconfig.c: change most new public symbols to be defined to
962 0 or 1 rather than being either 1 or undefined.
963
964 * gc_os_dep.c: fix various preprocessor usages of new public
965 symbols to expect 0 or 1 values rather than 1 or undefined.
966 i.e. change #ifdef to #if, etc.
967 (STACK_GROWS_DOWN): define to 0 or 1 rather than 1 or undef.
968
969 * gc.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 * gc-card.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 * gc-mark.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 * feature.c: 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 * evalext.c: 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 * eval.h: fix various preprocessor usages of new public
990 symbols to expect 0 or 1 values rather than 1 or undefined.
991 i.e. change #ifdef to #if, etc.
992
993 * eval.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 * eq.c: fix various preprocessor usages of new public
998 symbols to expect 0 or 1 values rather than 1 or undefined.
999 i.e. change #ifdef to #if, etc.
1000
1001 * coop.c: fix various preprocessor usages of new public
1002 symbols to expect 0 or 1 values rather than 1 or undefined.
1003 i.e. change #ifdef to #if, etc.
1004
1005 * coop-threads.c: fix various preprocessor usages of new public
1006 symbols to expect 0 or 1 values rather than 1 or undefined.
1007 i.e. change #ifdef to #if, etc.
1008
1009 * coop-pthreads.c: 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 * coop-defs.h: 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 * convert.i.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 * continuations.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 * _scm.h: fix various preprocessor usages of new public symbols to
1026 expect 0 or 1 values rather than 1 or undefined. i.e. change
1027 #ifdef to #if, etc.
1028
d11d697a
MV
10292003-03-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1030
9686f86d
MV
1031 * init.c (scm_init_guile_1): Call scm_i_init_deprecated.
1032
1033 * deprecated.c, deprecated.h: New files, to collect deprecated
1034 things in one place.
1035 * Makefile.am: Added them in all the right places.
1036
d11d697a
MV
1037 * Makefile.am (EXTRA_DIST): Added "scmconfig.h.top".
1038 (scmconfig.h): Get "scmconfig.h.top" from $(srcdir) so that VPATH
1039 builds work.
9686f86d
MV
1040 (DOT_X_FILES): Removed "iselect.x".
1041 (DOT_DOC_FILES): Removed "iselect.doc".
d11d697a 1042
e3c0c3b9
RB
10432003-03-25 Rob Browning <rlb@defaultvalue.org>
1044
1045 * win32-socket.h: #include "libguile/__scm.h". Replace usage of
1046 HAVE_WINSOCK2_H with SCM_HAVE_WINSOCK2_H.
1047
1048 * win32-socket.c: #include <config.h> if HAVE_CONFIG_H.
1049
1050 * vports.c: #include <config.h> if HAVE_CONFIG_H.
1051
1052 * unif.c: #include <config.h> if HAVE_CONFIG_H. Replace usage of
1053 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1054
1055 * threads.h: replace usage of struct timespect with
1056 scm_t_timespec. Replace usage of USE_PTHREAD_THREADS with
1057 SCM_USE_PTHREAD_THREADS. Remove typedef for struct timespec in
1058 favor of scm_t_timespec from scmconfig.h.
1059
1060 * threads.c: move libguile/_scm.h include to the top so we pick up
1061 any critical defines like _GNU_SOURCE early. Replace usage of
1062 struct timespect with scm_t_timespec. Replace usage of
1063 STACK_GROWS_UP with SCM_STACK_GROWS_UP. Replace usage of
1064 USE_PTHREAD_THREADS with SCM_USE_PTHREAD_THREADS.
1065
1066 * threads-plugin.h: replace usage of struct timespect with
1067 scm_t_timespec.
1068
1069 * threads-plugin.c: #include <config.h> if HAVE_CONFIG_H. Replace
1070 usage of struct timespect with scm_t_timespec.
1071
1072 * tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
1073 HAVE_INTTYPES_H handling to scmconfig.h. #include
1074 "libguile/__scm.h". Rework handling for scm_t_bits,
1075 scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
1076 SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr,
1077 scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and
1078 SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to
1079 SCM_HAVE_ARRAYS.
1080
1081 * symbols.c: #include <config.h> if HAVE_CONFIG_H.
1082
1083 * struct.c: #include <config.h> if HAVE_CONFIG_H.
1084
1085 * strports.c: #include <config.h> if HAVE_CONFIG_H.
1086
1087 * strop.c: #include <config.h> if HAVE_CONFIG_H.
1088
1089 * stime.h: move handling of time related headers to scmconfig.h.
1090
1091 * stime.c: #include <config.h> if HAVE_CONFIG_H.
1092
1093 * stacks.c: replace usage of STACK_GROWS_UP with
1094 SCM_STACK_GROWS_UP.
1095
1096 * sort.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1097 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1098
1099 * socket.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1100 of uint32 and HAVE_UINT_32 with scm_t_int32.
1101
1102 * smob.c: #include <config.h> if HAVE_CONFIG_H.
1103
1104 * simpos.c: #include <config.h> if HAVE_CONFIG_H.
1105
1106 * script.c: #include <config.h> if HAVE_CONFIG_H.
1107
1108 * scmsigs.c: #include <config.h> if HAVE_CONFIG_H.
1109
1110 * scmconfig.h.top: new file -- preamble for scmconfig.h.
1111
1112 * rw.c: #include <config.h> if HAVE_CONFIG_H.
1113
1114 * regex-posix.c: #include <config.h> if HAVE_CONFIG_H.
1115
1116 * read.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1117
1118 * rdelim.c: #include <config.h> if HAVE_CONFIG_H.
1119
1120 * random.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1121 of LONG32, LONG64, SIZEOF_LONG, and HAVE_LONG_LONGS with
1122 scm_t_int32, scm_t_int64, and SCM_HAVE_T_INT64. Rename usage of
1123 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1124
1125 * ramap.c: replace usage of HAVE_LONG_LONGS with
1126 "SCM_SIZEOF_LONG_LONG != 0".
1127
1128 * putenv.c: #include <config.h> if HAVE_CONFIG_H. #include
1129 "libguile/scmconfig.h".
1130
1131 * pthread-threads.c: #include <config.h> if HAVE_CONFIG_H.
1132
1133 * print.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1134 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1135
1136 * posix.c: #include <config.h> if HAVE_CONFIG_H.
1137
1138 * ports.c: #include <config.h> if HAVE_CONFIG_H.
1139
1140 * objects.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1141
1142 * numbers.h: replace usage of HAVE_FLOATINGPOINT_H with
1143 SCM_HAVE_FLOATINGPOINT_H. Replace usage of HAVE_IEEEFP_H with
1144 SCM_HAVE_IEEEFP_H. Replace usage of HAVE_NAN_H with
1145 SCM_HAVE_NAN_H. Replace usage of STDC_HEADERS with
1146 SCM_HAVE_STDC_HEADERS. Replace usage of ptrdiff_t with
1147 scm_t_ptrdiff. Replace usage of HAVE_LONG_LONGS with
1148 "SCM_SIZEOF_LONG_LONG != 0".
1149
1150 * numbers.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1151 of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0". Replace
1152 usage of ptrdiff_t with scm_t_ptrdiff. Replace usage of
1153 SIZEOF_PTRDIFF_T with SCM_SIZEOF_SCM_T_PTRDIFF.
1154
1155 * num2integral.i.c: #include <config.h> if HAVE_CONFIG_H.
1156
1157 * null-threads.h: replace usage of struct timespect with
1158 scm_t_timespec.
1159
1160 * net_db.c: #include <config.h> if HAVE_CONFIG_H.
1161
1162 * mkstemp.c: #include <config.h> if HAVE_CONFIG_H. #include
1163 "libguile/__scm.h". Remove definition of gcc_uint64_t in favor of
1164 scm_t_uint64 and rename usages.
1165
1166 * mallocs.c: #include <config.h> if HAVE_CONFIG_H.
1167
1168 * load.c: #include <config.h> if HAVE_CONFIG_H.
1169
1170 * iselect.h: move handling of time related headers to scmconfig.h.
1171 Rename usage of HAVE_SYS_SELECT_H to SCM_HAVE_SYS_SELECT_H.
1172 Rename usage of HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Rename
1173 usage of USE_COOP_THREADS to SCM_USE_COOP_THREADS.
1174
1175 * iselect.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1176 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1177 USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1178
1179 * ioext.c: #include <config.h> if HAVE_CONFIG_H.
1180
1181 * inline.h: #include "libguile/__scm.h" at the top. Change code
1182 to use SCM_C_INLINE and SCM_INLINE_C_INCLUDINT_INLINE_H to decide
1183 what to do instead of creating a new public #define. Rename usage
1184 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1185 USE_NULL_THREADS to SCM_USE_NULL_THREADS. Rename usage of
1186 USE_COPT_THREADS to SCM_USE_COPT_THREADS.
1187
1188 * inline.c: rearrange handling -- now we just #define
1189 SCM_INLINE_C_INCLUDING_INLINE_H to 1 and #include
1190 "libguile/inline.h". scmconfig.h will define SCM_C_INLINE as
1191 appropriate, and we use that in inline.h along with the above
1192 define to determine how to respond.
1193
1194 * init.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1195 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1196
1197 * guile.c: #include <config.h> if HAVE_CONFIG_H.
1198
1199 * gh_data.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1200 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1201
1202 * gh.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1203
1204 * gen-scmconfig.h.in: new file -- see gen-scmconfig.c for details.
1205
1206 * gen-scmconfig.c: new file -- see comments in file for details.
1207
1208 * gdbinit.c: #include <config.h> if HAVE_CONFIG_H.
1209
1210 * gc_os_dep.c: #include <config.h> if HAVE_CONFIG_H. Replace
1211 usage of STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1212
1213 * gc.h: replace usage of SIZEOF_LONG with
1214 SCM_SIZEOF_UNSIGNED_LONG. Replace usage of USE_PTHREAD_THREADS
1215 with SCM_USE_PTHREAD_THREADS. Remove SCM_SIZEOF_LONG definition
1216 since we handle that in scmconfig.h now.
1217
1218 * gc.c: #include <config.h> if HAVE_CONFIG_H.
1219
1220 * gc-mark.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1221 of HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of
1222 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1223
1224 * gc-malloc.c: #include <config.h> if HAVE_CONFIG_H.
1225
1226 * gc-card.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1227 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1228
1229 * fports.c: #include <config.h> if HAVE_CONFIG_H.
1230
1231 * filesys.c: #include <config.h> if HAVE_CONFIG_H.
1232
1233 * feature.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1234 of USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1235
1236 * extensions.c: #include <config.h> if HAVE_CONFIG_H.
1237
1238 * evalext.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1239 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1240
1241 * eval.c: #include <config.h> if HAVE_CONFIG_H. #include
1242 "libguile/__scm.h" rather than scmconfig.h. Rename usage of
1243 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1244 with "SCM_SIZEOF_LONG_LONG != 0".
1245
1246 * error.c: #include <config.h> if HAVE_CONFIG_H.
1247
1248 * eq.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1249 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1250 with "SCM_SIZEOF_LONG_LONG != 0".
1251
1252 * deprecation.c: #include <config.h> if HAVE_CONFIG_H.
1253
1254 * coop.c: replace usage of struct timespect with scm_t_timespec.
1255 #include <config.h> if HAVE_CONFIG_H.
1256
1257 * coop-threads.c: #include "libguile/_scm.h" early. Replace
1258 usage of struct timespect with scm_t_timespec. Replace usage of
1259 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1260
1261 * coop-pthreads.c: #include "libguile/_scm.h" early. Replace
1262 usage of struct timespect with scm_t_timespec. Replace usage of
1263 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1264
1265 * coop-defs.h: move handling of time related headers to
1266 scmconfig.h. Add #include "libguile/__scm.h". Rename usage of
1267 HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Replace usage of struct
1268 timespect with scm_t_timespec.
1269
1270 * convert.i.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1271
1272 * convert.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1273
1274 * convert.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1275 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1276
1277 * continuations.c: move libguile/_scm.h include to the top so we
1278 pick up any critical defines like _GNU_SOURCE early.
1279
1280 * backtrace.c: #include <config.h> if HAVE_CONFIG_H.
1281
1282 * async.c: #include <config.h> if HAVE_CONFIG_H.
1283
1284 * alloca.c: #include <config.h> if HAVE_CONFIG_H.
1285
1286 * _scm.h: #include <config.h> if HAVE_CONFIG_H.
1287 Rename usage of USE_PTHREAD_THREADS to SCM_USE_PTHREAD_THREADS.
1288
1289 * __scm.h: move libguile/scmconfig.h include up to the top, so
1290 we're sure to pick up any critical defines like _GNU_SOURCE early.
1291 #include <limits.h> removed in favor of scmconfig.h inclusion when
1292 appropriate. STDC_HEADERS based inclusion of stdlib.h,
1293 sys/types.h, stddef.h, and sys/stdtypes.h removed in favor of
1294 scmconfig.h inclusion when appropriate. Various Win32 related
1295 definitions removed in favor of scmconfig.h inclusion when
1296 appropriate.
1297 (HAVE_UINTPTR_T): definition removed (see NEWS).
1298 (SIZEOF_PTRDIFF_T): definition removed (see NEWS).
1299 (HAVE_LONG_LONGS): definition removed (see NEWS).
1300 (HAVE_LONG_LONG): definition removed (see NEWS).
1301 (HAVE_PTRDIFF_T): definition removed (see NEWS).
1302
1303 * Makefile.am: scmconfig.h is now generated by building and
1304 running gen-scmconfig.h and capturing its output. gen-scmconfig
1305 uses config.h and the configure.in generated gen-scmconfig.h to
1306 decide what to output. See gen-scmconfig.c for details.
1307 (noinst_PROGRAMS): add gen-scmconfig.
1308 (gen_scmconfig_SOURCES): new variable.
1309 (gen-scmconfig.$(OBJEXT)): new target - be careful to handle
1310 cross-compiling right.
1311 (scmconfig.h): build scmconfig.h from gen-scmconfig's output.
1312 (BUILT_SOURCES): add scmconfig.h.
1313
25e0bf97
MV
13142003-03-19 Marius Vollmer <mvo@zagadka.de>
1315
1316 * gc_os_dep.c: Added defines for sparc-unknown-netbsdelf1.5 from
1317 Adrian Bunk. Thanks!
1318
74b6d6e4
MD
13192003-03-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1320
1321 * goops.c (make_class_from_template): New fourth arg:
1322 applicablep.
1323 (scm_class_extended_generic_with_setter, scm_class_self): Fixed
1324 cpls.
1325
1326 * smob.c (scm_set_smob_apply): Call scm_i_inherit_applicable.
1327
1328 * goops.c, objects.c, objects.h (scm_make_extended_class): New
1329 second arg: applicablep.
1330 (scm_i_inherit_applicable): New function.
1331
1332 * goops.c, goops.h (scm_class_applicable,
1333 scm_class_extended_accessor): New classes.
1334
5c9e7dad
DH
13352003-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1336
1337 * procs.c (scm_procedure_documentation): Removed redundant
1338 SCM_NIMP test and replaced other calls to SCM_IMP by more explicit
1339 predicates.
1340
f8af5c6d
MD
13412003-03-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1342
c614a00b
MD
1343 * list.c, list.h (scm_filter, scm_filter_x): New functions.
1344
109c2c9f
MD
1345 * modules.c (scm_module_import_interface): New function.
1346
f8af5c6d
MD
1347 * goops.c, goops.h (scm_class_accessor_method): Renamed from
1348 scm_class_accessor.
1349 (scm_class_accessor): New class.
1350
a48d60b1
MD
13512003-03-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1352
1353 * goops.c (scm_primitive_generic_generic): Enable primitive
1354 generic if not enabled.
1355 (scm_sys_goops_loaded): Setup unextended primitive generics.
1356
1357 * goops.c, goops.h (scm_c_extend_primitive_generic): New function.
1358
1359 * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
1360 snarf macros.
1361
1362 * numbers.c (scm_abs): Use SCM_PRIMITIVE_GENERIC. (This is only a
1363 testing example. All uses of SCM_GPROC should be converted.)
1364
1365 * procprop.c (scm_stand_in_scm_proc): Use scm_assq instead of
1366 scm_assoc.
1367
1368 * eq.c (scm_equal_p): Turned into a primitive generic.
1369
84edc049
RB
13702003-02-27 Rob Browning <rlb@defaultvalue.org>
1371
1372 * Makefile.am (scmconfig.h): new target -- generate file from
1373 ../config.h.
1374 (modinclude_HEADERS): remove version.h.
1375 (nodist_modinclude_HEADERS): add version.h.
1376
ea5c9285
MD
13772003-02-24 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1378
b4a1358c
MD
1379 This fixes a serious GC bug, introduced during the latest
1380 reorganization of the GC, which disabled freeing of structs and
1381 GOOPS objects:
1382
1383 * struct.c (scm_struct_prehistory): Init scm_i_structs_to_free to
1384 SCM_EOL.
53af8255
MD
1385 (scm_struct_prehistory): Move scm_free_structs to
1386 scm_before_mark_c_hook.
ea5c9285 1387
b4a1358c
MD
1388 * gc-card.c (sweep_card): Check that we haven't swept structs on
1389 this card before. That can happen if scm_i_sweep_all_segments has
1390 been called from some other place than scm_igc.
1391
c35738c1
MD
13922003-02-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1393
231a4ea8
MD
1394 * environments.c (DEFAULT_OBARRAY_SIZE): Changed from 137 to 31
1395 (since hash tables now adapt their size).
1396
1397 * modules.c (scm_modules_prehistory): Changed from 2001 to 1533
1398 (current number of prehistory bindings; hashtable code will select
1399 a prime which is greater than this value).
1400
1401 * symbols.c (scm_symbols_prehistory): Changed from 1009 to 2139
1402 (current number of initial symbols).
1403
1404 * properties.c (scm_init_properties): Don't specify size of
1405 scm_properties_whash.
1406
1407 * objprop.c (scm_init_objprop): Don't specify size of
1408 scm_object_whash.
1409
1410 * keywords.c (scm_init_keywords): Don't specify a hash table size.
1411
c35738c1
MD
1412 * hooks.c (scm_c_hook_add): Fixed bug in append mode.
1413
1414 The following changes introduce the use of resizable hash tables
1415 throughout Guile. It also renames the old *-hash-table* functions
1416 to *-alist-vector* and places them, together with the rest of the
1417 weak vector support, in the module (ice-9 weak-vector). We should
1418 probably introduce a new, better, API for weak references, for
1419 example "weak pairs" a la MIT-Scheme. (In Chez scheme, they even
1420 look like and are used like ordinary pairs.)
1421
1422 * environments.c (obarray_enter, obarray_retrieve, obarray_remove,
1423 leaf_environment_fold, obarray_remove_all): Use hashtable
1424 accessors.
1425
1426 * gc.c (scm_init_storage): Moved hook initialization to
1427 scm_storage_prehistory.
1428 (scm_storage_prehistory): New function.
1429 (scm_igc): Added commentary about placement of
1430 scm_after_sweep_c_hook.
1431
1432 * gc-mark.c (scm_mark_all): Use hashtable accessors.
1433 (scm_gc_mark_dependencies): Use SCM_WVECT_WEAK_KEY_P and
1434 SCM_WVECT_WEAK_VALUE_P.
1435
1436 * hashtab.c, hashtab.h (scm_hash_for_each, scm_hash_map): New
1437 functions.
1438 (scm_vector_to_hash_table, scm_c_make_resizing_hash_table):
1439 Removed.
1440 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
1441 scm_make_doubly_weak_hash_table): Moved here from weaks.c.
1442
1443 * init.c (scm_init_guile_1): Removed call to scm_init_weaks; Added
1444 calls to scm_storage_prehistory and scm_hashtab_prehistory.
1445
1446 * modules.c (module-reverse-lookup): Use hashtable accessors.
1447
1448 * symbols.c, symbols.h (scm_i_hash_symbol): New function.
1449
1450 * weaks.c, weaks.h (scm_make_weak_key_alist_vector,
1451 scm_make_weak_value_alist_vector,
1452 scm_make_doubly_weak_alist_vector): New functions.
1453
1454 * weaks.c (scm_init_weaks_builtins): New function.
1455
1456 * weaks.h (SCM_WVECTF_WEAK_KEY, SCM_WVECTF_WEAK_VALUE,
1457 SCM_WVECTF_NOSCAN, SCM_WVECT_WEAK_KEY_P, SCM_WVECT_WEAK_VALUE_P,
1458 SCM_WVECT_NOSCAN_P): New macros.
1459
1460 * weaks.c (scm_scan_weak_vectors): Use SCM_WVECT_WEAK_KEY_P
1461 and SCM_WVECT_WEAK_VALUE_P.
1462
1463 * weaks.c, weaks.h (scm_i_allocate_weak_vector): Renamed from
1464 allocate_weak_vector and exported.
1465
0a4c1355
MD
14662003-02-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1467
1468 * hashtab.c: Undid thread safety. (We decided that it's better to
1469 let the user explicitly protect the tables (or not) according what
1470 is suitable for the application.)
1471
87ca11ff
MD
14722003-02-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1473
1474 * hashtab.c (scm_hash_fn_remove_x, scm_internal_hash_fold): Made
1475 thread safe and handle resizing tables.
1476 (scm_ihashx, scm_sloppy_assx, scm_delx_x): Removed
1477 SCM_DEFER/ALLOW_INTS.
1478
f59a096e
MD
14792003-02-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1480
1481 * hashtab.c (scm_vector_to_hash_table,
1482 scm_c_make_resizing_hash_table, scm_make_hash_table): New
1483 functions.
1484 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x): Made thread
1485 safe and handle resizing tables.
1486
1487 * weaks.c (scm_make_weak_key_hash_table,
1488 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1489 Size argument made optional. Return resizable table if not
1490 specified.
1491
4b612c5b
MD
14922003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1493
1494 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
1495 Fixed formals tests for closures. (Thanks to Kevin Ryde.)
1496
b3d7f6df
MD
14972003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1498
1499 * debug.c (scm_procedure_source): Handle all objects for which
1500 procedure? is #t. (Thanks to Bill Schottstaedt.)
1501
756414cf
MD
15022003-01-23 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1503
361d631f
MD
1504 * futures.c (mark_futures): Don't need to mark data of recycled
1505 futures.
1506 (scan_futures, cleanup_undead): Be smarter about marking
1507 futures---avoid unnecessary passes through future lists.
1508
756414cf
MD
1509 * futures.h, futures.c: New files; Introduced recycling of
1510 futures. For fine-grained threading this lifts performance to
1511 another level. We can now use parallelization in inner loops of
1512 Guile programs without impossible overhead.
1513
1514 * threads.h, threads.c: Moved futures to their own file.
1515
1516 * Makefile.am (libguile_la_SOURCES): Added futures.c.
1517 (DOT_X_FILES): Added futures.x.
1518 (DOT_DOC_FILES): Added futures.doc.
1519 (modinclude_HEADERS): Added futures.h.
1520
1521 * threads.c, threads.h (scm_i_create_thread): Renamed from
1522 create_thread and made global.
1523
1524 * futures.c (scm_make_future): New procedure.
1525
1526 * eval.c: #include "libguile/futures.h".
1527
1528 * init.c: #include "futures.h"
1529 (scm_init_guile_1): Call scm_init_futures.
1530
1531 * stime.c (SCM_TIME_UNITS_PER_SECOND): Renamed from CLKTCK.
1532
1533 * stime.h (SCM_TIME_UNITS_PER_SECOND): Definition moved here.
1534
1535 * eval.c, eval.h (scm_trampoline_0, scm_i_call_closure_0): New
1536 functions.
1537
1538 * eval.c (scm_trampoline_1): Fixed arguments test for closures.
1539
b4debead
MD
15402003-01-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1541
1542 * threads.c (create_thread): Don't unwind dynwind chain of parent
1543 thread before creation. Just start the new thread with an empty
1544 dynwind chain.
1545
93f26b7b
MD
15462003-01-20 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1547
1548 * evalext.c, evalext.h (scm_self_evaluating_p): New function.
1549
38d8927c
MD
15502003-01-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1551
41c96c32
MD
1552 * threads.c (scm_timed_wait_condition_variable): Support timed
1553 waiting also for simple condition variables.
1554
38d8927c
MD
1555 * goops.c (TEST_CHANGE_CLASS): Use scm_change_object_class instead
1556 of calling the procedure change-object-class.
1557
9cf5d9b7
MD
15582003-01-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1559
1560 * ramap.c (scm_ramapc): Typo in error message.
1561
bbf8d523
MD
15622003-01-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1563
b46fae00
MD
1564 * goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
1565 slots with instance allocation.
1566
bbf8d523
MD
1567 * goops.c, goops.h (scm_class_extended_generic_with_setter): New
1568 class.
1569 (scm_compute_applicable_methods): Use scm_generic_function_methods.
1570
1571 * goops.c (scm_generic_function_methods): Support extended
1572 generic functions.
1573
ebf9b47c
MD
15742002-12-29 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1575
1576 * eval.c (unmemocopy): Bugfix: scm_sym_delay --> scm_sym_future.
2e37d6a2 1577 Thanks to Neil for pointing this out!
ebf9b47c 1578
14a9ba3f
NJ
15792002-12-29 Neil Jerram <neil@ossau.uklinux.net>
1580
1581 * lang.h: Remove declarations matching definitions removed from
1582 lang.c (just below).
1583
c6a040a8
NJ
15842002-12-28 Neil Jerram <neil@ossau.uklinux.net>
1585
6054d805
NJ
1586 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
1587 scm_m_while, scm_nil_eq): Remove definitions that were superfluous
1588 and already commented out.
1589
c6a040a8
NJ
1590 * read.h (scm_lreadparen), read.c (scm_lreadr, scm_read_token,
1591 scm_lreadparen): Support reading vectors with Elisp syntax if
1592 SCM_ELISP_READ_EXTENSIONS is defined. (SCM_ELISP_READ_EXTENSIONS
1593 is not currently defined, and there isn't even a configure switch
1594 to enable it yet.)
1595
3742c12f
MV
15962002-12-26 Marius Vollmer <mvo@zagadka.ping.de>
1597
1598 * Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
1599 builds work.
1600 (EXTRA_DIST): Added version.h.in.
1601
fb50ef08
MD
16022002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1603
1604 This change makes it possible for one thread to do lazy sweeping
1605 while other threads are running. Now only the mark phase need to
1606 have all threads asleep. We should look further into this issue.
1607 Presently, I've put the locking of scm_i_sweep_mutex at
1608 "conservative" places due to my current lack of knowledge about
1609 the garbage collector. Please feel free to restrict these regions
1610 further to allow for maximal parallelism!
1611
1612 * gc.c, gc.h (scm_i_sweep_mutex): New mutex.
1613
1614 * gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
1615 scm_gc_register_collectable_memory): Substitute locking of
1616 scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
1617 (scm_igc): Lock sweep mutex here instead of in callers; Calls to
1618 scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
1619 the single-thread section (which now only contains the mark
1620 phase).
1621 (scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
1622 Removed SCM_DEFER/ALLOW_INTS. Simply call scm_igc directly.
1623
1624 * threads.c (gc_section_mutex): Removed.
1625
9ed24633
MD
16262002-12-19 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1627
0d48aca5
MD
1628 * threads.c (create_thread): Clear parent field in root state in
1629 order not to unnecessarily remember dead threads.
1630
9ed24633
MD
1631 * eval.c (call_subr2o_1, call_lsubr2_2): New functions.
1632 (scm_trampoline_1, scm_trampoline_2): Use them.
1633
29717c89
MD
16342002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1635
1636 Partial introduction of real plugin interface.
1637
1638 * Makefile.am (modinclude_HEADERS): Added threads-plugin.h.
1639 (EXTRA_DIST): Added threads-plugin.c.
1640
1641 * threads-plugin.h, threads-plugin.c: New files.
1642
1643 * threads.h: #include "libguile/threads-plugin.h".
1644
1645 * threads.c: #include "libguile/threads-plugin.c".
1646
1647 * pthread-threads.c: Temporarily remove debugging functions.
1648
1649 * threads.c, threads.h (scm_yield): Added back.
1650
e29e0b09
MD
16512002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1652
1653 * threads.c (really_launch): Detach before unlocking
1654 thread_admin_mutex in order not to risk being joined.
1655 (scm_i_thread_put_to_sleep, scm_i_thread_wake_up): Keep
1656 thread_admin_mutex locked during GC.
1657
1658 * pthread-threads.c, pthread-threads.h: Improvements to debugging
1659 functions.
1660
0b6843b1 16612002-12-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
93cd4dcd 1662
6da2dfc4
MD
1663 * pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
1664 support for debugging mutex operations.
1665
1b92fb6b
MD
1666 * threads.c (scm_thread): Removed filed joining_threads.
1667 (thread_print): Print thread number as well as address of thread
1668 structure.
0b6843b1
MD
1669 (scm_join_thread): Bugfix.
1670 (scm_lock_mutex, scm_try_mutex, scm_unlock_mutex,
1671 scm_timed_wait_condition_variable, scm_signal_condition_variable,
1672 scm_broadcast_condition_variable): Use the low-level API.
1673 (scm_all_threads): Return copy of thread list (to prevent
1674 unintended destruction).
1675 (scm_threads_prehistory): Initialize heap_mutex of fake thread.
1b92fb6b 1676
93cd4dcd
MD
1677 * pthread-threads.c, pthread-threads.h, threads.c: Fixes to
1678 pthread "native" recursive mutex support.
1679
2ff4f181
MD
16802002-12-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1681
28d52ebb
MD
1682 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): New definitions.
1683 Simply lock a thread C API recursive mutex.
1684 (SCM_NONREC_CRITICAL_SECTION_START,
1685 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1686 SCM_REC_CRITICAL_SECTION_END): Removed.
1687
1688 * eval.c: Replaced SOURCE_SECTION_START / SOURCE_SECTION_END with
1689 direct calls to scm_rec_mutex_lock / unlock around the three calls
1690 to scm_m_expand_body.
1691
1692 * eval.c, eval.h (promise_free): New function.
1693 (scm_force): Rewritten; Now thread-safe; Removed
1694 SCM_DEFER/ALLOW_INTS.
1695
1696 * pthread-threads.h: Added partially implemented plugin interface
1697 for recursive mutexes. These are, for now, only intended to be
1698 used internally within the Guile implementation.
1699
1700 * pthread-threads.c: New file.
1701
1702 * threads.c: Conditionally #include "pthread-threads.c".
1703
1704 * eval.c, eval.h (scm_makprom, scm_force): Rewritten to be
1705 thread-safe;
1706
1707 * snarf.h (SCM_MUTEX, SCM_GLOBAL_MUTEX, SCM_REC_MUTEX,
1708 SCM_GLOBAL_REC_MUTEX): New macros.
1709
1710 * eval.c, threads.c, threads.h, snarf.h: Rewrote critical section
1711 macros---use mutexes instead.
1712
1713 * tags.h (SCM_IM_FUTURE): New tag.
1714
1715 * eval.c (scm_m_future): New primitive macro.
1716 (SCM_CEVAL): Support futures.
1717 (unmemocopy): Support unmemoization of futures.
1718
1719 * print.c (scm_isymnames): Name of future isym.
1720
2ff4f181
MD
1721 * version.c: Unmade some changes to my private copy that got
1722 committed by mistake.
1723
392d2833
MD
17242002-12-11 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1725
e200ddee
MD
1726 * gc-malloc.c, gc.h, init.c: Reverted gc-malloc change of
1727 2002-12-10.
1728
392d2833
MD
1729 * gc.c (scm_igc): Don't call scm_i_thread_invalidate_freelists.
1730
1731 * gc.c (scm_gc_sweep): Call it here instead, which is a more
1732 logical place.
1733
1734 * threads.c (create_thread): Remember root object until the handle
1735 of the new thread is on all_threads list.
1736
1737 * root.c (scm_make_root): Moved copying of fluids until after
1738 creation of root handle so that the fluids are GC protected. Also
1739 removed the critical section.
1740
c4c52ebe
MD
17412002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1742
960c408c
MD
1743 * gc-malloc.c, gc.h (scm_gc_malloc_prehistory): New function.
1744
3cdde9d6 1745 * gc-malloc.c (malloc_mutex): New mutex.
960c408c 1746 (scm_gc_malloc_prehistory): Initialize it.
3cdde9d6
MD
1747 (scm_realloc): Serialize call to realloc
1748 (scm_calloc): Same for calloc.
1749 Thanks to Wolfgang Jaehrling!
1750 (Now we have to make sure all calls to malloc/realloc are made
1751 through scm_malloc.)
1752
960c408c
MD
1753 * init.c (scm_init_guile_1): Call scm_gc_malloc_prehistory.
1754
c4c52ebe
MD
1755 * threads.c (really_launch): Release heap (to prevent deadlock).
1756 (create_thread): Release heap before locking thread admin mutex.
1757
b0dc3d71
MD
17582002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1759
1760 * threads.c (scm_i_thread_invalidate_freelists): New
1761 function.
1762
1763 * gc.c (scm_igc): Call scm_i_thread_invalidate_freelists.
1764
1765 * modules.c (scm_export): Inserted a return statement.
1766
06e80f59
HWN
17672002-12-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1768
1769 * modules.c (scm_export): new function
1770
1771 * gc-card.c: add a note about malloc()/free() overhead.
1772
a12611c3
MD
17732002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1774
1775 * Makefile.am (c-tokenize.$(OBJEXT)): Don't look for c-tokenize.c
1776 in srcdir.
1777
c7fabadf
MD
17782002-12-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1779
1780 These changes remove scm_ints_disabled (which hasn't has any
1781 effect in Guile for quite some time).
1782
1783 * async.c, error.h (scm_ints_disabled): Removed.
1784
1785 * gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
1786 root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
1787 SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
1788 (old_ints): Removed.
1789
1790 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
1791 critical section.
1792 (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
1793 SCM_ALLOW_INTS.
1794
9bc4701c
MD
17952002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1796
52340b65
MD
1797 * threads.c (scm_mutex_lock, scm_cond_wait, scm_cond_timedwait):
1798 Removed accidental #if 0 around these functions.
1799
9bc4701c
MD
1800 These changes are the start of support for preemptive
1801 multithreading. Marius and I have agreed that I commit this code
1802 into the repository although it isn't thoroughly tested and surely
1803 introduces many bugs. The bugs should only be exposed when using
1804 threads, though. Signalling and error handling for threads is
1805 very likely broken. Work on making the implementation cleaner and
1806 more efficient is needed.
1807
1808 * __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
1809 (SCM_NONREC_CRITICAL_SECTION_START,
1810 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1811 SCM_REC_CRITICAL_SECTION_END): New macros.
1812 (SCM_CRITICAL_SECTION_START/END): Defined here.
1813
1814 * eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
1815 the three calls to scm_m_expand_body.
1816
1817 * gc.h: #include "libguile/pthread-threads.h";
1818 (SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
1819
1820 * gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
1821 scm_t_key;
1822
1823 * gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
1824 access.
1825
1826 * gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
1827
1828 * gc-freelist.c, threads.c (really_launch): Use
1829 SCM_FREELIST_CREATE.
1830
1831 * gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
1832
1833 * gc.c (scm_i_expensive_validation_check, scm_gc,
1834 scm_gc_for_newcell): Put threads to sleep before doing GC-related
1835 heap administration so that those pieces of code are executed
1836 single-threaded. We might consider rewriting these code sections
1837 in terms of a "call_gc_code_singly_threaded" construct instead of
1838 calling the pair of scm_i_thread_put_to_sleep () and
1839 scm_i_thread_wake_up (). Also, we would want to have as many of
1840 these sections eleminated.
1841
1842 * init.c (scm_init_guile_1): Call scm_threads_prehistory.
1843
1844 * inline.h: #include "libguile/threads.h"
1845
1846 * pthread-threads.h: Macros now conform more closely to the
1847 pthreads interface. Some of them now take a second argument.
1848
1849 * threads.c, threads.h: Many changes.
1850
18512002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1852
1853 * Makefile.am (version.h): Changed $^ --> $< in rule for
1854 version.h.
1855
b2cbe8d8
RB
18562002-12-08 Rob Browning <rlb@defaultvalue.org>
1857
1858 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
1859 (SCM_MINOR_VERSION): use @--@ substitution now.
1860 (SCM_MICRO_VERSION): use @--@ substitution now.
1861 (scm_effective_version): new function prototype.
1862
1863 * version.c (scm_effective_version): new function, also add
1864 effective-version.
1865
1866 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
1867 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
1868 SCM_LIBRARY_DIR.
1869 (version.h): generate this here rather than configure.in. This
1870 approach tracks source edits better (i.e. more immediately).
1871 Might be worth considering for other .in files too.
1872
5441c65c
MV
18732002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
1874
1875 Reorganized thread package selection. A thread package now only
1876 implements a small set of pthread like functions and Guile
1877 implements the rest on top of that. Guile's implementation is
1878 what the "coop-pthreads" package has been previously. Support for
1879 "coop" threads has been removed until I get time to add it again.
1880
1881 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
1882 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
1883 null-threads.c, coop-pthreads.c.
1884 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
1885 pthread-threads.h.
1886
1887 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
1888
1889 * threads.h: Do not include "libguile/coop-defs.h". Include
1890 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
1891 (previously deprecated) C level thread API prototypes. They are
1892 now in the thread package specific headers, "null-threads.h" and
1893 "pthread-threads.h".
1894 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
1895 New.
1896 (scm_threads_init): Removed.
1897 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
1898 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
1899 SCM_I_THREAD_SWITCH_COUNT): Define here.
1900 (scm_single_thread_p): Removed.
1901 (scm_call_with_new_thread): Take two args directly instead of list
1902 of two args.
1903 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
1904 SCM_SET_THREAD_LOCAL_DATA): Define here.
1905
1906 * threads.c: Merged with "coop-pthreads.c".
1907
1908 * null-threads.h: Implement pthread-like API as a set of macros.
1909
1910 * pthread-threads.h: New, implement pthread-like API by deferring
1911 to pthread itself.
1912
1913 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
1914 has been lost in the reorganization.
1915
504d99c5
MD
19162002-12-01 Mikael Djurfeldt <mdj@linnaeus>
1917
1918 The following change makes it possible to move procedure
1919 application dispatch outside inner loops. The motivation was
1920 clean implementation of efficient replacements of R5RS primitives
1921 in SRFI-1.
1922
1923 The semantics is clear: scm_trampoline_N returns an optimized
1924 version of scm_call_N (or NULL if the procedure isn't applicable
1925 on N args).
1926
1927 Applying the optimization to map and for-each increases efficiency
1928 noticeably. For example, (map abs ls) is 8 times faster than
1929 before.
1930
1931 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
1932
1933 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
1934
1935 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
1936 (map, for-each): Handle also application on two args as a special
1937 case; Use trampolines.
1938
1939 Other changes:
1940
1941 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
1942 (subr2oless): Removed.
1943 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
1944 vector GC protected.
1945
1946 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
1947 scm_out_of_range.
1948
63dd3413
DH
19492002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1950
1951 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
1952
4ba5f279
MD
19532002-11-17 Mikael Djurfeldt <mdj@linnaeus>
1954
1955 * debug.c (scm_make_iloc): Added missing "return".
1956
56ae231f
MV
19572002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
1958
1959 * strports.c (scm_eval_string_in_module): Validate second arg to
1960 be a module. Thanks to Arno Peters!
1961
80b28865
DH
19622002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1963
1964 * .cvsignore: remove goops.c
1965
c88b1456
DH
19662002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1967
1968 * modules.c (scm_env_top_level, scm_lookup_closure_module,
1969 module_variable, scm_module_lookup_closure,
1970 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
1971 scm_system_module_env_p): Don't compare SCM values with C
1972 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
1973 over SCM_NFALSEP.
1974
a8a19efc
DH
19752002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1976
1977 * eval.h (SCM_MAKE_ILOC): New macro.
1978
1979 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
1980 the iloc bitpattern here.
1981
76734914
MD
19822002-11-14 Mikael Djurfeldt <mdj@linnaeus>
1983
1984 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
1985 part of the API, otherwise it's difficult to write Guile
1986 extensions using non-blocking I/O => moved #include
1987 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
1988
1989 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
1990 s_unlock_mutex.
1991
8b5b4a75
MV
19922002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
1993
1994 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
1995 are defined in configure.in.
1996
1997 * threads.c: Removed SCM_API from function definitions. SCM_API
1998 is only for declarations.
1999
e5a83084
MD
20002002-11-07 Mikael Djurfeldt <mdj@linnaeus>
2001
9be8bb45
MD
2002 * coop-pthreads.h: Added support for thread specific data to the
2003 generic C API for the coop-pthreads case.
2004
e5a83084
MD
2005 * threads.c, threads.h (scm_cond_init): Undo unintentional API
2006 change.
6c214b62 2007 (scm_cond_broadcast): Added missing function.
e5a83084 2008
7edf178e
MV
20092002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2010
2011 * coop.c (coop_next_runnable_thread): Removed, wich should have
2012 happened when GUILE_ISELECT was hard-wired.
2013
7f5b1b77
MV
20142002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
2015
7caa1b07
MV
2016 * Makefile.am (libguile_la_SOURCES): Added threads.c
2017 (DOT_DOC_FILES): Added threads.doc.
2018 (DOT_X_FILES): Added threads.x.
2019 (EXTRA_libguile_la_SOURCES): Removed threads.c.
2020 (noinst_HEADERS): Added coop-pthreads.c.
2021 (modinclude_HEADERS): Added coop-pthreads.h.
2022
2023 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
2024 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
2025
bb11cbf4
MV
2026 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
2027 Thanks to Bill Schottstaedt!
2028
1d4cbbed
MV
2029 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
2030
7f5b1b77
MV
2031 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
2032 SCM_COPT_THREADS is defined.
2033 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
2034 is defined.
2035
2036 * coop-pthreads.c: Some harmless renamings of internal stuff.
2037 (create_thread): New, generalized version of
2038 scm_call_with_new_thread.
2039 (scm_call_with_new_thread): Use it.
2040 (scm_spawn_thread): New, use create_thread.
2041
d52f53b1
MV
20422002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
2043
2044 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
2045 start testing it now.
2046
2047 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
2048 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
2049 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
2050 is defined.
2051
30f920c3
MV
20522002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
2053
2054 * scmsigs.c (signal_cell_handlers, install_handler_data,
2055 scm_delq_spine_x, really_install_handler, install_handler): New
2056 scheme for triggering signal handlers, to simplify take_signal.
2057 (take_signal): Simplified, to avoid race conditions.
2058 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
2059 hasn't exited yet.
2060
2061 * async.c (scm_async_click): Reset pending_asyncs, handle
2062 signal_asyncs. Don't set cdr of a non-signal async to #f.
2063 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
2064 always. Set pending_asyncs.
2065 (scm_system_async_mark_for_thread): Check that thread has not
2066 exited.
2067 (scm_unmask_signals, decrease_block): Call scm_async_click after
2068 block_asyncs becomes zero.
2069
2070 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
2071 active_asyncs.
2072
2073 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
2074 fields.
2075 * root.c (root_mark): Mark them.
2076 (make_root): Initialize them.
2077
2078 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
2079 USE_COOP_THREADS.
2080 (scm_internal_select): Define one version for USE_COOP_THREADS and
2081 one for USE_NULL_THREADS.
2082 (scm_init_iselect): Likewise.
2083
2084 * inline.h (scm_cell, scm_double_cell): Also allow
2085 USE_COPT_THREADS to not protect the slot initializers.
2086
2087 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
2088 because threads need to be initialized before the stack, but
2089 gsubrs such as scm_timed_condition_variable_wait can only be
2090 created later.
2091
2092 * threads.h: Include "coop-pthreads.h" when requested.
2093 (scm_threads_make_mutex, scm_threads_lock_mutex,
2094 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
2095 not implemented anyway.
2096 (scm_init_thread_procs, scm_try_mutex,
2097 scm_timed_condition_variable_wait,
2098 scm_broadcast_condition_variable, scm_c_thread_exited_p,
2099 scm_thread_exited_p): New prototypes.
2100 (struct timespec): Define if not already defined.
2101 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2102 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2103 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2104 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
2105 deprecated.
2106
2107 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
2108 requested.
2109 (scm_thread_exited_p): New.
2110 (scm_try_mutex, scm_broadcast_condition_variable): Newly
2111 registered procedures.
2112 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
2113 Use the latter as the procedure for "wait-condition-variable",
2114 thus offering a optional timeout parameter to Scheme.
2115 (scm_wait_condition_variable): Implement in terms of
2116 scm_timed_wait_condition_variable.
2117 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2118 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
2119 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2120 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
2121 scm_make_mutex, etc, and deprecate.
2122 (scm_init_threads): Do not create smobs, leave this to
2123 scm_threads_init. Do not include "threads.x" file.
2124 (scm_init_thread_procs): New, include "threads.x" here.
2125
2126 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
2127 scm_null_mutex_lock, scm_null_mutex_unlock,
2128 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
2129 scm_null_condvar_wait, scm_null_condvar_signal,
2130 scm_null_condvar_destroy): Removed.
2131 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
2132 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
2133 scm_cond_destory): Do not define, they are now deprecated and
2134 handled by threads.{h,c}.
2135
2136 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
2137 (scm_threads_init): Create smobs here, using the appropriate
2138 sizes.
2139 (block): Removed, now unused.
2140 (scm_c_thread_exited_p): New.
2141 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
2142 scm_null_mutex_destroy, scm_null_condvar_init,
2143 scm_null_condvar_wait, scm_null_condvar_signal,
2144 scm_null_condvar_destroy): Removed and updated users to do their
2145 task directly.
2146 (scm_try_mutex, timeval_subtract,
2147 scm_timed_wait_condition_variable,
2148 scm_broadcast_condition_variable): New.
2149 (scm_wait_condition_variable): Removed.
2150
2151 * coop-defs.h (coop_m): Added 'level' field.
2152 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2153 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2154 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2155 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
2156 define.
2157 (coop_condition_variable_broadcast): New.
2158
2159 * coop-threads.c (scm_threads_init): Create smobs here, using the
2160 appropriate sizes.
2161 (scm_c_thread_exited_p, scm_try_mutex,
2162 scm_timed_wait_condition_variable,
2163 scm_broadcast_condition_variable): New.
2164 (scm_wait_condition_variable): Removed.
2165
2166 * coop.c (coop_new_mutex_init): Initialize level.
2167 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
2168 level.
2169 (coop_condition_variable_signal): Renamed to
2170 coop_condition_variable_broadcast and reimplemented in terms of
2171 that. Thus...
2172 (coop_condition_variable_broadcast): New.
2173
2174 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
2175
2176 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
2177
087ed40d
MV
21782002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
2179
65a23095
MV
2180 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
2181 of system headers.
2182
087ed40d
MV
2183 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
2184 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
30f920c3 2185 give better error messages. Thanks to Bill Schottstaedt!
087ed40d 2186
5ec1d2c8
DH
21872002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2188
2189 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
2190 scm_definedp to scm_defined_p and deprecated scm_definedp.
2191
100ae50d
DH
21922002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2193
2194 * async.h, async.c (scm_system_async): Fixed deprecation to work
2195 correctly when deprecated features are excluded.
2196
2794cb50
MV
21972002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2198
2199 * async.c (scm_system_async_mark_for_thread): Validate thread
2200 argument.
2201
2202 * coop-threads.c (scm_i_thread_root): Do not validate argument.
2203
2204 * feature.c (scm_init_feature): Don't add 'threads' for
2205 USE_NULL_THREADS.
2206
2207 * inline.h (scm_cell, scm_double_cell): Also allow
2208 USE_NULL_THREADS to not protect the slot initializers.
2209
2210 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
2211 "USE_THREAD".
2212
2213 * Makefile.am (noinst_HEADERS): Added null-threads.c.
2214 (modinclude_HEADERS): Added null-threads.h.
2215
2216 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
2217 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
2218 (scm_init_threads): Use generic type names scm_t_mutex and
2219 scm_t_cond instead of coop_m and coop_c.
2220
2221 * null-threads.c, null-threads.h: New files.
2222
ff810d7a
MV
22232002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
2224
2225 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
2226 This is to support makes that know about "$<" only in pattern
2227 rules, like Sun's make.
2228
a90bdb73
MV
22292002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
2230
2231 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
2232 substitution. Thanks to David Allouche!
2233
e71a8bf2
DH
22342002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
2235
2236 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
2237 !SCM_ENABLE_DEPRECATED.
2238
41f77ff5
MV
22392002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2240
504d99c5 2241 * async.c (scm_system_async_mark_for_thread): Only call
41f77ff5
MV
2242 scm_i_thread_root when USE_THREADS is defined. Use scm_root
2243 otherwise.
2244
2245 * scmsigs.c (take_signal): Only call scm_i_thread_root when
2246 USE_THREADS is defined. Use scm_root otherwise.
2247 (scm_sigaction_for_thread): Ignore THREAD argument when
2248 USE_THREADS is not defined. Also, move THREAD argument defaulting
2249 out of HAVE_SIGACTION section, which was a bug.
2250
6d16b125
MV
22512002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2252
2253 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
2254 signal_handlers, not the closure that is used as the async.
2255 The closure is stored in signal_handler_cells, as previously.
2256
acfa1f52
MV
22572002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
2258
2259 * root.h (scm_root_state): Added 'block_async' slot.
2260 (scm_active_asyncs): Removed abbrev.
2261 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
2262
2263 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
2264 abbrev.
2265
2266 * async.h (scm_call_with_blocked_asyncs,
2267 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
2268 scm_c_call_with_unblocked_asyncs): New prototypes.
2269 (scm_mask_signals, scm_unmask_signals): Deprecated.
2270 (scm_mask_ints): Turned into a macro.
2271 * async.c (scm_mask_ints): Removed.
2272 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
2273 this should not be necessary.
2274 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
2275 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
2276 deprecation warning and check for errornous use. Set block_asyncs
2277 instead of scm_mask_ints.
2278 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
2279 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
2280 scm_c_call_with_unblocked_asyncs): New.
2281
2282 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
2283 Asyncs are enabled by default.
2284
34010f56
NJ
22852002-10-09 Neil Jerram <neil@ossau.uklinux.net>
2286
2287 * vports.c (scm_make_soft_port): Allow vector argument to carry a
2288 6th element: an input waiting thunk.
2289 (sf_input_waiting): New.
2290
9310d6f2
MV
22912002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
2292
2293 * root.c (root_mark): Mark active_asyncs slot.
2294
2295 * async.c (scm_async_click): Set the cdr of a executed handler
2296 cell to SCM_BOOL_F, not SCM_EOL.
2297 (scm_i_queue_async_cell): Queue the cell at the end of the list,
2298 and only if the handler procedure is not already present.
2299 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
2300 with SCM_BOOL_F.
2301 * scmsigs.c (scm_sigaction_for_thread): Likewise.
2302
ac48c719
RB
23032002-10-04 Rob Browning <rlb@defaultvalue.org>
2304
1360a142
RB
2305 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
2306
2307 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
2308 scm_lt_dlopenext, and scm_lt_dlerror.
2309 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
2310 and scm_lt_dlerror.
2311 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
2312 and scm_lt_dlerror.
2313 (sysdep_dynl_init): switch to scm_lt_dlinit();
2314
2315 * Makefile.am (libguile_la_LIBADD): switch to use
2316 libguile-ltdl.la.
2317
504d99c5 2318 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
ac48c719 2319
497092c9
MV
23202002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
2321
2322 * scmsigs.h (scm_sigaction_for_thread): New prototype.
2323 * scmsigs.c (got_signal): Removed.
2324 (signal_handler_cells, signal_handler_threads): New.
2325 (take_signal): Queue the cell of the signal for the specified
2326 thread. Reset the signal handler on systems that don't have
2327 sigaction.
2328 (sys_deliver_signals): Removed.
2329 (close_1): New.
2330 (scm_sigaction_for_thread): Renamed from scm_sigaction and
2331 extended to also set the thread of a signal and allocate a cell
2332 for it. Keep the Scheme name "sigaction". Check that signum is
2333 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
2334 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
2335 (scm_init_scmsigs): Allocate signal_handler_cells and
2336 signal_handler_threads vectors.
2337
2338 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
2339 that system asnycs and user asyncs are separated. Reimplemented
2340 system asyncs to work per-thread.
2341
2342 * gc.c (scm_init_gc): Do not use scm_system_async.
2343
2344 * async.h (scm_asyncs_pending, scm_set_tick_rate,
2345 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
2346 Removed prototypes.
2347 (scm_i_queue_async_cell): New.
2348
2349 * __scm.h (scm_asyncs_pending_p): Removed.
2350 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
2351 scm_asyncs_pending_p.
2352
2353 * async.h (scm_system_async_mark_for_thread): New prototype.
2354
2355 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
2356
2357 * root.h (scm_root_state): Added new "active_asyncs" slot.
2358 * root.c (scm_make_root): Initialize it to SCM_EOL.
2359
2360 * coop-defs.h (coop_t): Added new "handle" slot.
2361 * coop-threads.c (all_threads, scm_current_thread,
2362 scm_all_threads, scm_i_thread_root): New.
2363 (scm_threads_init): Add main thread to all_threads.
2364 (scheme_launch_thread): Remove thread from all_threads when it
2365 terminates.
2366 (scm_call_with_new_thread): Initialize handle slot of coop_t
2367 structure and add new thread to all_threads.
2368 (scm_spawn_thread): Likewise.
2369
2370 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
2371 * threads.c (scm_current_thread, scm_all_threads): Register as
2372 primitives.
2373
2374 * dynl.c: Use scm_lt_ prefix for libltdl functions.
2375
480fa28d
NJ
23762002-09-29 Neil Jerram <neil@ossau.uklinux.net>
2377
2378 * script.c (scm_compile_shell_switches): Fix bad spelling of
2379 `explicitly' in comment.
2380
23812002-09-28 Neil Jerram <neil@ossau.uklinux.net>
2382
2383 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
2384 Refer to provided? in doc string rather than deprecated feature?.
2385
3553e1d1
GH
23862002-09-24 Gary Houston <ghouston@arglist.com>
2387
2388 * inline.h (scm_double_cell): prevent reordering of statements
2389 with any following code (for GCC 3 strict-aliasing).
2390 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
2391 the earlier version of the reordering prevention.
2392
4ad0814a
HWN
23932002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2394
2395 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
2396
e88e4f2e
HWN
23972002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2398
2399 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
2400 protection.
2401
1e71eafb
HWN
24022002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2403
2404 * inline.h: include stdio.h
2405
2406 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
2407
61ef9c1f
HWN
24082002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2409
dac04e9f
HWN
2410 * gc-segment.c (scm_i_make_initial_segment): check user settings
2411 for sanity.
2412
2413 * gc-malloc.c (scm_gc_init_malloc): check user settings for
2414 sanity.
dac04e9f
HWN
2415
2416 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
2417
ffd72400
HWN
2418 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
2419
2420 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
1e71eafb
HWN
2421 these won't ever wrap around with high memory usage. Thanks to
2422 Sven Hartrumpf for finding this.
ffd72400 2423
5bd4a949
HWN
2424 * gc-freelist.c: include <stdio.h>
2425
61ef9c1f
HWN
2426 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
2427
ffd0ef3b
MV
24282002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
2429
a27e3d14
MV
2430 * vectors.h (SCM_VECTOR_REF): New.
2431
ffd0ef3b
MV
2432 * snarf.h (SCM_DEFINE_PUBLIC): New.
2433
f8a1712b
MV
24342002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
2435
2436 * socket.c (scm_addr_vector): Added size of address to arguments.
2437 Use it to avoid accessing a non-existent path in a sockaddr_un.
2438 Changed all callers.
2439
7200a36b
HWN
24402002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2441
1383773b
HWN
2442 * gc.h: remove DOUBLECELL card flags.
2443
2444 * gc-malloc.c (scm_calloc): try to use calloc() before calling
2445 scm_realloc().
2446
2447 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
2448 init loop; handle this from scm_init_card_freelist()
2449
2450 * gc-card.c (scm_init_card_freelist): init bit vector here.
2451
7200a36b 2452 * numbers.c (scm_make_real): prevent reordering of statements
8fa5786d 2453 num2float.i.c (FLOAT2NUM): idem
7200a36b 2454
9981de3a
HWN
24552002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2456
2457 * eval.h: prepend libguile/ to include path
2458
19647556
MV
24592002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
2460
2461 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
2462