* Deprecated function scm_call_catching_errors.
[bpt/guile.git] / libguile / ChangeLog
index 57450f9..880fd96 100644 (file)
@@ -1,3 +1,322 @@
+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,
+       SCM_VALIDATE_INUM_MIN_DEF_COPY, SCM_VALIDATE_INUM_RANGE_COPY):
+       Perform all range checks based on the input value.  The former way
+       of using the value that is assigned to the target variable fails
+       if the assignment to the target variable itself can change the
+       value because of type conversion.
+
+       (SCM_ASSERT_RANGE):  Use scm_out_of_range to signal range errors.
+
+2000-06-30  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
+       doesn't yield any new cells.  In theory this could happen if all
+       cells allocated with NEWCELL are either in use or conservatively
+       marked and all cluster spine cells are conservatively marked.
+       (Thanks to Dirk.)
+
+2000-06-29  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_NALLOC):  Removed.
+
+       * error.c (scm_wta):  Removed sick dispatch code for memory
+       errors.  (More sick dispatches still to be removed.)
+
+       * numbers.c (scm_mkbig, scm_adjbig), ports.c (scm_make_port_type),
+       random.c (scm_i_copy_rstate, scm_c_make_rstate), smob.c
+       (scm_make_smob_type), srcprop.c (scm_make_srcprops), vectors.c
+       (scm_vector_set_length_x):  Now using scm_memory_error to signal
+       memory errors.
+
+2000-06-29  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h:  Removed some commented code and fixed some comments.
+
+       (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):  Removed.
+
+       * async.c:  Removed some commented code.
+
+2000-06-29  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_gc_mark, scm_gc_sweep, scm_must_malloc,
+       scm_must_realloc, scm_must_free, alloc_some_heap):  Use the
+       appropriate error signalling function.
+
+2000-06-29  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * root.h (scm_first_type):  Removed.
+
+2000-06-29  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (MIN_GC_YIELD):  Removed.
+
+2000-06-28  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * gc.c (scm_gc_for_newcell): don't try to do GC if it's blocked,
+       allocate instead.
+
+2000-06-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * async.c (scm_gc_async, scm_gc_vcell, scm_sys_gc_async_thunk):
+       Moved to gc.c.
+
+       (scm_init_async):  Moved initialization for scm_gc_async and
+       scm_gc_vcell to gc.c.  Moved initialization of scm_asyncs here
+       from gc.c.
+
+       * async.h (scm_gc_async):  Not globally visible any more.
+
+       * gc.c (scm_gc_stats):  Made callable even from within regions
+       where gc is blocked.
+
+       (scm_gc_end):  Eliminate the hardcoding of the marking of the
+       scm_gc_async from the gc core.
+
+       (scm_init_storage):  Don't initialize the scm_asyncs list here.
+       This is now done in asyncs.c.
+
+       (scm_gc_vcell):  Moved here from async.c.
+
+       (gc_async):  Renamed from scm_gc_async, moved here from async.c
+       and made static.
+
+       (gc_async_thunk):  Renamed from scm_sys_gc_async_thunk and moved
+       here from async.c.
+
+       (mark_gc_async):  New hook function for scm_after_gc_c_hook.
+
+       (scm_init_gc):  Added initialization of scm_gc_vcell and
+       gc_async.  Further, add mark_gc_async to scm_after_gc_c_hook.
+
+       * init.c (scm_boot_guile_1):  scm_init_gc requires asyncs to be
+       initialized.
+
+2000-06-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_igc):  Removed commented code that once was intended
+       to unprotect struct types with no instances.
+
+       * root.h (scm_type_obj_list):  Removed.
+
+2000-06-27  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * async.c (scm_init_async):  Switch to standard way of smob
+       initialization.
+
+2000-06-21  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * guile-doc-snarf.in: use cut instead of sed, that's much much
+       faster.  also, don't call basename more than needed.  and, to gain 
+       a couple of microseconds more, don't call cat needlessly.  (thanks 
+       to Brad Knotwell).
+
+2000-06-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * guile-snarf.awk.in, guile-snarf.in, snarf.h:  Rename SCM__I to
+       SCM_SNARF_INIT_START, SCM__D to SCM_SNARF_DOC_START, SCM__S to
+       SCM_SNARF_DOCSTRING_START and SCM__E to SCM_SNARF_DOCSTRING_END.
+
+2000-06-21  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * eval.c, eval.h (scm_top_level_lookup_closure_var): Added.
+       #include "libguile/fluids.h".
+
+       * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): New macro which replaces
+       SCM_CDR (scm_top_level_lookup_closure_var) everywhere.
+
+       * root.h (scm_top_level_lookup_closure_var,
+       scm_system_transformer): Removed.  (It's no sense in having the
+       *variable* be a "fluid".)
+
+       * root.c (mark_root): Removed marking of
+       s->top_level_lookup_closure_var and s->system_transformer.
+
+       * modules.c (scm_selected_module): the_module is now a fluid.
+
+2000-06-20  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * gc.h, tags.h: Be kind to compilers which must see hash signs in
+       column 0.  (Thanks to Ian Grant.)
+
+       * numbers.h: Put #ifdef HAVE_LONG_LONGS around declarations using
+       the long_long type.  (Thanks to Bernard Urban.)
+
 2000-06-20  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
 
        * gc.c, gc.h (scm_default_init_heap_size_1,