("scm_new_port_table_entry"): return a boxed SCM in
[bpt/guile.git] / libguile / ChangeLog
index 61a468b..2e8e6fd 100644 (file)
@@ -1,3 +1,390 @@
+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.
 
 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'.