+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
+ Dirk Herrmann).
+
2000-06-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* socket.c (scm_getsockopt): Changed type for `optlen' from int 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