replace port table with weak hash table. This simplifies
[bpt/guile.git] / libguile / ChangeLog
index 2e3d816..d7e1ced 100644 (file)
@@ -1,3 +1,82 @@
+2007-08-26  Han-Wen Nienhuys  <hanwen@lilypond.org>
+
+       * fports.c gc-card.c gc.c gc.h ioext.c ports.c ports.h weaks.h
+       gc.c: replace port table with weak hash table. This simplifies
+       memory management, and fixes freed cells appearing in
+       port-for-each output.
+
+       * init.c (cleanup_for_exit): abort cleanup if init_mutex is still
+       held.
+
+2007-08-23  Ludovic Courtès  <ludo@gnu.org>
+
+       * read.c (scm_read_quote): Record position and copy source
+       expression when asked to.  Reported by Kevin Ryde.
+
+       * stime.c: Define `_REENTRANT' only if not already defined.
+
+2007-08-21  Kevin Ryde  <user42@zip.com.au>
+
+       * gc-card.c (scm_i_card_statistics): Record scm_tc7_number types as
+       tc16 values so big, real, complex and fraction can be distinguished.
+
+       (scm_i_tag_name): Return "number" for scm_tc7_number, not NULL.  NULL
+       was making numbers come out as "type 23" in gc-live-object-stats.
+       Fix tests of the tc16 number types, they were checked under
+       scm_tc7_number, but the values went down the tag>=255 smob case.
+       Put smob case under scm_tc7_smob instead of using tag>=255, per
+       recommendation in comments with scm_tc7_smob to use symbolic values. 
+       Use SCM_TC2SMOBNUM to extract scm_smobs index, instead of explicit
+       code.  Lose some unnecessary "break" statements.
+
+       (scm_i_card_statistics): Use scm_hashq_create_handle_x and modify the
+       element returned, rather than two lookups scm_hashq_ref and
+       scm_hashq_set_x.
+
+2007-08-17  Kevin Ryde  <user42@zip.com.au>
+
+       * stime.c: Add #define _REENTRANT, to get gmtime_r() prototype on
+       solaris 2.6.  Reported by anirkko.
+
+2007-07-29  Ludovic Courtès  <ludo@gnu.org>
+
+       * Makefile.am (INCLUDES): Added Gnulib includes.
+       (gnulib_library): New.
+       (libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_LIBADD): Added
+       `$(gnulib_library)'.
+       (libguile_la_LIBADD): Likewise.
+
+       * posix.c: Don't define `_GNU_SOURCE' since `gl_EARLY' arranges
+       to define it when available.
+       * srfi-14.c: Likewise.
+       * i18n.c: Likewise.  Include Gnulib's <alloca.h>
+       * eval.c: Include Gnulib's <alloca.h>.
+       * filesys.c: Likewise.
+       * read.c: Don't include <strings.h> and don't provide an
+       `strncasecmp ()' replacement; use Gnulib's <string.h> and
+       `strncasecmp ()' instead.
+
+2007-07-25  Ludovic Courtès  <ludo@gnu.org>
+
+       * eval.c (macroexp): When `scm_ilength (res) <= 0', return
+       immediately.  This used to produce a circular memoized
+       expression, e.g., for `(set (quote x) #t)'.
+
+2007-07-22  Ludovic Courtès  <ludo@gnu.org>
+
+       Overhauled the reader, making it faster.
+
+       * gdbint.c (tok_buf, tok_buf_mark_p): Removed.
+       (gdb_read): Don't use a token buffer.  Use `scm_read ()' instead
+       of `scm_lreadr ()'.
+
+       * read.c: Overhauled.  No longer use a token buffer.  Use a
+       on-stack C buffer in the common case and use Scheme strings when
+       larger buffers are needed.
+       * read.h (scm_grow_tok_buf, scm_flush_ws, scm_casei_streq,
+       scm_lreadr, scm_lreadrecparen): Removed.
+       (scm_i_input_error): Marked as `SCM_NORETURN'.
+
 2007-07-15  Ludovic Courtès  <ludo@gnu.org>
 
        * script.c (scm_compile_shell_switches): Updated copyright year.