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