*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
index 9670638..8f75412 100644 (file)
+2001-08-27  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
+       "scm_t_portable" with "scm_port_table" which was an artifact from
+       the great "scm_*_t -> scm_t_" renaming.
+
+2001-08-25  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
+       used; nfc.  Thanks to Bill Schottstaedt.
+
+       * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
+       SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
+       Thanks to Chris Cramer.
+
+2001-08-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
+
+       * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
+       dynamic scope.
+       * dynwind.h (scm_swap_bindings): Declare.
+       * dynwind.c (scm_swap_bindings): Make non-static.
+
+2001-08-25  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
+       doing exactly nothing about them).  thanks Neil!
+
+2001-08-18  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
+
+2001-08-17  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * gc.c: Fix omission bug: Add `heap_segment' forward decl
+       (proto) in the case when either `GUILE_DEBUG' or
+       `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
+
+       (map_free_list): Fix typo: Ref `f' correctly.
+
+       Thanks to Chris Cramer.
+
+2001-08-15  Rob Browning  <rlb@defaultvalue.org>
+
+       * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
+       variables.
+       (libpath.h): change libguileversion to libguileinterface.
+
+2001-08-07  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
+       ChangeLog-2000.  Thanks to Daniel Skarda!
+
+2001-08-07  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
+       do it from the Makefile.
+
+       * Makefile.am: rearrange the snarfing slightly, so that .doc files
+       are of a reasonable size.
+
+2001-08-02  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * stacks.c (scm_make_stack): Improve docstring by explaining use
+       of cutting args.
+
+2001-08-01  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
+       scm_char_whitespace_p, scm_char_upper_case_p,
+       scm_char_lower_case_p, scm_char_is_both_p): Do not require
+       characters to fulfill isascii in addition to the primary
+       predicate.
+
+2001-07-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
+       scm_istr2flo, scm_istring2number):  Removed.
+
+       (iflo2str, scm_real_p, scm_integer_p):  Use SCM_<foo> instead of
+       SCM_SLOPPY_<foo>.
+
+       (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
+       mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
+       Added.
+
+       (scm_string_to_number):  Use new number parser.
+
+       (scm_exact_to_inexact):  Replace dummy by a GPROC, which also
+       handles complex numbers.
+
+       * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
+       SCM_<foo>_H.
+
+       (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP):  Prefer !SCM_<pred> over
+       SCM_N<pred>.
+
+       (scm_istr2int, scm_istr2flo, scm_istring2number):  Removed.
+
+       (scm_i_mem2number):  Added.
+
+       (scm_exact_to_inexact):  Changed signature.
+
+       * read.c (scm_lreadr):  Perform the shortcut test for '+ and '-
+       here instead of within scm_i_mem2number.  Call scm_i_mem2number
+       instead of scm_istr2int and scm_istring2number.
+
+2001-07-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
+       scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
+       SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree):  Prefer
+       !SCM_<pred> over SCM_N<pred>.
+
+       (scm_eval_body):  Remove side effecting code from macro call.
+
+       (SCM_CEVAL, SCM_APPLY):  Remove goto statement and redundant
+       SCM_NIMP test.
+
+2001-07-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * pairs.h (SCM_VALIDATE_PAIR):  Use SCM_CONSP, not SCM_ECONSP.
+
+2001-07-29  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Removed vcell slot from structs.
+
+       * struct.h (scm_vtable_index_vcell): Removed.  Renumbered
+       subsequent indices.
+
+       * struct.c (scm_struct_vtable_p): Do not check vcell slot for
+       zero.  Use scm_vtable_index_layout instead of "0" when accessing
+       said slot.
+       (scm_init_struct): Remove vcell slot layout code from
+       required_vtable_fields.
+
+       * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
+
+       * goops.c (build_class_class_slots): Removed vcell slot
+       definition.
+
+       * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
+       Removed vcell slot layout code.
+       (scm_si_vcell): Removed.
+
+2001-07-26  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       "Glocs" have been removed.
+
+       * tags.h: Update tag system docs.
+       (scm_tc3_cons_gloc): Renamed to scm_tc3_struct.  Changed all uses.
+       (scm_tcs_cons_gloc): Renamed to scm_tcs_struct.  Changed all uses.
+       (SCM_ECONSP, SCM_NECONSP): Removed.  Changed all uses to SCM_CONSP
+       or SCM_NCONSP, respectively.
+
+       * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
+       objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
+       of scm_tc3_cond_gloc and scm_tcs_cons_gloc.  See above.
+
+       * print.c (scm_iprin1): Remove printing of glocs.  Do not try to
+       tell glocs from structs.
+
+       * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
+
+       * eval.c (scm_m_atbind): Make a list of variables, not glocs.
+       (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
+       instead of with glocs.
+       (EVALCAR): Do not test for glocs.
+       (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
+       condition.
+       (scm_unmemocar): Do not handle glocs.
+       (scm_m_atfop): Memoize as a variable, not as a gloc.
+       (scm_eval_args, scm_deval_args): Do not handle glocs.
+       (scm_ceval, scm_deval): Likewise.
+
+       * eval.h (SCM_XEVALCAR): Do not test for glocs.
+       (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
+       Removed.
+
+       * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
+
+       * dynwind.c (scm_swap_bindings): Likewise.
+       (scm_dowinds): Updated to recognize lists of variables instead of
+       lists of glocs.
+
+       * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
+
+
+       * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
+       where it is needed.
+
+2001-07-25  Gary Houston  <ghouston@arglist.com>
+
+       * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
+       docstrings to reflect the n-ary implementation.
+
+2001-07-26  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
+       value of a variable, not the plain "return" statement.
+
+2001-07-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * eval.c: Allow variables in memoized code (in addition to glocs).
+       (scm_lookupcar): Handle variables in lost races.  Replace symbol
+       with variable directly, do not make a gloc.
+       (scm_unmemocar): Rewrite variables using a reverse lookup, just
+       like glocs.
+       (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
+       the main switch.
+
+2001-07-25  Marius Vollmer  <marius.vollmer@uni-dortmund.de>
+
+       * variable.c (scm_i_variable_print): Use "value" instead of
+       "binding" since a binding is the mapping between symbols and
+       variables, not between variables and their values.
+
+       * tags.h (scm_tc7_variable): New.
+       * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
+       * print.c (scm_iprin1): Likewise.
+
+       * variable.h (scm_tc16_variable): Removed.
+       (SCM_VARIABLEP): Test for new tc7 code.
+       (scm_i_variable_print): New.
+       * variable.c (scm_tc16_variable): Removed.
+       (variable_print): Renamed to scm_i_variable_print and made
+       non-static.
+       (variable_equal_p): Removed.
+       (make_variable): Construct a tc7 object instead of a smob.
+       (scm_init_variable): Do not register smob.
+
+2001-07-22  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * tags.h: Include inttypes.h when we have it.
+
+2001-07-13  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
+       is taken by the new SCM_IM_CALL_WITH_VALUES.
+       * print.c (scm_isymnames): Update table accordingly.
+
+2001-07-22  Gary Houston  <ghouston@arglist.com>
+
+       * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
+       SCM_MAKINUM to convert regoff_t value to SCM.
+
+2001-07-21  Gary Houston  <ghouston@arglist.com>
+
+       * scmsigs.c: include sys/time.h for itimer stuff.
+
+2001-07-19  Rob Browning  <rlb@defaultvalue.org>
+
+       * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
+
+       * c-tokenize.lex: add option %nounput to quiet warning.
+       Add prototype for yylex to quiet warning.
+
+       * scmconfig.h.in: add flags for setitimer and getitimer.
+
+       * scmsigs.h (scm_init_scmsigs): new prototype.
+       (scm_init_scmsigs): new prototype.
+
+       * scmsigs.c (s_scm_setitimer): new function.
+       (s_scm_setitimer): new function.
+
+2001-07-18  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
+       chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
+       feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
+       gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
+       gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
+       guile-func-name-check.in, guile-snarf-docs-texi.in,
+       guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
+       hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
+       objprop.c, objprop.h, options.c, options.h, random.h,
+       regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
+       strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
+       version.c, version.h: Updated copyright notice.
+
+2001-07-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
+       sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
+       sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
+       sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
+       sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
+       sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
+       sym_environment, scm_sym_change_class):  New static variables to
+       hold predefined symbols.
+
+       (build_class_class_slots):  Build the list using scm_list_n
+       instead of cons.  Also, slots are already created as lists, thus
+       making a call to maplist unnecessary.
+
+       (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_method_procedure, create_standard_classes, purgatory):  Use
+       predefined symbols.
+
+       (build_slots_list, compute_getters_n_setters,
+       scm_sys_initialize_object, scm_sys_inherit_magic_x,
+       get_slot_value_using_name, set_slot_value_using_name,
+       scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
+       scm_compute_applicable_methods, scm_sys_method_more_specific_p,
+       make_struct_class):  Prefer !SCM_<pred> over SCM_N<pred>.
+
+       (scm_sys_prep_layout_x):  Minimize variable scopes.
+
+       (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
+       scm_sys_fast_slot_set_x):  Fix signedness.
+
+       (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
+       lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
+       scm_memoize_method, scm_wrap_object):  Use packing and unpacking
+       when converting to and from SCM values.
+
+       (scm_enable_primitive_generic_x):  Add rest argument checking.
+
+       (map, filter_cpl, maplist, scm_sys_initialize_object,
+       scm_sys_prep_layout_x, slot_definition_using_name,
+       scm_enable_primitive_generic_x, scm_compute_applicable_methods,
+       call_memoize_method, scm_make, scm_make_class):  Prefer explicit
+       predicates over SCM_N?IMP tests.
+
+       (scm_sys_prep_layout_x):  Fix typo in error message.  Fix type
+       checking.
+
+       (burnin, go_to_hell):  Use SCM_STRUCT_DATA instead of the SCM_INST
+       alias.
+
+2001-07-16  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * fports.c (fport_print):  Don't use SCM_C[AD]R for non pairs.
+
+       * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG):  Fix signedness.
+
+       * symbols-deprecated.c (scm_gentemp):  Simplify vector test.
+
+       * vectors.c (scm_vector_p):  Eliminate redundant IMP test.
+
+2001-07-12  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * strings.c (s_scm_string): fix arg position in assert.
+
+2001-07-11  Gary Houston  <ghouston@arglist.com>
+
+       * strports.c (st_write): use memcpy, not strncpy.  thanks to
+       Dale P. Smith.
+
+2001-07-09  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
+       boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
+       debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
+       error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
+       filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
+       gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
+       hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
+       lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
+       net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
+       pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
+       procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
+       random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
+       root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
+       sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
+       stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
+       strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
+       symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
+       variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
+       weaks.c, weaks.h: Remove "face-lift" comment.
+
+2001-07-08  Rob Browning  <rlb@defaultvalue.org>
+
+       * .cvsignore: add stamp-h.in.
+
+2001-07-04  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * hooks.c (scm_make_hook, scm_add_hook_x),
+       (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
+       value info to the docstrings.
+
+2001-07-03  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       Some more compatibility patches for Windows.
+
+       * posix.c (getlogin): getlogin() implementation for Windows.
+
+       * backtrace.c, ioext.c: Include <stdio.h>.
+
+       * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
+       exist.
+
+       * cpp_sig_symbols.in: Added SIGBREAK.
+
+2001-07-01  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * strports.c (scm_read_0str, scm_eval_0str): Call
+       scm_c_read_string and scm_c_eval_string respectively, not
+       themselves.  Thanks to Dale P. Smith!
+
+2001-06-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * unif.c (scm_array_set_x):  The variable args does not
+       necessarily have to be a list.  Further, got rid of a redundant
+       SCM_NIMP test.
+
+2001-06-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * list.c (SCM_I_CONS):  Make sure the cell type is initialized
+       last.
+
+       * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
+       init_heap_seg): Fixed signedness.
+
+       (init_heap_seg):  Replaced strange for-loop with a while loop.
+
+       * weaks.h (WEAKSH, SCM_WEAKS_H):  Rename <foo>H to SCM_<foo>_H.
+
+       (SCM_WVECTP):  Prefer !SCM_<pred> over SCM_N<pred>.
+
+       The following patch adds conservative marking for the elements of
+       free or allocated cells.
+
+       * gc.c (allocated_mark, heap_segment):  New static functions.
+
+       (which_seg):  Deleted, since the functionality is now provided by
+       function heap_segment.
+
+       (map_free_list):  Use heap_segment instead of which_seg.
+
+       (MARK):  If cell debugging is disabled, mark free cells
+       conservatively.
+
+       (scm_mark_locations, scm_cellp):  Extracted the search for the
+       heap segment of a SCM value into function heap_segment.
+
+       (scm_init_storage):  Allocated cells must be marked
+       conservatively.
+
+       * gc.[ch] (scm_gc_mark_cell_conservatively):  New function.
+
+       The following patch changes the representation of weak vectors to
+       double cells instead of using an extension of the vector's
+       allocated memory.
+
+       * gc.c (MARK):  Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
+       the result of SCM_WVECT_GC_CHAIN.
+
+       (scm_gc_sweep):  Weak vectors don't have extra fields any more.
+
+       * weaks.c (allocate_weak_vector):  New static function.  It does
+       not patch any previously created vector object during the
+       construction of a weak vector, and thus doesn't need to switch
+       off interrupts during vector creation.
+
+       (scm_make_weak_vector, scm_make_weak_key_hash_table,
+       scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
+       Use allocate_weak_vector to provide the new weak vector object.
+
+       * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
+       SCM_SET_WVECT_GC_CHAIN):  New macros.  The weak vector subtype is
+       now stored in the double cell.
+
+       (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
+       Use SCM_WVECT_TYPE.
+
+       (SCM_WVECT_GC_CHAIN):  The weak objects are now chained together
+       using an entry of the double cell.
+
+2001-06-30  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * stamp-h.in: bye bye
+
+2001-06-30  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
+       scm_eval_0str.
+
+       * load.c, load.h (scm_c_primitive_load,
+       scm_c_primitive_load_path): New.
+
+       * strports.c, strports.h (scm_c_read_string): Renamed from
+       scm_read_0str.  Also, added "const" qualifier to argument.
+       (scm_c_eval_string): Renamed from scm_eval_0str.
+       (scm_read_0str, scm_eval_0str): Deprecated.
+
+2001-06-28  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
+       SCM_LIST1.
+
+2001-06-28  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
+       scm_list_n): New functions.
+       (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
+       SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
+       (lots of files): Use the new functions.
+
+       * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
+
+       * strings.c: #include "libguile/deprecation.h".
+
+2001-06-27  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * read.c (scm_lreadr): When reading a hash token, check for a
+       user-defined hash procedure first, so that overriding the builtin
+       hash characters is possible (this was needed for implementing
+       SRFI-4's read synax `f32(...)').
+
+       * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
+       because the latter is unsigned now and breaks comparisons like
+       (n < (scm_t_signed_bits)MIN_VALUE).
+
+2001-06-26  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * eval.h, eval.c (scm_call_4): New function.
+
+       * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
+       directly rather than dispatching to them via scm_ithrow and a lazy
+       catch.
+
+       * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
+       SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
+       for trap handler procedures.
+
+       * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
+       procedures not being #f.
+
+2001-06-27  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * Makefile.am (c-tokenize.c): add rule to generate it.
+       (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
+
+       filter-doc-snarfage.c: remove.
+
+2001-06-26  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
+
+       The following set of changes makes compiling Guile under various
+       Windows compilers easier.  Compilation under GNU systems should
+       not be affected at all.
+
+       Thanks to Stefan Jahn for all necessary information, patches and
+       testing.
+
+       * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
+       getpgrp, ttyname, primitive-fork and some header inclusion for
+       Windows.
+
+       * random.c: Define M_PI, if not predefined and use __int64 for
+       LONG64 under Windows.
+
+       * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
+       Windows and conditionalize some signal names.
+
+       * socket.c (scm_getsockopt): Added missing comma.
+       Include socket library header under Windows.
+
+       * stime.c (CLKTCK): Add cast to int, to make it compile under
+       Windows.
+
+       * ports.c (truncate): New function, compiled only under Windows.
+
+       * net_db.c: Do not declare errno under Windows.
+
+       * iselect.h, inet_aton.c: Include socket library headers under
+       Windows.
+
+       * guile.c (inner_main): Under Windows, initialize socket library
+       and initialize gdb_interface data structures.
+
+       * gdb_interface.h: Under Windows, gdb_interface cannot be
+       initialized statically.  Initialize at runtime instead.
+
+       * fports.c (write_all): ssize_t -> size_t.
+       (fport_print): Conditionalize call to ttyname().
+       (getflags): New function, compiled only under Windows.
+
+       * filesys.c: Conditionalize inclusion of <pwd.h>.  Conditionalize
+       primitives chown, link, fcntl.
+       (scm_basename, scm_dirname): Under Windows, handle \ as well as /
+       as path seperator.
+
+       * backtrace.c: Include <io.h> under Windows.
+
+       * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
+
+       * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
+       declaration.
+
+2001-06-27  Keisuke Nishida  <kxn30@po.cwru.edu>
+
+       * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
+       scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
+       * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
+       scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
+       * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
+       scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
+       (scm_dynamic_wind, scm_dowinds), environments.c
+       (import_environment_conflict), eval.c (scm_macroexp, scm_force,
+       scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
+       goops.c (GETVAR, purgatory, make_class_from_template,
+       scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
+       scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
+       (scm_primitive_load), modules.c (scm_resolve_module,
+       scm_c_define_module, scm_c_use_module, scm_c_export,
+       module_variable, scm_eval_closure_lookup, scm_sym2var,
+       scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
+       ports.c (scm_port_for_each), print.c (scm_printer_apply),
+       properties.c (scm_primitive_property_ref), ramap.c (ramap,
+       ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
+       scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
+       (scm_object_to_string, scm_call_with_output_string,
+       scm_call_with_input_string), throw.c (scm_body_thunk,
+       scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
+       scm_make_shared_array), vports.c (sf_flush, sf_write,
+       sf_fill_input, sf_close): Use one of the above functions.
+       * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
+
+2001-06-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * filesys.c (scm_close), ports.c (scm_close_port,
+       scm_port_closed_p), strop.c (scm_string_null_p):  Use SCM_BOOL
+       instead of SCM_NEGATE_BOOL.
+
+       * filesys.c (scm_stat):  Clean up type dispatch.
+
+       * filesys.c (scm_stat), ports.c (scm_input_port_p,
+       scm_output_port_p):  Get rid of redundant IM type check.
+
+       * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
+       (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
+       scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
+       scm_return_entry), numbers.c (scm_number_to_string), objects.c
+       (scm_make_subclass_object), ports.c (scm_port_mode), read.c
+       (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
+       scm_addr_vector), stime.c (scm_strftime), strings.c
+       (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
+       (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
+       scm_string_split), strports.c (scm_strport_to_string), symbols.c
+       (scm_symbol_to_string), vports.c (sf_write):  Use scm_mem2string
+       instead of scm_makfromstr.
+
+       * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
+       ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
+       scm_read_hash_extend), stime.c (scm_strftime), strings.c
+       (scm_string_append, scm_string), strings.h (SCM_STRINGP,
+       SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
+       (string_capitalize_x):  Prefer explicit type check over SCM_N?IMP,
+       !SCM_<pred> over SCM_N<pred>.
+
+       * strings.[ch] (scm_makfromstr):  Deprecated.
+
+       (scm_mem2string):  New function, replaces scm_makfromstr.
+
+       * strings.c (scm_substring), strop.c (string_copy,
+       scm_string_split), strports.c (scm_strport_to_string), symbols.c
+       (scm_symbol_to_string):  Fix gc problem.
+
+       * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
+       SCM_<foo>_H.
+
+       * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY):  Eliminate
+       warning about comparing signed and unsigned values.  This fix is
+       not optimal, since it won't work reliably if sizeof (c_start) >
+       sizeof (size_t) or sizeof (c_end) > sizeof (size_t).  A better
+       solution is to define this macro as an inline function, thus
+       allowing to specifiy the types of c_start and c_end.
+
+2001-06-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * debug.h (SCM_DEBUGOBJ_FRAME):  Deliver result as a
+       scm_t_debug_frame*.
+
+       * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
+       Rename <foo>H to SCM_<foo>_H.
+
+       * stacks.c (NEXT_FRAME, narrow_stack):  Prefer explicit type check
+       over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
+
+       (narrow_stack):  Make i unsigned.  Don't use side-effecting
+       operations in conditions.
+
+       (narrow_stack, scm_make_stack, scm_stack_id,
+       scm_last_stack_frame):  Get rid of redundant SCM_N?IMP checks.
+
+       (scm_make_stack, scm_stack_id, scm_last_stack_frame):  Clean up
+       type dispatch.  No need to cast result of SCM_DEBUGOBJ_FRAME any
+       more.
+
+       (scm_stack_ref, scm_frame_previous, scm_frame_next):  Fix
+       signedness.
+
+       (scm_last_stack_frame):  Remove bogus `;´.
+
+       * stacks.h (SCM_FRAMEP):  Fix type check.
+
+2001-06-25  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
+       c-tokenize.c when doing maintainer-clean.
+
+       * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
+
+       * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
+       simplify.
+
+       * eval.c: all hash signs are in column 0.
+
+       * Makefile.am (guile_filter_doc_snarfage): build using
+       c-tokenize.c, not filter-doc-snarfage.c.
+       rearrange snarfing dependencies a bit.
+
+       * c-tokenize.lex: new file.
+
+2001-06-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
+       scm_t_srcpropso_plist.  See the big type renaming.
+       * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
+       Thanks to Seth Alves!
+
+       * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
+       they aren't defined already.
+
+2001-06-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * backtrace.c (display_backtrace_body):  Use SCM_VALIDATE_STACK
+       and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT.  Fix signedness
+       problem.
+
+       * backtrace.c (display_expression, scm_set_print_params_x,
+       display_application, display_frame, scm_backtrace), numbers.c
+       (scm_istring2number), objects.c (scm_class_of,
+       scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod):  Prefer
+       explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
+
+       * fluids.c (scm_fluid_ref, scm_fluid_set_x):  Fluid numbers are
+       always positive.
+
+       * numbers.c (scm_i_mkbig):  Remove unnecessary casts, remove
+       unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
+
+       * objects.c (scm_class_of):  Type fix.
+
+       (scm_mcache_lookup_cmethod):  Improved comment, simplified,
+       eliminated goto.
+
+       * pairs.h (scm_error_pair_access):  The function can return if
+       called recursively.
+
+2001-06-20  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
+
+       * init.c (scm_init_guile_1): Removed initialization of tag.c.
+
+       * gdbint.c, init.c: Removed inclusion of tag.h.
+
+       * tag.h, tag.c: Removed files.
+
+       * Makefile.am: Removed tag.{h,c,doc,x} in various places.
+
+2001-06-20  Gary Houston  <ghouston@arglist.com>
+
+       * deprecation.c, extensions.c, rw.c: include string.h.
+
+2001-06-19  Gary Houston  <ghouston@arglist.com>
+
+       * filter-doc-snarfage.c (process): added ungetc in
+       MULTILINE_COOKIE case since otherwise it fails when there's no
+       space between the '(' and the quote of the following string
+       (gcc 3.0).
+
+2001-06-14  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
+
+2001-06-14  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
+       extension takes place.
+       * strings.h (SCM_STRING_LENGTH): Likewise.
+       (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
+
+       * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
+       it.
+
+       * tags.h: Include <stdint.h> when we have it.
+       (scm_bits_t): Changed to be a unsigned type.  Use uintptr_t when
+       available.  Else use "unsigned long".
+       (scm_signed_bits_t): New.
+
+       * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
+       (SCM_INUM): Cast result to scm_signed_bits_t.
+
+2001-06-13  Thien-Thi Nguyen  <ttn@revel.glug.org>
+
+       * mkstemp.c: Update path to #include file scmconfig.h.
+       Thanks to Golubev I. N.
+
+2001-06-11  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * struct.h (SCM_STRUCT_VTABLE_FLAGS):  New macro.
+
+       * goops.h (SCM_NUMBER_OF_SLOTS):  Removed bogus `\´ at the end of
+       the macro definition.
+
+       (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
+       SCM_SIMPLEMETHODP, SCM_FASTMETHODP):  Use SCM_STRUCT_VTABLE_FLAGS
+       instead of SCM_INST_TYPE.
+
+       (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP):  Make sure
+       the object is a struct before accessing its struct flags.
+
+       (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
+
+2001-06-10  Gary Houston  <ghouston@arglist.com>
+
+       * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
+       (ice-9 rdelim) module in (guile) and (guile-user).  it didn't
+       work reliably anymore.  try it from boot-9.scm instead.
+
+2001-06-09  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * ports.c (scm_lfwrite): Maintain columnd and row count in port.
+       Thanks to Matthias Köppe!
+
+2001-06-08  Michael Livshin  <mlivshin@bigfoot.com>
+
+       * snarf.h, filter-doc-snarfage.c: more changes to cope with
+       space-happy C preprocessors.
+
+       * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
+       inside cookies.  thanks to Matthias Köppe!
+
+2001-06-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * keywords.c (keyword_print):  Don't use SCM_C[AD]R to access
+       keywords.  Fix gc protection.
+
+       * objects.c (scm_mcache_lookup_cmethod):  Don't use side effecting
+       operations in macro calls.
+
+       * pairs.c (scm_error_pair_access):  Avoid recursion.
+
+       Thanks to Matthias Koeppe for reporting the bugs that correspond
+       to the following set of patches.
+
+       * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
+       (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
+       bitvector base address using SCM_BITVECTOR_BASE.
+
+       * unif.h (SCM_BITVECTOR_BASE):  Return the base address as an
+       unsigned long*.
+
+2001-06-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * goops.c (SCM_CLASS_REDEF):  Removed.
+
+       * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
+       SCM_<foo>_H.
+
+       Thanks to Matthias Koeppe for reporting the bugs that correspond
+       to the following set of patches.
+
+       * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
+       create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
+       scm_sys_allocate_instance, clear_method_cache,
+       scm_sys_invalidate_method_cache_x, scm_make,
+       create_standard_classes, scm_make_port_classes, scm_make_class,
+       scm_add_slot):  Use SCM_SET_SLOT to set slot values.
+
+       (prep_hashsets):  Use SCM_SET_HASHSET to set class hash values.
+
+       * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET):  New macros.
+
+       * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
+       UNARY_ELTS_CODE):  Remove bogus break statement.
+
+       * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
+       Don't access bit vectors elements as SCM objects.
+
+       * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
+       scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
+       Don't assign to an unpacked value.
+
+2001-06-07  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_NORETURN):  Moved here from error.h.
+
+       (SCM_UNUSED):  New macro.
+
+       (SCM_DEBUG_PAIR_ACCESSES):  New macro.
+
+       * backtrace.c (display_error_handler), continuations.c
+       (continuation_print), debug.c (debugobj_print), dynwind.c
+       (guards_print), environments.c (observer_print,
+       core_environments_finalize, leaf_environment_cell,
+       leaf_environment_print, eval_environment_print,
+       eval_environment_observer, import_environment_define,
+       import_environment_undefine, import_environment_print,
+       import_environment_observer, export_environment_define,
+       export_environment_undefine, export_environment_print,
+       export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
+       scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
+       scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
+       scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
+       scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
+       scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
+       (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
+       (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
+       scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
+       gh_init.c (gh_standard_handler), goops.c (get_slot_value,
+       set_slot_value, test_slot_existence, scm_change_object_class,
+       scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
+       default_setter), guardians.c (guardian_print, guardian_gc_init,
+       guardian_zombify, whine_about_self_centered_zombies), guile.c
+       (inner_main), init.c (stream_handler), keywords.c (keyword_print),
+       mallocs.c (malloc_print), numbers.c (scm_print_real,
+       scm_print_complex, scm_bigprint), ports.c (flush_port_default,
+       end_input_default, scm_port_print, fill_input_void_port,
+       write_void_port), root.c (root_print), smob.c (scm_mark0,
+       scm_free0, scm_smob_print, scm_smob_apply_1_error,
+       scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
+       stime.c (restorezone), strings.c (scm_makfromstr), struct.c
+       (scm_struct_free_0, scm_struct_free_standard,
+       scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
+       throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
+       scm_handle_by_throw, scm_ithrow), weaks.c
+       (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
+       scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
+       (scm_dir_print): Mark unused parameters with SCM_UNUSED.
+
+       * error.h (SCM_NORETURN):  Moved to __scm.h.
+
+       * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
+       Renamed <foo>H to SCM_<foo>_H.
+
+       * gc.c (debug_cells_gc_interval):  New static variable.
+
+       (scm_assert_cell_valid):  If selected by the user, perform
+       additional garbage collections.
+
+       (scm_set_debug_cell_accesses_x):  Extended to let the user specify
+       if additional garbage collections are desired.
+
+       (mark_gc_async):  If additional garbage collections are selected
+       by the user, don't call the after-gc-hook.  Instead require the
+       user to run the hook manually.
+
+       * pairs.c (scm_error_pair_access):  New function.  Only compiled
+       if SCM_DEBUG_PAIR_ACCESSES is set to 1.
+
+       * pairs.h (SCM_VALIDATE_PAIR):  New macro.
+
+       (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR):  If
+       SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
+       is a real pair object.  (Glocs are also accepted, but that may
+       change.)  If not, abort with an error message.
+
+2001-06-05  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION):  New macro.
+
+       (SCM_CEVAL, SCM_APPLY):  Replace calls to SCM_EVALIM2 with calls
+       to SCM_VALIDATE_NON_EMPTY_COMBINATION.
+
+2001-06-05  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * extensions.c (scm_c_register_extension): Allow NULL as library
+       name.
+       (load_extension): Ignore NULL library names when comparing.
+
+       * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
+       non-pointers are being compared.  Thanks to Alexander Klimov!
+
+2001-06-04  Gary Houston  <ghouston@arglist.com>
+
+       * rw.c (scm_write_string_partial): new procedure implementing
+       write-string/partial in (ice-9 rw).
+       * rw.h: declare scm_write_string_partial.
+
+2001-06-04  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * keywords.c (keyword_print): Substract 1 from length of symbol
+       name, accounting for the silly dash.
+
+       * dynl.c (scm_registered_modules, scm_clear_registered_modules):
+       Do not emit deprecation warning.
+
+       Added exception notice to all files.
+
+       * dynl.c: Include "deprecation.h".
+
+2001-06-03  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * dynl.c (scm_register_module_xxx, scm_registered_modules,
+       scm_clear_registered_modules): Deprecated.
+
+2001-06-02  Rob Browning  <rlb@cs.utexas.edu>
+
+       * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
+       guile-snarf-docs-texi.
+
+       * fports.c: HAVE_ST_BLKSIZE changed to
+       HAVE_STRUCT_STAT_ST_BLKSIZE.
+       (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
+       HAVE_STRUCT_STAT_ST_BLKSIZE.
+
+       * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
+       HAVE_STRUCT_STAT_ST_RDEV.
+       (scm_stat2scm): HAVE_ST_BLKSIZE changed to
+       HAVE_STRUCT_STAT_ST_BLKSIZE.
+       (scm_stat2scm): HAVE_ST_BLOCKS changed to
+       HAVE_STRUCT_STAT_ST_BLOCKS.
+
+2001-06-02  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
+       of scm_eval_x to allow module changes between the forms in the
+       string.  Set/restore module using scm_c_call_with_current_module.
+
+       * mkstemp.c: New file, slightly modified from libiberties
+       mkstemps.c.
+
+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: 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 Daniel 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.
        `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
        * 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.
        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.
        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.
 2001-05-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>
 
        * eval.c (scm_init_eval):  Initialize scm_undefineds and
-       scm_listofnull. 
+       scm_listofnull.
 
        * gc.c (scm_debug_newcell, scm_debug_newcell2):  Fixed to behave
        like the SCM_NEWCELL macro counterparts.