-2006-01-04 Ludovic Court<E8>s <ludovic.courtes@laas.fr>
+2007-10-10 Ludovic Courtès <ludo@gnu.org>
+
+ * pthread-threads.h (SCM_I_PTHREAD_MUTEX_INITIALIZER): Check
+ `SCM_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER'.
+ * gen-scmconfig.h.in
+ (SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER): New.
+ * gen-scmconfig.c (main): Define
+ `SCM_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER'.
+
+2007-10-04 Ludovic Courtès <ludo@gnu.org>
+
+ * i18n.c (scm_make_locale)[!USE_GNU_LOCALE_API]: Don't call
+ `leave_locale_section ()' on failure of
+ `enter_locale_section ()' since the mutex is not held and locale
+ settings are unchanged.
+ (scm_nl_langinfo)[!USE_GNU_LOCALE_API]: Use
+ `restore_locale_settings ()' instead of `leave_locale_section ()'
+ since the mutex is not held.
+
+2007-10-02 Ludovic Courtès <ludo@gnu.org>
+
+ * threads.c (on_thread_exit): Don't call `scm_leave_guile ()'
+ since we're already in non-guile mode. Reported by Greg Toxel
+ for NetBSD.
+
+2007-10-01 Ludovic Courtès <ludo@gnu.org>
+
+ * ports.c (flush_output_port): Expect directly a port instead of
+ a pair. Fixes a bug in the new port table (2007-08-26).
+
+2007-09-11 Kevin Ryde <user42@zip.com.au>
+
+ * posix.c (scm_putenv): Confine the putenv("NAME=") bit to mingw, use
+ putenv("NAME") as the fallback everywhere else. In particular this is
+ needed for solaris 9. Reported by Frank Storbeck.
+
+2007-09-03 Ludovic Courtès <ludo@gnu.org>
+
+ * read.c (flush_ws): Handle SCSH block comments.
+
+2007-09-03 Ludovic Courtès <ludo@gnu.org>
+
+ Fix alignment issues which showed up at least on SPARC.
+
+ * socket.c (scm_t_max_sockaddr, scm_t_getsockopt_result): New.
+ (scm_inet_pton): Change DST to `scm_t_uint32' for correct
+ alignment.
+ (scm_getsockopt): Change OPTVAL to `scm_t_getsockopt_result' for
+ correct alignment.
+ (_scm_from_sockaddr): Change ADDRESS to `scm_t_max_sockaddr *'.
+ (scm_from_sockaddr): Cast ADDRESS to `scm_t_max_sockaddr *'.
+ (MAX_SIZE_UN, MAX_SIZE_IN6): Removed.
+ (scm_accept, scm_getsockname, scm_getpeername, scm_recvfrom):
+ Use `scm_t_max_sockaddr' instead of "char max_addr[MAX_ADDR_SIZE]".
+
+2007-09-03 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_log): Test HAVE_CLOG as well as HAVE_COMPLEX_DOUBLE
+ before using clog(). It's possible for gcc to provide the "complex
+ double" type, but for the system not to have the complex funcs.
+ (scm_exp): Ditto HAVE_CEXP for cexp().
+ (clog, cexp, carg): Remove fallback definitions. These only
+ duplicated the code within scm_log and scm_exp, and the latter have to
+ exist for the case when there's no "complex double". So better just
+ fix up the conditionals selecting between the complex funcs and plain
+ doubles than worry about fallbacks.
+
+2007-09-02 Ludovic Courtès <ludo@gnu.org>
+
+ * socket.c (scm_make_socket_address): Free C_ADDRESS after use.
+ This fixes a memory leak.
+
+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.
+
+ * 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.
+
+2007-07-11 Ludovic Courtès <ludo@gnu.org>
+
+ * goops.c (scm_sys_method_more_specific_p): Added docstring.
+ Make sure LEN is greater than or equal to the minimum length of
+ specializers of M1 and M2. This fixes a segfault later on in
+ `more_specificp ()' if TARGS is too small. Reported by Marco
+ Maggi <marco.maggi-ipsu@poste.it>.
+
+2007-06-26 Ludovic Courtès <ludo@gnu.org>
+
+ * fluids.c (next_fluid_num): When growing ALLOCATED_FLUIDS, make
+ sure to free the previous array after the new one has been
+ installed. This leak is made visible by running
+ "(define l (map (lambda (i) (make-fluid)) (iota 255)))"
+ from the REPL within Valgrind.
+
+2007-06-12 Ludovic Courtès <ludo@chbouib.org>
+
+ * socket.c (scm_inet_ntop): In the `AF_INET' case, declare `addr4'
+ as an `scm_t_uint32' rather than re-using `addr6'. This fixes a
+ bus error on SPARC (and possibly others) due to unaligned access.
+
+2007-06-07 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * posix.c (scm_ttyname): Check whether RESULT is NULL before
+ making a string from it (reported by Dan McMahill). Don't call
+ `scm_from_locale_string ()' before the mutex is released.
+
+2007-05-26 Ludovic Courtès <ludo@chbouib.org>
+
+ * eval.c (scm_m_define): Updated comment. Changed order for value
+ evaluation and `scm_sym2var ()' call, which is perfectly valid per
+ R5RS. This reverts the change dated 2004-04-22 by Dirk Herrmann.
+
+2007-05-05 Ludovic Courtès <ludo@chbouib.org>
+
+ Implemented lazy duplicate binding handling.
+
+ * modules.c (scm_export): Renamed to...
+ (scm_module_export): This. Now public.
+ (module_variable): Removed.
+ (default_duplicate_binding_procedures_var): New variable.
+ (default_duplicate_binding_handlers, resolve_duplicate_binding,
+ module_imported_variable, scm_module_local_variable,
+ scm_module_variable): New functions.
+ (scm_module_import_interface): Rewritten.
+ (scm_module_reverse_lookup): Exported as a Scheme function.
+ * modules.h (scm_module_index_duplicate_handlers,
+ scm_module_index_import_obarray): New macros.
+ (scm_module_variable, scm_module_local_variable,
+ scm_module_export): New declarations.
+
+2007-04-17 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * numbers.c: Commented out trailing `HAVE_COMPLEX_DOUBLE' after
+ `#endif'. Use `#ifndef HAVE_XXX' rather than `#if !HAVE_XXX'.
+
+2007-04-09 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * numbers.c (carg): provide carg, cexp, clog in case they are
+ missing.
+
+2007-03-12 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * i18n.c (scm_nl_langinfo): `#ifdef'd uses of `GROUPING',
+ `FRAC_DIGITS', etc., which are GNU extensions. Reported by
+ Steven Wu.
+
+2007-03-08 Kevin Ryde <user42@zip.com.au>
+
+ * struct.c, struct.h (scm_make_vtable): New function, providing
+ `make-vtable'.
+ * stacks.c (scm_init_stacks): Use it.
+
+2007-03-06 Kevin Ryde <user42@zip.com.au>
+
+ * struct.c (scm_make_struct): Check for R,W,O at end of layout when
+ allocating a tail array. If there's no such then those tail fields
+ are uninitialized and garbage SCMs there can cause a segv if printed
+ (after fetching with struct-ref).
+
+2007-02-22 Kevin Ryde <user42@zip.com.au>
+
+ * scmsigs.c (scm_sleep): In docstring, cross refence usleep.
+ (scm_usleep): Update docstring per manual, cross reference sleep.
+
+ * struct.c (scm_make_struct): Move SCM_CRITICAL_SECTION_END up so that
+ scm_struct_init is not within that section. scm_struct_init can
+ thrown an error, which within a critical section results in an
+ abort().
+
+2007-02-19 Neil Jerram <neil@ossau.uklinux.net>
+
+ * Makefile.am (noinst_HEADERS): Add private-options.h, so that it
+ is included in the distribution.
+ (noinst_HEADERS): And the same for eval.i.c.
+
+2007-01-31 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * i18n.c: Include "libguile/threads.h" and "libguile/posix.h"
+ unconditionally. Include <langinfo.h> and <nl_types.h> when
+ available.
+ (SCM_I18N_STRINGIFY, SCM_LOCALE_CATEGORY_MASK,
+ SCM_LIST_OR_INTEGER_P): New macros.
+ (LC_*_MASK): When `USE_GNU_LOCALE_API' is undefined, define them
+ as powers of two instead of `(1 << LC_*)'.
+ (scm_i_locale_free): New function/macro.
+ (scm_global_locale): New global variable.
+ (smob_locale_free): Use `scm_i_locale_free ()'.
+ (smob_locale_mark): Check whether the SMOB is `%global-locale'.
+ (get_current_locale_settings): Return `EINVAL' instead of `errno'
+ when `setlocale' fails.
+ (restore_locale_settings): Likewise.
+ (install_locale_categories): Likewise.
+ (install_locale): Likewise. Stop the locale stack traversal when
+ all categories have been handled.
+ (get_current_locale, category_to_category_mask,
+ category_list_to_category_mask): New function.
+ (scm_make_locale): Use them. Accept both lists of `LC_*' values
+ and single `LC_*' values as the first argument. Handle the case
+ where BASE_LOCALE is `%global-locale'. When `USE_GNU_LOCALE_API',
+ duplicate C_BASE_LOCALE before using it.
+ (scm_nl_langinfo, define_langinfo_items): New functions.
+ (scm_init_i18n): When `HAVE_NL_LANGINFO', add feature
+ `nl-langinfo' and invoke `define_langinfo_items ()'.
+ * i18n.h (scm_global_locale, scm_nl_langinfo): New declarations.
+ * posix.c: Include <xlocale.h> when available.
+ (scm_i_locale_mutex): Always define it. Statically initialized.
+ (scm_set_locale): Invoke `scm_i_to_lc_category ()' before
+ acquiring the locale mutex.
+ (scm_init_posix): No longer initialize SCM_I_LOCALE_MUTEX here.
+
+2007-01-27 Kevin Ryde <user42@zip.com.au>
+
+ * ports.c (scm_port_line, scm_set_port_line_x), read.c
+ (scm_i_input_error, scm_lreadr, scm_lreadrecparen): Corrections to
+ port line number type, should be "long" not "int", as per line_number
+ field of scm_t_port. (Makes a difference only on 64-bit systems, and
+ only then for a linenum above 2Gig.)
+
+2007-01-25 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * vector.c: remove comment as per kryde's request.
+
+2007-01-25 Kevin Ryde <user42@zip.com.au>
+
+ * sort.c (scm_stable_sort): Return empty list for input empty list, as
+ done in guile 1.6 and as always done by plain `sort'. Was falling
+ through to SCM_WRONG_TYPE_ARG. Reported by Ales Hvezda.
+
+2007-01-22 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * vectors.c (s_scm_vector_move_right_x): complain about naming.
+
+ * srcprop.c: regularize comments.
+
+ * eval.c: remove superfluous ifndef DEVAL.
+
+ * private-options.h: idem.
+
+ * eval.i.c: copyright nitpicking.
+
+ * eval.c: distangle. move duplicate code to eval.i.c and include
+ twice.
+
+ * eval.i.c: new file.
+
+ * backtrace.c, debug.c, debug.h, deprecation.c, eq.c, eval.c
+ eval.h, gsubr.c, init.c, macros.c, print.c, print.h, read.c,
+ read.h, stacks.c, symbols.c, throw.c: use private-options.h
+
+ * private-options.h: new file: contain hardcoded option
+ definitions.
+
+ * private-gc.h: add FSF header.
+
+2007-01-19 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * debug.h (SCM_RESET_DEBUG_MODE): switch to debugging if
+ memoize-symbol is set.
+
+ * eval.h (SCM_MEMOIZE_HDLR): add macros for memoize symbol trap.
+
+ * eval.c (CEVAL): add memoize_symbol trap.
+
+ * options.c (scm_options_try): new function. This allows error
+ reporting before changing options in a critical section.
+
+ * srcprop.c: use double cell for storing source-properties. Put
+ filename in the plist, and share between srcprops if possible.
+ Remove specialized storage.
+
+ * srcprop.h: remove macros without SCM_ prefix from
+ interface. Remove specialized storage/type definitions.
+
+ * read.c: idem.
+
+ * print.c: idem.
+
+ * eval.c: terminate option lists with 0.
+
+ * options.c: remove n (for length) from scm_option_X
+ functions. Detect option list length by looking for NULL name.
+
+2007-01-19 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * struct.c (scm_i_struct_equalp): Skip comparison if both FIELD1
+ is equal to S1 and FIELD2 is equal to S2. This avoids infinite
+ recursion when comparing `s' fields, as the REQUIRED_VTABLE_FIELDS
+ added by `make-vtable-vtable'. Reported by Marco Maggi.
+
+2007-01-18 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * throw.c (scm_ithrow): more refined error message: print symbols
+ too.
+
+2007-01-16 Kevin Ryde <user42@zip.com.au>
+
+ * feature.c, feature.h (scm_set_program_arguments_scm): New function,
+ implementing `set-program-arguments'.
+
+ * filesys.c (scm_init_filesys): Use scm_from_int rather than
+ scm_from_long for O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_EXCL,
+ O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_NDELAY, O_SYNC and
+ O_LARGEFILE. These are all int not long, per arg to open().
+ (scm_init_filesys): Use scm_from_int rather than scm_from_long for
+ F_DUPFD, F_GETFD, F_SETFD, F_GETFL, F_SETFL, F_GETOWN, F_SETOWN, these
+ are all ints (per command arg to fcntl). Likewise FD_CLOEXEC which is
+ an int arg to fcntl.
+
+ * posix.c (scm_putenv): Correction to "len" variable, was defined only
+ for __MINGW32__ but used under any !HAVE_UNSETENV (such as solaris).
+ Move it to where it's used. Reported by Hugh Sasse.
+
+ * regex-posix.c (scm_regexp_exec): Remove SCM_CRITICAL_SECTION_START
+ and SCM_CRITICAL_SECTION_END, believe not needed. Their placement
+ meant #\nul in the input (detected by scm_to_locale_string) and a bad
+ flags arg (detected by scm_to_int) would throw from a critical
+ section, causing an abort().
+
+ * regex-posix.c (scm_init_regex_posix): Use scm_from_int for
+ REG_BASIC, REG_EXTENDED, REG_ICASE, REG_NEWLINE, REG_NOTBOL,
+ REG_NOTEOL; they're all ints not longs (per args to regcomp and
+ regexec).
+
+2007-01-10 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * throw.c (scm_ithrow): print out key symbol and string arguments
+ when error happens inside a critical section, and document why.
+
+2007-01-06 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * read.c (s_scm_read_hash_extend): document #f argument to
+ read-hash-extend.
+
+2007-01-04 Kevin Ryde <user42@zip.com.au>
+
+ * deprecated.h (scm_create_hook), version.h.in (scm_major_version,
+ scm_minor_version, scm_micro_version, scm_effective_version,
+ scm_version, scm_init_version): Use SCM_API instead of just extern,
+ for the benefit of mingw. Reported by Cesar Strauss.
+
+2007-01-03 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * gc.c (s_scm_gc_stats): return an entry for total-cells-allocated
+ too.
+ (gc_update_stats): update scm_gc_cells_allocated_acc too.
+
+2006-12-27 Kevin Ryde <user42@zip.com.au>
+
+ * threads.c (get_thread_stack_base): In mingw with pthreads we can use
+ the basic scm_get_stack_base. As advised by Nils Durner.
+
+ * threads.c (get_thread_stack_base): Add a version using
+ pthread_get_stackaddr_np (when available), for the benefit of MacOS.
+ As advised by Heikki Lindholm.
+
+ * scmsigs.c (signal_delivery_thread): Restrict scm_i_pthread_sigmask
+ to HAVE_PTHREAD_SIGMASK, it doesn't exist on mingw. Reported by Nils
+ Durner.
+
+2006-12-24 Kevin Ryde <user42@zip.com.au>
+
+ * posix.c (scm_kill): When only raise() is available, throw an ENOSYS
+ error if pid is not our own process, instead of silently doing nothing.
+
+ * print.c (scm_write, scm_display, scm_write_char): Disable port close
+ on EPIPE. This was previously disabled but introduction of HAVE_PIPE
+ check in configure.in unintentionally enabled it. Believe that
+ testing errno after scm_prin1 or scm_putc is bogus, a long ago error
+ can leave errno in that state. popen.test "no duplicates" output test
+ provoked that.
+
+2006-12-23 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * numbers.c (scm_i_fraction_reduce): move logic into
+ scm_i_make_ratio(), so fractions are only read.
+ scm_i_fraction_reduce() modifies a fraction when reading it. A
+ race condition might lead to fractions being corrupted by reading
+ them concurrently.
+
+ Also, the REDUCED bit alters the SCM_CELL_TYPE(), making
+ comparisons between reduced and unreduced fractions go wrong.
+
+ * numbers.h: remove SCM_FRACTION_SET_NUMERATOR,
+ SCM_FRACTION_SET_DENOMINATOR, SCM_FRACTION_REDUCED_BIT,
+ SCM_FRACTION_REDUCED_SET, SCM_FRACTION_REDUCED_CLEAR,
+ SCM_FRACTION_REDUCED.
+
+2006-12-16 Kevin Ryde <user42@zip.com.au>
+
+ * scmsigs.c (scm_raise): Use raise() rather than kill(), as this is
+ more direct for a procedure called raise.
+ (kill): Remove mingw fake fallback.
+
+2006-12-15 Kevin Ryde <user42@zip.com.au>
+
+ * scmsigs.c: Conditionalize process.h, add io.h believe needed for
+ _pipe on mingw.
+
+2006-12-14 Kevin Ryde <user42@zip.com.au>
+
+ * threads.c (thread_print): Cope with the case where pthread_t is a
+ struct, as found on mingw. Can't just cast to size_t for printing.
+ Reported by Nils Durner.
+
+ * scmsigs.c: Add <fcntl.h> and <process.h> needed by mingw. Copy the
+ fallback pipe() using _pipe() from posix.c. Reported by Nils Durner.
+
+2006-12-13 Kevin Ryde <user42@zip.com.au>
+
+ * eval.c (scm_m_define): Set 'name procedure property on any
+ scm_procedure_p, not just SCM_CLOSUREP. In particular this picks up
+ procedures with setters as used in srfi-17.
+
+ * posix.c (scm_crypt): Check for NULL return from crypt(), which the
+ linux man page says is a possibility.
+
+2006-12-12 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * libguile/unif.c (read_decimal_integer): Let RESP be SIGN * RES
+ instead of RES (reported by Szavai Gyula). This allows the use of
+ negative lower bounds.
+ (scm_i_read_array): Make sure LEN is non-negative (reported by
+ Szavai Gyula).
+
+ (scm_array_in_bounds_p): Iterate over S instead of always
+ comparing indices with the bounds of S[0]. This fixes
+ `array-in-bounds?' for arrays with a rank greater than one and
+ with different lower bounds for each dimension.
+
+2006-12-05 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_product): For flonum*inum and complex*inum, return
+ exact 0 if inum==0. Already done for inum*flonum and inum*complex,
+ and as per R5RS section "Exactness".
+
+2006-12-03 Kevin Ryde <user42@zip.com.au>
+
+ * Makefile.am (.c.doc): Remove the "test -n" apparently attempting to
+ allow $AWK from the environment to override. It had syntax gremlins,
+ and the presence of a $(AWK) variable set by AC_PROG_AWK in the
+ Makefile stopped it having any effect. Use just $(AWK), which can be
+ overridden with "make AWK=xxx" in the usual way if desired.
+
+2006-11-29 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * libguile/vectors.c (scm_vector_to_list): Fixed list
+ construction: elements were not copied when INC is zero (see
+ "shared array" example in `vectors.test'). Reported by
+ Szavai Gyula.
+
+2006-11-18 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * Makefile.am (lib_LTLIBRARIES): Added `libguile-i18n-v-XX.la'.
+ (libguile_la_SOURCES): Added `gettext.c', removed `i18n.c'.
+ (libguile_i18n_v_XX_la_SOURCES, libguile_i18n_v_XX_la_CFLAGS,
+ libguile_i18n_v_XX_la_LIBADD, libguile_i18n_v_XX_la_LDFLAGS): New.
+ (DOT_X_FILES): Added `gettext.x'.
+ (DOT_DOC_FILES): Likewise.
+ (EXTRA_libguile_la_SOURCES): Added `locale-categories.h'.
+ (modinclude_HEADERS): Added `gettext.h'.
+ (EXTRA_DIST): Added `libgettext.h'.
+
+ * gettext.h: Renamed to...
+ * libgettext.h: New file.
+
+ * i18n.c: Renamed to...
+ * gettext.c: New file.
+
+ * i18n.h: Renamed to...
+ * gettext.h: New file.
+
+ * i18n.c, i18n.h, locale-categories.h: New files.
+
+ * init.c: Include "libguile/gettext.h" instead of
+ "libguile/i18n.h".
+ (scm_i_init_guile): Invoke `scm_init_gettext ()' instead of
+ `scm_init_i18n ()'.
+
+ * posix.c: Include "libguile/gettext.h" instead of
+ "libguile/i18n.h" Test `HAVE_NEWLOCALE' and `HAVE_STRCOLL_L'.
+ (USE_GNU_LOCALE_API): New macro.
+ (scm_i_locale_mutex): New variable.
+ (scm_setlocale): Lock and unlock it around `setlocale ()' calls.
+
+ * posix.h: Include "libguile/threads.h".
+ (scm_i_locale_mutex): New declaration.
+
+2006-11-17 Neil Jerram <neil@ossau.uklinux.net>
+
+ * script.c (scm_shell_usage): Note need for subscription to bug-guile@gnu.org.
+
+2006-11-08 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * libguile/gc-freelist.c (scm_i_adjust_min_yield): Take two
+ "sweep_stats" arguments; use them instead of accessing the global
+ variables `scm_gc_cells_collected' and `scm_gc_cells_collected_1'.
+
+ * libguile/gc-segment.c (scm_i_sweep_some_cards): Reset SWEEP
+ before each iteration of the loop.
+ (scm_i_sweep_some_segments): Reset SWEEP at each iteration.
+ (scm_i_get_new_heap_segment): Take an additional argument
+ SWEEP_STATS. Compute MIN_CELLS as a function of it.
+
+ * libguile/gc.c (scm_gc_cells_collected,
+ scm_gc_cells_collected_1): Removed.
+ (scm_i_gc_sweep_stats, scm_i_gc_sweep_stats_1): New.
+ (scm_gc_cells_marked_acc, scm_gc_cells_swept_acc,
+ scm_gc_time_taken, scm_gc_mark_time_taken, scm_gc_times,
+ scm_gc_cell_yield_percentage, protected_obj_count): Made `static'.
+ (scm_gc_stats): Use `scm_i_gc_sweep_stats' instead of
+ `scm_gc_cells_(collected|swept)'.
+ (gc_update_stats): New.
+ (gc_end_stats): Use `scm_i_gc_sweep_stats' and
+ `scm_i_gc_sweep_stats_1' instead of the former globals.
+ (scm_gc_for_newcell): Invoke `gc_update_stats ()' after each
+ `scm_i_sweep_some_segments' call. This fixes a bug where the GC
+ would keep allocating new segments instead of re-using collected
+ cells (because `scm_gc_cells_collected' would remain zero).
+
+ * libguile/gc.h (scm_gc_cells_swept, scm_gc_cells_collected,
+ scm_gc_cell_yield_percentage): Removed.
+
+ * libguile/private-gc.h (scm_gc_cells_collected_1): Removed.
+ (scm_i_adjust_min_yield): Updated.
+ (scm_i_get_new_heap_segment): Updated.
+
+2006-11-02 Neil Jerram <neil@ossau.uklinux.net>
+
+ * modules.c: Correct comment saying that low-level environments
+ will be used "in the next release".
+
+ * init.c: Comment out #include of environments.h.
+ (scm_i_init_guile): Comment out scm_environments_prehistory() and
+ scm_init_environments() calls.
+
+ * Makefile.am (libguile_la_SOURCES): Remove environments.c.
+ (DOT_X_FILES): Remove environments.x.
+ (DOT_DOC_FILES): Remove environments.doc.
+ (modinclude_HEADERS): Remove environments.h.
+
+2006-10-25 Neil Jerram <neil@ossau.uklinux.net>
+
+ IA64 HP-UX GC patch from Hrvoje Nikšić. (Thanks!)
+
+ * threads.c (SCM_MARK_BACKING_STORE): Use scm_ia64_ar_bsp() and
+ scm_ia64_register_backing_store_base() instead of Linux-specific
+ implementations.
+
+ * gc.h (scm_ia64_register_backing_store_base, scm_ia64_ar_bsp):
+ New declarations.
+
+ * gc.c (__libc_ia64_register_backing_store_base): Declaration
+ removed.
+ (scm_ia64_register_backing_store_base, scm_ia64_ar_bsp): New, with
+ implementations for Linux and HP-UX.
+
+ * coop-pthreads.c (SCM_MARK_BACKING_STORE): Use scm_ia64_ar_bsp()
+ and scm_ia64_register_backing_store_base() instead of
+ Linux-specific implementations.
+
+ * continuations.h (__libc_ia64_register_backing_store_base):
+ Declaration removed.
+ (scm_t_contregs): New "fresh" field.
+
+ * continuations.c (ia64_getcontext): Removed.
+ (scm_make_continuation): Use continuation fresh field instead of
+ interpreting getcontext return values (which isn't portable). Use
+ scm_ia64_ar_bsp() and scm_ia64_register_backing_store_base()
+ instead of Linux-specific implementations.
+ (copy_stack_and_call): Use scm_ia64_register_backing_store_base()
+ instead of Linux-specific implementation.
+
+ * _scm.h (__ia64__): Also detect __ia64.
+
+2006-10-03 Kevin Ryde <user42@zip.com.au>
+
+ * eval.c (SCM_APPLY): For scm_tc7_subr_2o, throw wrong-num-args on 0
+ arguments or 3 or more arguments. Previously 0 called proc with
+ SCM_UNDEFINED, and 3 or more silently used just the first 2.
+
+2006-09-28 Kevin Ryde <user42@zip.com.au>
+
+ * fports.c, ports.c (ftruncate): Use "HAVE_CHSIZE && ! HAVE_FTRUNCATE"
+ for chsize fallback, instead of hard-coding mingw. Mingw in fact
+ supplies ftruncate itself these days.
+
+ * ports.c (fcntl.h): Can include this unconditionally, no need for
+ __MINGW32__.
+
+ * ports.c (truncate): Conditionalize on "HAVE_FTRUNCATE && !
+ HAVE_TRUNCATE" so as not to hard-code mingw. Use "const char *" and
+ "off_t" for parameters, per usual definition of this function, rather
+ than "char *" and "int". Use ftruncate instead of chsize. Check for
+ error on final close.
+
+2006-09-27 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_log10): Check HAVE_CLOG10, clog10() is not available
+ in mingw.
+
+ * posix.c (scm_execl, scm_execlp, scm_execle): Cast "const char *
+ const *" for mingw to suppress warnings from gcc (which are errors
+ under the configure default -Werror). Reported by Nils Durner.
+
+2006-09-26 Kevin Ryde <user42@zip.com.au>
+
+ * _scm.h (scm_to_off64_t, scm_from_off64_t): New macros.
+ * fports.c (scm_open_file): Use open_or_open64.
+ (fport_seek_or_seek64): New function, adapting fport_seek.
+ * fports.c, fports.h (scm_i_fport_seek, scm_i_fport_truncate): New
+ functions.
+ * ports.c (scm_seek, scm_truncate_file): Use scm_i_fport_seek and
+ scm_i_fport_truncate to allow 64-bit seeks and truncates on fports.
+
+ * ports.c (scm_truncate_file): Update docstring per manual.
+
+2006-09-23 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c, numbers.h (scm_log, scm_log10, scm_exp, scm_sqrt): New
+ functions.
+
+2006-09-20 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * srfi-14.c: Include <config.h>. Define `_GNU_SOURCE'.
+ (make_predset, define_predset, make_strset, define_strset, false,
+ true): Removed.
+ (SCM_CHARSET_UNSET, CSET_BLANK_PRED, CSET_SYMBOL_PRED,
+ CSET_PUNCT_PRED, CSET_LOWER_PRED, CSET_UPPER_PRED,
+ CSET_LETTER_PRED, CSET_DIGIT_PRED, CSET_WHITESPACE_PRED,
+ CSET_CONTROL_PRED, CSET_HEX_DIGIT_PRED, CSET_ASCII_PRED,
+ CSET_LETTER_AND_DIGIT_PRED, CSET_GRAPHIC_PRED, CSET_PRINTING_PRED,
+ CSET_TRUE_PRED, CSET_FALSE_PRED, UPDATE_CSET): New macros.
+ (define_charset, scm_srfi_14_compute_char_sets): New functions.
+ (scm_init_srfi_14): Use `define_charset ()' instead of
+ `define_predset ()' and `define_strset ()'.
+
+ * srfi-14.h (scm_c_init_srfi_14): Removed.
+ (scm_srfi_14_compute_char_sets): New declaration.
+
+ * posix.h: Include "srfi-14.h".
+ (scm_setlocale): Invoke `scm_srfi_14_compute_char_sets ()' after a
+ successful `setlocale ()' call.
+
+2006-09-08 Kevin Ryde <user42@zip.com.au>
+
+ * socket.c (scm_init_socket): Add MSG_DONTWAIT.
+ (scm_recvfrom): Update docstring from manual.
+
+2006-08-31 Rob Browning <rlb@defaultvalue.org>
+
+ * ports.c (scm_c_port_for_each): Add a
+ scm_remember_upto_here_1(ports) at the end of the function to fix
+ a GC bug.
+
+2006-08-28 Neil Jerram <neil@ossau.uklinux.net>
+
+ * backtrace.c (scm_display_backtrace_with_highlights): Minor
+ improvements to docstring.
+ (scm_backtrace_with_highlights): Analogous improvements.
+
+2006-08-12 Kevin Ryde <user42@zip.com.au>
+
+ * gen-scmconfig.h.in (SCM_I_GSC_NEED_BRACES_ON_PTHREAD_ONCE_INIT):
+ New, set from configure.
+ * gen-scmconfig.c (SCM_NEED_BRACES_ON_PTHREAD_ONCE_INIT): New output
+ to scmconfig.h.
+ * pthread-threads.h (SCM_I_PTHREAD_ONCE_INIT): Use
+ SCM_NEED_BRACES_ON_PTHREAD_ONCE_INIT to cope with Solaris.
+ Reported by Claes Wallin.
+
+2006-08-11 Neil Jerram <neil@ossau.uklinux.net>
+
+ * stacks.c (scm_last_stack_frame): Correct docstring (returns a
+ frame, not a stack).
+
+2006-07-25 Kevin Ryde <user42@zip.com.au>
+
+ * threads.c (get_thread_stack_base): Restrict HAVE_PTHREAD_GETATTR_NP
+ on pthreads version, since pthread_getattr_np not available on solaris
+ and macos. Reported by Claes Wallin.
+
+2006-07-24 Kevin Ryde <user42@zip.com.au>
+
+ * filesys.c (dirfd): Test with #ifndef rather than HAVE_DIRFD, since
+ it's a macro on MacOS X. Reported by Claes Wallin.
+
+ * posix.c (sethostname): Give prototype if not HAVE_DECL_SETHOSTNAME,
+ for the benefit of Solaris 10. Reported by Claes Wallin.
+
+ * socket.c (scm_htonl, scm_ntohl): Use scm_to_uint32 rather than
+ NUM2ULONG, to enforce 32-bit range check on systems with 64-bit long.
+
+2006-07-21 Kevin Ryde <user42@zip.com.au>
+
+ * eval.c, filesys.c (alloca): Update <alloca.h> etc blob, per current
+ autoconf recommendation. Should fix Solaris 10 reported by Claes
+ Wallin.
+
+ * threads.c: Include <string.h>, needed for memset() which is used by
+ FD_ZERO() on Solaris 10. Reported by Claes Wallin.
+
+2006-07-18 Rob Browning <rlb@defaultvalue.org>
+
+ * continuations.c: Add __attribute__ ((returns_twice)) to the
+ ia64_getcontext prototype so that gcc will make the right
+ arrangements and avoid an illegal instruction during
+ call-with-current-continuation.
+
+2006-07-12 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * numbers.c (guile_ieee_init): Use regular ANSI C casts rather
+ than C++-style `X_CAST ()'. Patch posted by by Mike Gran.
+
+2006-07-08 Kevin Ryde <user42@zip.com.au>
+
+ * environments.c (core_environments_unobserve): Use if/else rather
+ than ?: for "SET" bits, avoiding complaints from AIX xlc compiler
+ about them not being rvalues. Reported by Mike Gran.
+
+ * Makefile.am (version.h): Don't use $< in an explicit rule, it's not
+ portable and in particular fails on OpenBSD and AIX (see autoconf
+ manual too). Reported by Mike Gran.
+
+2006-06-25 Kevin Ryde <user42@zip.com.au>
+
+ * stime.c (bdtime2c): tm_gmtoff is seconds East, so take negative of
+ tm:gmtoff which is seconds West. Reported by Aaron VanDevender.
+ (bdtime2c): Test HAVE_STRUCT_TM_TM_GMTOFF for tm_gmtoff, rather than
+ HAVE_TM_ZONE.
+ (scm_strptime): Use tm_gmtoff from the strptime result when that field
+ exists, it's set by glibc strptime "%s".
+
+2006-06-13 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * eq.c: Include "struct.h", "goops.h" and "objects.h".
+ (scm_equal_p): Invoke `scm_i_struct_equalp ()' on structures that
+ are not GOOPS instances.
+ * struct.c: Include "eq.h".
+ (scm_free_structs): Use `SCM_STRUCT_VTABLE_DATA ()' instead of
+ hand-written code.
+ (scm_i_struct_equalp): New.
+ * struct.h (scm_i_struct_equalp): New declaration.
+
+2006-06-06 Kevin Ryde <user42@zip.com.au>
+
+ * Makefile.am (BUILT_SOURCES): Remove guile.texi, only used by
+ maintainers (with doc/maint/docstring.el). Fixes parallel "make -j2"
+ reported by Mattias Holm.
+
+2006-06-03 Kevin Ryde <user42@zip.com.au>
+
+ * read.c (s_vector): Conditionalize on SCM_ENABLE_ELISP, to avoid
+ unused variable warning when elisp disabled. Reported by Ryan
+ VanderBijl.
+
+ * throw.c (scm_handle_by_message): Add dummy return value to avoid
+ compiler warning on cygwin. Reported by Ryan VanderBijl.
+
+ * Makefile.am (EXTRA_DOT_X_FILES): Typo in dependency rule, was a
+ duplicate of EXTRA_DOT_DOC_FILES.
+ (DOT_X_FILES, EXTRA_DOT_X_FILES, DOT_DOC_FILES, EXTRA_DOT_DOC_FILES):
+ Add scmconfig.h to dependencies, since these all run cpp. Helps a
+ parallel "make -j2". Reported by Mattias Holm.
+
+2006-05-30 Kevin Ryde <user42@zip.com.au>
+
+ * ports.c, ports.h (scm_set_port_mark, scm_set_port_free,
+ scm_set_port_print, scm_set_port_equalp, scm_set_port_flush,
+ scm_set_port_end_input, scm_set_port_close, scm_set_port_seek,
+ scm_set_port_truncate, scm_set_port_input_waiting): Use scm_t_bits for
+ port type descriptor, same as scm_make_port_type return value.
+
+2006-05-30 Marius Vollmer <mvo@zagadka.de>
+
+ * eq.c (scm_equal_p): Use scm_array_equal_p explicitely when one
+ of the arguments is a array. This allows vectors to be equal to
+ one-dimensional arrays.
+
+2006-05-29 Marius Vollmer <mvo@zagadka.de>
+
+ * throw.c (scm_ithrow): When looking for the jmpbuf, first test
+ that we have a pair before accessing its cdr. Thanks to Bill
+ Schottstaedt!
+
+2006-05-28 Kevin Ryde <user42@zip.com.au>
+
+ * eval.c, filesys.c: Add malloc.h to get alloca() on mingw. Reported
+ by "The Senator".
+
+2006-05-27 Marius Vollmer <mvo@zagadka.de>
+
+ * srfi-4.c, strings.c: Replace SCM_C_INLINE with
+ SCM_C_INLINE_KEYWORD. Thanks to Mark Gran!
+
+2006-05-26 Kevin Ryde <user42@zip.com.au>
+
+ * fports.c (fport_input_waiting): For ioctl, check HAVE_IOCTL as well
+ as defined(FIONREAD), since mingw has FIONREAD but not ioctl().
+ Reported by "The Senator".
+ For select and ioctl, move fdes into those conditionals, to avoid
+ unused variable warning when neither of those used.
+
+2006-05-23 Kevin Ryde <user42@zip.com.au>
+
+ * fports.c: Remove "fwrite" declaration under "! HAVE_UNISTD_H".
+ It's unused and will be in stdio.h anyway (if it's anywhere).
+
+2006-05-20 Kevin Ryde <user42@zip.com.au>
+
+ * filesys.c (scm_stat2scm): Test #ifdef S_ISLNK directly, rather than
+ HAVE_S_ISLNK from configure (it was only a #ifdef test anyway).
+
+ * posix.c (scm_mknod): Test #ifdef S_IFLNK before using that (for
+ symlink). Probably can't create symlinks with mknod anyway though.
+
+ * inline.h (scm_is_pair): Add a workaround for i386 gcc 2.95 bad code
+ generation.
+
+2006-05-15 Kevin Ryde <user42@zip.com.au>
+
+ * simpos.c, simpos.h (scm_primitive__exit): New function.
+ (scm_primitive_exit): Update docstring, no longer the best exit after
+ a fork.
+
+2006-05-09 Kevin Ryde <user42@zip.com.au>
+
+ * numbers.c (scm_i_divide): For big/big wanting inexact, use mpq_get_d
+ rather than converting to doubles, to avoid inf or nan when the inputs
+ are too big for a double but the quotient does fit. This affects
+ conversions exact->inexact of big fractions.
+
+ * filesys.c (scm_open_fdes): Use open64.
+ (scm_init_filesys): Add O_LARGEFILE.
+
+ * ports.c (scm_seek): Use lseek64.
+ (scm_truncate_file): Use ftruncate64.
+
+2006-05-08 Marius Vollmer <mvo@zagadka.de>
+
+ * private-gc.h (CELL_P): Also check that the potential pointer is
+ correctly aligned for a cell. Thanks to Miroslav Lichvar!
+
+2006-04-18 Rob Browning <rlb@defaultvalue.org>
+
+ * _scm.h: Add back error if the size of off_t is unknown. The bug
+ was actually in guile-readline's configuration.
+
+2006-04-18 Kevin Ryde <user42@zip.com.au>
+
+ * posix.c (scm_mkstemp): Update docstring from the manual, in
+ particular file mode 0600 is not guaranteed.
+
+2006-04-17 Kevin Ryde <user42@zip.com.au>
+
+ * _scm.h (scm_to_off_t, scm_from_off_t): No error if unknown off_t
+ size, to help the guile-readline build where off_t is unused.
+
+2006-04-16 Kevin Ryde <user42@zip.com.au>
+
+ * filesys.c (scm_stat2scm, scm_stat, scm_lstat): Use stat or stat64.
+ (scm_readdir): Use readdir64.
+ (scm_copy_file): Use open64 and fstat64, to cope with >2Gb files.
+ * ports.c (scm_truncate_file): Use truncate64. Correction truncate
+ and ftruncate take off_t not size_t.
+ * _scm.h (stat_or_stat64 etc): Macros for selecting LFS64 when
+ available.
+
+2006-04-06 Kevin Ryde <user42@zip.com.au>
+
+ * fports.c (scm_setvbuf): Fix for not _IOLBF, clear SCM_BUFLINE
+ instead of toggling it. Reported by Ludovic Courtès.
+
+2006-03-26 Marius Vollmer <mvo@zagadka.de>
+
+ * threads.c (get_thread_stack_base): Use scm_get_stack_base
+ instead of accessing __libc_stack_end directly, and only do this
+ when pthread_attr_getstack is known not to work for the main
+ thread or when not using pthreads at all.
+
+ * gc_os_dep.c (scm_get_stack_base): Abort when the machine type is
+ unknown instead of returning NULL.
+
+2006-03-21 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * numbers.c (scm_i_mem2number): Renamed to
+ scm_c_locale_stringn_to_number.
+ * numbers.c, print.c, read.c: Updated callers.
+ * numbers.h: Update function declaration.
+
+2006-03-11 Neil Jerram <neil@ossau.uklinux.net>
+
+ * unif.c (string_set): Don't return in a void function. (Reported
+ by Mike Gran.)
+
+ * srfi-4.c (scm_uniform_vector_read_x): Declare base as char*
+ rather than void*, so we can do pointer arithmetic on it.
+ (Reported by Mike Gran.)
+ (s_scm_uniform_vector_write): Ditto.
+
+2006-03-10 Neil Jerram <neil@ossau.uklinux.net>
+
+ * unif.c (scm_make_shared_array): Don't use SCM_I_ARRAY_BASE when
+ oldra is not an array. (Reported by Steve Juranich.)
+
+ * threads.c (do_unlock): Renamed from "unlock", which is defined
+ in unistd.h on QNX. (Reported by Matt Kraai.)
+
+2006-03-04 Kevin Ryde <user42@zip.com.au>
+
+ * deprecated.c (scm_i_defer_ints_etc): Show SCM_DEFER_INTS in message,
+ not SCM_CRITICAL_SECTION_START.
+
+ * eval.c, posix.c: Change comments from C++ to C style. Reported by
+ Mike Gran.
+
+2006-02-28 Kevin Ryde <user42@zip.com.au>
+
+ * unif.c (bitvector_set): Use h->writable_elements not h->elements.
+
+2006-02-26 Kevin Ryde <user42@zip.com.au>
+
+ * filesys.c (scm_readdir): Use fpathconf for the dirent size when
+ NAME_MAX is not available, which is so on Solaris 10. Report and help
+ by Bill Schottstaedt.
+
+ * srfi-13.c (MY_VALIDATE_SUBSTRING_SPEC_UCOPY): New macro.
+ (scm_string_compare, scm_string_compare_ci, scm_string_lt,
+ scm_string_gt, scm_string_le, scm_string_ge, scm_string_ci_lt,
+ scm_string_ci_gt, scm_string_ci_le, scm_string_ci_ge): In comparisons
+ use "unsigned char", not signed char. This ensures comparisons are
+ the same as `char<?' etc, and is also the same as guile 1.6 did.
+ Reported by Sven Hartrumpf.
+
+2006-02-19 Mikael Djurfeldt <mdj@neurologic.cc>
+
+ * random.c: Test for SCM_HAVE_T_UINT64 instead of
+ SCM_HAVE_T_INT64.
+ (scm_i_uniform32, scm_i_uniform32, scm_i_init_rstate): Use
+ scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and
+ scm_t_int32.
+
+2006-01-04 Ludovic Courtès <ludovic.courtes@laas.fr>
* gc-segment.c (scm_i_sweep_some_cards): Take a SWEEP_STATS
argument. Don't refer to SCM_GC_CELLS_COLLECTED and
(scm_i_sweep_statistics_init): New macro.
(scm_i_sweep_statistics_sum): New macro
+2006-02-14 Ludovic Courtès <ludovic.courtes@laas.fr>
+
+ * strings.c (scm_i_take_stringbufn): Register LEN+1 bytes instead of
+ LEN. Without this, too much collectable memory gets unregistered,
+ which results in an underflow of SCM_MALLOCATED in
+ `decrease_mtrigger()'.
+
+ * gc-malloc.c (decrease_mtrigger): Make sure SIZE is lower than or
+ equal to SCM_MALLOCATED.
+
+2006-02-13 Marius Vollmer <mvo@zagadka.de>
+
+ * eval.c (scm_eval_body): Use scm_i_dynwind_pthread_mutex_lock
+ oinstead of scm_dynwind_pthread_mutex_lock so that it works when
+ configured --without-threads.
+ (SCM_APPLY, CEVAL): Likewise. Thanks to Han-Wen Nienhuys!
+
2006-02-12 Marius Vollmer <mvo@zagadka.de>
* unif.c (scm_dimensions_to_uniform_array): Use the prototype for
scm_i_with_continuation_barrier with scm_handle_by_message_noexit
as the pre-unwind handler.
+2006-02-04 Kevin Ryde <user42@zip.com.au>
+
+ * gc-mark.c (scm_mark_all): Fix c99-isms "loops" and "again" variables.
+
2006-02-03 Kevin Ryde <user42@zip.com.au>
* list.c, list.h (scm_list): Restore this function for use from C.
* inline.h, pairs.c (scm_is_pair): Moved scm_is_pair from pairs.c
to inline.h to make it inline.
-2005-12-19 Ludovic Courtès <ludovic.courtes@laas.fr>
+2005-12-19 Ludovic Courtès <ludovic.courtes@laas.fr>
* strings.c (scm_i_take_stringbufn): New.
(scm_i_c_take_symbol): New.
2005-12-29 Neil Jerram <neil@ossau.uklinux.net>
- * fluids.c (next_fluid_num): [From Ludovic Courtès:] Don't trigger
+ * fluids.c (next_fluid_num): [From Ludovic Courtès:] Don't trigger
the GC when allocated_fluids_len is zero.
2005-12-14 Neil Jerram <neil@ossau.uklinux.net>
* srfi-4.h, srfi-4.c, srfi-4.i.c (take_uvec): Make BASE pointer
non-const.
- (scm_take_u8vector, etc): Likewise. Thanks to Ludovic Courtès!
+ (scm_take_u8vector, etc): Likewise. Thanks to Ludovic Courtès!
* threads.h, threads.c (scm_t_guile_ticket, scm_leave_guile,
scm_enter_guile): Removed from public API. See comment at
* eval.c (scm_m_cond): Recognize SRFI 61 cond syntax.
(CEVAL): Evaluate SRFI 61 cond clauses.
-2005-12-06 Ludovic Courtès <ludovic.courtes@laas.fr>
+2005-12-06 Ludovic Courtès <ludovic.courtes@laas.fr>
* gc-card.c (scm_i_card_statistics): Return if BITVEC is NULL.
This was typically hit when running `gc-live-object-stats' right
2005-11-26 Kevin Ryde <user42@zip.com.au>
* gc-mark.c (scm_mark_all): Change C++ comment to C comment. Reported
- by Ludovic Courtès.
+ by Ludovic Courtès.
* list.c (list): Should be "primitive" in SCM_SNARF_DOCS, not
"register".
* socket.c (scm_fill_sockaddr): Remove SCM_C_INLINE_KEYWORD, this is
much too big to want to inline.
-2005-11-17 Ludovic Courtès <ludovic.courtes@laas.fr>
+2005-11-17 Ludovic Courtès <ludovic.courtes@laas.fr>
* print.c (EXIT_NESTED_DATA): Before popping from the stack, reset
the value at its top. This fixes a reference leak.
`PSTATE_STACK_SET ()' in order to avoid undesired potential side
effects.
-2005-11-12 Ludovic Courtès <ludovic.courtes@laas.fr>
+2005-11-12 Ludovic Courtès <ludovic.courtes@laas.fr>
* gc.c (scm_weak_vectors): Removed.
2005-11-12 Kevin Ryde <user42@zip.com.au>
* socket.c (scm_setsockopt): Missing @defvar in docstring. Reported
- by Ludovic Courtès.
+ by Ludovic Courtès.
2005-11-07 Marius Vollmer <mvo@zagadka.de>
* debug.h (SCM_CHEAPTRAPS_P): Removed.
-2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr>
+2005-10-27 Ludovic Courtès <ludovic.courtes@laas.fr>
* socket.c (scm_fill_sockaddr): No need to check NULL from scm_malloc.
(scm_connect, scm_bind, scm_sendto): Accept sockaddr object.
2005-05-11 Neil Jerram <neil@ossau.uklinux.net>
- Fix C99isms reported by Ludovic Courtès:
+ Fix C99isms reported by Ludovic Courtès:
* threads.c (s_scm_lock_mutex): Don't declare msg in middle of
code.
2005-03-18 Kevin Ryde <user42@zip.com.au>
* arbiters.c (FETCH_STORE) [generic C]: Should be
- scm_i_scm_pthread_mutex_lock/unlock now. Reported by Ludovic Courtès.
+ scm_i_scm_pthread_mutex_lock/unlock now. Reported by Ludovic Courtès.
2005-03-13 Kevin Ryde <user42@zip.com.au>
2004-11-02 Marius Vollmer <mvo@zagadka.de>
- Mac OS X and OpenBSD compatibility patches from Andreas Vögele.
+ Mac OS X and OpenBSD compatibility patches from Andreas Vögele.
Thanks!
* backtrace.c (scm_display_backtrace_with_highlights): Join the
* numbers.h, numbers.c: Include <gmp.h> in numbers.h, not in
numbers.c.
(scm_to_mpz, scm_from_mpz): New.
- Thanks to Andreas Vögele!
+ Thanks to Andreas Vögele!
* read.c (skip_scsh_block_comment): Recognize "!#" everywhere, not
just on a line of its own.
scm_string_tabulate, string_upcase_x, string_down_case_x,
string_titlecase_x, string_reverse_x, scm_string_tokenize): Use
size_t instead of int for indices into strings. Make sure that no
- over- or underflow occurs. Thanks to Andreas Vögele!
+ over- or underflow occurs. Thanks to Andreas Vögele!
(scm_xsubstring, scm_string_xcopy_x): Use ints for 'extended'
indices, which can also be negative.
* filesys.c, stime.c (_POSIX_C_SOURCE): Use this only on hpux, it
causes too many problems elsewhere (glibc, freebsd, mingw). Reported
- by Andreas Vögele.
+ by Andreas Vögele.
2004-09-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* gc_os_dep.c: update ifdefery for macosx.
(scm_get_stack_base): separate result initialization from
declaration to slience warnings with macosx and hp-ux using gcc
- 3.3. Thanks to Andreas Vögele.
+ 3.3. Thanks to Andreas Vögele.
2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
2004-05-02 Kevin Ryde <user42@zip.com.au>
* eval.c (scm_macroexp): Add prototype, since it's not in eval.h under
- --disable-deprecated. Reported by Andreas Vögele.
+ --disable-deprecated. Reported by Andreas Vögele.
* filesys.c (_POSIX_C_SOURCE): Define to 199506L to get readdir_r (in
- particular on HP-UX). Reported by Andreas Vögele.
+ particular on HP-UX). Reported by Andreas Vögele.
* list.c (varargs.h): Remove, leave just stdarg.h which is all the
code has support for. Fixes building with AIX cc, which is ansi but
2004-05-01 Kevin Ryde <user42@zip.com.au>
* continuations.c (scm_dynthrow): Use >= instead of SCM_PTR_GE which
- is now gone. Reported by Andreas Vögele.
+ is now gone. Reported by Andreas Vögele.
2004-04-28 Kevin Ryde <user42@zip.com.au>
* backtrace.c (display_frame_expr), numbers.c (XDIGIT2UINT,
mem2uinteger, mem2decimal_from_point, mem2ureal): Cast char to int for
ctype.h tests, to avoid warnings from gcc on HP-UX about char as array
- subscript. Reported by Andreas Vögele.
+ subscript. Reported by Andreas Vögele.
Also cast through unsigned char to avoid passing negatives to those
macros if input contains 8-bit values.
* numbers.c (scm_bit_extract): Use min instead of MIN.
(MIN): Remove, this conflicts with similar macro defined by limits.h
- on HP-UX. Reported by Andreas Vögele.
+ on HP-UX. Reported by Andreas Vögele.
* stime.c (_POSIX_C_SOURCE): Define to 199506L to get gmtime_r (in
- particular on HP-UX). Reported by Andreas Vögele.
+ particular on HP-UX). Reported by Andreas Vögele.
* threads.c (scm_threads_mark_stacks): Correction sizet -> size_t.
- Reported by Andreas Vögele.
+ Reported by Andreas Vögele.
* threads-plugin.h (SCM_MUTEX_MAXSIZE): Increase to 25*sizeof(long),
for the benefit of hpux11 where pthread_mutex_t is 88 bytes. Reported
- by Andreas Vögele.
+ by Andreas Vögele.
2004-04-22 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
2002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
* script.c (scm_compile_shell_switches): Added "2002" to Copyright
- years. Thanks to Martin Grabmüller!
+ years. Thanks to Martin Grabmüller!
2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* deprecation.c (scm_include_deprecated_features): Simplified.
* eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
- `SCM_IMP' instead of `!SCM_CELLP´.
+ `SCM_IMP' instead of `!SCM_CELLP´.
* eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
Extract side-effecting operations from macros.
2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
* ports.c (scm_lfwrite): Maintain columnd and row count in port.
- Thanks to Matthias Köppe!
+ Thanks to Matthias Köppe!
2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
space-happy C preprocessors.
* filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
- inside cookies. thanks to Matthias Köppe!
+ inside cookies. thanks to Matthias Köppe!
2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
SCM_VARIABLE_INIT since that it what it used to be.
* deprecation.c (scm_include_deprecated_features): Make docstring
- ANSIsh. Thanks to Matthias Köppe!
+ ANSIsh. Thanks to Matthias Köppe!
2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
* values.c (print_values): Print as a unreadable object, not as
- multiple lines. Thanks to Matthias Köppe!
+ multiple lines. Thanks to Matthias Köppe!
2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
- from Matthias Köppe (thanks!):
+ from Matthias Köppe (thanks!):
* ports.c (scm_c_read): pointer arithmetic on void pointers isn't
portable.
2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
- from Matthias Köppe:
+ from Matthias Köppe:
* objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
casts its result, so doesn't yield an lvalue per ANSI C.
(write_all): new helper procedure.
The ChangeLog continues in the file: "ChangeLog-2000"
+
+;; Local Variables:
+;; coding: utf-8
+;; End: