("scm_new_port_table_entry"): return a boxed SCM in
[bpt/guile.git] / libguile / ChangeLog
index bd6395e..2e8e6fd 100644 (file)
+2002-08-09  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * ports.c ("scm_new_port_table_entry"): return a boxed SCM in
+       stead of scm_t_port*. The function now takes a tag argument.
+
+2002-08-08  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * gc.h: add scm_debug_cells_gc_interval to public interface
+
+       * gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
+
+       * gc.c (scm_i_expensive_validation_check): separate expensive
+       validation checks from cheap ones.
+
+2002-08-06  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * read.c (scm_input_error): new function: give meaningful error
+       messages, and throw read-error
+
+       * gc-malloc.c (scm_calloc): add scm_calloc.
+
+2002-08-05  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * tags.h: remove GC bits documentation from the tags table. 
+
+       * read.c (INPUT_ERROR): Prepare for file:line:column error
+       messages for errors in scm_lreadr() and friends.
+
+2002-08-04  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * gc-malloc.c (scm_malloc): use scm_realloc() (simplifies
+       implementation). 
+       (scm_gc_calloc): new function
+
+2002-08-04  Han-Wen  <hanwen@cs.uu.nl>
+
+       * ports.c (scm_new_port_table_entry): init port entry to 0
+       completely.
+       
+       * ports.c (scm_new_port_table_entry): change function from
+       scm_add_to_port_table. This prevents cells with null-pointers from
+       being exposed to GC.
+
+       * vports.c (s_scm_make_soft_port) strports.c (scm_mkstrport),
+       fports.c (scm_fdes_to_port): Use scm_new_port_table_entry().
+
+       * gc.c (s_scm_gc_stats): add cell-yield and malloc-yield statistic
+       to gc-stats.
+
+       * numbers.c (big2str): return "0" for 0 iso. ""
+
+        * gc-segment.c, gc-malloc.c gc-mark.c, gc-freelist.c, gc-card.c,
+       private-gc.h: new file
+
+        * gc.c: completely revised and cleaned up the GC. It now uses lazy
+        sweeping. More documentation in workbook/newgc.text
+
+2002-07-25  Marius Vollmer  <marius.vollmer@uni-dortmund.de>
+
+       * random.c (rstate_free): Return zero.
+
+2002-07-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * environments.c (remove_key_from_alist):  Removed.
+
+       (obarray_remove):  Simplified.
+
+2002-07-24  Stefan Jahn  <stefan@lkcc.org>
+
+       * continuations.h: ia64: Include <signal.h> before 
+       <sys/ucontext.h>.
+
+2002-07-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * modules.c (scm_sym2var):  Don't compare SCM values with ==.
+
+2002-07-21  Han-Wen  <hanwen@cs.uu.nl>
+
+       * goops.c (scm_compute_applicable_methods): use
+       scm_remember_upto_here_1 iso scm_remember_upto_here
+
+       * macros.c: include deprecation.h
+
+       * vectors.c (s_scm_vector_move_right_x): remove side effect in
+       macro arg.
+       (s_scm_vector_move_left_x): idem.
+
+       * net_db.c, posix.c, socket.c: variable naming: change ans to
+       result.
+
+       * sort.c (scm_merge_vector_x): accept vector as argument
+       iso. SCM*. This is needed for full GC correctness.
+
+       * gc.h: undo previous undocumented changes related to #ifdef
+       GENGC.
+
+2002-07-20  Han-Wen  <hanwen@cs.uu.nl>
+
+       * *.c: add space after commas everywhere.
+
+       * *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
+       Document cases where SCM_WRITABLE_VELTS() is used.
+       
+       * vectors.h (SCM_VELTS): prepare for write barrier, and let
+       SCM_VELTS() return a const pointer
+       (SCM_VECTOR_SET): add macro.
+
+2002-07-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * eval.c (SCM_CEVAL), macros.c (macro_print, scm_makmacro,
+       scm_sym_macro, scm_macro_type), macros.h (scm_makmacro):
+       Deprecated the special kind of built-in dynamic syntax transformer
+       that was inaccurately named "macro".  Note:  The built-in syntax
+       transformers that are named "mmacro" or "memoizing-macro" still
+       exist, and it is these which come much closer to what one would
+       call a macro.
+
+2002-07-13  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * eval.c (unmemocopy): Fix for
+       1001-local-eval-error-backtrace-segfaults (unmemoization crash
+       with internal definitions and local-eval).
+
+2002-07-12  Gary Houston  <ghouston@arglist.com>
+
+       * dynl.c: Don't define stub procedures if DYNAMIC_LINKING is not
+       defined.  They don't do anything useful, especially since the
+       only case where DYNAMIC_LINKING is undefined seems to be
+       when --with-modules=no is given to configure, which is basically
+       requesting that the "dynamic linking module" be omitted.
+
+       * Makefile.am (libguile_la_SOURCES): move dynl.c from
+       libguile_la_SOURCES to EXTRA_libguile_la_SOURCES.
+
+       * extensions.c (load_extension): check DYNAMIC_LINKING for
+       scm_dynamic_call.
+       * init.c (scm_init_guile_1): check DYNAMIC_LINKING for
+       scm_init_dynamic_linking.
+
+2002-07-10  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * guile.c, iselect.h, net_db.c, posix.c, socket.c: No need to
+       check for Cygwin when including <winsock2.h>, this is already
+       check for by configure.  Thus, revert change from 2002-07-07.
+
+2002-07-10  Gary Houston  <ghouston@arglist.com>
+
+       * eq.c: include <string.h>
+       * dynl.c: docstring editing.
+
+2002-07-09  Gary Houston  <ghouston@arglist.com>
+
+       * dynl.c (scm_dynamic_call): docstring editing.
+
+2002-07-08  Rob Browning  <rlb@defaultvalue.org>
+
+       * gc_os_dep.c: HURD fixes.
+
+2002-07-07  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       Crosscompiling and Cygwin fixes by Jan Nieuwenhuizen.  Thanks!
+
+       * Makefile.am: Override default rule for c-tokenize.$(OBJECT);
+       this should be compiled for BUILD host.
+       Override default rule for
+       guile_filter_doc_snarfage$(EEXECT); this should run on BUILD host.
+       Add missing $(EXEEXT) to guile_filter_doc_snarfage invocation.
+       (snarf2checkedtexi): Use GUILE_FOR_BUILD instead of preinstguile.
+
+       * guile.c, iselect.h, net_db.c, posix.c, socket.c: Do not include
+       <winsock2.h> on Cygwin even when we have it.
+
+2002-07-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_CAUTIOUS), eval.c (scm_eval_args, deval_args,
+       SCM_CEVAL):  Removed compile time option SCM_CAUTIOUS to clean up
+       the code.  Full number of arguments checking of closures is
+       mandatory now.  However, the option to disable the checking has
+       most probably not been used anyway.
+
+2002-06-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h (SCM_RECKLESS), backtrace.c (SCM_ASSERT), debug.c
+       (scm_debug_options), eval.c (scm_lookupcar, scm_lookupcar1,
+       scm_badargsp, SCM_CEVAL, SCM_APPLY, scm_map, scm_for_each),
+       feature.c (scm_init_feature), gsubr.c (scm_gsubr_apply), numbers.c
+       (scm_logand, scm_logior, scm_logxor, scm_i_dbl2big), srcprop.c
+       (scm_source_properties, scm_set_source_properties_x,
+       scm_source_property):  Removed compile time option SCM_RECKLESS to
+       clean up the code.  Full number of arguments checking of closures
+       is mandatory now.  However, the option to disable the checking has
+       most probably not been used anyway.
+
+       * srcprop.c (scm_source_properties, scm_set_source_properties_x,
+       scm_source_property): Use !SCM_CONSP instead of SCM_NCONSP.
+
+2002-06-30  Gary Houston  <ghouston@arglist.com>
+
+       * dynl.c: Removed all SCM_DEFER_INTS/SCM_ALLOW_INTS, which won't
+       do anything useful.  Added a comment about need for a mutex if
+       pre-emptive threading is supported.
+
+       * posix.c (scm_convert_exec_args), dynl.c
+       (scm_make_argv_from_stringlist): static procs: 1) renamed both to
+       allocate_string_pointers.  2) simplified: don't reallocate the
+       strings, just make an array of pointers 3) avoid memory leaks on
+       error 4) let the procedure report errors in its own name.
+       Consequences: 1) the procedures now assume that SCM strings are
+       nul-terminated, which should always be the case.  2) Since strings
+       are not reallocated, it's now possible for strings passed to
+       dynamic-args-call to be mutated.
+
+2002-06-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * __scm.h, eval.c, eval.h:  Removed compile time option
+       MEMOIZE_LOCALS to clean up the code.  Now, caching of local
+       variable positions during memoization is mandatory.  However, the
+       option to disable the caching has most probably not been used
+       anyway.
+
+2002-06-18  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * print.c (scm_simple_format): Print missing part of format before
+       ~% control.  Thanks to Daniel Skarda!
+
+2002-06-01  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * mkstemp.c: Added exception notice to license statement.
+
+2002-05-22  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * numbers.c (mem2ureal): When returning an inexact zero, make sure
+       it is represented as a floating point value so that we can change
+       its sign.
+
+        From John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+       * numbers.c (idbl2str): Don't omit sign when printing negative zero.
+
+2002-05-14  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * gc_os_dep.c: For I386/OPENBSD, allow for `__i386__'
+       in addition to `i386'.  Thanks to Dale P. Smith.
+
+2002-05-08  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * eq.c (real_eqv): New.
+       (scm_eqv_p): Use it when comparing reals and complexes.
+
+       * numbers.c: Include <string.h>, for strncmp.
+       (mem2complex): Do not create negative NaNs.
+       (scm_leq_p, scm_geq_p): Explicitely return #f when comparing a
+       NaN.
+       (scm_inexact_to_exact): Signal error when converting a NaN.
+
+2002-05-06  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * posix.c (scm_putenv): Handle removing variables explicitely by
+       calling unsetenv.
+
+       From John W. Eaton.
+
+       * numbers.h: Conditionally include floatingpoint.h, ieeefp.h, and
+       nan.h.  Provide declarations for scm_inf_p, scm_nan_p, scn_inf,
+       and scm_nan.
+       * numbers.c: [SCO && ! HAVE_ISNAN] (isnan): New function.
+       [SCO && ! HAVE_ISINF] (isinf): New function.
+       (xisinf, xisnan): New functions.
+       (IS_INF): Delete.
+       (isfinite): Define in terms of xisinf.
+       (scm_inf_p, scm_nan_p): New functions.
+       (guile_Inf, guile_NaN): New file-scope vars.
+       (guile_ieee_init): New function.
+       (scm_inf, scm_nan): New functions.
+       (idbl2str): Handle Inf and NaN. Remove funny label and
+       corresponding gotos.
+       (ALLOW_DIVIDE_BY_ZERO): New macro.
+       (scm_divide): Allow division by zero to occur if
+       ALLOW_DIVIDE_BY_ZERO is defined.
+       Handle bignums and ints as special cases.
+
+       Additional stuff by me:
+
+       numbers.c (mem2ureal): Recognize "inf.0" and "nan.xxx".
+       (scm_even_p, scm_odd_p): Treat infinity as even and odd.
+       (iflo2str): Don't output a '+' for negative numbers or for Inf and
+       NaN.  They will provide their own sign.
+       (scm_divide): Only allow divides by inexact zeros.  Dividing by
+       exact zeros still signals an errors.
+
+2002-04-22  Thien-Thi Nguyen  <ttn@giblet.glug.org>
+
+       * goops.h (scm_slot_exists_p): Rename from scm_slots_exists_p.
+       * goops.c (scm_slot_exists_p): Rename from scm_slots_exists_p.
+       (s_scm_slot_exists_p): Rename from s_scm_slots_exists_p.
+       Thanks to Andreas Rottmann.
+
+2002-04-20  Gary Houston  <ghouston@arglist.com>
+
+       * removal of unused fields in root state (thanks to Christopher
+       Cramer for pointing out the disuse.)
+       * root.h (scm_root_state): removed def_inp, def_outp, def_errp.
+       (scm_def_inp, scm_def_outp, scm_def_errp): removed.
+
+       * root.c (root_mark): don't mark them.
+       (scm_make_root): don't set them to #f.
+       * init.c (scm_init_standard_ports): don't initialise with the
+       default ports.
+
+2002-04-17  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * Makefile.am (EXTRA_DIST): Added cpp_err_symbols.c and
+       cpp_sig_symbols.c.
+
+2002-04-16  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * guile-snarf.in: Do not clean input file.  This would write to
+       the $(srcdir) during a VPATH build, which is not allowed.  It also
+       isn't needed since it only works when an output filename has been
+       specified and in that case we don't need to clean the input file
+       because the output file will already exist.
+
+2002-03-31  Marius Vollmer  <mvo@zagadka.ping.de>
+
+       * guile-snarf: Install the trap for removing $cleanfile only when
+       the value of $cleanfile is actually known.
+
+2002-04-10  Rob Browning  <rlb@defaultvalue.org>
+
+       * .cvsignore: add versiondat.h and *.c.clean.c.
+
+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 
+       * 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 
+       * 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.
        * 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),
 
        * 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.
 
        (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
 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 
+       given Scheme string into a C string.  Also put in two
        THINKME's regarding the malloc policy for the missing converter
        routines.
 
 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. 
+       * 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.
 
        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_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. 
+       * Makefile.am: Added them in all the right places.
 
-       * _scm.h: Include "libguile/inline.h". 
+       * _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,
 
        * 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.  
+       * 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 
+       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>