Smob-related creanup.
[bpt/guile.git] / libguile / ChangeLog
index 65c3d9f..37d79f5 100644 (file)
+2000-12-08  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * tags.h (SCM_TYP16_PREDICATE): New macro.
+       * arbiters.c (scm_tc16_arbiter): Typed as scm_bits_t.
+       (arbiter_print): Renamed from prinarb.
+       (scm_init_arbiters): Don't use scm_make_smob_type_mfpe.
+       * async.c (tc16_async): Typed as scm_bits_t.
+       (SCM_ASYNCP): Use SCM_TYP16_PREDICATE.
+       (async_mark): Renamed from mark_async.
+       (scm_init_async): Updated.
+       * continuations.h (SCM_CONTINUATIONP): Use SCM_TYP16_PREDICATE.
+       * debug.c (scm_tc16_memoized, scm_tc16_debugobj): Typed as scm_bits_t.
+       (memoized_print): Renamed from prinmemoized.
+       (debugobj_print): Renamed from prindebugobj.
+       (scm_init_debug): Don't use scm_make_smob_type_mfpe.
+       * debug.h (scm_tc16_memoized, scm_tc16_debugobj): Typed as scm_bits_t.
+       (SCM_DEBUGOBJP, SCM_MEMOIZEDP): Use SCM_TYP16_PREDICATE.
+       * dynl.c (scm_tc16_dynamic_obj): Typed as scm_bits_t.
+       (dynl_obj_mark): Renamed from mark_dynl_obj.
+       (dynl_obj_print): Renamed from print_dynl_obj.
+       (scm_dynamic_object_p): Use SCM_TYP16_PREDICATE.
+       (scm_init_dynamic_linking): Updated.
+       * dynwind.c (SCM_GUARDSP): Use SCM_TYP16_PREDICATE.
+       (tc16_guards): Typed as scm_bits_t.
+       (guards_print): Renamed from printguards.
+       (scm_init_dynwind): Don't use scm_make_smob_type_mfpe.
+       * environments.c (scm_tc16_environment, scm_tc16_observer):
+       Typed as scm_bits_t.
+       (environment_mark, environment_free, environment_print,
+       observer_mark, observer_print, leaf_environment_mark,
+       leaf_environment_free, leaf_environment_print,
+       eval_environment_mark, eval_environment_free,
+       eval_environment_print, import_environment_mark,
+       import_environment_free, import_environment_print,
+       export_environment_mark, export_environment_free,
+       export_environment_print): Renamed from mark_environment,
+       free_environment, print_environment, mark_observer,
+       print_observer, mark_leaf_environment, free_leaf_environment,
+       print_leaf_environment, mark_eval_environment,
+       free_eval_environment, print_eval_environment,
+       mark_import_environment, free_import_environment,
+       print_import_environment, mark_export_environment,
+       free_export_environment, and print_export_environment, respectively.
+       (free_observer): Removed.
+       (leaf_environment_funcs, eval_environment_funcs,
+       import_environment_funcs, export_environment_funcs,
+       scm_environments_prehistory): Updated.
+       * environments.h (scm_tc16_environment, scm_tc16_observer):
+       Typed as scm_bits_t.
+       * eval.c (scm_tc16_promise): Typed as scm_bits_t.
+       (promise_print): Renamed from prinprom.
+       (scm_promise_p): Use SCM_TYP16_PREDICATE.
+       (scm_init_eval): Updated.
+       * eval.h (scm_tc16_promise): Typed as scm_bits_t.
+       * filesys.c (scm_tc16_dir): Typed as scm_bits_t.
+       (scm_init_filesys): Don't use scm_make_smob_type_mfpe.
+       * filesys.h (scm_tc16_dir): Typed as scm_bits_t.
+       * fluids.c (scm_tc16_fluid): Typed as scm_bits_t.
+       (fluid_print): Renamed from print_fluid.
+       (scm_init_fluids): Don't use scm_make_smob_type_mfpe.
+       * fluids.h (scm_tc16_fluid): Typed as scm_bits_t.
+       * fports.c (fport_print): Renamed from prinfport.
+       (scm_make_fptob): Updated.
+       * guardians.c (tc16_guardian): Typed as scm_bits_t.
+       * hooks.c (scm_tc16_hook): Typed as scm_bits_t.
+       (hook_print): Renamed from print_hook.
+       (scm_init_hooks): Updated.
+       * hooks.h (scm_tc16_hook): Typed as scm_bits_t.
+       (SCM_HOOKP): Use SCM_TYP16_PREDICATE.
+       * keywords.c (scm_tc16_keyword): Typed as scm_bits_t.
+       (keyword_print): Renamed from prin_keyword.
+       (scm_init_keywords): Don't use scm_make_smob_type_mfpe.
+       * keywords.h (scm_tc16_keyword): Typed as scm_bits_t.
+       * macros.c (scm_tc16_macro): Typed as scm_bits_t.
+       (scm_macro_p, scm_macro_type): Use SCM_TYP16_PREDICATE.
+       (scm_init_macros): Don't use scm_make_smob_type_mfpe.
+       * macros.h (scm_tc16_macro): Typed as scm_bits_t.
+       * mallocs.c (scm_tc16_malloc): Typed as scm_bits_t.
+       (malloc_free): Renamed from fmalloc.
+       (malloc_print): Renamed from prinmalloc.
+       (scm_init_mallocs): Don't use scm_make_smob_type_mfpe.
+       * mallocs.h (scm_tc16_malloc): Typed as scm_bits_t.
+       * modules.h (SCM_EVAL_CLOSURE_P): Use SCM_TYP16_PREDICATE.
+       (scm_tc16_eval_closure): Renamed from scm_eval_closure_tag.
+       (scm_standard_eval_closure, scm_init_modules): Updated.
+       * ports.c (scm_tc16_void_port): Typed as scm_bits_t.
+       * print.c (scm_tc16_port_with_ps): Typed as scm_bits_t.
+       (port_with_ps_print): Renamed from print_port_with_ps.
+       (scm_init_print): Updated.
+       * print.h (scm_tc16_port_with_ps): Typed as scm_bits_t.
+       (SCM_PORT_WITH_PS_P): Use SCM_TYP16_PREDICATE.
+       * random.c (scm_tc16_rstate): Typed as scm_bits_t.
+       (rstate_free): Renamed from free_rstate.
+       (scm_init_random): Don't use scm_make_smob_type_mfpe.
+       * random.h (scm_tc16_rstate): Typed as scm_bits_t.
+       (SCM_RSTATEP): Use SCM_TYP16_PREDICATE.
+       * regex-posix.c (scm_tc16_regex): Typed as scm_bits_t.
+       (regex_free): Renamed from free_regex.
+       (scm_init_regex_posix): Don't use scm_make_smob_type_mfpe.
+       * regex-posix.h (scm_tc16_regex): Typed as scm_bits_t.
+       * root.c (scm_tc16_root): Typed as scm_bits_t.
+       (root_mark): Renamed from mark_root.
+       (root_print): Renamed from print_root.
+       (scm_init_root): Updated.
+       * root.h (scm_tc16_root): Typed as scm_bits_t.
+       (SCM_ROOTP): Use SCM_TYP16_PREDICATE.
+       * smob.c (free_print): Renamed from freeprint.
+       (scm_smob_prehistory): Don't use scm_make_smob_type_mfpe.
+       * smob.h (SCM_SMOB_PREDICATE): Use SCM_TYP16_PREDICATE.
+       * srcprop.c (scm_tc16_srcprops): Typed as scm_bits_t.
+       (srcprops_mark): Renamed from marksrcprops.
+       (srcprops_free): Renamed from freesrcprops.
+       (srcprops_print): Renamed from prinsrcprops.
+       (scm_init_srcprop): Don't use scm_make_smob_type_mfpe.
+       * srcprop.h (scm_tc16_srcprops): Typed as scm_bits_t.
+       (SRCPROPSP): Use SCM_TYP16_PREDICATE.
+       * threads.c (scm_tc16_thread, scm_tc16_mutex, scm_tc16_condvar):
+       Typed as scm_bits_t.
+       * threads.h (scm_tc16_thread, scm_tc16_mutex, scm_tc16_condvar):
+       Typed as scm_bits_t.
+       (SCM_THREADP, SCM_MUTEXP, SCM_CONDVARP): Use SCM_TYP16_PREDICATE.
+       * throw.c (tc16_jmpbuffer): Renamed from scm_tc16_jmpbuffer.
+       (make_jmpbuf): Updated.
+       (tc16_lazy_catch): Typed as scm_bits_t.
+       (SCM_JMPBUFP, SCM_LAZY_CATCH_P): Use SCM_TYP16_PREDICATE.
+       (jmpbuffer_print): Renamed from printjb.
+       (lazy_catch_print): Renamed from print_lazy_catch.
+       (scm_init_throw): Don't use scm_make_smob_type_mfpe.
+       * unif.c (scm_tc16_array): Typed as scm_bits_t.
+       (array_mark): Renamed from markra.
+       (array_free): Renamed from freera.
+       (scm_init_unif): Don't use scm_make_smob_type_mfpe.
+       * unif.h (scm_tc16_array): Typed as scm_bits_t.
+       (SCM_ARRAYP): Use SCM_TYP16_PREDICATE.
+       * validate.h (SCM_VALIDATE_SMOB): Use SCM_TYP16_PREDICATE.
+       * variable.c (scm_tc16_variable): Typed as scm_bits_t.
+       (variable_print): Renamed from prin_var.
+       (variable_equalp): Renamed from var_equal.
+       (scm_markvar): Removed.
+       (scm_init_variable): Don't use scm_make_smob_type_mfpe.
+       * variable.h (scm_tc16_variable): Typed as scm_bits_t.
+
+2000-12-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * feature.c (scm_add_feature), gh_data.c (gh_symbol2scm), goops.c
+       (scm_sys_prep_layout_x, scm_make_class, scm_add_slot,
+       scm_init_goops), load.c (init_build_info), print.c
+       (scm_init_print), read.c (scm_lreadr), snarf.h (SCM_SYMBOL,
+       SCM_GLOBAL_SYMBOL), stacks.c (scm_init_stacks), struct.c
+       (scm_make_struct_layout), symbols.c (scm_sysintern0,
+       scm_string_to_symbol, scm_gensym), throw.c
+       (scm_handle_by_message):  Use scm_mem2symbol or scm_str2symbol
+       instead of scm_intern_* to create a symbol object.
+
+       * goops.c (Intern):  Removed.
+
+       (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4, build_class_class_slots,
+       create_basic_classes, scm_class_name, scm_class_direct_supers,
+       scm_class_direct_slots, scm_class_direct_subclasses,
+       scm_class_direct_methods, scm_class_precedence_list,
+       scm_class_slots, scm_class_environment,
+       scm_generic_function_methods, scm_method_generic_function,
+       scm_method_specializers, scm_method_procedure,
+       scm_accessor_method_slot_definition, purgatory, scm_make,
+       make_stdcls, create_standard_classes, make_class_from_template,
+       scm_make_class):  Replaced calls to Intern with calls to
+       scm_str2symbol.
+
+       * ramap.c (init_raprocs):  Use scm_symbol_binding instead of
+       scm_intern.
+
+       * symbols.c (scm_sym2vcell):  Add a bogus return to avoid compiler
+       warnings.
+
+       * unif.c (scm_array_prototype):  Fix prototype return value for
+       svects and llvects.
+
+2000-12-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * symbols.[ch] (scm_mem2symbol, scm_str2symbol):  New functions.
+       These shall replace all those calls to scm_intern... which are
+       only required to create a scheme symbol from a C string or a field
+       of chars.
+
+2000-12-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * environments.c (DEFAULT_OBARRAY_SIZE), gc.c
+       (DEFAULT_SYMHASH_SIZE):  Added to locally determine arbitrary
+       default values for obarrays, thus removing the dependency from
+       scm_symhash_dim.
+
+       * environments.c (scm_make_leaf_environment,
+       scm_make_eval_environment), gc.c (scm_init_storage):  Don't use
+       scm_symhash_dim.
+
+       * symbols.c (NUM_HASH_BUCKETS), symbols.[ch] (scm_symhash_dim):
+       Removed.
+
+       * symbols.c (scm_sym2vcell, scm_sysintern0_no_module_lookup):
+       Eliminate a redundant SCM_IMP test.
+
+       (scm_sym2vcell, scm_sysintern0_no_module_lookup):
+       Don't assume a fixed obarray size any more.  
+
+2000-12-07  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_init_gc):  gc_async is already protected from gc,
+       namely via scm_asyncs.  Thanks to Keisuke Nishida for pointing
+       this out.
+
+2000-12-07  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * smob.h (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
+       scm_smob_apply_3): Removed declarations.
+       (scm_set_smob_apply): Takes unsigned integers.
+       (scm_make_smob_type_mfpe, scm_set_smob_mfpe): Deprecated.
+       * smob.c (scm_smob_apply_0_000, scm_smob_apply_1_010,
+       scm_smob_apply_2_020): Removed.
+       (scm_set_smob_apply): Takes unsigned integers + some optimization.
+       (Thanks to Dirk Herrmann)
+       (scm_make_smob_type_mfpe, scm_set_smob_mfpe): Deprecated.
+
+2000-12-07  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * smob.h (SCM_SMOB_APPLICABLE_P, SCM_SMOB_APPLY_0,
+       SCM_SMOB_APPLY_1, SCM_SMOB_APPLY_2, SCM_SMOB_APPLY_3): New macros.
+       * eval.c (SCM_CEVAL, SCM_APPLY): Use macros above.
+       * procprop.c (scm_i_procedure_arity): Ditto.
+       * smob.c (scm_make_smob_type): Initialize gsubr_type.
+
+2000-12-06  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * smob.h (scm_smob_descriptor): New fields `apply_0', `apply_1',
+       `apply_2', and `apply_3'.
+       * smob.c (scm_make_smob_type): Init new fields.
+       (SCM_SMOB_APPLY0, SCM_SMOB_APPLY1, SCM_SMOB_APPLY2, SCM_SMOB_APPLY3):
+       New macros.
+       (scm_smob_apply_0_000, scm_smob_apply_0_010, scm_smob_apply_0_020,
+       scm_smob_apply_0_030, scm_smob_apply_0_001, scm_smob_apply_0_011,
+       scm_smob_apply_0_021, scm_smob_apply_0_error,
+       scm_smob_apply_1_010, scm_smob_apply_1_020, scm_smob_apply_1_030,
+       scm_smob_apply_1_001, scm_smob_apply_1_011, scm_smob_apply_1_021,
+       scm_smob_apply_1_error,
+       scm_smob_apply_2_020, scm_smob_apply_2_030, scm_smob_apply_2_001,
+       scm_smob_apply_2_011, scm_smob_apply_2_021, scm_smob_apply_2_error,
+       scm_smob_apply_3_030, scm_smob_apply_3_001, scm_smob_apply_3_011,
+       scm_smob_apply_3_021, scm_smob_apply_3_error): New functions.
+       (scm_set_smob_apply): Set new fields to the above functions.
+       (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
+       scm_smob_apply_3): Removed.
+       * eval.c (SCM_CEVAL, SCM_APPLY): Rewrote smob calls.
+
+2000-12-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_init_gc):  gc_async must be protected from gc.  I
+       wonder why we never ran into problems up to now...
+
+2000-12-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_init_gc):  Don't create a binding for %gc-thunk.
+
+2000-12-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gsubr.c:  No need to include vector.h.
+
+       (scm_gsubr_apply):  Use SCM_GSUBR_MAX instead of hard-coded value.
+       Added FUNC_NAME wrapping.  Improved (temporarily?) disabled
+       debugging code.  Replaced SCM_IMP with SCM_NULLP.  Eliminated call
+       to ASRTGO.
+
+       (scm_init_gsubr):  Eliminated outdated comment.
+
+2000-12-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * async.c (SCM_ASYNCP):  Use SCM_TYP16 instead of SCM_GCTYP16.
+
+       * eval.c (scm_m_vref, scm_m_vset, scm_m_define, SCM_CEVAL,
+       SCM_APPLY, scm_copy_tree):  Remove commented code.
+
+       (SCM_CEVAL, SCM_APPLY):  Remove #ifdef CCLO conditionals.  Without
+       CCLO being defined, guile would not compile at all anyway.
+
+       * gc.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
+       SCM_GCCDR):  Deprecated.
+
+       * gdbint.c (unmark_port, remark_port, gdb_read), procs.c
+       (scm_mark_subr_table):  Use SCM_(SET|CLR)?GCMARK(P)? instead of
+       SCM_(SET|CLR)?GC8MARK(P)?.
+
+       * gh_data.c (gh_scm2char):  Remove bogus ';'.
+
+       * tags.h:  Removed comment about GCTYP16 macro.
+
+       * weaks.c (scm_mark_weak_vector_spines):  Use SCM_CDR instead of
+       SCM_GCCDR.
+
+2000-12-05  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * print.c (scm_iprin1):  Use scm_tc3_* codes instead of hardcoded
+       values.  Added comment about tc3 codes that may appear in
+       immediates.  Got rid of one goto command.
+
+2000-12-05  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * dynl.c (sysdep_dynl_link):  Improved error reporting.
+
+       * guardians.c:  Changed the representation from a compiled closure
+       to an applicable smob.
+
+       (guard1, CCLO_G):  Removed.
+
+       (guard, g_mark, g_print, scm_tc16_guardian, scm_guardian_gc_init,
+       scm_guardian_zombify):  Renamed to guardian_apply, guardian_mark,
+       guardian_print, tc16_guardian, guardian_gc_init and
+       guardian_zombify, respectively.
+
+       (guardian_free):  Added, fixes a memory leak.
+
+       (guardian_print):  Don't use sprintf hack.
+
+       (guardian_apply, scm_guard, scm_get_one_zombie,
+       scm_make_guardian):  Don't use a compiled closure.
+
+       (guardian_zombify):  Prefer !SCM_NULLP over SCM_NIMP.  No need to
+       use SCM_GCCDR any more.  Simplified loop condition.
+
+       (scm_init_guardian):  Don't use scm_make_smob_type_mfpe for smob
+       initialization.  Initialize applicable smob.
+
+2000-12-04  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * chars.c (scm_char_eq_p):  Minor cleanup/optimization.
+
+       * gc.c (scm_gc_mark):  Don't use SCM_VELTS for CCLOs.
+
+       * procprop.c (scm_i_procedure_arity):  Separate handling of smobs
+       and CCLOs.
+
+2000-12-04  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * tags.h (scm_tc_free_cell, scm_tc16_big, scm_tc16_real,
+       scm_tc16_complex):  Eliminate hard-coded value of scm_tc7_smob.
+
+2000-12-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.[ch] (scm_c_memq):  Added as a fast C level alternative for
+       scm_memq for the case that the list parameter is known to be a
+       proper list.
+
+       * goops.c (filter_cpl, remove_duplicate_slots, applicablep),
+       goops.h (SCM_SUBCLASSP):  Use scm_c_memq if we are sure that we
+       pass proper lists. 
+
+2000-12-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * goops.c (scm_sys_compute_slots, scm_i_get_keyword,
+       scm_get_keyword, scm_slot_ref_using_class,
+       scm_slot_set_using_class_x):  Update the code to match guile's
+       current style (e. g. using SCM_DEFINE, adding comments, removing
+       unnecessary SCM_NIMP tests etc.).
+
+2000-11-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       Thanks to Julian Satchell for the bug report:
+
+       * coop-threads.c (scm_join_thread):  Check whether a thread is
+       finished before trying to join it.
+
+       * coop.c (coop_aborthelp, coop_join):  When a thread finishes, its
+       stack base is not set to NULL any more.
+
+2000-11-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * strop.c (scm_i_index):  Removed outdated comment.
+
+2000-11-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * struct.c (scm_struct_ref, scm_struct_set_x), symbols.c
+       (scm_intern_obarray_soft), symbols.h (SCM_ROUCHARS):  Eliminate
+       use of SCM_SYMBOL_UCHARS by using chars instead of unsigned
+       chars.
+
+       (SCM_SYMBOL_UCHARS):  Removed.
+
+2000-11-26  Gary Houston  <ghouston@arglist.com>
+
+       * reimplementation of values, call-with-values as primitives:
+       
+       * values.c, values.h: new files.  use a struct to contain multiple
+       values, similar to the previous Scheme-level implementation.
+       * Makefile.am: add values.c, values.h, values.x.
+       * continuations.c (continuation_apply): support R5RS multiple value
+       continuations.
+       * init.c: call scm_init_values.
+       * struct.h: define SCM_SET_STRUCT_PRINTER.
+
+2000-11-25  Gary Houston  <ghouston@arglist.com>
+
+       * use an applicable SMOB to represent continuations, instead of a
+       custom tc7 type.  This will make it easier to support R5RS
+       multiple value continuations, without the use of a Scheme-level
+       wrapper.
+
+       * continuations.c (scm_tc16_continuation, continuation_mark,
+       continuation_free, continuation_print, continuation_apply):
+       new SMOB support.
+       (scm_make_continuation): new procedure, replaces scm_make_cont
+       with a different interface.
+       (copy_stack_and_call, scm_dynthrow, scm_init_continuations): rewritten.
+       (CHEAP_CONTINUATIONS): removed non-working code completely.
+       (scm_call_continuation): removed.
+       * continuations.h (struct scm_contregs): add num_stack_items and
+       stack fields.  previously stack was stored following this struct:
+       use a tail array instead.
+       (SCM_CONTINUATIONP): new macro.
+       (SCM_CONTINUATION_LENGTH, SCM_SET_CONTINUATION_LENGTH):
+       rewritten.
+       (SCM_SET_CONTREGS): removed.
+       * tags.h: removed scm_tc7_contin (was tag 61).
+       * debug.c, gc.c, hash.c, print.c, procprop.c, procs.c:
+       removed scm_tc7_contin support.
+       * eval.c: use scm_make_continuation instead of scm_make_cont.
+       don't set jump buffers here.  remove scm_tc7_contin support.
+       * init.c, root.c: create SMOB continuation for rootcont instead
+       of scm_tc7_contin.  call scm_init_continuations before 
+       scm_init_root.
+       * root.c: remove support for static jmpbuf.  It's not used by
+       default and I broke it.  create SMOB continuation for rootcont.
+       * stacks.c: use SCM_CONTINUATIONP.
+
+2000-11-24  Matthias Koeppe  <mkoeppe@mail.math.uni-magdeburg.de>
+
+        * goops.c (filter_cpl, remove_duplicate_slots), goops.h
+       (SCM_SUBCLASSP):  Fix previous change:  In contrast to
+       scm_sloppy_memq the function scm_memq returns #f if the
+       object was not contained in the list.
+
+2000-11-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * goops.c:  Include validate.h.
+
+       (DEFVAR, scm_add_method):  Don't use deprecated scm_eval2.
+
+       (scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x,
+       scm_m_atdispatch):  Provide FUNC_NAME definition.  Don't use
+       deprecated SCM_OUTOFRANGE macro.
+
+       (scm_sloppy_num2ulong, scm_sys_logand):  Removed.  Guile's logand
+       function now provides the desired behaviour.
+
+       * goops.c (filter_cpl, remove_duplicate_slots), goops.h
+       (SCM_SUBCLASSP):  Don't use deprecated scm_sloppy_memq.
+
+2000-11-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * symbols.h (SCM_LENGTH_MAX):  Deprecated.
+
+       * unif.c (scm_make_uve):  Use SCM_BITVECTOR_MAX_LENGTH and
+       SCM_UVECTOR_MAX_LENGTH instead of SCM_LENGTH_MAX.  Postpone length
+       checks for strings and vectors to their constructors.  Eliminate
+       redundant SCM_IMP test.
+
+       (scm_dimensions_to_uniform_array):  Postpone length checks to
+       scm_make_uve.
+
+       * unif.h (SCM_BITVECTOR_MAX_LENGTH, SCM_UVECTOR_MAX_LENGTH):
+       Added.
+
+2000-11-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gh_data.c (makvect), numbers.c (scm_mkbig, scm_adjbig),
+       strings.c (scm_makstr, scm_take_str), symbols.c
+       (scm_intern_obarray_soft, scm_sysintern0_no_module_lookup), unif.c
+       (scm_make_uve), vectors.c (scm_make_vector): Use appropriate
+       SCM_SET_<type>_(CHARS|BASE) macro instead of SCM_SETCHARS.
+
+       * numbers.h (SCM_SET_BIGNUM_BASE), strings.h
+       (SCM_SET_STRING_CHARS), symbols.h (SCM_SET_SYMBOL_CHARS), unif.h
+       (SCM_SET_UVECTOR_BASE, SCM_SET_BITVECTOR_BASE), vectors.h
+       (SCM_SET_VECTOR_BASE):  Added.
+
+       * symbols.c (SCM_SETCHARS):  Deprecated.
+
+2000-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_gc_sweep), unif.c (scm_make_uve):  Don't allocate or
+       free memory for empty bitvectors.
+
+       * gh_data.c (makvect), strings.c (scm_makstr, scm_take_str),
+       symbols.c (scm_intern_obarray_soft,
+       scm_sysintern0_no_module_lookup), unif.c (scm_make_uve):  Use
+       appropriate SCM_SET_<type>_LENGTH macro instead of SCM_SETLENGTH.
+
+       * strings.h (SCM_SET_STRING_LENGTH), symbols.h
+       (SCM_SET_SYMBOL_LENGTH), unif.h (SCM_SET_UVECTOR_LENGTH,
+       SCM_SET_BITVECTOR_LENGTH):  Added.
+
+       * symbols.h (SCM_SETLENGTH):  Deprecated.
+
+2000-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * continuations.c (scm_make_cont):  Use
+       SCM_SET_CONTINUATION_LENGTH instead of SCM_SETLENGTH.
+
+       * continuations.h (SCM_SET_CONTINUATION_LENGTH):  Added.
+
+2000-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * vectors.c (scm_make_vector), weaks.c (scm_make_weak_vector):
+       Use SCM_SET_VECTOR_LENGTH instead of SCM_SETLENGTH.
+
+       * vectors.h (SCM_SET_VECTOR_LENGTH):  Added.
+
+2000-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * dynl.c (scm_make_argv_from_stringlist), filesys.c (scm_dirname,
+       scm_basename), gh_data.c (gh_scm2newstr, gh_get_substr), hash.c
+       (scm_hasher), load.c (scm_parse_path, scm_search_path,
+       scm_primitive_load_path), numbers.c (scm_string_to_number),
+       ports.c (scm_unread_string), posix.c (scm_convert_exec_args,
+       environ_list_to_c, scm_putenv), print.c (scm_iprin1,
+       scm_simple_format), random.c (scm_seed_to_random_state), socket.c
+       (scm_fill_sockaddr, scm_send, scm_sendto), strings.c
+       (scm_string_ref, scm_substring, scm_string_append), strings.h
+       (SCM_STRING_COERCE_0TERMINATION_X), strop.c (scm_i_index,
+       scm_string_to_list, scm_string_copy), strorder.c
+       (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p,
+       scm_string_ci_less_p), strports.c (scm_mkstrport), struct.c
+       (scm_make_struct_layout), symbols.c (scm_string_to_symbol,
+       scm_string_to_obarray_symbol, scm_gensym, scm_gentemp):  Replace
+       calls to SCM_ROU?CHARS with the corresponding call to
+       SCM_STRING_U?CHARS.
+
+       * symbols.h (SCM_ROCHARS, SCM_ROUCHARS):  Deprecated.
+
+2000-11-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * ports.c:  Include eval.h.
+
+       * strings.c (scm_string_set_x), strings.h (SCM_RWSTRINGP),
+       validate.h (SCM_VALIDATE_RWSTRING):  Deprecate SCM_RWSTRINGP and
+       SCM_VALIDATE_RWSTRING.
+
+       * strings.h (SCM_STRING_UCHARS, SCM_STRING_CHARS):  Handle strings
+       and substrings uniformly.  However, substring handling is
+       deprecated.
+
+       (SCM_RWSTRINGP):  Deprecated.
+
+2000-11-18  Gary Houston  <ghouston@arglist.com>
+
+       * Makefile.am (.c.x): don't prefix ".:" to $PATH when running
+       guile-doc-snarf.  it doesn't seem to do anything useful, but would
+       fail if $PATH contained whitespace.  Thanks to Lars J. Aas.
+
+2000-11-17  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
+       continuations.c, debug-malloc.c, debug.c, dynl.c, dynwind.c,
+       environments.c, eq.c, error.c, eval.c, evalext.c, feature.c,
+       filesys.c, fluids.c, fports.c, gc.c, goops.c, guardians.c, hash.c,
+       hashtab.c, hooks.c, ioext.c, iselect.c, keywords.c, lang.c,
+       list.c, load.c, macros.c, modules.c, net_db.c, numbers.c,
+       objects.c, objprop.c, options.c, pairs.c, ports.c, posix.c,
+       print.c, procprop.c, procs.c, properties.c, ramap.c, random.c,
+       read.c, regex-posix.c, root.c, scmsigs.c, script.c, simpos.c,
+       socket.c, sort.c, srcprop.c, stackchk.c, stacks.c, stime.c,
+       strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c,
+       tag.c, threads.c, throw.c, unif.c, variable.c, vectors.c,
+       version.c, vports.c, weaks.c: Makes sure the snarfer output
+       inclusion is disabled when the snarfer is run on the file.  Thanks
+       to Lars J. Aas!
+
+       * Makefile.am: Install guile-procedures.txt in version-specific
+       directory to enable multiple installed guile versions.  Suggested
+       by Karl M. Hegbloom <karlheg@debian.org, patch by Matthias Koeppe.
+
+2000-11-13  Gary Houston  <ghouston@arglist.com>
+
+       * fports.c: include gc.h.
+       (fport_flush, fport_close): silently ignore I/O errors when
+       closing a port during gc.  it's better than aborting in scm_error.
+
+       * throw.c (scm_handle_by_message): remove obsolete comment.
+
+2000-11-12  Gary Houston  <ghouston@arglist.com>
+
+       * fports.c (scm_open_file): fix the 'b' option.  Thanks
+       to George Caswell.
+
+2000-11-09  Gary Houston  <ghouston@arglist.com>
+
+       * ports.c, ports.h (scm_close_all_ports_except): deprecated.
+       use port-for-each.  Updated its docstring.
+
+2000-11-07  Gary Houston  <ghouston@arglist.com>
+
+       * ports.c (scm_port_for_each): new proc.  implements port-for-each,
+       which applies a procedure to each port in the port table.
+       ports.h: declare scm_port_for_each.
+
+       * ioext.c (scm_dup2): new proc.  implements "dup2" which is a simple
+       wrapper for the dup2 system call (unlike dup->fdes or
+       primitive-move->fdes).
+       * ioext.h: declare scm_dup2.
+
+       * filesys.c (scm_close_fdes): new proc.  implements "close-fdes"
+       which is a simple wrapper for close system call (unlike scm_close).
+       * filesys.h: declare for scm_close_fdes.
+
+2000-11-06  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>
+
+       * eval.c (SCM_IM_DISPATCH), objects.c (scm_mcache_lookup_cmethod):
+       Count n_specialized + 1 turns before letting a match through.
+
+       * goops.c (scm_sys_invalidate_method_cache_x): Don't convert
+       scm_si_n_specialized from fixnum and don't take absolute value.
+       (Thanks to Lars J. Aas.)
+
+2000-11-04  Gary Houston  <ghouston@arglist.com>
+
+       * ports.c (scm_port_p): new function, implements "port?" which
+       is mentioned in R5RS.
+       * ports.h: declare scm_port_p.
+
+2000-11-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * backtrace.c (display_expression, display_error_body), fports.c
+       (prinfport), print.c (scm_iprin1):  Test for symbols and strings
+       explicitly instead of using SCM_ROSTRINGP.
+
+       * backtrace.c (scm_display_error_message):  Don't pass a symbol to
+       scm_simple_format.  Prefer high-level output functions.
+
+       (display_error_body):  When displaying procedure names, give
+       preference to the name passed as a parameter.  Only if none is
+       given extract a name from the stack information.
+
+       * fports.c (scm_fdes_to_port, prinfport), gc.c (scm_gc_mark),
+       ports.c (scm_port_filename, scm_set_port_filename_x):  Use
+       SCM_(SET_)?FILENAME.
+
+       * gh_data.c (gh_set_substr, gh_scm2newstr, gh_get_substr,
+       gh_symbol2newstr):  Use scm_remember instead of a pair of calls to
+       scm_protect/unprotect_object.
+
+       * goops.c (make_struct_class), objects.c (scm_class_of):  Struct
+       table names are symbols.
+
+       * ports.h (SCM_SET_FILENAME):  Added.
+
+       * print.c (scm_iprin1):  Don't use scm_puts to write symbols or
+       strings in order to treat substrings right.  Reposition call to
+       scm_remember after the last use of object's data.
+
+       (scm_simple_format):  Treat messages that are substrings right.
+
+       * symbols.h (SCM_ROSTRINGP):  Deprecated.
+
+2000-11-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * environments.c (obarray_replace, obarray_retrieve,
+       obarray_remove):  Don't use '==' to compare SCM objects.
+
+       * posix.c (scm_getgroups):  Don't create a redundant string.
+
+2000-11-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
+       scm_intern_symbol, scm_unintern_symbol):  Symbol objects already
+       hold their hash values, no need to recompute them.
+
+       (scm_intern_obarray_soft):  Speed up search for a matching symbol
+       by comparing the hash values first.
+
+2000-10-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * unif.c (scm_make_uve, scm_dimensions_to_uniform_array):  Don't
+       allow vectors longer than SCM_LENGTH_MAX. This removes the
+       SCM_HUGE_LENGTH trick, i. e. storing a vector length greater than
+       SCM_LENGTH_MAX at the beginning of the vector's memory.  Since not
+       all of guile's code was implemented to be aware of this trick, it
+       is unlikely that it was used anyway.  We can implement such a
+       feature more cleanly by using double cells for uniform vector
+       types.
+
+       (scm_shap2ra):  Replace SCM_IMP and SCM_NIMP tests by more
+       straightforward predicates.
+
+       (scm_dimensions_to_uniform_array):  Require that for dimensions
+       given as lower-bound/upper-bound pairs the upper-bound is never
+       less than the lower bound.
+
+2000-10-27  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * dynl.c (scm_dynamic_link, scm_dynamic_func, scm_dynamic_call,
+       scm_dynamic_args_call), filesys.c (scm_chown, scm_chmod,
+       scm_open_fdes, scm_stat, scm_link, scm_rename, scm_delete_file,
+       scm_mkdir, scm_rmdir, scm_opendir, scm_chdir, scm_symlink,
+       scm_readlink, scm_lstat, scm_copy_file), fports.c (scm_open_file),
+       ioext.c (scm_read_delimited_x, scm_fdopen), load.c
+       (scm_primitive_load, scm_parse_path, scm_search_path,
+       scm_sys_search_load_path, scm_primitive_load_path), net_db.c
+       (scm_inet_aton, scm_gethost, scm_getnet, scm_getproto,
+       scm_getserv), numbers.c (scm_string_to_number), ports.c
+       (scm_truncate_file, scm_sys_make_void_port), posix.c
+       (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
+       environ_list_to_c, scm_execle, scm_utime, scm_access,
+       scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp),
+       simpos.c (scm_system, scm_getenv), socket.c (scm_fill_sockaddr,
+       scm_send, scm_sendto), stime.c (scm_strftime, scm_strptime),
+       strop.c (scm_i_index, scm_string_null_p, scm_string_to_list),
+       strports.c (scm_mkstrport), symbols.c
+       (scm_string_to_obarray_symbol), vports.c (scm_make_soft_port):
+       Don't accept symbols as input parameters.  Use SCM_STRING_LENGTH
+       instead of SCM_ROLENGTH.
+
+       * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
+       (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
+       scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
+       scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
+       scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
+       (scm_fdopen), net_db.c (scm_inet_aton, scm_gethost, scm_getnet,
+       scm_getproto, scm_getserv), ports.c (scm_truncate_file,
+       scm_sys_make_void_port), posix.c (scm_getpwuid, scm_getgrgid,
+       scm_execl, scm_execlp, scm_execle, scm_utime, scm_access,
+       scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp,
+       scm_regexp_exec), simpos.c (scm_system, scm_getenv), stime.c
+       (setzone, scm_strftime, scm_strptime), vports.c
+       (scm_make_soft_port):  Use SCM_STRING_COERCE_0TERMINATION_X to
+       make sure the characters of a string are followed by a \0.
+       Further, use SCM_STRING_CHARS instead of SCM_ROCHARS on the
+       resulting string.
+
+       * dynl.c (scm_make_argv_from_stringlist), posix.c
+       (scm_convert_exec_args):  Aligned to match each other.
+
+       * dynl.c (scm_coerce_rostring):  Removed.
+
+       (scm_dynamic_func):  Changed the comment to reflect that the
+       function name has to be a string.  Further, hide implementation
+       details from the scheme comment.
+
+       * error (scm_error_scm):  Don't accept a symbol as message
+       parameter.  Fix substring handling.
+
+       * posix.c (environ_list_to_c):  Use memcpy to copy environment
+       strings.  Handle substrings which don't have a trailing \0.
+
+       * symbols.h (SCM_LENGTH, SCM_ROLENGTH, SCM_SUBSTRP,
+       SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_COERCE_SUBSTR):
+       Deprecated.
+
+       * unif.h (SCM_HUGE_LENGTH):  Deprecated.
+
+       * validate.h (SCM_VALIDATE_ROSTRING, SCM_VALIDATE_ROSTRING_COPY,
+       SCM_VALIDATE_NULLORROSTRING_COPY):  Deprecated.
+
+2000-10-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * random.c:  Include unif.h.
+
+       * strings.h (SCM_STRING_COERCE_0TERMINATION_X):  Added.  This is
+       intended to replace the macro SCM_COERCE_SUBSTR.  Such a macro
+       will be necessary, even after copy-on-write strings will be added
+       to guile, but the current naming is inappropriate.
+
+       * strorder.c (scm_string_equal_p, scm_string_ci_equal_p,
+       scm_string_less_p, scm_string_ci_less_p):  Don't accept symbols as
+       input parameters.  Further, the functions that test for equality
+       are rewritten to compare from back to front, the others are also a
+       little bit more polished.
+
+2000-10-25  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>
+
+       This change merges the GOOPS code into Guile.  However, GOOPS
+       is still not initialized until someone asks for the module.
+       We need to optimize GOOPS initialization time before initializing
+       it together with the rest of libguile.  We also need to add the
+       C API + primitive methods.  Then we can start using it to
+       modularize Guile, implement a real exception system etc.
+
+       * goops.c, objects.c, objects.h, eval.c (scm_make_extended_class,
+       scm_make_port_classes, scm_change_object_class,
+       scm_memoize_method): Changed to ordinary functions (was plugin
+       slots).
+
+       * goops.c (wrap_init, scm_wrap_object): Unconditionally use
+       SCM_STRUCT_GC_CHAIN.
+       (scm_goops_version): Removed.
+       (scm_oldfmt): and all uses of it: Removed.
+       (scm_shared_array_root, scm_shared_array_offset,
+       scm_shared_array_increments): Removed.
+       (scm_init_goops): No need to support two arg mutex init.
+       Removed #include "versiondat.h", #include "goops.h".
+
+       * goops.h: Removed various superfluous conditions.
+       Renamed class --> cls, new --> newinst in order to accomodate
+       C++.
+
+       * init.c (scm_init_guile_1): Call the goops module registration
+       function.
+       Added #include "libguile/goops.h".
+
+       * Makefile.am (libguile_la_SOURCES): Added goops.c
+       (DOT_X_FILES): Added goops.x
+       (DOT_DOC_FILES): Added goops.doc
+       (modinclude_HEADERS): Added goops.h
+
+2000-10-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_igc):  Remove references to scm_vector_set_length_x.
+
+       (scm_gc_sweep):  SCM_CONTREGS is never NULL.
+
+       * gc.c (scm_gc_sweep), vectors.c (scm_make_vector):  Don't
+       allocate/free memory for zero length vectors.
+
+       * vectors.[ch] (scm_vector_set_length_x):  Deprecated.
+
+2000-10-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * alist.c (scm_assq_ref):  Add a suggestion about how to deal with
+       this function when the API gets reviewed.
+
+       * async.c (SET_ASYNC_GOT_IT):  Use SCM_TYP16 instead of doing bit
+       operations directly.
+
+       * dynl.c (scm_coerce_rostring), filesys.c (scm_link,
+       scm_copy_file), fports (scm_open_file), hash.c (scm_hasher),
+       posix.c (scm_getpwuid), print.c (scm_iprin1), simpos.c
+       (scm_system), strings.c (scm_string_ref, scm_substring,
+       scm_string_append), strop.c (scm_string_copy), struct.c
+       (scm_make_struct_layout), symbols.c (scm_gensym, scm_gentemp),
+       symbols.h (SCM_COERCE_SUBSTR):  Use SCM_STRING_LENGTH instead of   
+       SCM_ROLENGTH if the object is known to be a string or substring.
+
+       * eval.c (scm_lookupcar):  Use SCM_ITAG7 instead of doing bit
+       operations directly.
+
+       * filesys.c (scm_dirname, scm_basename):  Don't create shared
+       substrings as these are going to disappear from guile.
+
+       * gc.c (scm_gc_sweep):  Use SCM_UVECTOR_LENGTH instead of
+       SCM_HUGE_LENGTH.  (The SCM_HUGE_LENGTH mechanism does not work
+       correctly anyway.)
+
+       * gc.h (SCM_FREEP, SCM_NFREEP):  Deprecated.
+
+       * read.c (scm_flush_ws):  Don't compare SCM values directly.
+
+       * root.c (scm_make_root), root.h (scm_root_state):  Removed
+       system_transformer and top_level_lookup_closure_var from struct.
+       (Since eval is now R5RS, binary compatibility is not granted
+       anyway.)
+
+       * simpos.c (scm_system):  Fix condition.
+
+       * strings.c (scm_string_length, scm_string_ref, scm_substring,
+       scm_string_append), strop.c (scm_string_copy), struct.c
+       (scm_make_struct_layout, scm_make_vtable_vtable), symbols.c
+       (scm_gensym, scm_gentemp):  Replace SCM_VALIDATE_STRINGORSUBSTR
+       with SCM_VALIDATE_STRING, since they do the same thing.
+
+       * strings.h (scm_make_shared_substring):  Deprecated.
+
+       * tags.h (SCM_ITAG7):  Added.
+
+       * validated.h (SCM_VALIDATE_STRINGORSUBSTR):  Deprecated.
+
+2000-10-20  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * init.c (scm_init_guile_1, invoke_main_func): Call
+       scm_load_startup_files in scm_init_guile_1, not in
+       invoke_main_func.
+
+2000-10-18  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * print.c (grow_ref_stack): Pass a INUM to scm_make_vector as the
+       size, not a naked int.  Thanks to Brad Knotwell!
+
+       * gc_os_dep.c (GC_noop1, GC_bool, TRUE, FALSE, VOLATILE):
+       Definitions copied from Boehm collector.
+
+2000-10-13  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.[ch] (scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member):
+       Deprecated.
+
+       (scm_memq, scm_memv, scm_member):  Inline the sloppy code.
+
+2000-10-11  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * alloca.c:  Fixed include file path.  Thanks to Bruce Korb for
+       the bug report.
+
+2000-10-11  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * gc_os_dep.c: Added real implementation based on code from Boehms
+       collector.  This is not well tested yet.
+
+       * gc.h (scm_get_stack_base): Added prototype.
+       * init.c (scm_get_stack_base): Removed prototype.
+
+2000-10-11  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * random.c (scm_seed_to_random_state):  Replace SCM_LENGTH with
+       the appropriate SCM_<type>_LENGTH macro.
+
+       (vector_scale, vector_sum_squares, scm_random_solid_sphere_x,
+       scm_random_normal_vector_x):  Use scm_uniform_vector_length to
+       determine the length of a vector object generically.
+
+2000-10-11  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * ramap.c (scm_array_fill_int, scm_array_index_map_x):  Replace
+       SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+       (scm_ra_matchp, scm_ramapc, ramap, rafe, scm_array_index_map_x,
+       raeql_1, raeql):  Use scm_uniform_vector_length to determine the
+       length of a vector object generically.
+
+2000-10-11  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * unif.c (scm_make_uve, scm_uniform_vector_length, scm_array_p,
+       scm_transpose_array, scm_array_contents, scm_ra2contig,
+       scm_uniform_array_read_x, scm_uniform_array_write, scm_bit_count,
+       scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
+       scm_bit_invert_x, scm_array_to_list, scm_raprin1):  Replace
+       SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+       (scm_array_dimensions, scm_make_shared_array, scm_enclose_array,
+       scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x,
+       scm_array_contents, scm_uniform_array_read_x,
+       scm_uniform_array_write, scm_list_to_uniform_array, rapr1):  Use
+       scm_uniform_vector_length to determine the length of a vector
+       object generically.
+
+       (scm_bit_count, scm_bit_set_star_x, scm_bit_count_star,
+       scm_bit_invert_x): Eliminated dummy type dispatch. 
+
+       (scm_ra2contig):  Fixed array vector access.
+
+2000-10-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * unif.h (SCM_BITVECTOR_P, SCM_BITVECTOR_BASE):  Added.
+
+       * eval.c (iqq, SCM_CEVAL, SCM_APPLY, check_map_args, scm_map,
+       scm_for_each, scm_copy_tree), gc.c (scm_igc, scm_gc_mark,
+       scm_gc_sweep), gh_data.c (gh_scm2chars), sort.c
+       (scm_restricted_vector_sort_x, scm_sorted_p, scm_sort_x,
+       scm_sort, scm_stable_sort_x, scm_stable_sort), vectors.c
+       (scm_vector_length, scm_vector_ref, scm_vector_set_x,
+       scm_vector_to_list, scm_vector_fill_x, scm_vector_equal_p,
+       scm_vector_move_left_x, scm_vector_move_right_x, ):  Replace
+       SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+       * gc.c (scm_gc_sweep):  Use SCM_BITVECTOR_BASE for bitvectors.
+
+       * sort.c (scm_restricted_vector_sort_x, scm_sorted_p):  Eliminated
+       dummy type dispatch.
+
+       (scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort):
+       Eliminated redundant NIM test.
+
+2000-10-09  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * filesys.c (fill_select_type, retrieve_select_type, scm_select),
+       gh_data.c (gh_set_substr, gh_scm2chars, gh_scm2shorts,
+       gh_scm2longs, gh_scm2floats, gh_scm2doubles, gh_symbol2newstr),
+       stime.c (bdtime2c), symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
+       scm_intern_obarray_soft, scm_symbol_to_string, scm_intern_symbol,
+       scm_unintern_symbol, copy_and_prune_obarray, scm_builtin_bindings,
+       scm_builtin_weak_bindings), validate.h (SCM_VALIDATE_VECTOR_LEN):
+       Replace SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+       * filesys.c (scm_dirname, scm_basename), gh_data.c (gh_scm2newstr,
+       gh_get_substr), posix.c (scm_putenv), regex-posix.c
+       (scm_regexp_exec), stime.c (setzone), symbols.c
+       (scm_string_to_symbol):  Don't accept symbols as input parameters
+       any more.
+
+2000-10-09  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * continuations.c (scm_make_cont, copy_stack_and_call,
+       scm_dynthrow), environments.c (obarray_enter, obarray_replace,
+       obarray_retrieve, obarray_remove, obarray_remove_all,
+       leaf_environment_fold), fluids.c (grow_fluids, scm_copy_fluids,
+       scm_fluid_ref, scm_fluid_set_x), hash.c (scm_hasher), hashtab.c
+       (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
+       scm_hash_fn_remove_x, scm_internal_hash_fold), ioext.c
+       (scm_read_delimited_x), objects.c (scm_mcache_lookup_cmethod,
+       scm_make_subclass_object), ports.c (scm_unread_string), socket.c
+       (scm_recv, scm_recvfrom), stacks.c (scm_make_stack, scm_stack_id,
+       scm_last_stack_frame), strings.c (scm_string_length,
+       scm_string_set_x), strop.c (scm_substring_move_x,
+       scm_substring_fill_x, scm_string_fill_x, scm_string_upcase_x,
+       scm_string_downcase_x, scm_string_capitalize_x), struct.c
+       (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
+       scm_make_vtable_vtable, scm_struct_ref, scm_struct_set_x), weaks.c
+       (scm_mark_weak_vector_spines, scm_scan_weak_vectors):  Replace
+       SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
+
+2000-10-09  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * print.c (make_print_state, scm_iprin1):  Replace SCM_LENGTH with
+       the appropriate SCM_<type>_LENGTH macro.
+
+       (grow_ref_stack):  Don't call scm_vector_set_length_x to resize
+       the print stack.
+
+2000-10-09  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (big2str):  Avoid redundant copying.
+
+       (scm_bigprint):  Use SCM_STRING_LENGTH instead of SCM_LENGTH.
+
+2000-10-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (big2str), read.c (scm_grow_tok_buf), strports.c
+       (st_resize_port):  Don't call scm_vector_set_length_x to resize
+       strings.
+
+       * read.c (scm_lreadr, scm_read_token):  Use SCM_STRING_LENGTH for
+       string arguments (instead of SCM_LENGTH).
+
+2000-10-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * continuations.h (SCM_CONTINUATION_LENGTH), strings.h
+       (SCM_STRING_LENGTH), symbols.h (SCM_SYMBOL_LENGTH), unif.h
+       (SCM_UVECTOR_LENGTH, SCM_BITVECTOR_LENGTH), vectors.h
+       (SCM_VECTOR_LENGTH):  Added as replacements for SCM_LENGTH.
+
+2000-10-02  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * coop-defs.h (coop_key_create): Don't use the C++ keyword
+       `destructor' in prototype.  Thanks to Martin Baulig!
+
+2000-10-02  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * guile-func-name-check.in: now should not confuse SCO nawk
+       anymore.  thanks to Bruce Korb for the fix!
+
+2000-10-01  Gary Houston  <ghouston@arglist.com>
+
+       * net_db.c: declare inet_aton only if HAVE_INET_ATON is not
+       defined.  thanks to Han-Wen Nienhuys.
+
+2000-09-30  Gary Houston  <ghouston@arglist.com>
+
+       * filesys.c (scm_stat2scm), posix.c (s_scm_mknod): don't use
+       S_ISSOCK or S_IFSOCK if not defined.  thanks to Bruce Korb.
+
+2000-09-29  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * Makefile.am (guile-procedures.txt): Insert a new rule such that
+       the output from guile-snarf.awk is processed by makeinfo to
+       produce guile-procedures.txt.
+
+       * guile-snarf.awk.in: Modify the way we snarf docstrings such that
+       the output is Texinfo-compliant and suitable for post-processing
+       with makeinfo.  (Trim leading "./" from C file name if
+       present; reformat procedure prototype line in @deffn format;
+       improve representation of args to show optional and rest args;
+       explicitly quote quotation marks where they are used inside an AWK
+       regexp.)
+
+       * net_db.c (scm_inet_ntoa): Docstring fix: missing newline
+       inserted.
+
+       * hashtab.c (scm_hashx_create_handle_x, scm_hashx_ref): Insert
+       spaces between C parameters so that the snarfer doesn't coalesce
+       them all into a single very long-named parameter.
+
+2000-09-27  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * list.c (scm_append): Use @example texinfo markup in docstring.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * strings.c (scm_string, scm_make_string, scm_string_set_x,
+       scm_string_append), strop.c (scm_string_upcase_x,
+       scm_string_downcase_x), strports.c (st_resize_port), symbols.c
+       (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft,
+       scm_intern_symbol, scm_unintern_symbol), unif.c (scm_cvref,
+       scm_uniform_vector_ref, scm_array_set_x, rapr1):  Replace calls to
+       SCM_UCHARS with SCM_STRING_UCHARS or SCM_SYMBOL_UCHARS.
+
+       * symbols.h (SCM_UCHARS):  Deprecated.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_gc_sweep):  Replace SCM_CHARS by SCM_COMPLEX_MEM.
+
+       * numbers.h (SCM_COMPLEX_MEM):  Added as a replacement for
+       SCM_CHARS.
+
+       (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG):  Use it.
+
+       * ramap.c (scm_array_fill_int, racp, raeql_1):  Replace SCM_CHARS
+       with SCM_STRING_CHARS or SCM_UVECTOR_BASE.
+
+       (racp):  Fix: Make sure that src and dst types match.
+
+       * read.c (scm_grow_tok_buf, scm_lreadr, scm_read_token):  Replace
+       SCM_CHARS with SCM_STRING_CHARS.
+
+       * symbols.h (SCM_CHARS):  Deprecated.
+
+       * unif.c (scm_enclose_array, scm_uniform_vector_ref, scm_cvref,
+       scm_array_set_x, scm_uniform_array_read_x, rapr1, freera,
+       scm_uniform_array_write):  Replace SCM_CHARS with
+       SCM_STRING_CHARS, SCM_UVECTOR_BASE or SCM_ARRAY_MEM.
+
+       * unif.h (SCM_ARRAY_MEM):  Added as a replacement for SCM_CHARS.
+
+       (SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS):  Use it.
+
+       * validate.h (SCM_COERCE_ROSTRING):  Removed.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_igc):  :  Eliminate references to SCM_LENGTH and
+       SCM_CHARS from comment.
+
+       (scm_gc_mark, scm_gc_sweep):  Replace SCM_CHARS with
+       SCM_SYMBOL_CHARS or SCM_CCLO_BASE or SCM_UVECTOR_BASE or
+       SCM_BDIGITS, and replace SCM_VELTS with SCM_VECTOR_BASE or
+       SCM_CONTREGS, according to the corresponding types.
+
+       (scm_gc_sweep):  Simplify sweeping of uniform vectors.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * procs.h (SCM_CCLO_LENGTH, SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE,
+       SCM_SET_CCLO_BASE, SCM_CCLO_REF, SCM_CCLO_SET, SCM_CCLO_SUBR,
+       SCM_SET_CCLO_SUBR):  Added resp. changed such that none of the
+       macros SCM_CHARS, SCM_SETCHARS, SCM_VELTS and SCM_LENGTH have to
+       be used with compiled closures any more.
+
+       * procs.c (scm_makcclo), gsubr.h (SCM_GSUBR_TYPE, SCM_GSUBR_PROC):
+       Replace uses of SCM_CHARS, SCM_SETCHARS and SCM_VELTS with regards
+       to compiled closures.
+
+       * gsubr.h (SCM_SET_GSUBR_TYPE, SCM_SET_GSUBR_PROC):  Added.
+
+       * gsubr.c (scm_make_gsubr):  Use them.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (scm_adjbig):  Use SCM_BDIGITS instead of SCM_CHARS.
+
+       (big2str, scm_bigprint):  Use SCM_STRING_CHARS instead of
+       SCM_CHARS.
+
+       * vectors.c (scm_vector_set_length_x):  Distinguish between
+       strings, scheme vectors and uniform vectors, thus getting rid of
+       references to SCM_CHARS.  (The code still needs improvement.)
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_m_letrec1, SCM_CEVAL, SCM_APPLY):  Use
+       SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS instead of SCM_U?CHARS.
+
+       * unif.h (SCM_UVECTOR_BASE), vectors.h (SCM_VECTOR_BASE):  Added
+       as replacements for SCM_CHARS and SCM_VELTS.
+
+2000-09-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * continuations.c (scm_make_cont, scm_dynthrow), print.c
+       (scm_iprin1), stacks.c (scm_make_stack, scm_stack_id,
+       scm_last_stack_frame):  For continuations, use SCM_CONTREGS
+       instead of SCM_CHARS.
+
+       * coop-threads.c (scm_threads_mark_stacks):  Eliminate references
+       to SCM_LENGTH and SCM_CHARS from comments.
+
+       * dynl.c (scm_dynamic_link, scm_dynamic_func), symbols.h
+       (SCM_ROCHARS, SCM_ROUCHARS):  Cleanly distinguish between string
+       and symbol arguments.
+
+       * hash.c (scm_hasher), keywords.c (prin_keyword), objects.c
+       (scm_make_subclass_object), print.c (scm_iprin1), regex-posix.c
+       (scm_regexp_error_msg), stime.c (bdtime2c, scm_strftime), struct.c
+       (scm_struct_init, scm_struct_vtable_p, scm_struct_ref,
+       scm_struct_set_x):  Use SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS
+       instead of SCM_U?CHARS.
+
+       * strings.h (SCM_STRING_UCHARS):  Added as a replacement for
+       SCM_UCHARS for string arguments.
+
+       * strorder.c:  Include strings.h and symbols.h.
+
+       * symbols.h:  Replaced SCM_CHARS in comment.
+
+       (SCM_SYMBOL_UCHARS):  Added as a replacement for SCM_UCHARS for
+       symbol arguments.
+
+       (SCM_SLOPPY_SUBSTRP):  Deprecated.
+
+       * tags.h:  Fixed comments not to reference SCM_LENGTH or
+       SCM_CHARS.
+
+2000-09-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_gc_mark, scm_gc_sweep), tags.h:  Removed the
+       scm_tc7_lvector type tag.
+
 2000-09-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
 
        * eval.c (scm_m_define), evalext.c (scm_m_undefine):  Removed dead