*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
b2cbe8d8
RB
12002-12-08 Rob Browning <rlb@defaultvalue.org>
2
3 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
4 (SCM_MINOR_VERSION): use @--@ substitution now.
5 (SCM_MICRO_VERSION): use @--@ substitution now.
6 (scm_effective_version): new function prototype.
7
8 * version.c (scm_effective_version): new function, also add
9 effective-version.
10
11 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
12 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
13 SCM_LIBRARY_DIR.
14 (version.h): generate this here rather than configure.in. This
15 approach tracks source edits better (i.e. more immediately).
16 Might be worth considering for other .in files too.
17
5441c65c
MV
182002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
19
20 Reorganized thread package selection. A thread package now only
21 implements a small set of pthread like functions and Guile
22 implements the rest on top of that. Guile's implementation is
23 what the "coop-pthreads" package has been previously. Support for
24 "coop" threads has been removed until I get time to add it again.
25
26 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
27 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
28 null-threads.c, coop-pthreads.c.
29 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
30 pthread-threads.h.
31
32 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
33
34 * threads.h: Do not include "libguile/coop-defs.h". Include
35 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
36 (previously deprecated) C level thread API prototypes. They are
37 now in the thread package specific headers, "null-threads.h" and
38 "pthread-threads.h".
39 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
40 New.
41 (scm_threads_init): Removed.
42 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
43 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
44 SCM_I_THREAD_SWITCH_COUNT): Define here.
45 (scm_single_thread_p): Removed.
46 (scm_call_with_new_thread): Take two args directly instead of list
47 of two args.
48 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
49 SCM_SET_THREAD_LOCAL_DATA): Define here.
50
51 * threads.c: Merged with "coop-pthreads.c".
52
53 * null-threads.h: Implement pthread-like API as a set of macros.
54
55 * pthread-threads.h: New, implement pthread-like API by deferring
56 to pthread itself.
57
58 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
59 has been lost in the reorganization.
60
504d99c5
MD
612002-12-01 Mikael Djurfeldt <mdj@linnaeus>
62
63 The following change makes it possible to move procedure
64 application dispatch outside inner loops. The motivation was
65 clean implementation of efficient replacements of R5RS primitives
66 in SRFI-1.
67
68 The semantics is clear: scm_trampoline_N returns an optimized
69 version of scm_call_N (or NULL if the procedure isn't applicable
70 on N args).
71
72 Applying the optimization to map and for-each increases efficiency
73 noticeably. For example, (map abs ls) is 8 times faster than
74 before.
75
76 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
77
78 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
79
80 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
81 (map, for-each): Handle also application on two args as a special
82 case; Use trampolines.
83
84 Other changes:
85
86 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
87 (subr2oless): Removed.
88 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
89 vector GC protected.
90
91 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
92 scm_out_of_range.
93
63dd3413
DH
942002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
95
96 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
97
4ba5f279
MD
982002-11-17 Mikael Djurfeldt <mdj@linnaeus>
99
100 * debug.c (scm_make_iloc): Added missing "return".
101
56ae231f
MV
1022002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
103
104 * strports.c (scm_eval_string_in_module): Validate second arg to
105 be a module. Thanks to Arno Peters!
106
80b28865
DH
1072002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
108
109 * .cvsignore: remove goops.c
110
c88b1456
DH
1112002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
112
113 * modules.c (scm_env_top_level, scm_lookup_closure_module,
114 module_variable, scm_module_lookup_closure,
115 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
116 scm_system_module_env_p): Don't compare SCM values with C
117 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
118 over SCM_NFALSEP.
119
a8a19efc
DH
1202002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
121
122 * eval.h (SCM_MAKE_ILOC): New macro.
123
124 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
125 the iloc bitpattern here.
126
76734914
MD
1272002-11-14 Mikael Djurfeldt <mdj@linnaeus>
128
129 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
130 part of the API, otherwise it's difficult to write Guile
131 extensions using non-blocking I/O => moved #include
132 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
133
134 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
135 s_unlock_mutex.
136
8b5b4a75
MV
1372002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
138
139 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
140 are defined in configure.in.
141
142 * threads.c: Removed SCM_API from function definitions. SCM_API
143 is only for declarations.
144
e5a83084
MD
1452002-11-07 Mikael Djurfeldt <mdj@linnaeus>
146
9be8bb45
MD
147 * coop-pthreads.h: Added support for thread specific data to the
148 generic C API for the coop-pthreads case.
149
e5a83084
MD
150 * threads.c, threads.h (scm_cond_init): Undo unintentional API
151 change.
6c214b62 152 (scm_cond_broadcast): Added missing function.
e5a83084 153
7edf178e
MV
1542002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
155
156 * coop.c (coop_next_runnable_thread): Removed, wich should have
157 happened when GUILE_ISELECT was hard-wired.
158
7f5b1b77
MV
1592002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
160
7caa1b07
MV
161 * Makefile.am (libguile_la_SOURCES): Added threads.c
162 (DOT_DOC_FILES): Added threads.doc.
163 (DOT_X_FILES): Added threads.x.
164 (EXTRA_libguile_la_SOURCES): Removed threads.c.
165 (noinst_HEADERS): Added coop-pthreads.c.
166 (modinclude_HEADERS): Added coop-pthreads.h.
167
168 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
169 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
170
bb11cbf4
MV
171 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
172 Thanks to Bill Schottstaedt!
173
1d4cbbed
MV
174 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
175
7f5b1b77
MV
176 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
177 SCM_COPT_THREADS is defined.
178 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
179 is defined.
180
181 * coop-pthreads.c: Some harmless renamings of internal stuff.
182 (create_thread): New, generalized version of
183 scm_call_with_new_thread.
184 (scm_call_with_new_thread): Use it.
185 (scm_spawn_thread): New, use create_thread.
186
d52f53b1
MV
1872002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
188
189 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
190 start testing it now.
191
192 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
193 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
194 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
195 is defined.
196
30f920c3
MV
1972002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
198
199 * scmsigs.c (signal_cell_handlers, install_handler_data,
200 scm_delq_spine_x, really_install_handler, install_handler): New
201 scheme for triggering signal handlers, to simplify take_signal.
202 (take_signal): Simplified, to avoid race conditions.
203 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
204 hasn't exited yet.
205
206 * async.c (scm_async_click): Reset pending_asyncs, handle
207 signal_asyncs. Don't set cdr of a non-signal async to #f.
208 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
209 always. Set pending_asyncs.
210 (scm_system_async_mark_for_thread): Check that thread has not
211 exited.
212 (scm_unmask_signals, decrease_block): Call scm_async_click after
213 block_asyncs becomes zero.
214
215 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
216 active_asyncs.
217
218 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
219 fields.
220 * root.c (root_mark): Mark them.
221 (make_root): Initialize them.
222
223 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
224 USE_COOP_THREADS.
225 (scm_internal_select): Define one version for USE_COOP_THREADS and
226 one for USE_NULL_THREADS.
227 (scm_init_iselect): Likewise.
228
229 * inline.h (scm_cell, scm_double_cell): Also allow
230 USE_COPT_THREADS to not protect the slot initializers.
231
232 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
233 because threads need to be initialized before the stack, but
234 gsubrs such as scm_timed_condition_variable_wait can only be
235 created later.
236
237 * threads.h: Include "coop-pthreads.h" when requested.
238 (scm_threads_make_mutex, scm_threads_lock_mutex,
239 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
240 not implemented anyway.
241 (scm_init_thread_procs, scm_try_mutex,
242 scm_timed_condition_variable_wait,
243 scm_broadcast_condition_variable, scm_c_thread_exited_p,
244 scm_thread_exited_p): New prototypes.
245 (struct timespec): Define if not already defined.
246 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
247 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
248 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
249 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
250 deprecated.
251
252 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
253 requested.
254 (scm_thread_exited_p): New.
255 (scm_try_mutex, scm_broadcast_condition_variable): Newly
256 registered procedures.
257 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
258 Use the latter as the procedure for "wait-condition-variable",
259 thus offering a optional timeout parameter to Scheme.
260 (scm_wait_condition_variable): Implement in terms of
261 scm_timed_wait_condition_variable.
262 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
263 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
264 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
265 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
266 scm_make_mutex, etc, and deprecate.
267 (scm_init_threads): Do not create smobs, leave this to
268 scm_threads_init. Do not include "threads.x" file.
269 (scm_init_thread_procs): New, include "threads.x" here.
270
271 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
272 scm_null_mutex_lock, scm_null_mutex_unlock,
273 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
274 scm_null_condvar_wait, scm_null_condvar_signal,
275 scm_null_condvar_destroy): Removed.
276 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
277 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
278 scm_cond_destory): Do not define, they are now deprecated and
279 handled by threads.{h,c}.
280
281 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
282 (scm_threads_init): Create smobs here, using the appropriate
283 sizes.
284 (block): Removed, now unused.
285 (scm_c_thread_exited_p): New.
286 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
287 scm_null_mutex_destroy, scm_null_condvar_init,
288 scm_null_condvar_wait, scm_null_condvar_signal,
289 scm_null_condvar_destroy): Removed and updated users to do their
290 task directly.
291 (scm_try_mutex, timeval_subtract,
292 scm_timed_wait_condition_variable,
293 scm_broadcast_condition_variable): New.
294 (scm_wait_condition_variable): Removed.
295
296 * coop-defs.h (coop_m): Added 'level' field.
297 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
298 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
299 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
300 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
301 define.
302 (coop_condition_variable_broadcast): New.
303
304 * coop-threads.c (scm_threads_init): Create smobs here, using the
305 appropriate sizes.
306 (scm_c_thread_exited_p, scm_try_mutex,
307 scm_timed_wait_condition_variable,
308 scm_broadcast_condition_variable): New.
309 (scm_wait_condition_variable): Removed.
310
311 * coop.c (coop_new_mutex_init): Initialize level.
312 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
313 level.
314 (coop_condition_variable_signal): Renamed to
315 coop_condition_variable_broadcast and reimplemented in terms of
316 that. Thus...
317 (coop_condition_variable_broadcast): New.
318
319 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
320
321 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
322
087ed40d
MV
3232002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
324
65a23095
MV
325 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
326 of system headers.
327
087ed40d
MV
328 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
329 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
30f920c3 330 give better error messages. Thanks to Bill Schottstaedt!
087ed40d 331
5ec1d2c8
DH
3322002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
333
334 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
335 scm_definedp to scm_defined_p and deprecated scm_definedp.
336
100ae50d
DH
3372002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
338
339 * async.h, async.c (scm_system_async): Fixed deprecation to work
340 correctly when deprecated features are excluded.
341
2794cb50
MV
3422002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
343
344 * async.c (scm_system_async_mark_for_thread): Validate thread
345 argument.
346
347 * coop-threads.c (scm_i_thread_root): Do not validate argument.
348
349 * feature.c (scm_init_feature): Don't add 'threads' for
350 USE_NULL_THREADS.
351
352 * inline.h (scm_cell, scm_double_cell): Also allow
353 USE_NULL_THREADS to not protect the slot initializers.
354
355 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
356 "USE_THREAD".
357
358 * Makefile.am (noinst_HEADERS): Added null-threads.c.
359 (modinclude_HEADERS): Added null-threads.h.
360
361 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
362 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
363 (scm_init_threads): Use generic type names scm_t_mutex and
364 scm_t_cond instead of coop_m and coop_c.
365
366 * null-threads.c, null-threads.h: New files.
367
ff810d7a
MV
3682002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
369
370 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
371 This is to support makes that know about "$<" only in pattern
372 rules, like Sun's make.
373
a90bdb73
MV
3742002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
375
376 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
377 substitution. Thanks to David Allouche!
378
e71a8bf2
DH
3792002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
380
381 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
382 !SCM_ENABLE_DEPRECATED.
383
41f77ff5
MV
3842002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
385
504d99c5 386 * async.c (scm_system_async_mark_for_thread): Only call
41f77ff5
MV
387 scm_i_thread_root when USE_THREADS is defined. Use scm_root
388 otherwise.
389
390 * scmsigs.c (take_signal): Only call scm_i_thread_root when
391 USE_THREADS is defined. Use scm_root otherwise.
392 (scm_sigaction_for_thread): Ignore THREAD argument when
393 USE_THREADS is not defined. Also, move THREAD argument defaulting
394 out of HAVE_SIGACTION section, which was a bug.
395
6d16b125
MV
3962002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
397
398 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
399 signal_handlers, not the closure that is used as the async.
400 The closure is stored in signal_handler_cells, as previously.
401
acfa1f52
MV
4022002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
403
404 * root.h (scm_root_state): Added 'block_async' slot.
405 (scm_active_asyncs): Removed abbrev.
406 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
407
408 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
409 abbrev.
410
411 * async.h (scm_call_with_blocked_asyncs,
412 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
413 scm_c_call_with_unblocked_asyncs): New prototypes.
414 (scm_mask_signals, scm_unmask_signals): Deprecated.
415 (scm_mask_ints): Turned into a macro.
416 * async.c (scm_mask_ints): Removed.
417 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
418 this should not be necessary.
419 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
420 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
421 deprecation warning and check for errornous use. Set block_asyncs
422 instead of scm_mask_ints.
423 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
424 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
425 scm_c_call_with_unblocked_asyncs): New.
426
427 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
428 Asyncs are enabled by default.
429
34010f56
NJ
4302002-10-09 Neil Jerram <neil@ossau.uklinux.net>
431
432 * vports.c (scm_make_soft_port): Allow vector argument to carry a
433 6th element: an input waiting thunk.
434 (sf_input_waiting): New.
435
9310d6f2
MV
4362002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
437
438 * root.c (root_mark): Mark active_asyncs slot.
439
440 * async.c (scm_async_click): Set the cdr of a executed handler
441 cell to SCM_BOOL_F, not SCM_EOL.
442 (scm_i_queue_async_cell): Queue the cell at the end of the list,
443 and only if the handler procedure is not already present.
444 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
445 with SCM_BOOL_F.
446 * scmsigs.c (scm_sigaction_for_thread): Likewise.
447
ac48c719
RB
4482002-10-04 Rob Browning <rlb@defaultvalue.org>
449
1360a142
RB
450 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
451
452 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
453 scm_lt_dlopenext, and scm_lt_dlerror.
454 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
455 and scm_lt_dlerror.
456 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
457 and scm_lt_dlerror.
458 (sysdep_dynl_init): switch to scm_lt_dlinit();
459
460 * Makefile.am (libguile_la_LIBADD): switch to use
461 libguile-ltdl.la.
462
504d99c5 463 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
ac48c719 464
497092c9
MV
4652002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
466
467 * scmsigs.h (scm_sigaction_for_thread): New prototype.
468 * scmsigs.c (got_signal): Removed.
469 (signal_handler_cells, signal_handler_threads): New.
470 (take_signal): Queue the cell of the signal for the specified
471 thread. Reset the signal handler on systems that don't have
472 sigaction.
473 (sys_deliver_signals): Removed.
474 (close_1): New.
475 (scm_sigaction_for_thread): Renamed from scm_sigaction and
476 extended to also set the thread of a signal and allocate a cell
477 for it. Keep the Scheme name "sigaction". Check that signum is
478 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
479 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
480 (scm_init_scmsigs): Allocate signal_handler_cells and
481 signal_handler_threads vectors.
482
483 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
484 that system asnycs and user asyncs are separated. Reimplemented
485 system asyncs to work per-thread.
486
487 * gc.c (scm_init_gc): Do not use scm_system_async.
488
489 * async.h (scm_asyncs_pending, scm_set_tick_rate,
490 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
491 Removed prototypes.
492 (scm_i_queue_async_cell): New.
493
494 * __scm.h (scm_asyncs_pending_p): Removed.
495 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
496 scm_asyncs_pending_p.
497
498 * async.h (scm_system_async_mark_for_thread): New prototype.
499
500 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
501
502 * root.h (scm_root_state): Added new "active_asyncs" slot.
503 * root.c (scm_make_root): Initialize it to SCM_EOL.
504
505 * coop-defs.h (coop_t): Added new "handle" slot.
506 * coop-threads.c (all_threads, scm_current_thread,
507 scm_all_threads, scm_i_thread_root): New.
508 (scm_threads_init): Add main thread to all_threads.
509 (scheme_launch_thread): Remove thread from all_threads when it
510 terminates.
511 (scm_call_with_new_thread): Initialize handle slot of coop_t
512 structure and add new thread to all_threads.
513 (scm_spawn_thread): Likewise.
514
515 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
516 * threads.c (scm_current_thread, scm_all_threads): Register as
517 primitives.
518
519 * dynl.c: Use scm_lt_ prefix for libltdl functions.
520
480fa28d
NJ
5212002-09-29 Neil Jerram <neil@ossau.uklinux.net>
522
523 * script.c (scm_compile_shell_switches): Fix bad spelling of
524 `explicitly' in comment.
525
5262002-09-28 Neil Jerram <neil@ossau.uklinux.net>
527
528 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
529 Refer to provided? in doc string rather than deprecated feature?.
530
3553e1d1
GH
5312002-09-24 Gary Houston <ghouston@arglist.com>
532
533 * inline.h (scm_double_cell): prevent reordering of statements
534 with any following code (for GCC 3 strict-aliasing).
535 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
536 the earlier version of the reordering prevention.
537
4ad0814a
HWN
5382002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
539
540 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
541
e88e4f2e
HWN
5422002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
543
544 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
545 protection.
546
1e71eafb
HWN
5472002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
548
549 * inline.h: include stdio.h
550
551 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
552
61ef9c1f
HWN
5532002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
554
dac04e9f
HWN
555 * gc-segment.c (scm_i_make_initial_segment): check user settings
556 for sanity.
557
558 * gc-malloc.c (scm_gc_init_malloc): check user settings for
559 sanity.
dac04e9f
HWN
560
561 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
562
ffd72400
HWN
563 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
564
565 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
1e71eafb
HWN
566 these won't ever wrap around with high memory usage. Thanks to
567 Sven Hartrumpf for finding this.
ffd72400 568
5bd4a949
HWN
569 * gc-freelist.c: include <stdio.h>
570
61ef9c1f
HWN
571 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
572
ffd0ef3b
MV
5732002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
574
a27e3d14
MV
575 * vectors.h (SCM_VECTOR_REF): New.
576
ffd0ef3b
MV
577 * snarf.h (SCM_DEFINE_PUBLIC): New.
578
f8a1712b
MV
5792002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
580
581 * socket.c (scm_addr_vector): Added size of address to arguments.
582 Use it to avoid accessing a non-existent path in a sockaddr_un.
583 Changed all callers.
584
7200a36b
HWN
5852002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
586
1383773b
HWN
587 * gc.h: remove DOUBLECELL card flags.
588
589 * gc-malloc.c (scm_calloc): try to use calloc() before calling
590 scm_realloc().
591
592 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
593 init loop; handle this from scm_init_card_freelist()
594
595 * gc-card.c (scm_init_card_freelist): init bit vector here.
596
7200a36b 597 * numbers.c (scm_make_real): prevent reordering of statements
8fa5786d 598 num2float.i.c (FLOAT2NUM): idem
7200a36b 599
9981de3a
HWN
6002002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
601
602 * eval.h: prepend libguile/ to include path
603
19647556
MV
6042002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
605
606 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
607