* scmsigs.c (got_signal): Removed.
(signal_handler_cells, signal_handler_threads): New.
(take_signal): Queue the cell of the signal for the specified
thread. Reset the signal handler on systems that don't have
sigaction.
(sys_deliver_signals): Removed.
(close_1): New.
(scm_sigaction_for_thread): Renamed from scm_sigaction and
extended to also set the thread of a signal and allocate a cell
for it. Keep the Scheme name "sigaction". Check that signum is
within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
(scm_sigaction): Implement in terms of scm_sigaction_for_thread.
(scm_init_scmsigs): Allocate signal_handler_cells and
signal_handler_threads vectors.
* coop-threads.c (all_threads, scm_current_thread,
scm_all_threads, scm_i_thread_root): New.
(scm_threads_init): Add main thread to all_threads.
(scheme_launch_thread): Remove thread from all_threads when it
terminates.
(scm_call_with_new_thread): Initialize handle slot of coop_t
structure and add new thread to all_threads.
(scm_spawn_thread): Likewise.
with any following code (for GCC 3 strict-aliasing).
* numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
the earlier version of the reordering prevention.
for sanity.
* gc-malloc.c (scm_gc_init_malloc): check user settings for
sanity.
(scm_gc_register_collectable_memory): prevent overflow of memory
counts.
* gc-freelist.c (scm_init_freelist): check user settings for sanity.
* gc-malloc.c (scm_gc_register_collectable_memory): use floats;
these won't ever wrap around with high memory usage.
* gc-freelist.c: include <stdio.h>
* gc-malloc.c: add DEBUGINFO for mtrigger GCs.
* gc-malloc.c (scm_gc_register_collectable_memory): use floats;
these won't ever wrap around with high memory usage.
* gc-malloc.c: add DEBUGINFO for mtrigger GCs.
* gc-malloc.c (scm_calloc): try to use calloc() before calling
scm_realloc().
* gc-segment.c (scm_i_initialize_heap_segment_data): remove card
init loop; handle this from scm_init_card_freelist()
* gc-card.c (scm_init_card_freelist): init bit vector here.
malloc.
* gc-segment.c (scm_i_get_new_heap_segment): remove cluster cruft:
only use SCM_MIN_HEAP_SEG_SIZE.
* ports.c (scm_add_to_port_table): add backwards compatibility
function
* ports.h: use scm_i_ prefix for port table and port table size.