* guile-snarf-docs.in, guile-snarf-docs-texi.in,
[bpt/guile.git] / libguile / ChangeLog
index 62a0ad9..f24f54e 100644 (file)
+2001-05-31  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * guile-snarf-docs.in, guile-snarf-docs-texi.in,
+       filter-doc-snarfage.c: new files.
+
+       * Makefile.am: add stuff to [build,] use and distribute
+       guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
+
+       * guile-snarf.in: grok the new snarf output.
+
+       * snarf.h: make the output both texttools- and `read'-friendly.
+
+       * guile-doc-snarf.in (bindir): reimplement in terms of guile-snarf
+       and guile-snarf-docs.  (should also deprecate, I guess.  maybe
+       not).
+
+2001-05-31  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * print.c (scm_simple_format): Support "~~" and "~%".  Signal
+       error for unsupported format controls and for superflous
+       arguments.  Thanks to David Skarda!
+
+       * print.h, print.c (scm_print_symbol_name): Factored out of
+       scm_iprin1.
+       (scm_iprin1): Call it.
+       
+       * keywords.c (keyword_print): Use scm_print_symbol_name so that
+       weird names are printed correctly.
+
+       * print.c (scm_print_symbol_name): Symbols whose name starts with
+       `#' or `:' or ends with `:' are considered weird.
+
+2001-05-30  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * numbers.c (scm_difference, scm_divide): Clarified comments for -
+       and /.
+
+2001-05-29  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * debug.h: Removed prototype for scm_eval_string.
+
+2001-05-28  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
+       (make-string 2000 #\!))' in an older version).  
+
+       Change strncpy to memcpy to allow embedded NUL characters in
+       symbol prefix.
+
+2001-05-28  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * hooks.c (scm_create_hook): deprecated.
+       (make_hook): deleted.
+       (scm_make_hook): all the hook creation code is now here.
+
+       * gc.c (scm_init_gc): don't call `scm_create_hook'.  instead make
+       a hook, make it permanent, and do a `scm_c_define' on it.
+
+       * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
+
+       * socket.c (s_scm_inet_pton): fix docstring quoting.
+       (s_scm_inet_ntop): ditto.
+
+       * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
+
+       * hashtab.c (scm_internal_hash_fold): fix argument position in
+       SCM_ASSERT.
+
+       * environments.c (s_scm_import_environment_set_imports_x): fix
+       argument position in SCM_ASSERT.
+
+       * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
+       (s_scm_make_iloc): ditto.
+
+2001-05-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_DEBUG_TYPING_STRICTNESS):  Make 1 the default.
+
+       * eval.c (promise_print):  Read the promise's value as an object.
+
+       (SCM_CEVAL):  Don't perform side-effecting operations in macro
+       parameters.
+
+       * eval.h (SCM_EVALIM2):  Fix the typing strictness of the
+       conditional expression.
+
+       * gc.c (scm_master_freelist, scm_master_freelist2):  Added missing
+       initializer.
+
+       * gh_data.c (gh_set_substr):  Removed redundant unsigned >= 0
+       text, removed redundant computation of effective_length and fixed
+       the overflow check.
+
+       * goops.c (test_slot_existence):  Use SCM_EQ_P to compare SCM
+       values.
+
+       (wrap_init):  Don't use SCM_C[AD]R for non pairs.
+
+       (hell):  Make it a scm_bits_t pointer rather than a SCM pointer.
+
+       * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
+       struct.h (SCM_SET_STRUCT_PRINTER):  Store unpacked values.
+
+       * goops.h (SCM_ACCESSORS_OF, SCM_SLOT):  Return a SCM value.
+
+       * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
+       SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
+       (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
+       __scm.h (__SCMH, SCM___SCM_H):  Change <foo>H to SCM_<foo>_H.
+
+       * modules.[ch] (scm_module_tag):  Make it a scm_bits_t value.
+
+       * objects.h (SCM_SET_CLASS_INSTANCE_SIZE):  Fixed typing.
+
+       * ramap.c (ramap_rp):  Removed bogus `;´.
+
+       * sort.c (scm_restricted_vector_sort_x):  Fixed signedness
+       problem.
+
+       * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
+       SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
+       Read SCM objects rather than scm_bits_t values.
+
+       * tags.h (SCM_VOIDP_TEST):  Removed.
+
+       (SCM_DEBUG_TYPING_STRICTNESS):  Now takes values 0, 1, 2.  The
+       value of 2 now corresponds to the former 1, the current 1
+       corresponds to the former situation that SCM_VOIDP_TEST was
+       defined.
+
+       (SCM):  Now defined as typedef struct scm_unused_struct * SCM; 
+       If this appears to be not ANSI compliant, we will change it to 
+       typedef struct scm_unused_struct { } * SCM;
+       Thanks to Han-Wen Nienhuys for the suggestion.
+
+       * unif.c (scm_array_set_x):  Fix typing problem, and use
+       SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
+       dealing with uniform vectors.
+
+2001-05-27  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
+       (scm_igc): mark from them, too (precisely, not conservatively!).
+
+       * root.h (scm_gc_registered_roots): new object in
+       scm_sys_protects.
+
+       * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
+       `scm_protect_object'.  shouldn't call it at all, though, it seems.
+
+       * gc.c (scm_[un]protect_object): deprecated.
+       (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
+       (scm_gc_[un]register_root[s]): new.
+
+       * gc.h: add prototypes for scm_gc_[un]protect_object,
+       scm_gc_[un]register_root[s].
+
+2001-05-26  Michael Livshin  <mlivshin@bigfoot.com>
+
+       revert the controversial part of the 2001-05-24 changes.
+
+2001-05-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * modules.c (scm_env_module): Exported to Scheme.
+
+       * eval.c (scm_debug_opts): New option `show-file-name'.
+
+       * debug.h (SCM_SHOW_FILE_NAME): New.
+
+       * backtrace.c: Include "libguile/filesys.h".
+       (sym_base, display_backtrace_get_file_line,
+       display_backtrace_file, display_backtrace_file_and_line): New.
+       (display_frame): Call display_backtrace_file_and_line if that is
+       requested.
+       (display_backtrace_body): Call scm_display_backtrace_file if
+       requested.
+
+       * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
+       Prototypes removed since there's no definition for these
+       functions.
+
+2001-05-24  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
+       Changed use of scm_array->scm_array_t and
+       scm_array_dim->scm_array_dim_t to enable build with
+       --disable-deprecated.
+
+2001-05-24  Michael Livshin  <mlivshin@bigfoot.com>
+
+       The purpose of this set of changes is to regularize Guile's usage
+       of ANSI C integral types, with the following ideas in mind:
+
+       - SCM does not nesessarily have to be long.
+       - long is not nesessarily enough to store pointers.
+       - long is not nesessarily the same size as int.
+
+       The changes are incomplete and possibly buggy.  Please test on
+       something exotic.
+
+       * validate.h
+       (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
+       new macros.
+
+       * unif.h: type renaming:
+       scm_array -> scm_array_t
+       scm_array_dim -> scm_array_dim_t
+       the old names are deprecated, all in-Guile uses changed.
+
+       * tags.h (scm_ubits_t): new typedef, representing unsigned
+       scm_bits_t.
+
+       * stacks.h: type renaming:
+       scm_info_frame -> scm_info_frame_t
+       scm_stack -> scm_stack_t
+       the old names are deprecated, all in-Guile uses changed.
+
+       * srcprop.h: type renaming:
+       scm_srcprops -> scm_srcprops_t
+       scm_srcprops_chunk -> scm_srcprops_chunk_t
+       the old names are deprecated, all in-Guile uses changed.
+
+       * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
+       rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
+       strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
+       vectors.c, vports.c, weaks.c:
+       various int/size_t -> size_t/scm_bits_t changes.
+
+       * random.h: type renaming:
+       scm_rstate -> scm_rstate_t
+       scm_rng -> scm_rng_t
+       scm_i_rstate -> scm_i_rstate_t
+       the old names are deprecated, all in-Guile uses changed.
+
+       * procs.h: type renaming:
+       scm_subr_entry -> scm_subr_entry_t
+       the old name is deprecated, all in-Guile uses changed.
+
+       * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
+       type renaming:
+       scm_option -> scm_option_t
+       the old name is deprecated, all in-Guile uses changed.
+
+       * objects.c: various long -> scm_bits_t changes.
+       (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
+
+       * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
+       SCM_I_FIXNUM_BIT.
+
+       * num2integral.i.c: new file, multiply included by numbers.c, used
+       to "templatize" the various integral <-> num conversion routines.
+
+       * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
+       scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
+       deprecated.
+       (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
+       scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
+       scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
+       scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
+       scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
+       scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
+       scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
+       scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
+       scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
+       scm_num2size): new functions.
+
+       * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
+
+       * load.c: change int -> size_t in various places (where the
+       variable is used to store a string length).
+       (search-path): call scm_done_free, not scm_done_malloc.
+
+       * list.c (scm_ilength): return a scm_bits_t, not long.
+       some other {int,long} -> scm_bits_t changes.
+
+       * hashtab.c: various [u]int -> scm_bits_t changes.
+       scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
+       (scm_ihashx): n: uint -> scm_bits_t
+       use scm_bits2num instead of scm_ulong2num.
+
+       * gsubr.c: various int -> scm_bits_t changes.
+
+       * goops.[hc]: various {int,long} -> scm_bits_t changes.
+
+       * gh_data.c (gh_num2int): no loss of precision any more.
+
+       * gh.h (gh_str2scm): len: int -> size_t
+       (gh_{get,set}_substr): start: int -> scm_bits_t,
+       len: int -> size_t
+       (gh_<num>2scm): n: int -> scm_bits_t
+       (gh_*vector_length): return scm_[u]size_t, not unsigned long.
+       (gh_length): return scm_bits_t, not unsigned long.
+
+       * gc.[hc]: various small changes relating to many things stopping
+       being long and starting being scm_[u]bits_t instead.
+       scm_mallocated should no longer wrap around.
+
+       * fports.h: type renaming:
+       scm_fport -> scm_fport_t
+       the old name is deprecated, all in-Guile uses changed.
+
+       * fports.c (fport_fill_input): count: int -> scm_bits_t
+       (fport_flush): init_size, remaining, count: int -> scm_bits_t
+
+       * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
+       those prototypes, as the functions they prototype don't exist.
+
+       * fports.c (default_buffer_size): int -> size_t
+       (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
+       default_size: int -> size_t
+       (scm_setvbuf): csize: int -> scm_bits_t
+
+       * fluids.c (n_fluids): int -> scm_bits_t
+       (grow_fluids): old_length, i: int -> scm_bits_t
+       (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
+       scm_bits_t
+       (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
+
+       * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
+       the new and shiny SCM_NUM2INT.
+
+       * extensions.c: extension -> extension_t (and made a typedef).
+
+       * eval.h (SCM_IFRAME): cast to scm_bits_t, not int.  just so
+       there are no nasty surprises if/when the various deeply magic tag
+       bits move somewhere else.
+
+       * eval.c: changed the locals used to store results of SCM_IFRAME,
+       scm_ilength and such to be of type scm_bits_t (and not int/long).
+       (iqq): depth, edepth: int -> scm_bits_t
+       (scm_eval_stack): int -> scm_bits_t
+       (SCM_CEVAL): various vars are not scm_bits_t instead of int.
+       (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
+       i: int -> scm_bits_t
+
+       * environments.c: changed the many calls to scm_ulong2num to
+       scm_ubits2num.
+       (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
+
+       * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
+
+       * debug.h: type renaming:
+       scm_debug_info -> scm_debug_info_t
+       scm_debug_frame -> scm_debug_frame_t
+       the old names are deprecated, all in-Guile uses changed.
+       (scm_debug_eframe_size): int -> scm_bits_t
+
+       * debug.c (scm_init_debug): use scm_c_define instead of the
+       deprecated scm_define.
+
+       * continuations.h: type renaming:
+       scm_contregs -> scm_contregs_t
+       the old name is deprecated, all in-Guile uses changed.
+       (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
+       (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
+
+       * continuations.c (scm_make_continuation): change the type of
+       stack_size from long to scm_bits_t.
+
+       * ports.h: type renaming:
+       scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
+       scm_port -> scm_port_t
+       scm_ptob_descriptor -> scm_ptob_descriptor_t
+       the old names are deprecated, all in-Guile uses changed.
+       (scm_port_t.entry): int -> scm_bits_t.
+       (scm_port_t.line_number): int -> long.
+       (scm_port_t.putback_buf_size): int -> size_t.
+
+       * __scm.h (long_long, ulong_long): deprecated (they pollute the
+       global namespace and have little value beside that).
+       (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
+       SCM handle).
+       (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
+       exist (for size_t & ptrdiff_t).
+       (scm_sizet): deprecated.
+
+       * Makefile.am (noinst_HEADERS): add num2integral.i.c
+
+2001-05-23  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
+       SCM_VARIABLE_INIT since that it what it used to be.
+
+       * deprecation.c (scm_include_deprecated_features): Make docstring
+       ANSIsh.  Thanks to Matthias Köppe!
+
+2001-05-21  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * symbols.c (scm_mem2symbol): Re-introduce indirect cell.  It is
+       needed for weak-key hashtables.
+
+       * procs.c (scm_make_subr_with_generic): Add missing last argument
+       in call to scm_c_define_gsubr_with_generic.  Thanks to Ariel Rios.
+
+       * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
+       places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
+
+       * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
+
+2001-05-20  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
+       `duplicate_string'.  Do not use an indirect cell, store symbol
+       directly in collision list of hash table.
+       (duplicate_string): Removed.
+       
+       * init.c (scm_init_guile_1): Call scm_init_extensions.
+
+       * Makefile.am: Add "extensions.c" and related files in all the
+       right places.
+
+       * extensions.h, extension.c: New files.
+
+       * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
+
+       * modules.h (scm_system_module_env_p): Move out of deprecated
+       section.
+
+       * rw.h (scm_init_rw): Added prototype.
+
+       * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
+       scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
+       New functions.  They replace scm_make_gsubr and
+       scm_make_gsubr_with_generic.  The `make' variants only create the
+       gsubr object, while the `define' variants also put it into the
+       current module.  Changed all callers.
+       (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
+
+       * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
+       scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
+       functions.  They replace scm_make_subr, scm_make_subr_opt and
+       scm_make_subr_with_generic.  The `make' variants only create the
+       subr object, while the `define' variants also put it into the
+       current module.  Changed all callers.
+       (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
+       Deprecated.
+
+       * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
+       rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
+       the comments above.
+       
+2001-05-19  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * throw.c (scm_lazy_catch): Slight docstring clarification.
+
+2001-05-19  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * throw.c: Lazy-catch handlers are no longer allowed to return.
+       Fixed comments throughout.
+       (scm_ithrow): Signal an error when a lazy-catch handler returns.
+       Moved actual jump to jmpbuf into if-branch where the jmpbuf is
+       recognized as such.
+
+       * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
+       refered to s_scm_minor_version previously.
+
+       * modules.h, modules.c: Moved around a lot of code so that
+       deprecated features appear at the bottom.
+       (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
+       module_prefix, make_modules_in_var, beautify_user_module_x_var,
+       scm_the_root_module, scm_make_module, scm_ensure_user_module,
+       scm_load_scheme_module): Deprecated.
+       (scm_system_module_env_p): Return SCM_BOOL_T directly for
+       environments corresponding to the root module.
+       (convert_module_name, scm_c_resolve_module,
+       scm_c_call_with_current_module, scm_c_define_module,
+       scm_c_use_module, scm_c_export): New.
+       (the_root_module): New static variant of scm_the_root_module.  Use
+       it everywhere instead of scm_the_root_module.
+       
+       * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
+       (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
+       (scm_c_with_fluid): New.
+       (scm_with_fluids): Use scm_c_with_fluids instead of
+       scm_internal_with_fluids.
+       
+       * goops.h, goops.c (scm_init_goops_builtins): Renamed from
+       `scm_init_goops'.  Do not explicitly create/switch modules.
+       Return SCM_UNSPECIFIED.
+       (scm_init_goops): Only register `%init-goops-builtins' procedure.
+       (scm_load_goops): Use scm_c_resolve_module instead of
+       scm_resolve_module.
+       
+       * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
+       `scm_init_oop_goops_goopscore_module'.  Call `scm_init_rdelim' and
+       `scm_init_rw' prior to loading the startup files.
+
+       * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
+       scm_init_rdelim.  Do not explicitly create/switch modules.
+       Return SCM_UNSPECIFIED.
+       (scm_init_rdelim): Only register `%init-rdelim-builtins'
+       procedure.
+       
+       * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw.  Do not
+       explicitly create/switch modules.  Return SCM_UNSPECIFIED.
+       (scm_init_rw): Only register `%init-rw-builtins' procedure.
+
+       * script.c (scm_shell): Evaluate the compiled switches in the
+       current module, not in the root module.
+
+2001-05-18  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * fluids.c (scm_c_with_fluids): Rename from
+       scm_internal_with_fluids.
+       (scm_internal_with_fluids): Deprecated.
+       (scm_c_with_fluid): New.
+
+2001-05-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * print.h (PRINTH, SCM_PRINT_H):  Renamed PRINTH to SCM_PRINT_H.
+
+       (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS):  Only pairs may be
+       accessed with SCM_C[AD]R.
+
+       (SCM_COERCE_OUTPORT):  Removed redundant SCM_NIMP test.
+
+2001-05-16  Rob Browning  <rlb@cs.utexas.edu>
+
+       * version.c (s_scm_major_version): doc fixes.
+       (s_scm_minor_version): doc fixes.
+       (s_scm_minor_version): new function.
+
+       * version.h (scm_init_version): new function.
+
+       * versiondat.h.in: add GUILE_MICRO_VERSION.
+
+2001-05-16  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * deprecation.c (scm_init_deprecation):  Renamed
+       GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
+
+2001-05-16  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
+       dependent on cpp_cnvt.awk
+
+2001-05-15  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * script.c (scm_compile_shell_switches): New command line option
+       `--use-srfi' for loading a list of SRFIs on startup.
+       (scm_shell_usage): Added `--use-srfi' to help message.
+
+2001-05-10  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Merged from mvo-vcell-cleanup-1-branch.
+
+       The concept of vcells has been removed from Guile.  With it,
+       explicit obarrays and associated operations are gone.  Use
+       hashtables instead of obarrays.
+
+       Throughout: use scm_sym2var instead of scm_sym2vcell and treat
+       result as variable instead of vcell.  Glocs no longer point to a
+       vcell but to a variable.  Use scm_c_define instead of
+       scm_sysintern and treat the result as a variable (which it is),
+       not a vcell.
+
+       * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
+       SCM_DEFVARIABLEP): Deprecated.
+       (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
+       (variable_print): Do not print name of variable.
+       (variable_equalp): Compare values, not vcells.
+       (anonymous_variable_sym): Removed.
+       (make_vcell_variable): Removed.
+       (make_variable): New, as replacement.
+       (scm_make_variable, scm_make_undefined_variable): Do not take name
+       hint parameter.
+       (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
+       error in that case.
+       (scm_builtin_variable): Deprecated.
+
+       * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
+       scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
+       scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
+       scm_sysintern, scm_sysintern0, scm_symbol_value0,
+       scm_string_to_obarray_symbol, scm_intern_symbol,
+       scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
+       scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
+       Deprecated and moved to "symbols-deprecated.c".
+       (copy_and_prune_obarray, scm_builtin_bindings): Removed.
+       (scm_init_symbols): Call scm_init_symbols_deprecated.
+       * symbols-deprecated.c: New file.
+       * Makefile.am: Added symbols-deprecated.c and related files in all
+       the right places.
+
+       * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
+       SCM_GLOBAL_VCELL_INIT): Deprecated.
+       (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
+       SCM_GLOBAL_VARIABLE_INIT): New, as replacement.  Changed all uses.
+
+       * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
+       SCM_GLOC_SYM.
+
+       * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
+       hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
+       ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
+       socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
+       Changed according to the `throughout' comments.
+
+       * modules.h, modules.c (scm_module_system_booted_p): Changed type
+       to `int'.
+       (scm_module_type): Removed.
+       (the_root_module): Renamed to the_root_module_var.  Now points to
+       a variable instead of a vcell.  Updated all uses.
+       (scm_the_root_module): Return SCM_BOOL_F when module systems
+       hasn't been booted yet.
+       (SCM_VALIDATE_STRUCT_TYPE): Removed.
+       (scm_post_boot_init_modules): Made static.
+       (scm_set_current_module): Call scm_post_boot_init_modules on first
+       call.
+       (make_modules_in, beautify_user_module_x, resolve_module,
+       try_module_autoload, module_make_local_var_x): Tacked on "_var"
+       suffix.  Now point to variables instead of vcells.  Updated all
+       uses.
+       (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
+       and return SCM_BOOL_F in that case.
+       (scm_module_transformer): Likewise.
+       (sym_module, scm_lookup_closure_module, scm_env_module): New.
+       (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
+       (scm_eval_closure_lookup): Do not allow new definitions when
+       `interface' flag is set.
+       (scm_standard_interface_eval_closure): New.
+       (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
+       scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
+       scm_c_lookup, scm_c_module_define, scm_c_define,
+       scm_module_reverse_lookup, scm_get_pre_modules_obarray,
+       scm_modules_prehistory): New.
+       (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
+       instead of scm_intern0.
+
+       * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
+       symbol.
+
+       * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
+       hashtable operations to maintain the keywords, not obarray ones.
+
+       * init.c (scm_load_startup_files): Do not call
+       scm_post_boot_init_modules.  This is done by
+       scm_set_current_module now.
+       (scm_init_guile_1): Call scm_modules_prehistory.  Call
+       scm_init_variable early on.
+
+       * goops.c (s_scm_sys_goops_loaded): Get
+       var_compute_applicable_methods from scm_sym2var, not from a direct
+       invocation of scm_goops_lookup_closure.
+
+       * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
+
+       * gc.c: Added simple debugging hack to mark phase of GC: When
+       activated, do not tail-call scm_gc_mark.  This gives nice
+       backtraces.
+       (scm_unhash_name): Removed.
+
+       * feature.c (features): Renamed to features_var.  Now points to a
+       variable instead of a vcell.  Updated all uses.
+
+       * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
+       `scm_current_module_lookup_closure' which will do the right thing
+       when the module system hasn't been booted yet.
+       (SCM_GLOC_SYM): Removed.
+       (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
+       (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
+
+       * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
+       instead of with vcells.  Do not overwrite `var' with the result of
+       the lookup, use the new `real_var' instead.  Remove `var2' in
+       exchange (which was only used with threads).
+       (sym_three_question_marks): New.
+       (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
+       `SCM_GLOC_SYM'.
+       (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
+       (scm_m_atfop): Expect the function definition to be a variable
+       instead of a vcell.
+       (scm_macroexp): Do not use `unmemocar', explicitely remember the
+       symbol instead.
+       (scm_unmemocopy): Removed thoughts about anti-macro interface.
+       (scm_eval_args): Use more explicit code in the gloc branch of the
+       atrocious struct ambiguity test.  The optimizer will sort this
+       out.
+       (scm_deval_args): Likewise.
+       (SCM_CEVAL): Likewise.  Also, do not use unmemocar, explicitely
+       remember the symbol instead.  Added some comments where
+       scm_tc3_cons_gloc really exclusively refers to structs.
+       (scm_init_eval): Use scm_define to initialize "nil" and "t" to
+       scm_lisp_nil and scm_lisp_t, respectively.  Use scm_define instead
+       of scm_sysintern in general.
+
+       * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
+       explicit magic.
+
+       * debug.c (s_scm_make_gloc): Only allow proper variables, no
+       pairs.  Put the variable directly in the gloc.
+       (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
+       (scm_init_debug): Use scm_c_define instead scm_sysintern.
+
+       * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
+
+       * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
+       scm_the_last_stack_fluid_var.  It now points to a variable instead
+       of a vcell.  Updated all uses.
+       (scm_has_shown_backtrace_hint_p_var): Now points to a variable
+       instead of a vcell.  Updated all uses.
+
+       * _scm.h: Include "variables.h" and "modules.h" since almost
+       everybody needs them now.
+
+       * root.h (scm_symhash, scm_symhash_vars): Removed.
+       * gc.c (scm_init_storage): Do not initialize them.
+
+2001-05-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_init_eval):  Initialize scm_undefineds and
+       scm_listofnull. 
+
+       * gc.c (scm_debug_newcell, scm_debug_newcell2):  Fixed to behave
+       like the SCM_NEWCELL macro counterparts.
+
+       (scm_init_storage, scm_init_gc):  Moved initialization of
+       scm_tc16_allocated from scm_init_gc to scm_init_storage.
+
+       (scm_init_storage):  Moved initialization of scm_undefineds and
+       scm_listofnull to eval.c, initializion of scm_nullstr to
+       strings.c, initializion of scm_nullvect to vectors.c.
+
+       * gc.h (SCM_NEWCELL, SCM_NEWCELL2):  Prefer SCM_NULLP over
+       SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
+
+       * init.c (scm_init_guile_1):  Reordered some initializations and
+       added dependcy information comments.
+
+       * load.c (scm_init_load):  Use scm_nullstr.
+
+       * strings.c (scm_init_strings):  Initialize scm_nullstr.
+
+       * vectors.c (scm_init_vectors):  Initialize scm_nullvect.
+
+2001-05-15  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * values.c (print_values): Print as a unreadable object, not as
+       multiple lines.  Thanks to Matthias Köppe!
+
+2001-05-14  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * deprecation.c:  Fixed copyright date.
+
+       * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H):  Renamed
+       DEPRECATION_H to SCM_DEPRECATION_H.
+
+2001-05-10  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * guile-doc-snarf.in: Update copyright.
+       Fix relative path bug.  Thanks to Sergey Poznyakoff.
+
+2001-05-10  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
+       accept open ports.  Thanks to Quetzalcoatl Bradley!
+
+2001-05-09  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
+       has 779 primitives on startup.
+
+2001-05-09  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * eval.c (scm_i_eval): Copy expression before passing it to
+       SCM_XEVAL.  The copy operation was removed unintendedly during my
+       change on 2001-03-25.
+
+2001-05-09  Michael Livshin  <mlivshin@bigfoot.com>
+
+       from Matthias Köppe (thanks!):
+
+       * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
+       portable.
+
+       * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
+       docstring.
+
+2001-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_init_gc): Added FIXME comment.
+
+       * hooks.c: Since hooks don't have a name any more, it is not
+       necessary to include objprop.h.
+
+       (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
+
+       (symbol_name, scm_make_hook_with_name): Removed.
+
+       (scm_create_hook): Don't set the hook's name property.
+
+       * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
+
+       (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
+
+       * init.c (scm_init_guile_1): Hooks don't use objprops any more.
+
+       * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
+       scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
+       FLOBUFLEN and define it unconditionally.
+
+2001-05-07  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * gh_data.c (gh_lookup): Call gh_module_lookup with
+       `scm_current_module ()', not `#f'.
+       (gh_module_lookup): Expect a module instead of an obarray as first
+       argument and do lookup in that module.
+
+       * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
+       arrays.  The length of array is already determined differently and
+       scm_uniform_vector_length does not work on arrays.
+
+2001-05-06  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
+       as well.  "SCM (*)(...)" does not work on RedHat 7.1.
+
+       * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
+       they are not used.  Changed `wrong type' error into `wrong num
+       args' error.  Changed all callers.
+
+       * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
+       arguments are supplied.
+
+2001-05-05  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
+       describe `regexp/notbol' and `regexp/noteol' execution flags.
+
+       * strop.c (scm_substring_move_x): Doc fix; nfc.
+
+2001-05-05  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * objects.c, objects.h (scm_valid_object_procedure_p): New.
+       (scm_set_object_procedure_x): Use it to check argument.  Fix
+       docstring.
+
+       * evalext.c (scm_definedp): Fix docstring.
+
+2001-05-05  Gary Houston  <ghouston@arglist.com>
+
+       * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
+       support.
+
+2001-05-04  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
+       symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
+       Change R4RS references to R5RS.
+
+       * guile-snarf.awk.in: Fixes so that (i) blank lines in the
+       docstring source are correctly reproduced in the output (ii)
+       we don't anymore get occasional trailing quotes.  Also reorganized
+       and commented the code a little.
+
+       * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
+       fixes.
+
+2001-05-04  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * strop.c (scm_string_split): New procedure.
+
+       * strop.h (scm_string_split): Added prototype.
+
+2001-05-04  Gary Houston  <ghouston@arglist.com>
+
+       * socket.c: define uint32_t if netdb.h doesn't.  thanks to
+       Dale P. Smith.
+
+2001-05-02  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * rw.c: Include "modules.h" and "strports.h".
+
+       * net_db.h (scm_gethost): Added prototype.
+
+       * deprecation.h, deprecation.c: New.
+       * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
+       (DOT_X_FILES): Added "deprecation.x".
+       (modinclude_HEADERS): Added "deprecation.h".
+
+       * init.c: Include "deprecation.h".
+       (scm_init_guile_1): Call scm_init_deprecation.
+
+2001-05-01  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * gh.h (gh_init_guile, gh_make_string, gh_string_length,
+       gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
+       New.
+
+2001-04-29  Gary Houston  <ghouston@arglist.com>
+
+       * rw.c: new file, implementing C part of module (ice-9 rw).
+       (scm_read_string_x_partial): moved from ioext.c
+       (scm_init_rw): new proc.
+       * rw.h: new file.
+       init.c: include rw.h and call scm_init_rw.
+       Makefile.am: include rw.c and rw.h.
+
+2001-04-28  Rob Browning  <rlb@cs.utexas.edu>
+
+       * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
+       know what's supposed to happen to it.
+
+       * list.h (scm_list_star): deprecation expired - removed.
+
+       * numbers.h (scm_dblproc): deprecation expired - removed.
+       (SCM_UNEGFIXABLE): deprecation expired - removed.
+       (SCM_FLOBUFLEN): deprecation expired - removed.
+       (SCM_INEXP): deprecation expired - removed.
+       (SCM_CPLXP): deprecation expired - removed.
+       (SCM_REAL): deprecation expired - removed.
+       (SCM_IMAG): deprecation expired - removed.
+       (SCM_REALPART): deprecation expired - removed.
+       (scm_makdbl): deprecation expired - removed.
+       (SCM_SINGP): deprecation expired - removed.
+       (SCM_NUM2DBL): deprecation expired - removed.
+       (SCM_NO_BIGDIG): deprecation expired - removed.
+
+       * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
+       (scm_tc_dblr): deprecation expired - removed.
+       (scm_tc_dblc): deprecation expired - removed.
+       (scm_tc16_flo): deprecation expired - removed.
+       (scm_tc_flo): deprecation expired - removed.
+
+       * tag.h (scm_tag): deprecation expired - removed.
+
+       * tag.c: (scm_tag): deprecation expired - removed.
+
+       * ioext.c: (scm_fseek): deprecation expired - removed.
+
+       * ioext.h (scm_fseek): deprecation expired - removed.
+
+       * gh_data.c (gh_int2scmb): deprecation expired - removed.
+
+       * gh.h (gh_int2scmb): deprecation expired - removed.
+
+2001-04-28  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * stacks.c (scm_make_stack): Fix typo in docstring.
+
+2001-04-27  Rob Browning  <rlb@cs.utexas.edu>
+
+       * error.c (scm_sysmissing): deprecation expired - removed.
+
+       * error.h (scm_sysmissing): deprecation expired - removed.
+
+       * gc.c
+       (scm_init_gc): gc-thunk deprecation expired - removed.
+       (scm_gc_vcell): deprecation expired - removed.
+       (gc_async_thunk): scm_gc_vcell related code removed.
+
+       * vectors.h (SCM_NVECTORP): deprecation expired - removed.
+
+       * strings.h
+       (SCM_NSTRINGP): deprecation expired - removed.
+       (SCM_NRWSTRINGP): deprecation expired - removed.
+
+       * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
+
+       * chars.h
+       (SCM_ICHRP): deprecation expired - removed.
+       (SCM_ICHR): deprecation expired - removed.
+       (SCM_MAKICHR): deprecation expired - removed.
+
+       * ports.h
+       (SCM_INPORTP): deprecation expired - removed.
+       (SCM_OUTPORTP): deprecation expired - removed.
+
+2001-04-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * modules.c (scm_module_type): New.
+       (scm_post_boot_init_modules): Initialize from Scheme value.
+       (the_module, scm_current_module, scm_init_modules): the_module is
+       now a C only fluid.
+       (scm_current_module): Export to Scheme.
+       (scm_set_current_module): Do not call out to Scheme, do all the
+       work in C.  Export procedure to Scheme.  Only accept modules, `#f'
+       is no longer valid as the current module.  Only set
+       scm_top_level_lookup_closure_var and scm_system_transformer when
+       they are not deprecated.
+       (scm_module_transformer, scm_current_module_transformer): New.
+
+       * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
+       scm_current_module_transformer, scm_module_transformer): New.
+
+       * gh_data.c: Removed FIXME comment about gh_lookup returning
+       SCM_UNDEFINED.  That's the right thing to do.
+
+       * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
+       into the conditionally compiled sections.
+       * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
+       scm_current_module_transformer instead of scm_system_transformer.
+       * init.c (start_stack): Move initialization of
+       scm_system_transformer to the deprecated section.
+
+2001-04-22  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * throw.c (scm_throw): Correct docstring.
+
+2001-04-22  Gary Houston  <ghouston@arglist.com>
+
+       * socket.c: attempted to improve the docstrings slightly.
+
+       * net_db.c: remove bogus "close" declaration.
+       (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
+       scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
+       moved to socket.c.
+       * net_db.h: declarations moved too.
+
+       * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
+       long.
+       (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
+       (VALIDATE_INET6): new macro.
+       (scm_inet_pton, scm_inet_ntop): new procedures, implementing
+       inet-pton and inet-ntop.
+       (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
+       (scm_addr_vector): use ipv6_net_to_num.
+
+2001-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eq.c (scm_equal_p), ramap.c (scm_init_ramap):  Don't compute the
+       smob number explicitly.  Use SCM_TC2SMOBNUM instead.
+
+       * gc.c (MARK, scm_gc_sweep):  Only check for illegal heap objects
+       when compiled in debug mode.
+
+       (scm_gc_sweep):  Only call smob's free function if it is defined.
+
+       * print.c (scm_iprin1):  No need to check for validity of smob
+       type or existence of print function.
+
+       * smob.[ch] (scm_smobs):  Made into a fixed size global array.
+       Resizing will not work well with preemptive threading.
+
+       * smob.c (scm_smob_print):  Don't use SCM_CDR to access smob data.
+
+       (scm_make_smob_type):  Extracted initialization of smob
+       descriptors to scm_smob_prehistory.  Don't use scm_numsmob outside
+       of the critical section.
+
+       (scm_smob_prehistory):  Initialize all smob descriptors.  By
+       default, don't assign a smob free function:  Most smob types don't
+       need one.
+
+       * smob.h (SMOBH, SCM_SMOB_H):  Renamed SMOBH to SCM_SMOB_H.
+
+2001-04-21  Gary Houston  <ghouston@arglist.com>
+
+       * socket.c (FLIP_NET_HOST_128): new macro.
+       (scm_fill_sockaddr): use new macro.
+       (scm_addr_vector): completed IPv6 address support.  added const
+       to the address parameter.
+
+2001-04-20  Gary Houston  <ghouston@arglist.com>
+
+       * socket.c (scm_fill_sockaddr): call htons for sin6_port.
+       Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
+       is defined.
+       (scm_addr_vector): use a switch instead of multiple if statements.
+       Add support for IPv6 (incomplete) .
+       MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
+
+2001-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * struct.c (scm_free_structs):  Only pairs may be accessed with
+       SCM_C[AD]R.
+
 2001-04-19  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>
 
+       * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
+
        * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
        SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
        parentheses in order to get the correct associativity.
 
        * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
        SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
-       procprop.c (scm_i_procedure_arity), sort.c (closureless):  Use 
+       procprop.c (scm_i_procedure_arity), sort.c (closureless):  Use
        SCM_CLOSURE_FORMALS.
 
        * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
 2001-04-17  Gary Houston  <ghouston@arglist.com>
 
        * some initial support for IPv6:
-       
+
        * socket.c (scm_fill_sockaddr): improve the argument validation.
        don't allocate memory until all args are checked.  instead of
        unconditional memset of soka, try setting sin_len to 0 if
 
        * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
        instead of bzero.
-       
+
        * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
-       (MISSING_BZERO_DECL): Remove the declaration. 
+       (MISSING_BZERO_DECL): Remove the declaration.
 
        Thanks to NIIBE Yutaka.
 
 2001-04-03  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
 
        The following changes make the documentation more consistent.
-       
+
        * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
        (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
        (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
        (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
        Made parameter names match documentation by renaming parameters
        and/or fixing docstrings.
-       
+
        * numbers.c (scm_ash): Corrected Texinfo markup.
 
        * strop.c (scm_string_index, scm_string_rindex),
        (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
        Docstring correction: `Returns' -> `Return'
 
-       * gc.c (scm_set_debug_cell_accesses_x): 
-       (s_scm_gc_set_debug_check_freelist_x): 
+       * gc.c (scm_set_debug_cell_accesses_x):
+       (s_scm_gc_set_debug_check_freelist_x):
        * fluids.c (scm_fluid_p): Added texinfo markup.
 
        * error.c (scm_strerror): Made docstring more precise.
        * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
        so that it can be exported.
        (scm_call_with_values): Removed.
-       
+
        * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
        * eval.c: Include "libguile/values.h"
        (scm_m_at_call_with_values, scm_sym_at_call_with_values):
 
        * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
        errors with last change.
-       
+
 2001-03-25  Marius Vollmer  <mvo@zagadka.ping.de>
 
        * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
        (scm_num2ulong_long): New.
        (ULONG_LONG_MAX): Define if not already defined.
        * numbers.h: (scm_num2ulong_long): New prototype.
-       
+
 2001-03-15  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
 
        * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
        (SCM_OPOUTSTRPORTP): New predicate macros.
        (scm_open_input_string, scm_open_output_string),
        (scm_get_output_string): New prototypes.
-       
+
        * strports.c (scm_open_input_string, scm_open_output_string),
        (scm_get_output_string): New procedures (SRFI-6 compliant).
        Made scm_tc16_strport non-static.
        posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
        socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
        #include <errno.h> in these 20 out of 100 files.
-       
+
 2001-03-10  Gary Houston  <ghouston@arglist.com>
 
        * socket.c: add a definition of SUN_LEN (from glibc) for when it's
        regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
        stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
        symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
-       Remove #include <stdio.h>       
+       Remove #include <stdio.h>
        * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
 
        * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
        function.
 
        * coop-threads.c: Fixed change of 2001-03-06.
-       
+
        * validate.h: Code formatting.
 
 2001-03-07  Keisuke Nishida  <kxn30@po.cwru.edu>
        * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
        taking an unexpectedly large filename for an AF_UNIX socket from
        bind/connect/sendto (thanks to Martin Grabmueller).
-       
+
        * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
        former and adjusted the latter.
        (scm_socket, scm_socketpair): cosmetic changes.
        module around the call to DEFVAR, scm_eval takes care of that.
        (scm_init_goops): Make scm_module_goops and
        scm_goops_lookup_closure permanent objects.
-       
+
        * eval.c (scm_ceval, scm_deval): When evaluating expressions on
        top level, create a fresh top-level environment for each
        expression instead of mutating the exisint frame.  This is
        scm_random_hollow_sphere_x, scm_random_normal_vector_x,
        scm_random_exp), dynwind.c
        (scm_dynamic_wind): Removed unnecessary "" from docstrings.
-       
+
        * goops.c (scm_sys_initialize_object, scm_instance_p,
        scm_class_name, scm_class_precedence_list, scm_class_slots,
        scm_class_environment, scm_generic_function_name,
 
        Fix evaluator so that top-level expressions are correctly
        evaluated with respect to the module system.
-       
+
        * modules.h. modules.c (scm_current_module_lookup_closure): New
        function.
 
        (scm_primitve_eval_x, scm_primitive_eval): New functions.
        (scm_eval_x, scm_eval): Reimplement in terms of
        scm_primitive_eval_x and scm_primitive_eval, respectively.
-       
+
 2001-02-09  Marius Vollmer  <mvo@zagadka.ping.de>
 
        * macros.c (scm_macro_name, scm_macro_transformer): Use
        and C names.
        (scm_select_module, scm_set_current_module): Likewise.  Changed
        all uses.
-       
+
        * ports.c (scm_port_for_each): Make a snapshot of the port table
        before iterating over it.  The table might change while the user
        code is running.  With the snapshot, the user can depend on the
 2001-01-11  Michael Livshin  <mlivshin@bigfoot.com>
 
        from Matthias Köppe:
-       
+
        * objects.h (SCM_SET_ENTITY_SETTER): new macro.  SCM_ENTITY_SETTER
        casts its result, so doesn't yield an lvalue per ANSI C.