* srcprop.[ch] (scm_c_source_property_breakpoint_p): New
[bpt/guile.git] / libguile / ChangeLog
index ded18c1..3623a11 100644 (file)
+2002-03-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * srcprop.[ch] (scm_c_source_property_breakpoint_p):  New
+       function, replaces macro SRCBRKP.
+
+       (SRCBRKP):  Deprecated.
+
+       * eval.c (SCM_CEVAL): Replaced use of SRCBRKP by call to
+       scm_c_source_property_breakpoint_p.  Removed some use of arg1 as
+       temporary variable.
+
+2002-03-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
+       CHECK_EXIT and removed all references to them.
+
+2002-03-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * debug.h (scm_ready_p, debug_print): Removed declarations.
+
+       * eval.c (EVALCELLCAR): Removed.
+
+       (SCM_CEVAL): Eliminated label loopnoap.  Removed side-effecting
+       operation from condition.
+
+2002-03-24  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * guile-snarf.in: When the output filename is "-", write to
+       stdout.  When no "-o" option is given, use "-" as the output
+       filename (i.e., stdout).  Only 'clean' the inputfile or remove the
+       output file on error when the output file name is not "-".  Define
+       the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
+
+       * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
+
+2002-03-23  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
+       and the corresponding goto statements.  Removed redundant code.
+
+2002-03-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
+       Eliminated redundant SCM_IMP check.  Exlined call to EVALCAR.
+       Re-enabled handing of rpsubrs and asubrs.
+
+2002-03-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SIDEVAL): Removed.
+
+       (SCM_CEVAL): Minimized scope of variable orig_sym.  Eliminated
+       goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap.  Changed
+       argument checking order for set! to locals, variables and symbols.
+       Improvements to control structure.  Removed some uses of arg1 and
+       arg2 as temporary variables.
+
+2002-03-15  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * guile-snarf.in: Remove "--compat=1.4" support.
+       Add "-d" and "-D" support.
+
+       (deprecated_list): New var.
+       (compat_mode_clean_xxx): Delete.
+       (grep_deprecated): New func.
+       ("main"): If "-d" or "-D", call `grep_deprecated'.
+
+2002-03-15  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * hooks.h: Change scm_t_c_hookype_t everywhere to
+       scm_t_c_hook_type.
+
+       Docstring fixes:
+
+       * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
+
+       * ports.c (scm_sys_make_void_port): Use `@file'.
+
+       * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
+       than `else'.
+
+       * macros.c (scm_makmacro): Don't say that the form replaces its
+       source, because it doesn't.
+       (scm_makmmacro): Clarify difference between this and scm_makmacro.
+
+       * backtrace.c (scm_display_error), filesys.c (scm_umask,
+       scm_select, scm_basename), goops.c (scm_method_generic_function),
+       numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
+       scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
+       spelling mistakes.
+
+       * debug.c (scm_debug_options), eval.c
+       (scm_eval_options_interface), read.c (scm_read_options): Change
+       incorrect @var in docstring to @code.
+
+2002-03-14  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
+
+       * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
+       guile-snarf can remove trailing non-init code.
+
+       * guile-snarf.in (modern_snarf): Remove everything following and
+       including "^:^" from the output.
+
+2002-03-14  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
+
+       * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
+
+2002-03-13  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * guile-snarf.in: Update copyright.
+       Rewrite to internalize error handling.
+       Add "--compat=1.4" handling.
+       Add commentary.
+
+       * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
+       (snarfcppopts): New var.
+       (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
+       (.c.doc): Use $(snarfcppopts).
+
+       * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
+       continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
+       dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
+       extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
+       goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
+       ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
+       modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
+       pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
+       properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
+       root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
+       srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
+       strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
+       unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
+       weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
+
+2002-03-13  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
+       The next step will be to remove the union 't' and simplify the
+       code of SCM_CEVAL that way.
+
+2002-03-12  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
+       rreadfds, rwritefds, rexceptfds): Made static.
+
+       * gc.c (terminating), fports.c (terminating): Renamed
+       scm_i_terminating.
+
+2002-03-11  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
+       potential overflow problems.  Thanks to John W Eaton!
+
+       * strop.c (string_capitalize_x): Treat characters as unsigned so
+       that 8-bit chars work.  Thanks to David Pirotte!
+
+2002-03-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
+       'slot-set!' and 'nil-cond'.  Removed some uses of t.arg1, arg2 and
+       proc as temporary variables.  Introduced temporary variables with
+       hopefully descriptive names for clarification.  Replaced SCM_N?IMP
+       by a more explicit predicate in some places.
+
+2002-03-09  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
+       Added lots of comments regarding the implementation of #@dispatch.
+       Changed intra-procedure communication to use t.arg1 instead of
+       arg2.  Removed some uses of t.arg1, t.lloc and proc as temporary
+       variables.  Introduced temporary variables with hopefully
+       descriptive names for clarification.  Replaced SCM_N?IMP by a more
+       explicit predicate in some places.  Use SCM_INSTANCE_HASH instead
+       of computing the expression explicitly.  Eliminate now unused
+       label nontoplevel_cdrxbegin.
+
+       * goops.h (SCM_INSTANCE_HASH): New macro.
+
+       * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
+
+2002-03-08  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
+       "guile-snarf" moved back from `noinst_SCRIPTS'.
+
+2002-03-08  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
+       exists when adding a source property other than those that are
+       handled explicitly, add the new property to the SRCPROPS obj's
+       plist.
+
+       * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
+       of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
+
+       * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
+       debug.status.  It isn't needed, and it can overflow the bits
+       reserved for it (which may lead to a segv or a GC abort).
+
+2002-03-02  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'.  Removed
+       side-effecting operations from conditions and macro calls.
+       Replaced SCM_N?IMP by a more explicit predicate in some places.
+       Minimized the scope of some variables.
+
+2002-03-02  Stefan Jahn  <stefan@lkcc.org>
+
+       * convert.i.c: Fixed int <-> long conversions which would have
+       failed if their sizes were different.
+
+2002-03-02  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
+       'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
+       as temporary variables.  Removed side-effecting operations from
+       conditions and macro calls.  Introduced temporary variables with
+       hopefully descriptive names for clarification.  Replaced SCM_N?IMP
+       by a more explicit predicate in some places.  Removed code that
+       was conditionally compiled if SICP was defined - which it never
+       is.
+
+2002-03-02  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
+       Removed some uses of t.arg1 and proc as temporary variables.
+       Removed side-effecting operations from conditions and macro calls.
+       Introduced temporary variables with hopefully descriptive names
+       for clarification.  Replaced SCM_N?IMP by a more explicit
+       predicate in some places.
+
+2002-03-02  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
+       explicit predicate in some places.
+
+       (CHECK_EQVISH): Removed.
+
+       (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
+       variables.  Removed side-effecting operations from conditions and
+       macro calls.  Introduced temporary variables for clarification.
+       Sorted if-else-if check for the type of the last form in a list by
+       frequency.  Avoided some unnecessary tail-recursion calls.
+
+2002-03-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
+       init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
+       scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
+       SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP):  Renamed the struct
+       scm_cell and all its uses to scm_t_cell in accordance to Guile's
+       naming scheme for types.
+
+       * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
+       CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
+       scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
+       (scm_make_environment), eval.c (scm_closure), fports.c
+       (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
+       scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
+       list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
+       ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
+       smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
+       (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
+       unif.c (scm_make_uve), variable.c (make_variable), vectors.c
+       (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
+       scm_alloc_cell to scm_cell.
+
+       * environments.c (core_environments_observe), gc.c
+       (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
+       inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
+       (FLOAT2NUM), numbers.c (scm_make_real), procs.c
+       (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
+       SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
+       symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
+       (allocate_weak_vector): Renamed scm_alloc_double_cell to
+       scm_double_cell.
+
+2002-02-27  Stefan Jahn  <stefan@lkcc.org>
+
+       * convert.i.c, convert.c: Better range checking.
+
+       * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
+
+       * deprecation.c (vsnprintf): Define to `_vsnprintf' for
+       Windows (MinGW).
+
+2002-02-26  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * Makefile.am: Update path to pre-inst-guile automake frag.
+
+2002-02-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.c (scm_gc_sweep): Make it compile even when deprecated
+       features are excluded.
+
+2002-02-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
+
+2002-02-25  Gary Houston  <ghouston@arglist.com>
+
+       * convert.c: include <string.h> for convert_i.c.
+
+2002-02-24  Rob Browning  <rlb@defaultvalue.org>
+
+       * .cvsignore: add stamp-h1.
+
+2002-02-21  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * unif.c (scm_array_to_list): Correct name, which had been
+       accidentally changed to scm_t_arrayo_list!
+
+2002-02-20  Mikael Djurfeldt  <mdj@linnaeus>
+
+       * gc.c (scm_gc_sweep): Print an error message when aborting due to
+       underflowing scm_mallocated.
+
+2002-02-14  Marius Vollmer  <marius.vollmer@uni-dortmund.de>
+
+       * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
+       scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
+       Reimplemented using the new scm_gc_malloc, etc., functions and
+       deprecated.
+
+2002-02-11  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
+       to `noinst_PROGRAMS'.
+       (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
+       (noinst_PROGRAMS, noinst_SCRIPTS): New.
+
+2002-02-11  Marius Vollmer  <marius.vollmer@uni-dortmund.de>
+
+       * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
+       non-zero is returned from a port or smob free function.
+       (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
+       scm_gc_register_collectable_memory,
+       scm_gc_unregister_collectable_memory, scm_gc_malloc,
+       scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
+
+       * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
+       debug-malloc.c, dynl.c, environments.c, environments.h,
+       extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
+       guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
+       ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
+       smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
+       vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
+       scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
+       appropriate.  Return zero from smob and port free functions.
+
+       * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
+
+       * deprecation.h, deprecation.c: Reimplemented to allow deprecation
+       messages while the GC is running.
+       (scm_c_issue_deprecation_warning_fmt): New.
+
+       * fports.c (scm_setvbuf): Reset read buffer to saved values when
+       it is pointing to the putback buffer.
+
+2002-02-08  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * gsubr.c (create_gsubr): On "too many args" error,
+       also display arg count and name.  Thanks to Bill Schottstaedt.
+
+2002-02-05  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
+
+       (bin_SCRIPTS): Remove guile-snarf-docs-texi.
+       (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
+       (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
+
+       * guile-snarf-docs-texi.in: Bye bye.
+
+2002-02-04  Marius Vollmer  <marius.vollmer@uni-dortmund.de>
+
+       * symbols.c (scm_make_symbol): Fix typo in docstring.
+
+       * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
+       scm_make_symbol): New prototypes.
+
+2002-02-03  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
+       (SCM_SYMBOL_INTERNED_P): New.
+       * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
+       SCM_MAKINUM since hash values can well be bignums.
+       (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
+       This signals a interned symbol.
+       (scm_mem2uninterned_symbol, scm_symbol_interned_p,
+       scm_make_symbol): New.
+
+       * print.c (scm_iprin1): Print uninterned symbols unreadably.
+
+2002-02-02  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
+       are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
+       Thanks to Dave Love.
+
+2002-01-31  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
+       This might help to make unintended clashes less likely.
+       (scm_string_to_symbol): Protect the string until the symbols is
+       created.
+
+2002-01-31  Stefan Jahn  <stefan@lkcc.org>
+
+       * convert.c, convert.h, convert.i.c: New files containing C
+       array to Scheme conversion helpers meant to be replacement
+       functions for the deprecated gh interface.
+
+       * Makefile.am: Setup rules for new `convert.*' files.
+
+2002-01-28  Stefan Jahn  <stefan@lkcc.org>
+
+       * symbols.c (scm_c_symbol2str): New function, replacement for
+       `gh_scm2newsymbol()'.
+
+       * strings.c (scm_c_substring2str): New function.  Proper
+       replacement for `gh_get_substr()'.
+
+       * socket.c: Include `stdint.h' if available for the `uint32_t'
+       declaration.
+
+       * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
+       compiler warning).
+
+       * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
+
+2002-01-22  Neil Jerram  <neil@ossau.uklinux.net>
+
+       Other changes unrelated to Elisp...
+
+       * eval.c (scm_m_if): Use s_if rather than repeating string literal
+       "if".
+       (comments): Fix a few typos.
+       (scm_for_each): Add parentheses around oddly unparenthesized
+       if/while conditions.
+
+       * read.c (scm_read_opts): Add full stop at end of doc for
+       `keywords' option.
+
+       * script.c (scm_compile_shell_switches): Use scm_str2symbol
+       instead of gh_symbol2scm.
+
+       * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
+       (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
+
+       * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
+       SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
+
+       First batch of changes for Elisp support...
+
+       * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
+       fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
+       throw.c, vectors.c, weaks.c: Add #include for lang.h.
+
+       * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
+       conditionalize compilation and initialization of Elisp support
+       function.
+
+       * alist.c (scm_assq, scm_assv, scm_assoc), async.c
+       (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
+       (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
+       filesys.c (fill_select_type, retrieve_select_type), fluids.c
+       (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
+       scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
+       scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
+       scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
+       options.c (change_option_setting, scm_options), posix.c
+       (environ_list_to_c), print.c (scm_iprlist), throw.c
+       (scm_exit_status), vectors.c (scm_vector), weaks.c
+       (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
+
+       * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
+       just SCM_FALSEP.
+
+       * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
+       of just SCM_BOOLP.
+
+       * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
+       s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
+       scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
+       (scm_m_atfop): Support function aliasing.  Support both function
+       args, which need transformation, and macro args, which do not.
+       Add explanatory comments.
+       (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
+       SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
+       checks for SCM_FALSEP.  In switch case for SCM_IM_NIL_COND, use
+       SCM_NULLP || SCM_NILP instead of checks against (removed)
+       scm_lisp_nil.  Removed switch cases for SCM_IM_NIL_IFY,
+       SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
+
+       * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
+       scm_m_while, scm_nil_eq): Commented out; I don't think we need
+       these, but I don't want to remove them yet, just in case.
+       (scm_init_lang): Define `%nil' variable on Scheme level to hold
+       Elisp nil value.
+
+       * lang.h (SCM_NILP): Test against Elisp nil value instead of
+       against (removed) scm_lisp_nil.
+       (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
+       (SCM_NULL_OR_NIL_P): New.
+
+       * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
+       SCM_VALIDATE_NULL.
+
+       * print.c (scm_isymnames): Fix comment.  Remove #@nil-ify,
+       #@t-ify, #@0-cond, #@0-ify, #@1-ify.  Add #nil (for SCM_ELISP_NIL
+       value).
+
+       * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
+       scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
+       SCM_NULL_OR_NIL_P instead of SCM_NULLP.  In constructions like `if
+       (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
+
+       * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
+       SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
+       (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
+       Numbering shifted down accordingly.
+       (SCM_ELISP_NIL): New IFLAG.
+
+       * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
+
+2002-01-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c:  Removed outdated references to "everr".  Improved some
+       comments.
+
+       (scm_deval_args, deval_args):  Renamed scm_deval_args to
+       deval_args, since it is not part of the interface.
+
+       (SCM_CEVAL):  Added (maybe somewhat verbose) comment.  Avoid to
+       use references to debug.vect[0] before it exists.  Add parentheses
+       to switch statement.
+
+       * goops.h:  Added local emacs variables.
+
+2002-01-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.[ch] (scm_deval_args):  Made static.
+
+       * srcprop.c (scm_source_property):  Remove redundant SCM_IMP
+       test.
+
+       * strings.c (scm_c_string2str):  Clarified comment.  Replaced
+       THINKME by FIXME for uniformness.  Removed question about whether
+       arguments need to be protected from garbage collection:  Arguments
+       must be protected as any other variable.
+
+2002-01-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * procs.h (SCM_CLOSURE_BODY):  New Macro.
+
+       * debug.c (scm_procedure_name, scm_procedure_source), eval.c
+       (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
+       get_slot_value, set_slot_value), procs.c
+       (scm_procedure_documentation), sort.c (closureless), stacks.c
+       (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
+       SCM_CLOSURE_BODY.
+
+       * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
+
+2001-12-26  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
+       use "cp" instead.
+
+2001-12-16  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
+       everywhere.
+
+       * continuations.c (scm_make_continuation): Do not retain the
+       throw_value when the continuation is invoked.
+
+2001-12-08  Stefan Jahn  <stefan@lkcc.org>
+
+       * strings.c (scm_c_string2str): New function.  Converts a
+       given Scheme string into a C string.  Also put in two
+       THINKME's regarding the malloc policy for the missing converter
+       routines.
+
+2001-12-01  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
+       gh_symbol2scm.
+
+2001-11-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
+       SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT):  New macros.
+
+       (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
+       SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
+       SCM_GC_SET_CELL_OBJECT):  Express in terms of SCM_GC_CELL_*
+       macros.
+
+       (SCM_FREE_CELL_P):  Express in terms of SCM_GC_CELL_TYPE.
+
+       * inline.h (scm_alloc_cell, scm_alloc_double_cell):  Use
+       SCM_GC_CELL_* macros when accessing free cells.
+
+2001-11-25  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * vectors.h (SCM_MAKE_VECTOR_TAG): New.
+       * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
+       * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
+       * strings.h (SCM_MAKE_STRING_TAG): New.
+       * procs.h (SCM_MAKE_CCLO_TAG): New.
+       * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
+
+       * goops.h: Replaced SCM_DEBUG_DEPRECATED with
+       !SCM_ENABLE_DEPRECATED.
+
+       * async.c, async.h (scm_system_async_mark_from_signal_handler):
+       New.
+
+       * scmsigs.c (scm_take_signal): Removed all code that assumes that
+       signal handlers are allowed to divert the flow of control.  Call
+       scm_system_async_mark_from_signal_handler instead of
+       scm_system_async_mark.
+
+
+       Deprecated SCM_NEWCELL and SCM_NEWCELL2.  Added scm_alloc_cell and
+       scm_alloc_double_cell in their place.
+
+       * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
+       scm_debug_newcell2, scm_tc16_allocated): Removed from header.
+       (scm_deprecated_newcell, scm_deprecated_newcell2): New.
+       (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
+       scm_deprecated_newcell and scm_deprecated_newcell2.
+
+       gc.c (scm_tc16_allocated): Only define when including deprecated
+       features.
+       (scm_debug_newcell, scm_debug_newcell2): Removed.
+       (scm_init_storage): Do not initialize scm_tc16_allocated.
+       (scm_init_gc): Do it here.
+       (allocated_mark): New, from old code.
+       (scm_deprecated_newcell, scm_deprecated_newcell2): New.
+
+       * inline.c, inline.h: New files.
+       * Makefile.am: Added them in all the right places.
+
+       * _scm.h: Include "libguile/inline.h".
+
+       * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
+       fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
+       num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
+       smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
+       unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
+       SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
+       scm_alloc_double_cell, respectively.
+
+2001-11-23  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * modules.c (scm_c_use_module): Adapt to changes to
+       `process-use-modules'.
+
+2001-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (scm_divide):  Fix more division by zero errors.
+
+2001-11-21  Gary Houston  <ghouston@arglist.com>
+
+       * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
+       obsolete.  autogen.sh says:
+       invalid unused variable name: `OMIT_DEPENDENCIES'
+
+2001-11-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (scm_divide):  Fix (/ 0).  Thanks to Keith Wright for
+       reporting the bug.
+
+2001-11-21  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
+       Thanks to Eric Gillespie, Jr!
+
+2001-11-21  Stefan Jahn  <stefan@lkcc.org>
+
+       * win32-socket.c (getservent, setservent, endservent,
+       getprotoent, setprotoent, endprotoent): New functions.
+       Appropriate replacements for M$-Windows.
+
+       * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
+       these definitions for GUILE_DEBUG.
+
+       * net_db.c: Include "win32-socket.h" if compiling with a native
+       M$-Windows compiler.  Include some pieces of code (protoent and
+       servent interface) protected by HAVE_* macros when using a
+       native M$-Windows compiler.
+
+2001-11-20  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * modules.c (scm_c_export): Do nothing when the first argument is
+       already the terminating NULL.  Thanks to Han-Wen Nienhuys!
+
+2001-11-20  Thien-Thi Nguyen  <ttn@glug.org>
+
+       * Makefile.am (libpath.h): In SCM_BUILD_INFO,
+       also include `buildstamp'.
+
+2001-11-18  Rob Browning  <rlb@defaultvalue.org>
+
+       * version.c
+       (s_scm_major_version): use SCM_MAJOR_VERSION.
+       (s_scm_minor_version): use SCM_MINOR_VERSION.
+       (s_scm_micro_version): use SCM_MICRO_VERSION.
+       (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
+       SCM_MICRO_VERSION.
+
+       * version.h.in
+       (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
+       (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
+       (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
+
+2001-11-18  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
+       Rewrite docstrings without reference to substring-move-left/right,
+       since the latter no longer exist.
+
+2001-11-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c:  Removed bogus comment about acros.
+
+       (scm_unmemocar):  Use !SCM_CONSP instead of SCM_IMP.
+       Minimize scope of local variable.  Eliminate dependency on
+       macro DEBUG_EXTENSIONS.
+
+       (s_splicing):  New error message string.
+
+       (scm_m_body):  Issue 'bad body' message rather than 'missing
+       expression' message.
+
+       (scm_m_quote):  Eliminate unnecessary copying.
+
+       (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let):  Leave the
+       checking of the body to scm_m_body.
+
+       (scm_m_do):  Move comment to function header.  Rename arg1 to
+       binding.  Made the code a bit easier to read.
+
+       (evalcar):  Removed.
+
+       (iqq):  Added a comment.  Changed the depth parameter to
+       unsigned.  Use size_t for vector lengths.  Make sure vector object
+       is gc protected as long as its contents are read.  Add some syntax
+       checks.  Get rid of unnecessary SCM_IMP test.  Clean up the
+       control structure a bit.
+
+       (scm_m_delay):  Added comment about the implementation of
+       scm_m_delay.
+
+       (scm_m_define):  Add comment about guile's currying define
+       syntax.  Renamed 'proc' to 'name'.  Eliminate dependency on macro
+       DEBUG_EXTENSIONS.  Simplified code a bit.  Eliminate SICP code.
+
+       (scm_m_letrec1):  Removed.  Part of the functionality is taken
+       over by the new function 'transform_bindings'.
+
+       (transform_bindings):  New function.  Takes over some of the
+       functionality of removed function 'scm_m_letrec1', namely to split
+       a list of bindings into a reversed list of variables and a list of
+       initializers.
+
+       (scm_m_letrec):  Call 'transform_bindings'.
+
+       (scm_m_let):  Minimized scope of local variables.  Renamed 'proc'
+       to 'temp' and 'arg1' to 'binding'.  Eliminated redundant SCM_NIMP
+       test.  Use 'transform_bindings'.  Fixed scoping error with named
+       let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
+       Jerram for suggesting the fix).  Cleaned up the control structure
+       a bit.
+
+       (scm_m_expand_body):  Use 'transform_bindings'.  Eliminated
+       unnecessary consing.  Eliminated unnecessary
+       SCM_DEFER/ALLOW_INTS.
+
+       (SCM_CEVAL):  Un-obfuscated some loops.
+
+2001-11-16  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * gc.h (scm_unhash_name): Old declaration removed.
+
+       * eval.c (s_scm_eval): Change @var{primitive-eval} to
+       @code{primitive-eval}.
+
+       * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
+       version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
+       Change @deffnx lines in docstrings to say {Scheme Procedure}
+       rather than primitive or procedure.
+
+       * posix.c (scm_execl), filesys.c (scm_close), unif.c
+       (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
+       scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
+       scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
+       scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
+       (scm_string_split, scm_string_ci_to_symbol), strings.c
+       (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
+       macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
+       Docstring fixes and improvements reflecting edits that have been
+       made in the reference manual source.
+
+       * objprop.c (scm_object_properties, scm_set_object_properties_x,
+       scm_object_property, scm_set_object_property_x): Remove invalid
+       @deffnx lines for corresponding procedure property primitives.
+
+       These changes add a @deffnx C function declaration and function
+       index entries for each Guile primitive to the copy of the doc
+       snarf output that is used for reference manual synchronization.
+       Online help is unchanged.
+
+       * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
+       (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
+       name to SCM_SNARF_DOCS.
+
+       * guile-snarf-docs-texi.in: Pass the shell script's arguments into
+       snarf-check-and-output-texi.
+
+       * Makefile.am (guile-procedures.texi): New rule.
+       (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
+       Changed so that the last stage of doc snarfing is now performed
+       twice, once to produce guile-procedures.txt for online help, and
+       once to produce guile.texi for reference manual synchronization.
+
+2001-11-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (RETURN):  Wrap in do{}while(0) in order to make it
+       safely usable as a single statement followed by a ';', for example
+       in an if statement.
+
+       (SCM_CEVAL, SCM_APPLY):  Clean up code using 'RETURN'.
+
+2001-11-13  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * random.c (scm_random_solid_sphere_x,
+       scm_random_hollow_sphere_x): Correct "shere" typos.
+
+       * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
+
+       * version.c (scm_version): Update docstring to include
+       `micro-version'.
+
+2001-11-13  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * modules.c (scm_c_export): Call va_end after collecting the
+       symbols.
+
+       * strop.h, strop.c (scm_substring_move_left_x,
+       scm_substring_move_right_x): Removed.
+
+       * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
+       HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
+       configure does.
+
+2001-11-12  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * numbers.c: Document macros to define when including
+       num2integral.i.c.  MAX_VALUE and MIN_VALU are no longer used, we
+       now rely on SIZEOF_ macros that have been figured out at
+       configure time.
+
+       * num2integral.i.c: Adapt to new interface.
+       (NUM2INTEGRAL): Test whether a fixnum can be represented in the
+       target type by casting it and checking whether it is still the
+       same.  Do not try to handle bignums for integral types that are
+       smaller than fixnums.  When handling bignums, collect the
+       magnituse first into a unsigned type, and correctly check for
+       overflow.
+       (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
+       only -MIN_VALUE can still be negative of all negative numbers (in
+       twos-complement).
+
+       * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
+
+       * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
+       HAVE_LONG_LONG depending on whether their size is non-zero.
+
+2001-11-11  Thien-Thi Nguyen  <ttn@glug.org>
+
+       * strop.c (scm_string_null_p): Docfix; nfc.
+       Thanks to Scott Lenser.
+
+2001-11-07  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * extensions.c (scm_load_extension): Canonicalize docstring
+       whitespace.
+
+       * unif.c (scm_uniform_array_write), ports.c
+       (scm_current_output_port, scm_force_output), dynwind.c
+       (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
+       filesys.c (scm_open, scm_lstat), struct.c
+       (scm_make_struct_layout), random.c (scm_random,
+       scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
+       (scm_i_index): Remove superfluous whitespace from end of docstring
+       lines.
+
+       * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
+       strings.c (scm_make_string), variable.c (scm_make_variable,
+       scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
+       scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
+       posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
+       (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
+       newline at end of docstrings.
+
+       * modules.c (scm_set_current_module): Add missing newline to
+       docstring.
+
+2001-11-07  Stefan Jahn  <stefan@lkcc.org>
+
+       * win32-socket.[ch]: New files.  Defines Winsock-API error codes
+       and makes them available through Guile.  That is because the
+       Winsock-API does not store its errors in `errno' and thus cannot
+       return error messages via `strerror (errno)'.
+
+       * socket.c (scm_init_socket): Initialize `win32-socket' part
+       here under M$-Windows.
+
+       * numbers.h: Added missing declaration of
+       `scm_sys_check_number_conversions()'.
+
+       * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
+       and use in `(strerror)' and `(system-error)'.
+
+       * Makefile.am (EXTRA_libguile_la_SOURCES): Added
+       `win32-socket.[ch]' to extra source and header files.
+
+2001-11-06  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
+       a call to turn-on-debugging when --debug has been given instead of
+       turning it on directly.  Also, handle new `--no-debug' option,
+       which might suppress the call to turn-on-debugging.
+
+2001-11-05  Stefan Jahn  <stefan@lkcc.org>
+
+       * struct.c (s_scm_struct_vtable_p): Corrected docstring.
+
+2001-11-04  Stefan Jahn  <stefan@lkcc.org>
+
+       * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
+       here (was at guile_LDADD) which describes the dependency
+       correctly and allows a clean build on Win32.
+
+       * __scm.h (SCM_API): Follow-up patch.  Renamed __FOO__ macros
+       into FOO.
+
+       * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
+       import macros for external libraries (libcrypt, libqthreads,
+       libreadline and libregex).
+
+       * coop-defs.h: Include <winsock2.h> for `struct timeval'.
+
+       * posix.c (flock): Added support for flock() in M$-Windows.
+
+       * guile.c (SCM_IMPORT): Follow-up patch.  Use SCM_IMPORT instead
+       of __SCM_IMPORT__.
+
+       * fports.c (getflags): Differentiate reading and writing pipes
+       descriptors.
+
+       * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
+       M$-Windows.
+
+       * coop.c (coop_condition_variable_timed_wait_mutex): Use
+       conditionalized error code if `ETIMEDOUT' is not available.
+       (scm_thread_usleep): Remove bogus declaration of `struct timeval
+       timeout'.
+
+       * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
+       belongs.  That is because NO_PREPRO_MAGIC gets undefined after
+       each inclusion of `num2integral.i.c'.
+       (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
+
+2001-11-03  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
+       (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
+
+2001-11-02  Mikael Djurfeldt  <mdj@linnaeus>
+
+       * print.c (scm_iprin1): Mark print state as revealed when
+       dispatching to generic write or display.
+
+       * unif.c (scm_ra2contig): Fixed memory overwrite bug.
+
+2001-11-02  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Support for native Win32.  Thanks to Stefan Jahn!
+
+        * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
+       and win32-dirent.h to extra source and header files.  These
+       include the uname() and the POSIX dirent interface implementation
+       for M$-Windows.  Put `-no-undefined' into LDFLAGS to support
+       linkers which do not allow unresolved symbols inside shared
+       libraries.  Corrected `guile_filter_doc_snarfage$(EXEEXT)'
+       dependency.
+
+        * __scm.h: Defined SCM_API.  This macro gets prepended to all
+        function and data definitions which should be exported or imported
+        in the resulting dynamic link library in the Win32 port.
+
+        * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
+        chars.h, continuations.h, coop-defs.h, coop-threads.h,
+        debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
+        environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
+        feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
+        gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
+        hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
+        load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
+        objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
+        procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
+        read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
+        smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
+        strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
+        tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
+        vports.h, weaks.h:
+        Prefixed each each exported symbol with SCM_API.
+
+        * continuations.c: Added comment about the use of the extern
+        declarations of {get,set}context() functions used in the ia64 port.
+
+        * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
+        is meant to be a `unsigned long *'.
+
+        * filesys.c: Include `direct.h' if possible.  Use local
+       `win32-dirent.h' for the native M$-Windows port.  Define S_IS*()
+       macros for M$-Windows.  Implementation of `fstat_Win32()' which is
+       able to differentiate between sockets and other file descriptors.
+       Use this function as wrapper in `scm_fstat()'.  Fixed typo in
+       `scm_dirname()'.
+
+        * fports.c: Include `io.h' is possible.  Put `*fp' into referring
+        statement block in `scm_fport_buffer_add()'.
+        Some corrections in `getflags()'.
+
+        * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
+
+        * guile.c: Make sure to define __SCM_IMPORT__ for shared library
+        build on Win32.  Disable preloaded symbols on Win2 platforms.
+
+        * ioext.c, ports.c: Include `io.h' is possible.
+
+        * mkstemp.c: Include `process.h' is possible.
+
+        * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
+        too.
+        Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
+
+        * posix.c: Remove unnecessary dirent includes and defines. Include
+       local `win32-uname.h' for MinGW.  Extern declaration of
+       `mkstemp()' for systems where it does not exists.  Make
+       `getlogin()' available on M$-Windows.
+
+        * scmsigs.c: Made `usleep()' avalable on MinGW.
+
+        * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
+
+       * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
+
+       * win32-uname.c: Include "win32-uname.h", not "uname.h".
+
+2001-10-28  Mikael Djurfeldt  <mdj@linnaeus>
+
+       * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
+       Don't apply scm_uniform_vector_length on arrays.
+
+2001-10-14  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
+       scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
+       scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
+       SCM_CEVAL, scm_map, scm_init_eval):  When building lists, prefer
+       scm_list_<n> over scm_cons[2]?.
+
+       (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
+       scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY):  Use
+       SCM_C[AD][AD]R instead of explicit form.
+
+       (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do):  Reordered
+       comparison parameters.
+
+       (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL):  Use
+       !SCM_NULLP instead of SCM_NIMP.
+
+       (scm_m_case):  Don't copy the form.  Renamed proc to clause and
+       minimized its scope.  Renamed x to clauses.  Removed side
+       effecting operation from macro call.
+
+       (scm_m_cond):  Don't copy the form.  Renamed arg1 to clause and
+       minimized its scope.  Renamed x to clauses.  Minimized the scope
+       of variable 'len'.  Make sure the else clause is treated specially
+       even in case of '=>' occurences.  Don't change the else to #t in
+       order to be able to distinguish this case in the evaluator.  Leave
+       type checking of the recipient to the evaluator.
+
+       (scm_c_improper_memq):  Made the comment somewhat clearer.
+
+       (scm_m_lambda):  Renamed proc to formals.  Removed unnecessary
+       test for SCM_IM_LET at the place of the formal parameters.
+       Simplified the formal parameter checking.
+
+       (scm_m_letstar):  Added Comment.  Renamed proc to bindings.
+       Renamed arg1 to binding and minimized its scope.  Eliminated
+       unnecessary consing.
+
+       (scm_m_do):  Renamed proc to bindings.  Minimized the scope of
+       variable 'len'.
+
+       (build_binding_list):  New static function.
+
+       (unmemocopy):  Don't use SCM_TYP7 on pairs (it's unclean).
+       Further, split up the 'letrec' unmemoizing code to the
+       corresponding parts for 'do', 'let' and 'letrec', adding comments
+       to each form.  Cleanup the handling of the do form (This removes
+       some *real* code :-).
+
+       (SCM_CEVAL):  Removed side effecting operation from macro call.
+       Handle the 'else clause of the 'cond form specially - the symbol
+       'else is not replaced with #t any more.
+
+2001-10-14  Gary Houston  <ghouston@arglist.com>
+
+       * version.c (scm_version): use sprintf instead of snprintf,
+       for portability.  thanks to Bill Schottstaedt.
+
+2001-10-14  Mikael Djurfeldt  <mdj@linnaeus>
+
+       * read.c (scm_lreadr): When user-defined hash procedure returns
+       SCM_UNSPECIFIED: Fall back to standard handling instead of raising
+       an exception.  (This prevents parsing of uniform vectors from
+       interfering with parsing of numbers.)
+
+2001-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
+       PTRDIFF_MIN.  Thanks to Ken Raeburn.
+
+2001-10-07  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
+
+       * eval.c (scm_m_atbind): First try to find the variable without
+       defining it locally; when it has not been found, define it
+       locally.
+
+       * modules.c (module_variable): Pass over variables that exist but
+       are unbound.
+
+2001-10-06  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * backtrace.c (display_backtrace_file_and_line): Only use
+       scm_basename when POSIX support is compiled in.  Thanks to Chris
+       Cramer.
+
+2001-10-13  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * numbers.c (mem2uinteger):  Return number read so far when coming
+       across a hexdigit after having read a # or if not reading a hex
+       value.  This will enable the calling code to correctly handle
+       forms like 1e2.  (The background is, that the exponent markers d,
+       e and f are also hexdigits.)  Thanks to Mikael Djurfeldt for
+       providing this patch.
+
+       (mem2complex):  Fix erroneous double-negation.  Now, numbers like
+       1-i will be read correctly.
+
 2001-10-12  Mikael Djurfeldt  <mdj@linnaeus>
 
        * debug.c (scm_mem_to_proc): Fixed typo in previous change.
 
        These changes fixes a race condition in the Guile coop - pthread
        compatibility code.
-       
+
        * coop.c (mother_awake_p): New variable.
        (coop_create): Set mother_awake_p before creating or signalling
        mother; wait until mother is going to sleep before returning.