+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
+ size_t.
+ (scm_accept, scm_getsockname, scm_getpeername, scm_recvfrom):
+ Ditto for `tmp_size'.
+ (scm_addr_buffer_size): Changed type from int to size_t.
+
+ * random.c: #include <string.h>. (Needed by memcpy.)
+
+ * guile-snarf.awk.in: Replace the dot_doc_file arg with "-",
+ indicating stdin, instead of "" and don't reset ARGC. This is a
+ workaround for `nawk' in AIX 4.3 on RS6000 but, as far as I know,
+ it is correct, and perhaps even better.
+
+2000-06-14 Gary Houston <ghouston@arglist.com>
+
+ * scmsigs.c (scm_init_scmsigs): if HAVE_SIGINTERRUPT is not
+ defined, add SA_RESTART to the sigaction flags correctly
+ (thanks to Dale P. Smith).
+
+2000-06-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * strings.c: #include <string.h>. (Thanks to Bill Schottstaedt.)
+
+ * net_db.c (scm_resolv_error): Only use macro NETDB_INTERNAL if
+ defined. It isn't on sgi irix 5.3. (Thanks to Bill Schottstaedt.)
+
+ * Makefile.am (.c.doc): Pipe output (the .x contents) to /dev/null.
+
+2000-06-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * fports.c (scm_setvbuf): Use `free' instead of `scm_must_free'
+ since read and write buffers are allocated by `malloc'.
+
+ * Makefile.am: Removed old test code.
+
+ * gh_test_c.c, gh_test_repl.c: Removed.
+
+2000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * iselect.c (SCM_NLONGBITS): Add workaround for the Sun 4.2
+ compiler.
+
+ * inet_aton.c (inet_aton): Cast init value for `cp'.
+
+ * ramap.c (s_scm_array_fill_x): Cast `ve' properly in case
+ `scm_tc7_uvect'.
+
+ * symbols.c (scm_intern_obarray_soft,
+ scm_sysintern0_no_module_lookup): Cast `name' to unsigned char ptr
+ in calls to scm_strhash.
+
+ * strports.c (st_resize_port): Substituted SCM_UCHARS for
+ SCM_CHARS.
+ (st_write): Cast argument to strncpy to char ptr.
+ (scm_mkstrport): Substituted SCM_ROUCHARS for SCM_ROCHARS.
+ (scm_strport_to_string): Cast argument to scm_makfromstr to char
+ ptr.
+
+ * ports.c (scm_ungetc): Cast value to unsigned char ptr before
+ storing in putback_buf.
+ (scm_unread_string): Substituted SCM_ROCHARS for SCM_ROUCHARS.
+
+ * ioext.c (s_scm_read_line): Cast result of call to
+ scm_do_read_line to unsigned char ptr.
+
+ * gdbint.c (SEND_STRING): Cast argument to char pointer.
+
+ * fports.c (fport_flush): Declare `ptr' as unsigned char (was
+ char).
+
+ * Makefile.am (DOT_DOC_FILES): List doc-files explicitly. (We
+ shouldn't use Make rules which aren't supported by most Make
+ programs.)
+ (OMIT_DEPENDENCIES): Defined to "libguile.h ltdl.h". (We don't
+ want these dependencies recorded, since they would get bogus
+ relative paths; libguile.h is only used in gh.h and guile.c.)
+ (EXTRA_DOT_X_FILES, EXTRA_DOT_DOC_FILES): New variables.
+ (guile-procedures.txt): Depend on EXTRA_DOT_DOC_FILES.
+ (modinclude_HEADERS): Removed kw.h.
+
+ * guile-snarf.in: Change regexp "^SCM__I" --> "^ *SCM__I".
+ (The preprocessor might insert spaces before the identifier.)
+
+ * snarf.h (SCM_SNARF_HERE, SCM_SNARF_INIT, SCM_SNARF_DOCS):
+ Renamed from SCM_HERE, SCM_INIT, SCM_DOCS.
+
+ * smob.h (scm_smobfuns): Removed deprecated type.
+
+ * smob.c, smob.h (scm_newsmob): Removed deprecated function.
+ (Replaced by `scm_make_smob_type'.)
+
+ * keywords.c (scm_tc16_kw): Removed deprecated type.
+ (Replaced by scm_tc16_keyword.)
+
+ * kw.h: Removed deprecated header file.
+
+ * evalext.c (serial-map): Removed deprected alias for scm_map.
+ (Has been replaced by `map-in-order'.)
+
+ * ramap.c (serial-array-copy!, serial-array-map!): Removed
+ depracted aliases. (Replaced by `array-copy-in-order!' and
+ `array-map-in-order'.)
+
+2000-06-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * gc.h (SCM_VALIDATE_CELL): Rewritten.
+ (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
+ SCM_SET_CELL_OBJECT): Use new version of SCM_VALIDATE_CELL.
+ (Thanks to Han-Wen Nienhuys.)
+
+2000-06-10 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guile-doc-snarf.in: don't pipe the CPP output right into sed --
+ write it to the temp file first and check the CPP return code.
+ (I introduced this bug earlier, and this probably caused people
+ with non-GNU C preprocessors to get empty *.x files and not to
+ have the build fail right away...).
+
+ * scmsigs.c (s_scm_sigaction): guard the SIGSYS case with an ifdef
+ -- at least my libc5-based Linux system doesn't define SIGSYS.
+
+2000-06-08 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * snarf.h, guile-snarf.awk.in, guile-snarf.in: Replaced snarf
+ markers with identifiers (SCM__I, SCM__D, SCM__S, SCM__E).
+ (Thanks to Bernard Urban.)
+
+2000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * modules.c (scm_system_module_env_p): Fixed detection of system
+ modules.
+
+2000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
+ `program error signals' because they can't currently be handled by
+ Scheme code.
+
+2000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * procs.h (SCM_SET_SUBRF): Added.
+
+ * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
+ SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
+ report.
+
+2000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
+ value.
+
+ * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
+ scm_merge_list_step): Don't take the address of SCM_CAR. Use
+ SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
+
+2000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
+ replacement for !SCM_FALSEP.
+
+ * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
+ (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
+ (scm_primitive_load), print.c (scm_simple_format), procs.c
+ (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
+ (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
+ (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
+ (scm_string_to_obarray_symbol), throw.c (scm_catch,
+ scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
+ scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
+ validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
+ uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
+
+2000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (scm_badformalsp): New static function.
+ (SCM_CEVAL): Check arguments for procedure-with-setter closures.
+ (Thanks to Keisuke Nishida.)
+
+ The major reason for Guile's slow loading speed has been the fact
+ that a chain of Scheme level procedures has been evaluated for
+ every top-level symbol lookup during the first pass through the
+ code.
+
+ The following is a kludge which I suggested four years ago, and
+ which I've repeatedly suggested since. Personally, I've never
+ been bothered by Guile's slow loading speed, so I thought I would
+ let someone else do it...
+
+ But since the new environments will be included first in
+ Guile-1.5, I thought it would make people happy to get the kludge
+ into 1.4.
+
+ * modules.c: Added #include "libguile/vectors.h";
+ Added #include "libguile/hashtab.h";
+ Added #include "libguile/struct.h";
+ Added #include "libguile/variable.h";
+ Capture Scheme level `module-make-local-var!' to be used in the
+ standard eval closure.
+ (scm_standard_eval_closure): New primitive.
+
+ * modules.h (scm_standard_eval_closure): Declare.
+
+ * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
+ instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
+
+ * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
+ standard eval closures.
+
+ * variable.c: Code layout fixes.
+
+2000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * Makefile.am: Added LIBS line to libpath which accidentally
+ disappeared in the change of 2000-06-01.
+ (Thanks to Dale P. Smith.)
+
+2000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * scmsigs.c (scm_segfault): Removed. (Was probably added by
+ mistake since it is not mentioned in ChangeLog.)
+
+ * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
+ avoid compiler warnings in gcc. (Does this work for other
+ compilers?)
+
+2000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
+ abort ().
+ (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
+ SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
+ the address of these expressions since they use SCM_VALIDATE_CELL.
+ (Thanks to Bernard Urban.)
+
+ * dynl.c: Changed #include <ltdl.h> --> #include
+ "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
+
+2000-06-01 Craig Brozefsky <craig@red-bean.com>
+
+ * Makefile.am: libguile_la_LDFLAGS gets -version-info args
+ from GUILE-VERSION definition of LIBGUILE version. Added to
+ libpath.h definitions for guileversion and libguileversion which
+ both get their values from GUILE-VERSION definition.
+
+2000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
+ file: Code using numbers should not be required to include
+ smob.h.
+
+2000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
+ mit-pthreads.c, mit-pthreads.h: Deleted.
+
+ * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
+ references to deleted files and fsu/mit thread support in
+ general.
+
+2000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * hooks.c (symbol_name, scm_create_hook): Restored the original
+ behaviour of scm_create_hook. Changing it was bad as Carl
+ R. Witty has pointed out.
+
+ * gc.c (scm_init_gc): We can still rely on scm_create_hook to
+ protect the object.
+
+2000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
+ soon not be done by scm_create_hook any longer.
+
+ * hooks.c (make_hook, print_hook, scm_create_hook,
+ scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
+ SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
+ scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
+ longer have names. As an intermediate solution, the name
+ predicate is emulated via object properties, but use of this
+ feature is deprecated.
+
+ * hooks.h (scm_free_hook): Removed, as it is never defined.
+
+2000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
+ Un-deprecated since otherwise user code can't determine whether a
+ number fits into an inum any longer. The names should be changed
+ some time, though.
+
+ * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
+
+ * tags.h (SCM_UNPACK_CAR): Deprecated.
+
+2000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
+ fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
+ (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
+ numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
+ Replace SCM_UNPACK_CAR appropriately. Don't access cells via
+ SCM_{SET}?C[AD]R unless they are known to be cons cells.
+
+ * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
+ init_heap_seg): Remove unused struct member variable 'valid'.
+
+2000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
+ scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
+ SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
+ procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
+ variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
+ appropriately.
+
+2000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * gc.c (free_list_length), hash.c (scm_hasher), macros.c
+ (scm_macro_type), objects.c (scm_class_of), options.c
+ (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
+ (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
+
+2000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
+ SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
+
+ * eval.c (scm_force): Add documentation.
+
+ * eval.c (scm_force, scm_cons_source): Don't access cells via
+ SCM_{SET}?C[AD]R unless they are known to be cons cells.
+
+2000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
+ (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
+
+ * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
+ nosve #endif conditionally compiled code.
+
+2000-05-23 Michael Livshin <mlivshin@bigfoot.com>
+
+ * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
+
+2000-05-22 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guile-doc-snarf.in: put the preprocessed file through sed to
+ trim all lines to 1024 chars. I hope it doesn't break anybody's
+ sed. we'll see. (note: this is lossy trimming, i.e. the spill
+ isn't wrapped around but actually chopped off. this seemed to me
+ safe because the current snarfer doesn't understand multi-line
+ cookies anyway. in the long term, it would be nice not to depend
+ on AWK for anything.)
+
+ * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
+ the previous change to this macros, after deciding to torture the
+ snarfer instead.
+
2000-05-21 Michael Livshin <mlivshin@bigfoot.com>
* gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
* 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