+2000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * root.[ch] (scm_call_catching_errors): Deprecated.
+
+ * root.c (scm_init_root): Initialize the root smob type using the
+ standard initialization functions.
+
+2000-07-17 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (unmemocopy): Don't rely on V being a list of at least
+ one element. Thanks to Bill Schottstaedt!
+
+2000-07-15 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.c (scm_done_free): new.
+ expanded comments about scm_done_malloc.
+
+ * gc.h: added prototype for scm_done_free
+
+2000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.h (scm_take_stdin): Removed.
+
+ * gc.h (SCM_VALIDATE_CELL): Delegate cell checks to function
+ scm_assert_cell_valid to allow extensions to the checking
+ functionality without need to recompile everything.
+
+ * gc.[ch] (scm_assert_cell_valid, scm_set_debug_cell_accesses_x):
+ Added as conditionally compiled functions for the case that
+ SCM_DEBUG_CELL_ACCESSES is enabled.
+
+ * gc.c (debug_cells_p): Added to indicate whether compile-time
+ included cell access debugging is run-time enabled.
+
+ * gc.[ch] (scm_gc_running_p): Added to indicate that scm_igc is
+ being executed. Intended to be used instead of scm_gc_heap_lock
+ at most places.
+
+ * error.c (scm_error), gdbint.c (SCM_GC_P): Use scm_gc_running_p
+ instead of scm_gc_heap_lock.
+
+ * gc.c (scm_igc): Set scm_gc_running_p to true while running.
+
+ * gc.c (scm_mark_locations): Don't mark free cells.
+
+ * weaks.c (scm_scan_weak_vectors): Use SCM_FREE_CELL_P instead of
+ SCM_FREEP.
+
+2000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_mark_locations): Minimized some variable scopes and
+ simplified the code a bit.
+
+2000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.h (SCM_SET_FREE_CELL_TYPE, SCM_SET_FREE_CELL_CDR,
+ SCM_FREE_CELL_P, SCM_FREE_CELL_CDR): Added since free cells
+ should not be accessed via SCM_C[AD]R. Further, using dedicated
+ macros to access free cells allows all other cell accessing macros
+ to treat acesses to free cells as errors, thus enabling better
+ error checks for cell accesses. SCM_FREE_CELL_P is supposed to
+ replace SCM_FREEP some time.
+
+ * gc.h (SCM_NEWCELL, SCM_NEWCELL2), gc.c (map_free_list,
+ free_list_length, scm_check_freelist, scm_debug_newcell,
+ scm_debug_newcell2, freelist_length, scm_gc_for_newcell,
+ scm_gc_mark, scm_gc_sweep, init_heap_seg): Only use the dedicated
+ cell accessors when accessing free cells.
+
+2000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.h (SCM_CELL_WORD, SCM_CELL_OBJECT): Treat the referenced
+ object as const in order to make the compiler warn about code like
+ SCM_CELL_WORD (x, n) = y. Instead, SCM_SET_CELL_WORD (x, n, y)
+ should be used.
+
+ (SCM_CELL_WORD_LOC, SCM_CARLOC, SCM_CDRLOC): Return the address
+ as an address to a non-const object, since these macros are used
+ to allow direct write access to objects.
+
+2000-07-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * hashtab.c (scm_hash_fn_create_handle_x): Signal an error if the
+ given hash table has no slots.
+
+2000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (policy_on_error): Added in order to allow alloc_some_heap
+ to react to malloc failures in a context dependent way.
+
+ (scm_check_freelist): No need to flush streams before abort().
+
+ (scm_gc_for_newcell): Try to allocate new memory in three phases:
+ grow heap if preferred, if still no memory available collect
+ garbage, if still no memory available grow heap.
+
+ (heap_segment_table_size): Added to always reflect the actual
+ size of the heap segment table, because scm_n_heap_segs may differ
+ from the heap segment table size.
+
+ (alloc_some_heap): In case of malloc failure, react according to
+ the new policy_on_error parameter (either return to caller or
+ abort immediately). Further, keep heap_segment_table_size up to
+ date.
+
+ (scm_init_storage): Initialize heap_segment_table_size.
+
+2000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gh.h: Don't include <stdio.h>. Thanks to Han-Wen Nienhuys for
+ the hint.
+
+2000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
+ SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
+ SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
+ SCM_ORD_SIG, SCM_NUM_SIGS): Re-introduce these as deprecated
+ symbols.
+
+ * error.c (scm_wta): Re-introduce dispatching for SCM_OUTOFRANGE
+ and SCM_NALLOC, but as a deprecated feature.
+
+2000-06-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * debug.c: Added #include fluids.h.
+
+ * numbers.c (scm_gr_p, scm_leq_p, scm_geq_p): Turned into
+ primitive generics. (Thanks to Nicolas Neuss.)
+
+2000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (alloc_some_heap): Use scm_memory_error to indicate a
+ failed attempt to get additional memory from the system.
+
+ (scm_gc_for_newcell): Changed the control structure to make the
+ behaviour explicit for the case that gc is not able to free any
+ cells.
+
+2000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * __scm.h (SCM_OUTOFRANGE): Removed.
+
+ * error.c (scm_wta): Removed sick dispatch code for range
+ errors. (More sick dispatches still to be removed.)
+
+ * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
+ scm_hash_fn_remove_x): Eliminate redundant test for if unsigned
+ value is non-negative. Use scm_out_of_range to signal range
+ errors.
+
+ * hooks.c (make_hook), unif.c (scm_aind): Use scm_out_of_range to
+ signal range errors.
+
+ * list.c (scm_list_ref, scm_list_set_x, scm_list_cdr_set_x): Fix
+ error reporting (now uses original input parameter to report wrong
+ type argument errors). Use SCM_OUT_OF_RANGE to report range
+ errors and SCM_WRONG_TYPE_ARG to report type errors.
+
+ * strings.c (scm_substring): Make range checks for negative
+ values explicit (former behaviour relied on an implicit
+ conversion from signed to unsigned). Don't use SCM_ASSERT for
+ range checks.
+
+ * unif.c (scm_aind, scm_transpose_array, scm_bit_set_star_x,
+ scm_bit_count_star): Use scm_out_of_range to signal range
+ errors.
+
+ * unif.c (scm_transpose_array, scm_bit_position), vectors.c
+ (scm_vector_ref, scm_vector_set_x, scm_vector_move_left_x,
+ scm_vector_move_right_x): Use SCM_ASSERT_RANGE to check ranges.
+
2000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
* validate.h (SCM_VALIDATE_INUM_MIN_COPY,