* Deprecated function scm_call_catching_errors.
[bpt/guile.git] / libguile / ChangeLog
index 0a131f1..880fd96 100644 (file)
@@ -1,3 +1,396 @@
+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,
+       scm_default_min_yield_1, scm_default_init_heap_size_2,
+       scm_default_min_yield_2, scm_default_max_segment_size): New global
+       variables.  Can be customized by the application before booting
+       Guile.  (We might want to be able to control these parameters
+       dynamically through the "options interface" in the future, but
+       note that that is additional functionality.  Here we're giving
+       default values which the environment variables can override.)
+
+       * list.c (scm_cons_star): Updated comment.
+
+       * smob.h: Changed comments for scm_make_smob_type and
+       scm_make_smob_type_mfpe, warning that the latter might be
+       deprecated in a future release.
+
+2000-06-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.[ch] (scm_cons_star/cons*):  Renamed from
+       scm_list_star/list*.
+
+       * list.[ch] (scm_list_star/list*):  Provided as a deprecated alias
+       for scm_cons_star/cons*.
+
+       * gc.c (scm_protect_object):  Updated comment.
+
+       * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX):  Removed.
+
+       * tags.h (SCM_UNPACK_CAR, SCM_NDOUBLE_CELLP):  Removed.
+
+2000-06-19  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * init.c, init.h (scm_initialized_p): Renamed from `initialized'
+       and made global.
+
+       * gdbint.c (gdb_print): Print warning instead of calling scm_write
+       if Guile isn't yet initialized.
+
+       * print.c (scm_current_pstate, scm_make_print_state): Simplified
+       tests, using the assumption that Guile has been initialized.
+
+Sun Jun 18 14:45:21 2000  Greg J. Badros  <gjb@cs.washington.edu>
+
+       * print.c (s_scm_current_pstate): Do not segfault when the
+       print_state_pool is unitialized in `current-pstate', and better
+       verify its state before altering it in scm_make_print_state().
+
+2000-06-18  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * scmsigs.c (s_scm_sigaction): guard the SIGIOT case with an
+       #ifdef -- it's missing on at least one platform.  (thanks to
+       Jan Nieuwenhuizen).
+
+2000-06-16  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.c (list*):  Added documentation from common-list.scm.
+
+2000-06-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_unprotect_object):  The reference count is guaranteed
+       to be a positive number.
+
+2000-06-15  Mikael Djurfeldt  <mdj@thalamus.nada.kth.se>
+
+       * eval.c: Updated comment above scm_map.
+
+2000-06-14  Mikael Djurfeldt  <mdj@mdj.nada.kth.se>
+
+       * gc.c (scm_protect_object): Avoid looking up the object handle
+       twice.
+       (scm_unprotect_object): Abort if scm_unprotect_object is called on
+       an unprotected object.
+
 2000-06-14  Michael Livshin  <mlivshin@bigfoot.com>
 
        * gc.c (scm_unprotect_object): fix a nasty typo bug (thanks to
 
        * numbers.c (scm_adjbig): Ditto.
 
+Tue Apr 18 08:22:41 2000  Greg J. Badros  <gjb@cs.washington.edu>
+
+       * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE 
+       when testing high-end of the range.  Mikael Djurfeldt noticed this 
+       anomaly -- thanks Mikael!
+
 2000-04-18  Dirk Herrmann  <D.Herrmann@tu-bs.de>
 
        * unif.c (l2ra):  Don't eliminate the call to scm_array_set_x