*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
90382aeb
KR
12003-05-06 Kevin Ryde <user42@zip.com.au>
2
3 * numbers.c (scm_difference): In inum - bignum, handle negative inum.
4 (scm_logcount): Use mpz_com, not mpz_neg.
5
3b88ed2a
DH
62003-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
7
8 The purpose of this patch is to make guile's internal memoizers
9 distinguishable from memoizing macros created on the scheme level
10 or from user provided primitive memoizing macros. The reason is,
11 that the internal memoizers are the only ones that are allowed to
12 transform their scheme input into memoizer byte code, while all
13 other memoizing macros may only transform scheme code into new
14 scheme code.
15
16 To achieve this, a new macro type 'builtin-macro!' is introduced.
17 Currently, 'builtin-macro!'s are handled as memoizing macros, but
18 this will change when the memoizer and executor are separated.
19
20 * macros.[ch] (scm_i_makbimacro): New.
21
22 * macros.h (SCM_BUILTIN_MACRO_P): New.
23
24 * macros.c (macro_print, scm_macro_type): Support builtin-macro!s.
25
26 * eval.c, goops.c: All of guile's primitive memoizing macros are
27 primitive builtin-macros now.
28
29 * eval.c (scm_macroexp, SCM_CEVAL): Make sure the primitive
30 builtin-macros are handled equally to memoizing macros.
31
b0780eb1
MV
322003-05-04 Marius Vollmer <mvo@zagadka.de>
33
34 * throw.c (scm_ithrow): Remove "asm volatile" hack. It used to
35 work around a bug in GCC 2.95.2 but is now a bug in itself.
36
1cbf4fe9
MV
372003-05-02 Marius Vollmer <mvo@zagadka.de>
38
39 * deprecated.h (scm_rstate, scm_rng, SCM_SLOPPY_CONSP,
40 SCM_SLOPPY_NCONSP, scm_tc7_ssymbol, scm_tc7_msymbol,
41 scm_tcs_symbols): New.
42
1a61d41b
MV
432003-04-30 Marius Vollmer <marius.vollmer@uni-dortmund.de>
44
096ecbaf
MV
45 * deprecated.h, deprecated.c (scm_protect_object,
46 scm_unprotect_object, SCM_SETAND_CAR, SCM_SETOR_CAR,
47 SCM_SET_AND_CDR, SCM_SET_OR_CDR, SCM_FREEP, SCM_NFREEP,
48 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
49 SCM_GCCDR, scm_remember, scm_the_root_module, scm_make_module,
50 scm_ensure_user_module, scm_load_scheme_module, scm_port,
51 scm_ptob_descriptor, scm_port_rw_active,
52 scm_close_all_ports_except): New.
53
1a61d41b
MV
54 * ports.c (scm_c_port_for_each): New function, mostly copied from
55 scm_port_for_each.
56 (scm_port_for_each): Reimplemented using scm_c_port_for_each.
57 * ports.h (scm_c_port_for_each): New prototype.
58
c8e1d354
MD
592003-04-28 Mikael Djurfeldt <djurfeldt@nada.kth.se>
60
61 * eval.c (scm_m_atdispatch): Removed until actually needed. (This
62 macro was introduced in anticipation of GOOPS method compilation
63 code.)
64
65 * goops.c: Removed binding of @dispatch.
66
a4aa2134
DH
672003-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
68
69 * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
70 instructions that bind the macros on the scheme level back to
71 goops.c in order to make sure again that the bindings go into the
72 (oop goops) module and are not visible from the outside.
73
9fbee57e
DH
742003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
75
76 * eval.c: Non functional change: Separated R5RS and non-R5RS
77 macros into different sections of the file and ordered the
78 memoizers alphabetically.
79
12841895
DH
802003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
81
82 * eval.c (scm_ilookup): Rewritten to improve readability.
83
6a3f13f0
DH
842003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
85
86 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
87 Partially reverted patch from 2003-04-23 in oder to find a better
88 compromise between readability and debuggability.
89
b0c5d67b
DH
902003-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
91
92 * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
93 scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
94 definitions of the special goops memoizers from goops.[ch] to
95 eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
96 throughout guile.
97
b9ad392e
MD
982003-04-24 Mikael Djurfeldt <mdj@kvast.blakulla.net>
99
100 * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
101
102 * fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
103
104 * ports.c (scm_close_port, scm_flush_all_ports): Ditto.
105
106 * ioext.c (scm_fdes_to_ports): Ditto.
107
108 * vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
109 lock/unlock scm_i_port_table_mutex.
110
111 * strports.c (scm_mkstrport): Ditto.
112
113 * ports.c (scm_void_port, scm_port_for_each): Ditto.
114
115 * fports.c (scm_fdes_to_port): Ditto.
116
d0b07b5d
DH
1172003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
118
119 This set of patches contains no functional changes, only debatable
120 minor stylistic ones. Still, in order to prepare a patch between
121 my local copy and the CVS version, I decided to submit the changes
122 below. Then, the patch will hopefully only contain relevant
123 modifications :-)
124
125 * eval.c (iqq): Added const specifier.
126
127 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
128 Use NULL instead of 0 to indicate that a pointer is returned.
129 Removed some misleading 'fall through' comments.
130
131 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
132 Split up long expressions into smaller ones to be more debugging
133 friendly.
134
a98e8e98
DH
1352003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
136
137 * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
138 SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
139 rather than casting to SCM.
140
c178c3a6
DH
1412003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
142
143 * sort.c, pairs.h: Removed unnecessary includes.
144
d339981a
DH
1452003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
146
147 * sort.c: Replaced hand-made trampline code by the new official
148 mechanism from eval.c. This fixes a segfault in the new test file
149 sort.test.
150
151 (quicksort, compare_function, scm_restricted_vector_sort_x,
152 scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
153 scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
154 scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
155 scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
156 eval.c.
157
158 (subr2less, lsubrless, closureless, applyless, scm_cmp_function,
159 cmp_fun_t): Removed.
160
161 (compare_function): Added.
162
163 * sort.c (quicksort, SWAP, stack_node): Replaced pointer
164 arithmetics with index arithmetics. Changed quicksort to work on
165 an array of SCM values instead of an array of characters. Avoid
166 bytewise copying of SCM elements. Avoid allocating memory on the
167 stack with alloca. Fixed some comments.
168
821f18a4
DH
1692003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
170
171 * eval.c (EXTEND_ENV): Eliminated.
172
173 (unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
174 EXTEND_ENV.
175
94fb5a6e
DH
1762003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
177
178 * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
179
180 * gc.card.c (scm_gc_marked_p): Fixed compiler warning when
181 compiling with SCM_DEBUG==1 by moving definition behind prototype.
182
183 * gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
184 scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
185 scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
186 scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
187 functions such that they check if the object is a non-immediate.
188 Further, renamed identifiers to use the scm_dbg_ prefix and made
189 their inclusion into the lib dependent of the
190 SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
191
fce0b22d
DH
1922003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
193
194 * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
195 debug option.
196
1685446c
DH
1972003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
821f18a4 199 * list.c (scm_ilength, scm_last_pair), unif.c (l2ra): Prefer
1685446c
DH
200 !SCM_CONSP over SCM_NCONSP. Now, guile itself does not include
201 any calls to SCM_NCONSP any more.
202
203 * unif.c (l2ra): Eliminate redundant check.
204
9ff1720f
DH
2052003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
206
207 * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
208 scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
209 SCM_NNULLP. Now, guile itself does not include any calls to
210 SCM_NNULLP any more.
211
05b15362
DH
2122003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
213
214 * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
215 scm_copy_tree): Place assignment expressions which are part of
216 other expressions into an expression of their own.
217
0c88d7df
DH
2182003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
219
220 * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
221 compare SCM values with !=.
222
5cb22e96
DH
2232003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
224
225 * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
226 scm_m_generalized_set_x, scm_init_evalext): Move the declaration
227 and definition of the memoizer for the generalized set! macro from
228 evalext.[ch] to eval.[ch]. Use the SCM_SYNTAX snarfer macro to
229 define the macro object.
230
231 * eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
232 scm_m_generalized_set_x): Since now scm_s_set_x is only used in
233 eval.c, it is made static and renamed to s_set_x.
234
235 * evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
236 over SCM_N<foo>.
237
a44a9715
DH
2382003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
239
240 * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
241 scm_init_eval): Made scm_undefineds static in eval.c, renamed it
242 to undefineds and registered the object as a permanent object.
243
244 * eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
245 static in eval.c, renamed it to f_apply and registered the object
246 as a permanent object.
247
1b43d24c
DH
2482003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
249
5cb22e96 250 * eval.c (SCM_BIT7, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
1b43d24c
DH
251 file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
252
aec16f99
DH
2532003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
254
255 * numbers.c (scm_logtest): Fixed argument bug in the call to
256 mpz_and, which showed up when compiling with SCM_DEBUG defined.
257
f96460ce
DH
2582003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
259
260 * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
261 type errors that showed up when compiling with SCM_DEBUG defined.
262
d0f6ceb8
DH
2632003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
264
265 * continuations.c, continuations.h, eval.c, eval.h, extensions.c,
266 gsubr.c, guile.c, init.c, read.c, root.c, root.h, stackchk.h,
267 throw.c: Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
268 fix compile errors with --disable-deprecated.
269
19a7a089
RB
2702003-04-17 Rob Browning <rlb@defaultvalue.org>
271
272 * numbers.c (scm_integer_expt): fix case where we were declaring
273 vars in the middle of a statement block. Thanks to Thamer
274 Al-Harbash.
275
47cd67db
MD
2762003-04-17 Mikael Djurfeldt <djurfeldt@nada.kth.se>
277
0fd7dcd3
MD
278 * goops.c (TEST_CHANGE_CLASS): Update variable class after class
279 change.
280
47cd67db
MD
281 * eq.c (scm_eqv_p): Turned into a primitive generic.
282
3b8b889c
RB
2832003-04-16 Rob Browning <rlb@defaultvalue.org>
284
312006bb
RB
285 * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
286 Thanks to Boyd Gerber.
287 Added check for __arm__ in addition to arm for LINUX and copied
288 __s390__ defines from upstream libgc. Thanks to James Treacy for
289 reporting the problems.
c7ef2ea1 290
3b8b889c
RB
291 * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT.
292
293 * socket.c: use SCM_CHAR_BIT.
294
295 * random.c (scm_c_random_bignum): use SCM_CHAR_BIT.
296
297 * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT.
298
43261b39
MD
2992003-04-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
300
301 * feature.c (scm_init_feature): Always add threads feature.
302
58241edc
MD
3032003-04-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
304
305 * goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
306 scm_at_assert_bound_ref. (We don't want the unbound check. See
307 oop/goops/active-slot.scm.)
308
94e91275
RB
3092003-04-14 Rob Browning <rlb@defaultvalue.org>
310
311 * tags.h: scm_t_intptr should have been intptr_t.
312
3071ea27
RB
3132003-04-13 Rob Browning <rlb@defaultvalue.org>
314
315 * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
316 test. Instead use
317 #if defined (sparc) || defined (__sparc__) || defined (__sparc)
318 as gc_os_dep.c suggests is appropriate.
319
320 * goops.c (prep_hashsets): make static to match prototype.
321 (scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL. Thanks to Albert
322 Chin.
323
324 * c-tokenize.lex: remove trailing comma from enum. Thanks to
325 Albert Chin.
326
327 * gc_os_dep.c: add NetBSD powerpc config info. Thanks to Thomas
328 Klausner.
329
21ab2aeb
MD
3302003-04-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
331
332 * goops.c (scm_sys_prep_layout_x): Instance allocation is now
333 indicated through extra fields in getters-n-setters.
334 (scm_add_slot): Adapted to new format of getters_n_setters slot.
335 (Thanks to Andy Wingo.)
336
dff96e95
HWN
3372003-02-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
338
339 * gc-segment.c: add comment
340
07921c76
RB
3412003-04-07 Rob Browning <rlb@defaultvalue.org>
342
b5331f10
RB
343 * debug.h: change "id" arg name to "info_id" to avoid objective-c
344 clash.
345
07921c76
RB
346 * num2integral.i.c (NUM2INTEGRAL): fix bug pointed out by Mikael
347 and add regression test to standalone/.
348
3492003-04-06 Rob Browning <rlb@defaultvalue.org>
350
351 * strings.c (scm_mem2string): use memcpy rather than by-hand loop.
352 Thanks to Dale P. Smith.
353
354 * random.c: #include gmp.h.
355 (scm_c_random_bignum): normalize result on return.
356
357 * init.c: #include gmp.h.
358
359 * numbers.h: remove the gmp.h #include (not needed now).
360
361 * posix.h: change occurences of "id" to something else so we don't
362 cause trouble when included via objective-c (can't hurt, might
363 help). Still have usage in debug.h, though.
364
938f6b7c
MD
3652003-04-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
366
372691d8
MD
367 * random.c (scm_c_random_bignum): Don't generate a random number
368 equal to m (the second argument of scm_c_random_bignum); only
369 generate numbers in the range 0 <= r < m.
c5f268f8
MD
370 (scm_c_default_rstate): Use SCM_VARIABLE_REF to access
371 scm_var_random_state.
372691d8 372
938f6b7c
MD
373 * num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
374 clause.
375
6cdb8c3f
RB
3762003-04-05 Rob Browning <rlb@defaultvalue.org>
377
938f6b7c 378 * modules.c (scm_module_import_interface): move declaration of
6cdb8c3f
RB
379 uses before any code.
380
15635be5
MD
3812003-04-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
382
1ecfd013
MD
383 * Makefile.am (scmconfig.h): Look for config.h in top_builddir,
384 not top_srcdir.
385
15635be5
MD
386 * hashtab.c (rehash_after_gc): Clear to_rehash list before
387 processing it in order to avoid an infinite loop.
388
389 * print.c (scm_prin1): Remember old state of pstate->writingp.
390
73be1d9e
MV
3912003-04-05 Marius Vollmer <mvo@zagadka.de>
392
393 * Changed license terms to the plain LGPL thru-out.
394
ad815c06
RB
3952003-04-04 Rob Browning <rlb@defaultvalue.org>
396
397 * socket.c (FLIPCPY_NET_HOST_128): new macro.
398 (ipv6_net_to_num, ipv6_num_to_net, bignum_in_ipv6_range_p):
399 rewrite to handle GMP bignums.
400
401
402 * random.c (scm_c_random_bignum): rewrite to handle GMP bignums.
403
404 * ports.c (scm_getc): minor tweak.
405
406 * numbers.h: remove SCM_BIGDIG conditionals, reorganize, and
407 rewrite to handle GMP bignums.
408
409 * numbers.c: rewrite *many* functions to handle GMP bignums.
410
411 * num2integral.i.c (NUM2INTEGRAL, INTEGRAL2NUM, INTEGRAL2BIG):
412 handle GMP bignums.
413
414 * num2float.i.c (NUM2FLOAT): handle GMP bignums.
415
416 * init.c (check_config): remove SCM_BIGDIG conditionals.
417 (scm_init_guile_1): test to make sure mpz_t fits in a double_cell.
418
419 * gc-card.c ("sweep_card"): handle new mpz_t bignums.
420
421 * eval.c: remove SCM_BIGDIG conditionals.
422
423 * eq.c (s_scm_eqv_p): scm_i_bigcomp -> scm_i_bigcmp.
424
6cdb8c3f
RB
4252003-03-31 Rob Browning <rlb@defaultvalue.org>
426
427 * Makefile.am (scmconfig.h): change srcdir to builddir. (Thanks
428 to Kevin Ryde.)
429
4302003-03-27 Rob Browning <rlb@defaultvalue.org>
431
432 * threads.h: fix various preprocessor usages of new public
433 symbols to expect 0 or 1 values rather than 1 or undefined.
434 i.e. change #ifdef to #if, etc.
435
436 * threads.c: fix various preprocessor usages of new public
437 symbols to expect 0 or 1 values rather than 1 or undefined.
438 i.e. change #ifdef to #if, etc.
439
440 * tags.h: fix various preprocessor usages of new public
441 symbols to expect 0 or 1 values rather than 1 or undefined.
442 i.e. change #ifdef to #if, etc.
443
444 * stacks.c: fix various preprocessor usages of new public
445 symbols to expect 0 or 1 values rather than 1 or undefined.
446 i.e. change #ifdef to #if, etc.
447
448 * stackchk.h: fix various preprocessor usages of new public
449 symbols to expect 0 or 1 values rather than 1 or undefined.
450 i.e. change #ifdef to #if, etc.
451
452 * stackchk.c: fix various preprocessor usages of new public
453 symbols to expect 0 or 1 values rather than 1 or undefined.
454 i.e. change #ifdef to #if, etc.
455
456 * sort.c: fix various preprocessor usages of new public
457 symbols to expect 0 or 1 values rather than 1 or undefined.
458 i.e. change #ifdef to #if, etc.
459
460 * read.c: fix various preprocessor usages of new public
461 symbols to expect 0 or 1 values rather than 1 or undefined.
462 i.e. change #ifdef to #if, etc.
463
464 * random.c: fix various preprocessor usages of new public
465 symbols to expect 0 or 1 values rather than 1 or undefined.
466 i.e. change #ifdef to #if, etc.
467
468 * print.c: fix various preprocessor usages of new public
469 symbols to expect 0 or 1 values rather than 1 or undefined.
470 i.e. change #ifdef to #if, etc.
471
472 * objects.c: fix various preprocessor usages of new public
473 symbols to expect 0 or 1 values rather than 1 or undefined.
474 i.e. change #ifdef to #if, etc.
475
476 * numbers.h: fix various preprocessor usages of new public
477 symbols to expect 0 or 1 values rather than 1 or undefined.
478 i.e. change #ifdef to #if, etc.
479
480 * null-threads.c: fix various preprocessor usages of new public
481 symbols to expect 0 or 1 values rather than 1 or undefined.
482 i.e. change #ifdef to #if, etc.
483
484 * lang.c: fix various preprocessor usages of new public
485 symbols to expect 0 or 1 values rather than 1 or undefined.
486 i.e. change #ifdef to #if, etc.
487
488 * lang.h: fix various preprocessor usages of new public
489 symbols to expect 0 or 1 values rather than 1 or undefined.
490 i.e. change #ifdef to #if, etc.
491
492 * iselect.h: fix various preprocessor usages of new public
493 symbols to expect 0 or 1 values rather than 1 or undefined.
494 i.e. change #ifdef to #if, etc.
495
496 * init.c: fix various preprocessor usages of new public
497 symbols to expect 0 or 1 values rather than 1 or undefined.
498 i.e. change #ifdef to #if, etc.
499
500 * gh_data.c: fix various preprocessor usages of new public
501 symbols to expect 0 or 1 values rather than 1 or undefined.
502 i.e. change #ifdef to #if, etc.
503
504 * gh.h: fix various preprocessor usages of new public
505 symbols to expect 0 or 1 values rather than 1 or undefined.
506 i.e. change #ifdef to #if, etc.
507
508 * gen-scmconfig.c: change most new public symbols to be defined to
509 0 or 1 rather than being either 1 or undefined.
510
511 * gc_os_dep.c: fix various preprocessor usages of new public
512 symbols to expect 0 or 1 values rather than 1 or undefined.
513 i.e. change #ifdef to #if, etc.
514 (STACK_GROWS_DOWN): define to 0 or 1 rather than 1 or undef.
515
516 * gc.h: fix various preprocessor usages of new public
517 symbols to expect 0 or 1 values rather than 1 or undefined.
518 i.e. change #ifdef to #if, etc.
519
520 * gc-card.c: fix various preprocessor usages of new public
521 symbols to expect 0 or 1 values rather than 1 or undefined.
522 i.e. change #ifdef to #if, etc.
523
524 * gc-mark.c: fix various preprocessor usages of new public
525 symbols to expect 0 or 1 values rather than 1 or undefined.
526 i.e. change #ifdef to #if, etc.
527
528 * feature.c: fix various preprocessor usages of new public
529 symbols to expect 0 or 1 values rather than 1 or undefined.
530 i.e. change #ifdef to #if, etc.
531
532 * evalext.c: fix various preprocessor usages of new public
533 symbols to expect 0 or 1 values rather than 1 or undefined.
534 i.e. change #ifdef to #if, etc.
535
536 * eval.h: fix various preprocessor usages of new public
537 symbols to expect 0 or 1 values rather than 1 or undefined.
538 i.e. change #ifdef to #if, etc.
539
540 * eval.c: fix various preprocessor usages of new public
541 symbols to expect 0 or 1 values rather than 1 or undefined.
542 i.e. change #ifdef to #if, etc.
543
544 * eq.c: fix various preprocessor usages of new public
545 symbols to expect 0 or 1 values rather than 1 or undefined.
546 i.e. change #ifdef to #if, etc.
547
548 * coop.c: fix various preprocessor usages of new public
549 symbols to expect 0 or 1 values rather than 1 or undefined.
550 i.e. change #ifdef to #if, etc.
551
552 * coop-threads.c: fix various preprocessor usages of new public
553 symbols to expect 0 or 1 values rather than 1 or undefined.
554 i.e. change #ifdef to #if, etc.
555
556 * coop-pthreads.c: fix various preprocessor usages of new public
557 symbols to expect 0 or 1 values rather than 1 or undefined.
558 i.e. change #ifdef to #if, etc.
559
560 * coop-defs.h: fix various preprocessor usages of new public
561 symbols to expect 0 or 1 values rather than 1 or undefined.
562 i.e. change #ifdef to #if, etc.
563
564 * convert.i.c: fix various preprocessor usages of new public
565 symbols to expect 0 or 1 values rather than 1 or undefined.
566 i.e. change #ifdef to #if, etc.
567
568 * continuations.c: fix various preprocessor usages of new public
569 symbols to expect 0 or 1 values rather than 1 or undefined.
570 i.e. change #ifdef to #if, etc.
571
572 * _scm.h: fix various preprocessor usages of new public symbols to
573 expect 0 or 1 values rather than 1 or undefined. i.e. change
574 #ifdef to #if, etc.
575
d11d697a
MV
5762003-03-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
577
9686f86d
MV
578 * init.c (scm_init_guile_1): Call scm_i_init_deprecated.
579
580 * deprecated.c, deprecated.h: New files, to collect deprecated
581 things in one place.
582 * Makefile.am: Added them in all the right places.
583
d11d697a
MV
584 * Makefile.am (EXTRA_DIST): Added "scmconfig.h.top".
585 (scmconfig.h): Get "scmconfig.h.top" from $(srcdir) so that VPATH
586 builds work.
9686f86d
MV
587 (DOT_X_FILES): Removed "iselect.x".
588 (DOT_DOC_FILES): Removed "iselect.doc".
d11d697a 589
e3c0c3b9
RB
5902003-03-25 Rob Browning <rlb@defaultvalue.org>
591
592 * win32-socket.h: #include "libguile/__scm.h". Replace usage of
593 HAVE_WINSOCK2_H with SCM_HAVE_WINSOCK2_H.
594
595 * win32-socket.c: #include <config.h> if HAVE_CONFIG_H.
596
597 * vports.c: #include <config.h> if HAVE_CONFIG_H.
598
599 * unif.c: #include <config.h> if HAVE_CONFIG_H. Replace usage of
600 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
601
602 * threads.h: replace usage of struct timespect with
603 scm_t_timespec. Replace usage of USE_PTHREAD_THREADS with
604 SCM_USE_PTHREAD_THREADS. Remove typedef for struct timespec in
605 favor of scm_t_timespec from scmconfig.h.
606
607 * threads.c: move libguile/_scm.h include to the top so we pick up
608 any critical defines like _GNU_SOURCE early. Replace usage of
609 struct timespect with scm_t_timespec. Replace usage of
610 STACK_GROWS_UP with SCM_STACK_GROWS_UP. Replace usage of
611 USE_PTHREAD_THREADS with SCM_USE_PTHREAD_THREADS.
612
613 * threads-plugin.h: replace usage of struct timespect with
614 scm_t_timespec.
615
616 * threads-plugin.c: #include <config.h> if HAVE_CONFIG_H. Replace
617 usage of struct timespect with scm_t_timespec.
618
619 * tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
620 HAVE_INTTYPES_H handling to scmconfig.h. #include
621 "libguile/__scm.h". Rework handling for scm_t_bits,
622 scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
623 SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr,
624 scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and
625 SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to
626 SCM_HAVE_ARRAYS.
627
628 * symbols.c: #include <config.h> if HAVE_CONFIG_H.
629
630 * struct.c: #include <config.h> if HAVE_CONFIG_H.
631
632 * strports.c: #include <config.h> if HAVE_CONFIG_H.
633
634 * strop.c: #include <config.h> if HAVE_CONFIG_H.
635
636 * stime.h: move handling of time related headers to scmconfig.h.
637
638 * stime.c: #include <config.h> if HAVE_CONFIG_H.
639
640 * stacks.c: replace usage of STACK_GROWS_UP with
641 SCM_STACK_GROWS_UP.
642
643 * sort.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
644 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
645
646 * socket.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
647 of uint32 and HAVE_UINT_32 with scm_t_int32.
648
649 * smob.c: #include <config.h> if HAVE_CONFIG_H.
650
651 * simpos.c: #include <config.h> if HAVE_CONFIG_H.
652
653 * script.c: #include <config.h> if HAVE_CONFIG_H.
654
655 * scmsigs.c: #include <config.h> if HAVE_CONFIG_H.
656
657 * scmconfig.h.top: new file -- preamble for scmconfig.h.
658
659 * rw.c: #include <config.h> if HAVE_CONFIG_H.
660
661 * regex-posix.c: #include <config.h> if HAVE_CONFIG_H.
662
663 * read.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
664
665 * rdelim.c: #include <config.h> if HAVE_CONFIG_H.
666
667 * random.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
668 of LONG32, LONG64, SIZEOF_LONG, and HAVE_LONG_LONGS with
669 scm_t_int32, scm_t_int64, and SCM_HAVE_T_INT64. Rename usage of
670 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
671
672 * ramap.c: replace usage of HAVE_LONG_LONGS with
673 "SCM_SIZEOF_LONG_LONG != 0".
674
675 * putenv.c: #include <config.h> if HAVE_CONFIG_H. #include
676 "libguile/scmconfig.h".
677
678 * pthread-threads.c: #include <config.h> if HAVE_CONFIG_H.
679
680 * print.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
681 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
682
683 * posix.c: #include <config.h> if HAVE_CONFIG_H.
684
685 * ports.c: #include <config.h> if HAVE_CONFIG_H.
686
687 * objects.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
688
689 * numbers.h: replace usage of HAVE_FLOATINGPOINT_H with
690 SCM_HAVE_FLOATINGPOINT_H. Replace usage of HAVE_IEEEFP_H with
691 SCM_HAVE_IEEEFP_H. Replace usage of HAVE_NAN_H with
692 SCM_HAVE_NAN_H. Replace usage of STDC_HEADERS with
693 SCM_HAVE_STDC_HEADERS. Replace usage of ptrdiff_t with
694 scm_t_ptrdiff. Replace usage of HAVE_LONG_LONGS with
695 "SCM_SIZEOF_LONG_LONG != 0".
696
697 * numbers.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
698 of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0". Replace
699 usage of ptrdiff_t with scm_t_ptrdiff. Replace usage of
700 SIZEOF_PTRDIFF_T with SCM_SIZEOF_SCM_T_PTRDIFF.
701
702 * num2integral.i.c: #include <config.h> if HAVE_CONFIG_H.
703
704 * null-threads.h: replace usage of struct timespect with
705 scm_t_timespec.
706
707 * net_db.c: #include <config.h> if HAVE_CONFIG_H.
708
709 * mkstemp.c: #include <config.h> if HAVE_CONFIG_H. #include
710 "libguile/__scm.h". Remove definition of gcc_uint64_t in favor of
711 scm_t_uint64 and rename usages.
712
713 * mallocs.c: #include <config.h> if HAVE_CONFIG_H.
714
715 * load.c: #include <config.h> if HAVE_CONFIG_H.
716
717 * iselect.h: move handling of time related headers to scmconfig.h.
718 Rename usage of HAVE_SYS_SELECT_H to SCM_HAVE_SYS_SELECT_H.
719 Rename usage of HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Rename
720 usage of USE_COOP_THREADS to SCM_USE_COOP_THREADS.
721
722 * iselect.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
723 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
724 USE_NULL_THREADS to SCM_USE_NULL_THREADS.
725
726 * ioext.c: #include <config.h> if HAVE_CONFIG_H.
727
728 * inline.h: #include "libguile/__scm.h" at the top. Change code
729 to use SCM_C_INLINE and SCM_INLINE_C_INCLUDINT_INLINE_H to decide
730 what to do instead of creating a new public #define. Rename usage
731 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
732 USE_NULL_THREADS to SCM_USE_NULL_THREADS. Rename usage of
733 USE_COPT_THREADS to SCM_USE_COPT_THREADS.
734
735 * inline.c: rearrange handling -- now we just #define
736 SCM_INLINE_C_INCLUDING_INLINE_H to 1 and #include
737 "libguile/inline.h". scmconfig.h will define SCM_C_INLINE as
738 appropriate, and we use that in inline.h along with the above
739 define to determine how to respond.
740
741 * init.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
742 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
743
744 * guile.c: #include <config.h> if HAVE_CONFIG_H.
745
746 * gh_data.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
747 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
748
749 * gh.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
750
751 * gen-scmconfig.h.in: new file -- see gen-scmconfig.c for details.
752
753 * gen-scmconfig.c: new file -- see comments in file for details.
754
755 * gdbinit.c: #include <config.h> if HAVE_CONFIG_H.
756
757 * gc_os_dep.c: #include <config.h> if HAVE_CONFIG_H. Replace
758 usage of STACK_GROWS_UP with SCM_STACK_GROWS_UP.
759
760 * gc.h: replace usage of SIZEOF_LONG with
761 SCM_SIZEOF_UNSIGNED_LONG. Replace usage of USE_PTHREAD_THREADS
762 with SCM_USE_PTHREAD_THREADS. Remove SCM_SIZEOF_LONG definition
763 since we handle that in scmconfig.h now.
764
765 * gc.c: #include <config.h> if HAVE_CONFIG_H.
766
767 * gc-mark.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
768 of HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of
769 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
770
771 * gc-malloc.c: #include <config.h> if HAVE_CONFIG_H.
772
773 * gc-card.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
774 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
775
776 * fports.c: #include <config.h> if HAVE_CONFIG_H.
777
778 * filesys.c: #include <config.h> if HAVE_CONFIG_H.
779
780 * feature.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
781 of USE_NULL_THREADS to SCM_USE_NULL_THREADS.
782
783 * extensions.c: #include <config.h> if HAVE_CONFIG_H.
784
785 * evalext.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
786 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
787
788 * eval.c: #include <config.h> if HAVE_CONFIG_H. #include
789 "libguile/__scm.h" rather than scmconfig.h. Rename usage of
790 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
791 with "SCM_SIZEOF_LONG_LONG != 0".
792
793 * error.c: #include <config.h> if HAVE_CONFIG_H.
794
795 * eq.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
796 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
797 with "SCM_SIZEOF_LONG_LONG != 0".
798
799 * deprecation.c: #include <config.h> if HAVE_CONFIG_H.
800
801 * coop.c: replace usage of struct timespect with scm_t_timespec.
802 #include <config.h> if HAVE_CONFIG_H.
803
804 * coop-threads.c: #include "libguile/_scm.h" early. Replace
805 usage of struct timespect with scm_t_timespec. Replace usage of
806 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
807
808 * coop-pthreads.c: #include "libguile/_scm.h" early. Replace
809 usage of struct timespect with scm_t_timespec. Replace usage of
810 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
811
812 * coop-defs.h: move handling of time related headers to
813 scmconfig.h. Add #include "libguile/__scm.h". Rename usage of
814 HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Replace usage of struct
815 timespect with scm_t_timespec.
816
817 * convert.i.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
818
819 * convert.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
820
821 * convert.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
822 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
823
824 * continuations.c: move libguile/_scm.h include to the top so we
825 pick up any critical defines like _GNU_SOURCE early.
826
827 * backtrace.c: #include <config.h> if HAVE_CONFIG_H.
828
829 * async.c: #include <config.h> if HAVE_CONFIG_H.
830
831 * alloca.c: #include <config.h> if HAVE_CONFIG_H.
832
833 * _scm.h: #include <config.h> if HAVE_CONFIG_H.
834 Rename usage of USE_PTHREAD_THREADS to SCM_USE_PTHREAD_THREADS.
835
836 * __scm.h: move libguile/scmconfig.h include up to the top, so
837 we're sure to pick up any critical defines like _GNU_SOURCE early.
838 #include <limits.h> removed in favor of scmconfig.h inclusion when
839 appropriate. STDC_HEADERS based inclusion of stdlib.h,
840 sys/types.h, stddef.h, and sys/stdtypes.h removed in favor of
841 scmconfig.h inclusion when appropriate. Various Win32 related
842 definitions removed in favor of scmconfig.h inclusion when
843 appropriate.
844 (HAVE_UINTPTR_T): definition removed (see NEWS).
845 (SIZEOF_PTRDIFF_T): definition removed (see NEWS).
846 (HAVE_LONG_LONGS): definition removed (see NEWS).
847 (HAVE_LONG_LONG): definition removed (see NEWS).
848 (HAVE_PTRDIFF_T): definition removed (see NEWS).
849
850 * Makefile.am: scmconfig.h is now generated by building and
851 running gen-scmconfig.h and capturing its output. gen-scmconfig
852 uses config.h and the configure.in generated gen-scmconfig.h to
853 decide what to output. See gen-scmconfig.c for details.
854 (noinst_PROGRAMS): add gen-scmconfig.
855 (gen_scmconfig_SOURCES): new variable.
856 (gen-scmconfig.$(OBJEXT)): new target - be careful to handle
857 cross-compiling right.
858 (scmconfig.h): build scmconfig.h from gen-scmconfig's output.
859 (BUILT_SOURCES): add scmconfig.h.
860
25e0bf97
MV
8612003-03-19 Marius Vollmer <mvo@zagadka.de>
862
863 * gc_os_dep.c: Added defines for sparc-unknown-netbsdelf1.5 from
864 Adrian Bunk. Thanks!
865
74b6d6e4
MD
8662003-03-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
867
868 * goops.c (make_class_from_template): New fourth arg:
869 applicablep.
870 (scm_class_extended_generic_with_setter, scm_class_self): Fixed
871 cpls.
872
873 * smob.c (scm_set_smob_apply): Call scm_i_inherit_applicable.
874
875 * goops.c, objects.c, objects.h (scm_make_extended_class): New
876 second arg: applicablep.
877 (scm_i_inherit_applicable): New function.
878
879 * goops.c, goops.h (scm_class_applicable,
880 scm_class_extended_accessor): New classes.
881
5c9e7dad
DH
8822003-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
883
884 * procs.c (scm_procedure_documentation): Removed redundant
885 SCM_NIMP test and replaced other calls to SCM_IMP by more explicit
886 predicates.
887
f8af5c6d
MD
8882003-03-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
889
c614a00b
MD
890 * list.c, list.h (scm_filter, scm_filter_x): New functions.
891
109c2c9f
MD
892 * modules.c (scm_module_import_interface): New function.
893
f8af5c6d
MD
894 * goops.c, goops.h (scm_class_accessor_method): Renamed from
895 scm_class_accessor.
896 (scm_class_accessor): New class.
897
a48d60b1
MD
8982003-03-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
899
900 * goops.c (scm_primitive_generic_generic): Enable primitive
901 generic if not enabled.
902 (scm_sys_goops_loaded): Setup unextended primitive generics.
903
904 * goops.c, goops.h (scm_c_extend_primitive_generic): New function.
905
906 * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
907 snarf macros.
908
909 * numbers.c (scm_abs): Use SCM_PRIMITIVE_GENERIC. (This is only a
910 testing example. All uses of SCM_GPROC should be converted.)
911
912 * procprop.c (scm_stand_in_scm_proc): Use scm_assq instead of
913 scm_assoc.
914
915 * eq.c (scm_equal_p): Turned into a primitive generic.
916
84edc049
RB
9172003-02-27 Rob Browning <rlb@defaultvalue.org>
918
919 * Makefile.am (scmconfig.h): new target -- generate file from
920 ../config.h.
921 (modinclude_HEADERS): remove version.h.
922 (nodist_modinclude_HEADERS): add version.h.
923
ea5c9285
MD
9242003-02-24 Mikael Djurfeldt <djurfeldt@nada.kth.se>
925
b4a1358c
MD
926 This fixes a serious GC bug, introduced during the latest
927 reorganization of the GC, which disabled freeing of structs and
928 GOOPS objects:
929
930 * struct.c (scm_struct_prehistory): Init scm_i_structs_to_free to
931 SCM_EOL.
53af8255
MD
932 (scm_struct_prehistory): Move scm_free_structs to
933 scm_before_mark_c_hook.
ea5c9285 934
b4a1358c
MD
935 * gc-card.c (sweep_card): Check that we haven't swept structs on
936 this card before. That can happen if scm_i_sweep_all_segments has
937 been called from some other place than scm_igc.
938
c35738c1
MD
9392003-02-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
940
231a4ea8
MD
941 * environments.c (DEFAULT_OBARRAY_SIZE): Changed from 137 to 31
942 (since hash tables now adapt their size).
943
944 * modules.c (scm_modules_prehistory): Changed from 2001 to 1533
945 (current number of prehistory bindings; hashtable code will select
946 a prime which is greater than this value).
947
948 * symbols.c (scm_symbols_prehistory): Changed from 1009 to 2139
949 (current number of initial symbols).
950
951 * properties.c (scm_init_properties): Don't specify size of
952 scm_properties_whash.
953
954 * objprop.c (scm_init_objprop): Don't specify size of
955 scm_object_whash.
956
957 * keywords.c (scm_init_keywords): Don't specify a hash table size.
958
c35738c1
MD
959 * hooks.c (scm_c_hook_add): Fixed bug in append mode.
960
961 The following changes introduce the use of resizable hash tables
962 throughout Guile. It also renames the old *-hash-table* functions
963 to *-alist-vector* and places them, together with the rest of the
964 weak vector support, in the module (ice-9 weak-vector). We should
965 probably introduce a new, better, API for weak references, for
966 example "weak pairs" a la MIT-Scheme. (In Chez scheme, they even
967 look like and are used like ordinary pairs.)
968
969 * environments.c (obarray_enter, obarray_retrieve, obarray_remove,
970 leaf_environment_fold, obarray_remove_all): Use hashtable
971 accessors.
972
973 * gc.c (scm_init_storage): Moved hook initialization to
974 scm_storage_prehistory.
975 (scm_storage_prehistory): New function.
976 (scm_igc): Added commentary about placement of
977 scm_after_sweep_c_hook.
978
979 * gc-mark.c (scm_mark_all): Use hashtable accessors.
980 (scm_gc_mark_dependencies): Use SCM_WVECT_WEAK_KEY_P and
981 SCM_WVECT_WEAK_VALUE_P.
982
983 * hashtab.c, hashtab.h (scm_hash_for_each, scm_hash_map): New
984 functions.
985 (scm_vector_to_hash_table, scm_c_make_resizing_hash_table):
986 Removed.
987 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
988 scm_make_doubly_weak_hash_table): Moved here from weaks.c.
989
990 * init.c (scm_init_guile_1): Removed call to scm_init_weaks; Added
991 calls to scm_storage_prehistory and scm_hashtab_prehistory.
992
993 * modules.c (module-reverse-lookup): Use hashtable accessors.
994
995 * symbols.c, symbols.h (scm_i_hash_symbol): New function.
996
997 * weaks.c, weaks.h (scm_make_weak_key_alist_vector,
998 scm_make_weak_value_alist_vector,
999 scm_make_doubly_weak_alist_vector): New functions.
1000
1001 * weaks.c (scm_init_weaks_builtins): New function.
1002
1003 * weaks.h (SCM_WVECTF_WEAK_KEY, SCM_WVECTF_WEAK_VALUE,
1004 SCM_WVECTF_NOSCAN, SCM_WVECT_WEAK_KEY_P, SCM_WVECT_WEAK_VALUE_P,
1005 SCM_WVECT_NOSCAN_P): New macros.
1006
1007 * weaks.c (scm_scan_weak_vectors): Use SCM_WVECT_WEAK_KEY_P
1008 and SCM_WVECT_WEAK_VALUE_P.
1009
1010 * weaks.c, weaks.h (scm_i_allocate_weak_vector): Renamed from
1011 allocate_weak_vector and exported.
1012
0a4c1355
MD
10132003-02-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1014
1015 * hashtab.c: Undid thread safety. (We decided that it's better to
1016 let the user explicitly protect the tables (or not) according what
1017 is suitable for the application.)
1018
87ca11ff
MD
10192003-02-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1020
1021 * hashtab.c (scm_hash_fn_remove_x, scm_internal_hash_fold): Made
1022 thread safe and handle resizing tables.
1023 (scm_ihashx, scm_sloppy_assx, scm_delx_x): Removed
1024 SCM_DEFER/ALLOW_INTS.
1025
f59a096e
MD
10262003-02-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1027
1028 * hashtab.c (scm_vector_to_hash_table,
1029 scm_c_make_resizing_hash_table, scm_make_hash_table): New
1030 functions.
1031 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x): Made thread
1032 safe and handle resizing tables.
1033
1034 * weaks.c (scm_make_weak_key_hash_table,
1035 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1036 Size argument made optional. Return resizable table if not
1037 specified.
1038
4b612c5b
MD
10392003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1040
1041 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
1042 Fixed formals tests for closures. (Thanks to Kevin Ryde.)
1043
b3d7f6df
MD
10442003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1045
1046 * debug.c (scm_procedure_source): Handle all objects for which
1047 procedure? is #t. (Thanks to Bill Schottstaedt.)
1048
756414cf
MD
10492003-01-23 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1050
361d631f
MD
1051 * futures.c (mark_futures): Don't need to mark data of recycled
1052 futures.
1053 (scan_futures, cleanup_undead): Be smarter about marking
1054 futures---avoid unnecessary passes through future lists.
1055
756414cf
MD
1056 * futures.h, futures.c: New files; Introduced recycling of
1057 futures. For fine-grained threading this lifts performance to
1058 another level. We can now use parallelization in inner loops of
1059 Guile programs without impossible overhead.
1060
1061 * threads.h, threads.c: Moved futures to their own file.
1062
1063 * Makefile.am (libguile_la_SOURCES): Added futures.c.
1064 (DOT_X_FILES): Added futures.x.
1065 (DOT_DOC_FILES): Added futures.doc.
1066 (modinclude_HEADERS): Added futures.h.
1067
1068 * threads.c, threads.h (scm_i_create_thread): Renamed from
1069 create_thread and made global.
1070
1071 * futures.c (scm_make_future): New procedure.
1072
1073 * eval.c: #include "libguile/futures.h".
1074
1075 * init.c: #include "futures.h"
1076 (scm_init_guile_1): Call scm_init_futures.
1077
1078 * stime.c (SCM_TIME_UNITS_PER_SECOND): Renamed from CLKTCK.
1079
1080 * stime.h (SCM_TIME_UNITS_PER_SECOND): Definition moved here.
1081
1082 * eval.c, eval.h (scm_trampoline_0, scm_i_call_closure_0): New
1083 functions.
1084
1085 * eval.c (scm_trampoline_1): Fixed arguments test for closures.
1086
b4debead
MD
10872003-01-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1088
1089 * threads.c (create_thread): Don't unwind dynwind chain of parent
1090 thread before creation. Just start the new thread with an empty
1091 dynwind chain.
1092
93f26b7b
MD
10932003-01-20 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1094
1095 * evalext.c, evalext.h (scm_self_evaluating_p): New function.
1096
38d8927c
MD
10972003-01-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1098
41c96c32
MD
1099 * threads.c (scm_timed_wait_condition_variable): Support timed
1100 waiting also for simple condition variables.
1101
38d8927c
MD
1102 * goops.c (TEST_CHANGE_CLASS): Use scm_change_object_class instead
1103 of calling the procedure change-object-class.
1104
9cf5d9b7
MD
11052003-01-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1106
1107 * ramap.c (scm_ramapc): Typo in error message.
1108
bbf8d523
MD
11092003-01-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1110
b46fae00
MD
1111 * goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
1112 slots with instance allocation.
1113
bbf8d523
MD
1114 * goops.c, goops.h (scm_class_extended_generic_with_setter): New
1115 class.
1116 (scm_compute_applicable_methods): Use scm_generic_function_methods.
1117
1118 * goops.c (scm_generic_function_methods): Support extended
1119 generic functions.
1120
ebf9b47c
MD
11212002-12-29 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1122
1123 * eval.c (unmemocopy): Bugfix: scm_sym_delay --> scm_sym_future.
2e37d6a2 1124 Thanks to Neil for pointing this out!
ebf9b47c 1125
14a9ba3f
NJ
11262002-12-29 Neil Jerram <neil@ossau.uklinux.net>
1127
1128 * lang.h: Remove declarations matching definitions removed from
1129 lang.c (just below).
1130
c6a040a8
NJ
11312002-12-28 Neil Jerram <neil@ossau.uklinux.net>
1132
6054d805
NJ
1133 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
1134 scm_m_while, scm_nil_eq): Remove definitions that were superfluous
1135 and already commented out.
1136
c6a040a8
NJ
1137 * read.h (scm_lreadparen), read.c (scm_lreadr, scm_read_token,
1138 scm_lreadparen): Support reading vectors with Elisp syntax if
1139 SCM_ELISP_READ_EXTENSIONS is defined. (SCM_ELISP_READ_EXTENSIONS
1140 is not currently defined, and there isn't even a configure switch
1141 to enable it yet.)
1142
3742c12f
MV
11432002-12-26 Marius Vollmer <mvo@zagadka.ping.de>
1144
1145 * Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
1146 builds work.
1147 (EXTRA_DIST): Added version.h.in.
1148
fb50ef08
MD
11492002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1150
1151 This change makes it possible for one thread to do lazy sweeping
1152 while other threads are running. Now only the mark phase need to
1153 have all threads asleep. We should look further into this issue.
1154 Presently, I've put the locking of scm_i_sweep_mutex at
1155 "conservative" places due to my current lack of knowledge about
1156 the garbage collector. Please feel free to restrict these regions
1157 further to allow for maximal parallelism!
1158
1159 * gc.c, gc.h (scm_i_sweep_mutex): New mutex.
1160
1161 * gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
1162 scm_gc_register_collectable_memory): Substitute locking of
1163 scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
1164 (scm_igc): Lock sweep mutex here instead of in callers; Calls to
1165 scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
1166 the single-thread section (which now only contains the mark
1167 phase).
1168 (scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
1169 Removed SCM_DEFER/ALLOW_INTS. Simply call scm_igc directly.
1170
1171 * threads.c (gc_section_mutex): Removed.
1172
9ed24633
MD
11732002-12-19 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1174
0d48aca5
MD
1175 * threads.c (create_thread): Clear parent field in root state in
1176 order not to unnecessarily remember dead threads.
1177
9ed24633
MD
1178 * eval.c (call_subr2o_1, call_lsubr2_2): New functions.
1179 (scm_trampoline_1, scm_trampoline_2): Use them.
1180
29717c89
MD
11812002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1182
1183 Partial introduction of real plugin interface.
1184
1185 * Makefile.am (modinclude_HEADERS): Added threads-plugin.h.
1186 (EXTRA_DIST): Added threads-plugin.c.
1187
1188 * threads-plugin.h, threads-plugin.c: New files.
1189
1190 * threads.h: #include "libguile/threads-plugin.h".
1191
1192 * threads.c: #include "libguile/threads-plugin.c".
1193
1194 * pthread-threads.c: Temporarily remove debugging functions.
1195
1196 * threads.c, threads.h (scm_yield): Added back.
1197
e29e0b09
MD
11982002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1199
1200 * threads.c (really_launch): Detach before unlocking
1201 thread_admin_mutex in order not to risk being joined.
1202 (scm_i_thread_put_to_sleep, scm_i_thread_wake_up): Keep
1203 thread_admin_mutex locked during GC.
1204
1205 * pthread-threads.c, pthread-threads.h: Improvements to debugging
1206 functions.
1207
0b6843b1 12082002-12-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
93cd4dcd 1209
6da2dfc4
MD
1210 * pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
1211 support for debugging mutex operations.
1212
1b92fb6b
MD
1213 * threads.c (scm_thread): Removed filed joining_threads.
1214 (thread_print): Print thread number as well as address of thread
1215 structure.
0b6843b1
MD
1216 (scm_join_thread): Bugfix.
1217 (scm_lock_mutex, scm_try_mutex, scm_unlock_mutex,
1218 scm_timed_wait_condition_variable, scm_signal_condition_variable,
1219 scm_broadcast_condition_variable): Use the low-level API.
1220 (scm_all_threads): Return copy of thread list (to prevent
1221 unintended destruction).
1222 (scm_threads_prehistory): Initialize heap_mutex of fake thread.
1b92fb6b 1223
93cd4dcd
MD
1224 * pthread-threads.c, pthread-threads.h, threads.c: Fixes to
1225 pthread "native" recursive mutex support.
1226
2ff4f181
MD
12272002-12-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1228
28d52ebb
MD
1229 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): New definitions.
1230 Simply lock a thread C API recursive mutex.
1231 (SCM_NONREC_CRITICAL_SECTION_START,
1232 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1233 SCM_REC_CRITICAL_SECTION_END): Removed.
1234
1235 * eval.c: Replaced SOURCE_SECTION_START / SOURCE_SECTION_END with
1236 direct calls to scm_rec_mutex_lock / unlock around the three calls
1237 to scm_m_expand_body.
1238
1239 * eval.c, eval.h (promise_free): New function.
1240 (scm_force): Rewritten; Now thread-safe; Removed
1241 SCM_DEFER/ALLOW_INTS.
1242
1243 * pthread-threads.h: Added partially implemented plugin interface
1244 for recursive mutexes. These are, for now, only intended to be
1245 used internally within the Guile implementation.
1246
1247 * pthread-threads.c: New file.
1248
1249 * threads.c: Conditionally #include "pthread-threads.c".
1250
1251 * eval.c, eval.h (scm_makprom, scm_force): Rewritten to be
1252 thread-safe;
1253
1254 * snarf.h (SCM_MUTEX, SCM_GLOBAL_MUTEX, SCM_REC_MUTEX,
1255 SCM_GLOBAL_REC_MUTEX): New macros.
1256
1257 * eval.c, threads.c, threads.h, snarf.h: Rewrote critical section
1258 macros---use mutexes instead.
1259
1260 * tags.h (SCM_IM_FUTURE): New tag.
1261
1262 * eval.c (scm_m_future): New primitive macro.
1263 (SCM_CEVAL): Support futures.
1264 (unmemocopy): Support unmemoization of futures.
1265
1266 * print.c (scm_isymnames): Name of future isym.
1267
2ff4f181
MD
1268 * version.c: Unmade some changes to my private copy that got
1269 committed by mistake.
1270
392d2833
MD
12712002-12-11 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1272
e200ddee
MD
1273 * gc-malloc.c, gc.h, init.c: Reverted gc-malloc change of
1274 2002-12-10.
1275
392d2833
MD
1276 * gc.c (scm_igc): Don't call scm_i_thread_invalidate_freelists.
1277
1278 * gc.c (scm_gc_sweep): Call it here instead, which is a more
1279 logical place.
1280
1281 * threads.c (create_thread): Remember root object until the handle
1282 of the new thread is on all_threads list.
1283
1284 * root.c (scm_make_root): Moved copying of fluids until after
1285 creation of root handle so that the fluids are GC protected. Also
1286 removed the critical section.
1287
c4c52ebe
MD
12882002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1289
960c408c
MD
1290 * gc-malloc.c, gc.h (scm_gc_malloc_prehistory): New function.
1291
3cdde9d6 1292 * gc-malloc.c (malloc_mutex): New mutex.
960c408c 1293 (scm_gc_malloc_prehistory): Initialize it.
3cdde9d6
MD
1294 (scm_realloc): Serialize call to realloc
1295 (scm_calloc): Same for calloc.
1296 Thanks to Wolfgang Jaehrling!
1297 (Now we have to make sure all calls to malloc/realloc are made
1298 through scm_malloc.)
1299
960c408c
MD
1300 * init.c (scm_init_guile_1): Call scm_gc_malloc_prehistory.
1301
c4c52ebe
MD
1302 * threads.c (really_launch): Release heap (to prevent deadlock).
1303 (create_thread): Release heap before locking thread admin mutex.
1304
b0dc3d71
MD
13052002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1306
1307 * threads.c (scm_i_thread_invalidate_freelists): New
1308 function.
1309
1310 * gc.c (scm_igc): Call scm_i_thread_invalidate_freelists.
1311
1312 * modules.c (scm_export): Inserted a return statement.
1313
06e80f59
HWN
13142002-12-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1315
1316 * modules.c (scm_export): new function
1317
1318 * gc-card.c: add a note about malloc()/free() overhead.
1319
a12611c3
MD
13202002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1321
1322 * Makefile.am (c-tokenize.$(OBJEXT)): Don't look for c-tokenize.c
1323 in srcdir.
1324
c7fabadf
MD
13252002-12-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1326
1327 These changes remove scm_ints_disabled (which hasn't has any
1328 effect in Guile for quite some time).
1329
1330 * async.c, error.h (scm_ints_disabled): Removed.
1331
1332 * gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
1333 root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
1334 SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
1335 (old_ints): Removed.
1336
1337 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
1338 critical section.
1339 (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
1340 SCM_ALLOW_INTS.
1341
9bc4701c
MD
13422002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1343
52340b65
MD
1344 * threads.c (scm_mutex_lock, scm_cond_wait, scm_cond_timedwait):
1345 Removed accidental #if 0 around these functions.
1346
9bc4701c
MD
1347 These changes are the start of support for preemptive
1348 multithreading. Marius and I have agreed that I commit this code
1349 into the repository although it isn't thoroughly tested and surely
1350 introduces many bugs. The bugs should only be exposed when using
1351 threads, though. Signalling and error handling for threads is
1352 very likely broken. Work on making the implementation cleaner and
1353 more efficient is needed.
1354
1355 * __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
1356 (SCM_NONREC_CRITICAL_SECTION_START,
1357 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
1358 SCM_REC_CRITICAL_SECTION_END): New macros.
1359 (SCM_CRITICAL_SECTION_START/END): Defined here.
1360
1361 * eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
1362 the three calls to scm_m_expand_body.
1363
1364 * gc.h: #include "libguile/pthread-threads.h";
1365 (SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
1366
1367 * gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
1368 scm_t_key;
1369
1370 * gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
1371 access.
1372
1373 * gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
1374
1375 * gc-freelist.c, threads.c (really_launch): Use
1376 SCM_FREELIST_CREATE.
1377
1378 * gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
1379
1380 * gc.c (scm_i_expensive_validation_check, scm_gc,
1381 scm_gc_for_newcell): Put threads to sleep before doing GC-related
1382 heap administration so that those pieces of code are executed
1383 single-threaded. We might consider rewriting these code sections
1384 in terms of a "call_gc_code_singly_threaded" construct instead of
1385 calling the pair of scm_i_thread_put_to_sleep () and
1386 scm_i_thread_wake_up (). Also, we would want to have as many of
1387 these sections eleminated.
1388
1389 * init.c (scm_init_guile_1): Call scm_threads_prehistory.
1390
1391 * inline.h: #include "libguile/threads.h"
1392
1393 * pthread-threads.h: Macros now conform more closely to the
1394 pthreads interface. Some of them now take a second argument.
1395
1396 * threads.c, threads.h: Many changes.
1397
13982002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1399
1400 * Makefile.am (version.h): Changed $^ --> $< in rule for
1401 version.h.
1402
b2cbe8d8
RB
14032002-12-08 Rob Browning <rlb@defaultvalue.org>
1404
1405 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
1406 (SCM_MINOR_VERSION): use @--@ substitution now.
1407 (SCM_MICRO_VERSION): use @--@ substitution now.
1408 (scm_effective_version): new function prototype.
1409
1410 * version.c (scm_effective_version): new function, also add
1411 effective-version.
1412
1413 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
1414 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
1415 SCM_LIBRARY_DIR.
1416 (version.h): generate this here rather than configure.in. This
1417 approach tracks source edits better (i.e. more immediately).
1418 Might be worth considering for other .in files too.
1419
5441c65c
MV
14202002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
1421
1422 Reorganized thread package selection. A thread package now only
1423 implements a small set of pthread like functions and Guile
1424 implements the rest on top of that. Guile's implementation is
1425 what the "coop-pthreads" package has been previously. Support for
1426 "coop" threads has been removed until I get time to add it again.
1427
1428 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
1429 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
1430 null-threads.c, coop-pthreads.c.
1431 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
1432 pthread-threads.h.
1433
1434 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
1435
1436 * threads.h: Do not include "libguile/coop-defs.h". Include
1437 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
1438 (previously deprecated) C level thread API prototypes. They are
1439 now in the thread package specific headers, "null-threads.h" and
1440 "pthread-threads.h".
1441 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
1442 New.
1443 (scm_threads_init): Removed.
1444 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
1445 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
1446 SCM_I_THREAD_SWITCH_COUNT): Define here.
1447 (scm_single_thread_p): Removed.
1448 (scm_call_with_new_thread): Take two args directly instead of list
1449 of two args.
1450 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
1451 SCM_SET_THREAD_LOCAL_DATA): Define here.
1452
1453 * threads.c: Merged with "coop-pthreads.c".
1454
1455 * null-threads.h: Implement pthread-like API as a set of macros.
1456
1457 * pthread-threads.h: New, implement pthread-like API by deferring
1458 to pthread itself.
1459
1460 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
1461 has been lost in the reorganization.
1462
504d99c5
MD
14632002-12-01 Mikael Djurfeldt <mdj@linnaeus>
1464
1465 The following change makes it possible to move procedure
1466 application dispatch outside inner loops. The motivation was
1467 clean implementation of efficient replacements of R5RS primitives
1468 in SRFI-1.
1469
1470 The semantics is clear: scm_trampoline_N returns an optimized
1471 version of scm_call_N (or NULL if the procedure isn't applicable
1472 on N args).
1473
1474 Applying the optimization to map and for-each increases efficiency
1475 noticeably. For example, (map abs ls) is 8 times faster than
1476 before.
1477
1478 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
1479
1480 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
1481
1482 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
1483 (map, for-each): Handle also application on two args as a special
1484 case; Use trampolines.
1485
1486 Other changes:
1487
1488 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
1489 (subr2oless): Removed.
1490 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
1491 vector GC protected.
1492
1493 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
1494 scm_out_of_range.
1495
63dd3413
DH
14962002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1497
1498 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
1499
4ba5f279
MD
15002002-11-17 Mikael Djurfeldt <mdj@linnaeus>
1501
1502 * debug.c (scm_make_iloc): Added missing "return".
1503
56ae231f
MV
15042002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
1505
1506 * strports.c (scm_eval_string_in_module): Validate second arg to
1507 be a module. Thanks to Arno Peters!
1508
80b28865
DH
15092002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1510
1511 * .cvsignore: remove goops.c
1512
c88b1456
DH
15132002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1514
1515 * modules.c (scm_env_top_level, scm_lookup_closure_module,
1516 module_variable, scm_module_lookup_closure,
1517 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
1518 scm_system_module_env_p): Don't compare SCM values with C
1519 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
1520 over SCM_NFALSEP.
1521
a8a19efc
DH
15222002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1523
1524 * eval.h (SCM_MAKE_ILOC): New macro.
1525
1526 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
1527 the iloc bitpattern here.
1528
76734914
MD
15292002-11-14 Mikael Djurfeldt <mdj@linnaeus>
1530
1531 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
1532 part of the API, otherwise it's difficult to write Guile
1533 extensions using non-blocking I/O => moved #include
1534 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
1535
1536 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
1537 s_unlock_mutex.
1538
8b5b4a75
MV
15392002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
1540
1541 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
1542 are defined in configure.in.
1543
1544 * threads.c: Removed SCM_API from function definitions. SCM_API
1545 is only for declarations.
1546
e5a83084
MD
15472002-11-07 Mikael Djurfeldt <mdj@linnaeus>
1548
9be8bb45
MD
1549 * coop-pthreads.h: Added support for thread specific data to the
1550 generic C API for the coop-pthreads case.
1551
e5a83084
MD
1552 * threads.c, threads.h (scm_cond_init): Undo unintentional API
1553 change.
6c214b62 1554 (scm_cond_broadcast): Added missing function.
e5a83084 1555
7edf178e
MV
15562002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1557
1558 * coop.c (coop_next_runnable_thread): Removed, wich should have
1559 happened when GUILE_ISELECT was hard-wired.
1560
7f5b1b77
MV
15612002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
1562
7caa1b07
MV
1563 * Makefile.am (libguile_la_SOURCES): Added threads.c
1564 (DOT_DOC_FILES): Added threads.doc.
1565 (DOT_X_FILES): Added threads.x.
1566 (EXTRA_libguile_la_SOURCES): Removed threads.c.
1567 (noinst_HEADERS): Added coop-pthreads.c.
1568 (modinclude_HEADERS): Added coop-pthreads.h.
1569
1570 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
1571 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
1572
bb11cbf4
MV
1573 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
1574 Thanks to Bill Schottstaedt!
1575
1d4cbbed
MV
1576 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
1577
7f5b1b77
MV
1578 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
1579 SCM_COPT_THREADS is defined.
1580 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
1581 is defined.
1582
1583 * coop-pthreads.c: Some harmless renamings of internal stuff.
1584 (create_thread): New, generalized version of
1585 scm_call_with_new_thread.
1586 (scm_call_with_new_thread): Use it.
1587 (scm_spawn_thread): New, use create_thread.
1588
d52f53b1
MV
15892002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
1590
1591 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
1592 start testing it now.
1593
1594 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
1595 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
1596 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
1597 is defined.
1598
30f920c3
MV
15992002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
1600
1601 * scmsigs.c (signal_cell_handlers, install_handler_data,
1602 scm_delq_spine_x, really_install_handler, install_handler): New
1603 scheme for triggering signal handlers, to simplify take_signal.
1604 (take_signal): Simplified, to avoid race conditions.
1605 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
1606 hasn't exited yet.
1607
1608 * async.c (scm_async_click): Reset pending_asyncs, handle
1609 signal_asyncs. Don't set cdr of a non-signal async to #f.
1610 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
1611 always. Set pending_asyncs.
1612 (scm_system_async_mark_for_thread): Check that thread has not
1613 exited.
1614 (scm_unmask_signals, decrease_block): Call scm_async_click after
1615 block_asyncs becomes zero.
1616
1617 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
1618 active_asyncs.
1619
1620 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
1621 fields.
1622 * root.c (root_mark): Mark them.
1623 (make_root): Initialize them.
1624
1625 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
1626 USE_COOP_THREADS.
1627 (scm_internal_select): Define one version for USE_COOP_THREADS and
1628 one for USE_NULL_THREADS.
1629 (scm_init_iselect): Likewise.
1630
1631 * inline.h (scm_cell, scm_double_cell): Also allow
1632 USE_COPT_THREADS to not protect the slot initializers.
1633
1634 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
1635 because threads need to be initialized before the stack, but
1636 gsubrs such as scm_timed_condition_variable_wait can only be
1637 created later.
1638
1639 * threads.h: Include "coop-pthreads.h" when requested.
1640 (scm_threads_make_mutex, scm_threads_lock_mutex,
1641 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
1642 not implemented anyway.
1643 (scm_init_thread_procs, scm_try_mutex,
1644 scm_timed_condition_variable_wait,
1645 scm_broadcast_condition_variable, scm_c_thread_exited_p,
1646 scm_thread_exited_p): New prototypes.
1647 (struct timespec): Define if not already defined.
1648 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1649 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
1650 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1651 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
1652 deprecated.
1653
1654 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
1655 requested.
1656 (scm_thread_exited_p): New.
1657 (scm_try_mutex, scm_broadcast_condition_variable): Newly
1658 registered procedures.
1659 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
1660 Use the latter as the procedure for "wait-condition-variable",
1661 thus offering a optional timeout parameter to Scheme.
1662 (scm_wait_condition_variable): Implement in terms of
1663 scm_timed_wait_condition_variable.
1664 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1665 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
1666 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1667 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
1668 scm_make_mutex, etc, and deprecate.
1669 (scm_init_threads): Do not create smobs, leave this to
1670 scm_threads_init. Do not include "threads.x" file.
1671 (scm_init_thread_procs): New, include "threads.x" here.
1672
1673 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
1674 scm_null_mutex_lock, scm_null_mutex_unlock,
1675 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
1676 scm_null_condvar_wait, scm_null_condvar_signal,
1677 scm_null_condvar_destroy): Removed.
1678 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
1679 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
1680 scm_cond_destory): Do not define, they are now deprecated and
1681 handled by threads.{h,c}.
1682
1683 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
1684 (scm_threads_init): Create smobs here, using the appropriate
1685 sizes.
1686 (block): Removed, now unused.
1687 (scm_c_thread_exited_p): New.
1688 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
1689 scm_null_mutex_destroy, scm_null_condvar_init,
1690 scm_null_condvar_wait, scm_null_condvar_signal,
1691 scm_null_condvar_destroy): Removed and updated users to do their
1692 task directly.
1693 (scm_try_mutex, timeval_subtract,
1694 scm_timed_wait_condition_variable,
1695 scm_broadcast_condition_variable): New.
1696 (scm_wait_condition_variable): Removed.
1697
1698 * coop-defs.h (coop_m): Added 'level' field.
1699 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1700 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
1701 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1702 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
1703 define.
1704 (coop_condition_variable_broadcast): New.
1705
1706 * coop-threads.c (scm_threads_init): Create smobs here, using the
1707 appropriate sizes.
1708 (scm_c_thread_exited_p, scm_try_mutex,
1709 scm_timed_wait_condition_variable,
1710 scm_broadcast_condition_variable): New.
1711 (scm_wait_condition_variable): Removed.
1712
1713 * coop.c (coop_new_mutex_init): Initialize level.
1714 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
1715 level.
1716 (coop_condition_variable_signal): Renamed to
1717 coop_condition_variable_broadcast and reimplemented in terms of
1718 that. Thus...
1719 (coop_condition_variable_broadcast): New.
1720
1721 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
1722
1723 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
1724
087ed40d
MV
17252002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
1726
65a23095
MV
1727 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
1728 of system headers.
1729
087ed40d
MV
1730 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
1731 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
30f920c3 1732 give better error messages. Thanks to Bill Schottstaedt!
087ed40d 1733
5ec1d2c8
DH
17342002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1735
1736 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
1737 scm_definedp to scm_defined_p and deprecated scm_definedp.
1738
100ae50d
DH
17392002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1740
1741 * async.h, async.c (scm_system_async): Fixed deprecation to work
1742 correctly when deprecated features are excluded.
1743
2794cb50
MV
17442002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1745
1746 * async.c (scm_system_async_mark_for_thread): Validate thread
1747 argument.
1748
1749 * coop-threads.c (scm_i_thread_root): Do not validate argument.
1750
1751 * feature.c (scm_init_feature): Don't add 'threads' for
1752 USE_NULL_THREADS.
1753
1754 * inline.h (scm_cell, scm_double_cell): Also allow
1755 USE_NULL_THREADS to not protect the slot initializers.
1756
1757 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
1758 "USE_THREAD".
1759
1760 * Makefile.am (noinst_HEADERS): Added null-threads.c.
1761 (modinclude_HEADERS): Added null-threads.h.
1762
1763 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
1764 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
1765 (scm_init_threads): Use generic type names scm_t_mutex and
1766 scm_t_cond instead of coop_m and coop_c.
1767
1768 * null-threads.c, null-threads.h: New files.
1769
ff810d7a
MV
17702002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
1771
1772 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
1773 This is to support makes that know about "$<" only in pattern
1774 rules, like Sun's make.
1775
a90bdb73
MV
17762002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
1777
1778 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
1779 substitution. Thanks to David Allouche!
1780
e71a8bf2
DH
17812002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1782
1783 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
1784 !SCM_ENABLE_DEPRECATED.
1785
41f77ff5
MV
17862002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1787
504d99c5 1788 * async.c (scm_system_async_mark_for_thread): Only call
41f77ff5
MV
1789 scm_i_thread_root when USE_THREADS is defined. Use scm_root
1790 otherwise.
1791
1792 * scmsigs.c (take_signal): Only call scm_i_thread_root when
1793 USE_THREADS is defined. Use scm_root otherwise.
1794 (scm_sigaction_for_thread): Ignore THREAD argument when
1795 USE_THREADS is not defined. Also, move THREAD argument defaulting
1796 out of HAVE_SIGACTION section, which was a bug.
1797
6d16b125
MV
17982002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1799
1800 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
1801 signal_handlers, not the closure that is used as the async.
1802 The closure is stored in signal_handler_cells, as previously.
1803
acfa1f52
MV
18042002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
1805
1806 * root.h (scm_root_state): Added 'block_async' slot.
1807 (scm_active_asyncs): Removed abbrev.
1808 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
1809
1810 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
1811 abbrev.
1812
1813 * async.h (scm_call_with_blocked_asyncs,
1814 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
1815 scm_c_call_with_unblocked_asyncs): New prototypes.
1816 (scm_mask_signals, scm_unmask_signals): Deprecated.
1817 (scm_mask_ints): Turned into a macro.
1818 * async.c (scm_mask_ints): Removed.
1819 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
1820 this should not be necessary.
1821 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
1822 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
1823 deprecation warning and check for errornous use. Set block_asyncs
1824 instead of scm_mask_ints.
1825 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
1826 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
1827 scm_c_call_with_unblocked_asyncs): New.
1828
1829 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
1830 Asyncs are enabled by default.
1831
34010f56
NJ
18322002-10-09 Neil Jerram <neil@ossau.uklinux.net>
1833
1834 * vports.c (scm_make_soft_port): Allow vector argument to carry a
1835 6th element: an input waiting thunk.
1836 (sf_input_waiting): New.
1837
9310d6f2
MV
18382002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
1839
1840 * root.c (root_mark): Mark active_asyncs slot.
1841
1842 * async.c (scm_async_click): Set the cdr of a executed handler
1843 cell to SCM_BOOL_F, not SCM_EOL.
1844 (scm_i_queue_async_cell): Queue the cell at the end of the list,
1845 and only if the handler procedure is not already present.
1846 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
1847 with SCM_BOOL_F.
1848 * scmsigs.c (scm_sigaction_for_thread): Likewise.
1849
ac48c719
RB
18502002-10-04 Rob Browning <rlb@defaultvalue.org>
1851
1360a142
RB
1852 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
1853
1854 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
1855 scm_lt_dlopenext, and scm_lt_dlerror.
1856 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
1857 and scm_lt_dlerror.
1858 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
1859 and scm_lt_dlerror.
1860 (sysdep_dynl_init): switch to scm_lt_dlinit();
1861
1862 * Makefile.am (libguile_la_LIBADD): switch to use
1863 libguile-ltdl.la.
1864
504d99c5 1865 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
ac48c719 1866
497092c9
MV
18672002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
1868
1869 * scmsigs.h (scm_sigaction_for_thread): New prototype.
1870 * scmsigs.c (got_signal): Removed.
1871 (signal_handler_cells, signal_handler_threads): New.
1872 (take_signal): Queue the cell of the signal for the specified
1873 thread. Reset the signal handler on systems that don't have
1874 sigaction.
1875 (sys_deliver_signals): Removed.
1876 (close_1): New.
1877 (scm_sigaction_for_thread): Renamed from scm_sigaction and
1878 extended to also set the thread of a signal and allocate a cell
1879 for it. Keep the Scheme name "sigaction". Check that signum is
1880 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
1881 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
1882 (scm_init_scmsigs): Allocate signal_handler_cells and
1883 signal_handler_threads vectors.
1884
1885 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
1886 that system asnycs and user asyncs are separated. Reimplemented
1887 system asyncs to work per-thread.
1888
1889 * gc.c (scm_init_gc): Do not use scm_system_async.
1890
1891 * async.h (scm_asyncs_pending, scm_set_tick_rate,
1892 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
1893 Removed prototypes.
1894 (scm_i_queue_async_cell): New.
1895
1896 * __scm.h (scm_asyncs_pending_p): Removed.
1897 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
1898 scm_asyncs_pending_p.
1899
1900 * async.h (scm_system_async_mark_for_thread): New prototype.
1901
1902 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
1903
1904 * root.h (scm_root_state): Added new "active_asyncs" slot.
1905 * root.c (scm_make_root): Initialize it to SCM_EOL.
1906
1907 * coop-defs.h (coop_t): Added new "handle" slot.
1908 * coop-threads.c (all_threads, scm_current_thread,
1909 scm_all_threads, scm_i_thread_root): New.
1910 (scm_threads_init): Add main thread to all_threads.
1911 (scheme_launch_thread): Remove thread from all_threads when it
1912 terminates.
1913 (scm_call_with_new_thread): Initialize handle slot of coop_t
1914 structure and add new thread to all_threads.
1915 (scm_spawn_thread): Likewise.
1916
1917 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
1918 * threads.c (scm_current_thread, scm_all_threads): Register as
1919 primitives.
1920
1921 * dynl.c: Use scm_lt_ prefix for libltdl functions.
1922
480fa28d
NJ
19232002-09-29 Neil Jerram <neil@ossau.uklinux.net>
1924
1925 * script.c (scm_compile_shell_switches): Fix bad spelling of
1926 `explicitly' in comment.
1927
19282002-09-28 Neil Jerram <neil@ossau.uklinux.net>
1929
1930 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
1931 Refer to provided? in doc string rather than deprecated feature?.
1932
3553e1d1
GH
19332002-09-24 Gary Houston <ghouston@arglist.com>
1934
1935 * inline.h (scm_double_cell): prevent reordering of statements
1936 with any following code (for GCC 3 strict-aliasing).
1937 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
1938 the earlier version of the reordering prevention.
1939
4ad0814a
HWN
19402002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1941
1942 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
1943
e88e4f2e
HWN
19442002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1945
1946 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
1947 protection.
1948
1e71eafb
HWN
19492002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1950
1951 * inline.h: include stdio.h
1952
1953 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
1954
61ef9c1f
HWN
19552002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1956
dac04e9f
HWN
1957 * gc-segment.c (scm_i_make_initial_segment): check user settings
1958 for sanity.
1959
1960 * gc-malloc.c (scm_gc_init_malloc): check user settings for
1961 sanity.
dac04e9f
HWN
1962
1963 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
1964
ffd72400
HWN
1965 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
1966
1967 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
1e71eafb
HWN
1968 these won't ever wrap around with high memory usage. Thanks to
1969 Sven Hartrumpf for finding this.
ffd72400 1970
5bd4a949
HWN
1971 * gc-freelist.c: include <stdio.h>
1972
61ef9c1f
HWN
1973 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
1974
ffd0ef3b
MV
19752002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
1976
a27e3d14
MV
1977 * vectors.h (SCM_VECTOR_REF): New.
1978
ffd0ef3b
MV
1979 * snarf.h (SCM_DEFINE_PUBLIC): New.
1980
f8a1712b
MV
19812002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
1982
1983 * socket.c (scm_addr_vector): Added size of address to arguments.
1984 Use it to avoid accessing a non-existent path in a sockaddr_un.
1985 Changed all callers.
1986
7200a36b
HWN
19872002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1988
1383773b
HWN
1989 * gc.h: remove DOUBLECELL card flags.
1990
1991 * gc-malloc.c (scm_calloc): try to use calloc() before calling
1992 scm_realloc().
1993
1994 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
1995 init loop; handle this from scm_init_card_freelist()
1996
1997 * gc-card.c (scm_init_card_freelist): init bit vector here.
1998
7200a36b 1999 * numbers.c (scm_make_real): prevent reordering of statements
8fa5786d 2000 num2float.i.c (FLOAT2NUM): idem
7200a36b 2001
9981de3a
HWN
20022002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2003
2004 * eval.h: prepend libguile/ to include path
2005
19647556
MV
20062002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
2007
2008 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
2009