+2008-08-25 Ludovic Courtès <ludo@gnu.org>
+
+ * Makefile.am (AM_CFLAGS): New.
+ (guile_CFLAGS, libguile_la_CFLAGS): Use it.
+
+2008-08-20 Ludovic Courtès <ludo@gnu.org>
+
+ * eval.c, filesys.c, gc.c, numbers.c, stime.c, threads.c: Don't
+ define `_GNU_SOURCE' explicitly as it's now defined in
+ <config.h> thanks to `AC_USE_SYSTEM_EXTENSIONS'.
+
+2008-08-19 Han-Wen Nienhuys <hanwen@lilypond.org>
+ Ludovic Courtès <ludo@gnu.org>
+
+ * goops.c (scm_init_goops_builtins, go_to_hell): Fix allocation
+ of `hell' by passing "hell_size * sizeof (*hell)" instead of
+ "hell_size" to `scm_malloc ()' and `scm_realloc ()'.
+
+2008-08-02 Neil Jerram <neil@ossau.uklinux.net>
+
+ * numbers.c (scm_rationalize): Update docstring to match the
+ manual (which is more correct). Change argument "err" to "eps",
+ also to match the manual.
+
+2008-07-17 Neil Jerram <neil@ossau.uklinux.net>
+
+ From Thiemo Seufer <ths@networkno.de>:
+
+ * gc_os_dep.c (CPP_WORDSZ, ALIGN_DOUBLE, DATAEND,
+ DYNAMIC_LOADING): Added #defines.
+ (_fdata, _end): Added declarations.
+ (DATASTART): Use _fdata instead of __data_start.
+ (STACKBOTTOM): Changed from 0x80000000 to 0x7fff8000.
+
+2008-07-16 Ludovic Courtès <ludo@gnu.org>
+
+ * gen-scmconfig.h.in (SCM_I_GSC_HAVE_STRUCT_DIRENT64): New.
+ * gen-scmconfig.c (main): Produce definitions of
+ `SCM_HAVE_STRUCT_DIRENT64' and `SCM_HAVE_READDIR64_R'.
+ * _scm.h (dirent_or_dirent64): Depend on
+ `SCM_HAVE_STRUCT_DIRENT64', for the sake of HP-UX 11.11.
+ (readdir_r_or_readdir64_r): Depend on `SCM_HAVE_READDIR64_R',
+ for HP-UX 11.11.
+
+2008-07-05 Ludovic Courtès <ludo@gnu.org>
+
+ * strings.c (scm_c_symbol_length): New function.
+ * strings.h (scm_c_symbol_length): New declaration.
+
+2008-07-04 Ludovic Courtès <ludo@gnu.org>
+
+ * posix.h (scm_i_locale_mutex): Don't declare as `SCM_INTERNAL'
+ since it's needed by `libguile-i18n'. Reported by Patrick
+ Horgan <phorgan1@gmail.com>.
+
+ * __scm.h (SCM_INTERNAL): Add `extern' so that these symbols are
+ not considered as "common" by GCC 4.3. Reported by Patrick
+ Horgan <phorgan1@gmail.com>.
+
+2008-06-28 Ludovic Courtès <ludo@gnu.org>
+
+ * Makefile.am (INCLUDES): Renamed to...
+ (AM_CPPFLAGS): this, to match current Automake conventions.
+ Users updated.
+
+ * tags.h (SCM_UNPACK): Disable type-checking for `__DECC' and
+ `__HP_cc'. Reported by Peter O'Gorman <pogma@thewrittenword.com>.
+
+2008-06-02 Ludovic Courtès <ludo@gnu.org>
+
+ * deprecated.c (maybe_close_port): Rename EXCEPT to EXCEPT_SET
+ to workaround `#define except' on Tru64. Reported by Peter
+ O'Gorman <pogma@thewrittenword.com>.
+
+2008-05-31 Ludovic Courtès <ludo@gnu.org>
+
+ * __scm.h (SCM_INTERNAL): New macro.
+ * *.h: Use it to mark as internal `scm_i_' and `scm_init_'
+ functions that are not used by public macros or inline
+ functions.
+
+2008-05-14 Julian Graham <joolean@gmail.com>
+
+ * threads.c (fat_mutex)[recursive]: New field.
+ (make_fat_mutex): Adjust initialization to reflect changes to
+ mutex lock level semantics.
+ (fat_mutex_lock, fat_mutex_unlock): Add support for unowned
+ mutexes and locking mutexes on behalf of other threads.
+ (scm_lock_mutex, scm_lock_mutex_timed): Update to reflect
+ signature change to fat_mutex_lock.
+ (scm_mutex_owner, scm_mutex_level, scm_mutex_locked_p): New /
+ re-enabled functions.
+ * threads.h (scm_mutex_owner, scm_mutex_level,
+ scm_mutex_locked_p): Prototypes for new functions.
+
+2008-05-12 Neil Jerram <neil@ossau.uklinux.net>
+
+ * discouraged.c: Expand DEFFROM and DEFTO macros, to avoid
+ compiler warnings about excess semicolons. (Reported by Didier
+ Godefroy.)
+
+2008-05-08 Neil Jerram <neil@ossau.uklinux.net>
+
+ * throw.c (scm_ithrow): For IA64 add a return statement, to
+ appease GCC.
+
+ * threads.h (scm_i_thread): New IA64 fields:
+ register_backing_store_base and pending_rbs_continuation.
+
+ * threads.c (guilify_self_1): For IA64: cap RBS base address at
+ the current value of scm_ia64_ar_bsp, and store the capped value
+ in thread state.
+ (SCM_MARK_BACKING_STORE): Use thread->register_backing_store_base
+ instead of scm_ia64_register_backing_store_base().
+ (scm_threads_mark_stacks): Add "&" in "&t->regs", so that the code
+ works both for jmp_buf defined as an array, and jmp_buf defined as
+ a struct.
+
+ * continuations.h (scm_t_contregs): Remove `fresh' and `ctx'
+ fields; these are now inside the IA64 definition of `jmp_buf'.
+
+ * continuations.c (scm_make_continuation): Simplify, by moving
+ some of the IA64 code inside the definition of "setjmp", and by
+ some obvious commonizations. For IA64 register backing store
+ (RBS) stack base, use thread->register_backing_store_base instead
+ of scm_ia64_register_backing_store_base().
+ (copy_stack): For IA64, store pointer to continuation being
+ invoked in thread state, so we can restore the continuation's RBS
+ stack just before the next setcontext call.
+ (copy_stack_and_call): Don't restore RBS stack explicitly here.
+ It will be restored, if appropriate, inside the longjmp call.
+ (scm_ia64_longjmp): New function.
+
+ * __scm.h (setjmp, longjmp, jmp_buf): For IA64, implement using
+ getcontext and setcontext.
+
+2008-05-07 Ludovic Courtès <ludo@gnu.org>
+
+ * numbers.c (scm_from_complex_double): Mark as `SCM_UNUSED'.
+ This fixes compilation with `-Werror' on FreeBSD 6.2 (i386).
+
+2008-05-05 Neil Jerram <neil@ossau.uklinux.net>
+
+ * c-tokenize.lex: #define YY_NO_INPUT.
+
+2008-04-26 Ludovic Courtès <ludo@gnu.org>
+
+ * read.c (scm_read_sexp): Remove extraneous semi-colon at
+ end-of-line, which broke compilation with GCC 2.7. Reported by
+ Alain Guibert <alguibert+bts@free.fr>.
+
+2008-04-24 Ludovic Courtès <ludo@gnu.org>
+
+ * Makefile.am (DEFAULT_INCLUDES): New. Fixes compilation on
+ Tru64 where our "random.h" would shadown libc's one.
+ (INCLUDES): Add "-I$(top_buildir)", which is normally in
+ `DEFAULT_INCLUDES'.
+ * gen-scmconfig.c: Include <libguile/gen-scmconfig.h>, not
+ "gen-scmconfig.h" since that file is under `$(builddir)'.
+
+2008-04-16 Ludovic Courtès <ludo@gnu.org>
+
+ * ports.c (scm_getc, scm_putc, scm_puts): Moved...
+ * inline.h: ... here. Noticeably improves `read' performance.
+
+2008-04-15 Ludovic Courtès <ludo@gnu.org>
+ Julian Graham <joolean@gmail.com>
+
+ * read.c (scm_keyword_postfix): New.
+ (scm_read_opts): Update docstring for `keywords'.
+ (scm_read_mixed_case_symbol): Add support for postfix keywords.
+
+2008-04-13 Ludovic Courtès <ludo@gnu.org>
+
+ * inline.h (SCM_C_USE_EXTERN_INLINE): New macro. Use it to make
+ sure "extern" declarations are produced when "extern inline" is
+ used. Simplify macrology around inline definitions.
+
+2008-04-10 Ludovic Courtès <ludo@gnu.org>
+
+ * inline.h (SCM_C_EXTERN_INLINE): Special-case Apple's GCC
+ 4.0-based compiler, which doesn't support GNU inline semantics
+ at all in C99 mode but doesn't define `__GNUC_STDC_INLINE__'.
+ See http://thread.gmane.org/gmane.network.gnutls.general/1135 .
+
+2008-04-10 Andy Wingo <wingo@pobox.com>
+
+ * struct.c (scm_struct_ref, scm_struct_set_x): "Light" structs
+ have no hidden words (members of the SCM_STRUCT_DATA(x) array
+ accessed with negative indices). In that case, determine the
+ number of fields from the length of the struct layout
+ descriptor. (Most GOOPS instances are light structs.)
+
+ * goops.c (wrap_init): Initialize 'u' slots to 0, not some random
+ SCM value.
+
+ * goops.c (get_slot_value, set_slot_value): In the struct
+ allocation case, don't poke the slots array directly -- we should
+ go through struct-ref/struct-set! code so that we get the
+ permissions and allocation ('u' versus 'p') correct.
+
+2008-04-03 Ludovic Courtès <ludo@gnu.org>
+
+ * inline.h (SCM_C_EXTERN_INLINE): New macro, addresses the
+ "extern inline" semantic change in C99 mode with GCC 4.3 and
+ later and the warning in C99 mode with GCC 4.2. Use it in the
+ inline function definitions.
+
+2008-03-24 Neil Jerram <neil@ossau.uklinux.net>
+
+ Applying patch from Julian Graham, containing minor fixes to his
+ thread enhancements:
+
+ * threads.c (to_timespec): Change 1000000 multiplier to
+ 1000000000.
+ (unchecked_unlock_sym, allow_external_unlock_sym,
+ recursive_sym): Use SCM_SYMBOL.
+ (scm_make_mutex_with_flags): When raising unsupported option
+ error, report what the unsupported option was.
+ (fat_mutex_unlock): When raising errors, unlock m->lock first.
+ (fat_cond_timedwait): Removed.
+ (scm_timed_wait_condition_variable): Call fat_mutex_unlock
+ directly instead of via fat_cond_timedwait.
+
+2008-03-10 Ludovic Courtès <ludo@gnu.org>
+
+ * eval.c, filesys.c: Enclose `alloca' blob in `#ifndef alloca',
+ as per Gnulib's `alloca'. This should fix compilation on
+ FreeBSD 6.
+
+2008-03-09 Neil Jerram <neil@ossau.uklinux.net>
+
+ * numbers.c: Only define scm_from_complex_double if it will
+ actually be used.
+
+2008-03-08 Julian Graham <joolean@gmail.com>
+
+ * threads.c (scm_join_thread_timed, scm_thread_p,
+ scm_make_mutex_with_flags, scm_lock_mutex_timed,
+ scm_unlock_mutex_timed, scm_mutex_p, scm_condition_variable_p): New
+ functions.
+ (thread_mark): Updated to mark new struct field `mutexes'.
+ (do_thread_exit): Notify threads waiting on mutexes locked by exiting
+ thread.
+ (scm_join_thread, scm_make_mutex, scm_make_recursive_mutex,
+ scm_mutex_lock): Reimplement in terms of their newer
+ counterparts.
+ (scm_abandoned_mutex_error_key): New symbol.
+ (fat_mutex)[unchecked_unlock, allow_external_unlock]: New fields.
+ (fat_mutex_lock): Reimplement to support timeouts and abandonment.
+ (fat_mutex_trylock, scm_try_mutex): Remove fat_mutex_trylock and
+ reimplement scm_try_mutex as a lock attempt with a timeout of zero.
+ (fat_mutex_unlock): Allow unlocking from other threads and unchecked
+ unlocking; implement in terms of condition variable wait.
+ (scm_timed_wait_condition_variable): Reimplement in terms of
+ fat_mutex_unlock.
+ * threads.h (scm_i_thread)[mutexes]: New field.
+ (scm_join_thread_timed, scm_thread_p, scm_lock_mutex_timed,
+ scm_unlock_mutex_timed, scm_mutex_p, scm_condition_variable_p):
+ Prototypes for new functions.
+
+2008-03-06 Ludovic Courtès <ludo@gnu.org>
+
+ * eval.c (scm_eval): If MODULE_OR_STATE is not a dynamic state,
+ make sure it's a module. Reported by David I. Lehn.
+
+2008-03-02 Ludovic Courtès <ludo@gnu.org>
+
+ * pairs.h (scm_is_pair): Moved declaration to `inline.h'.
+ * inline.h: Make sure `extern' declarations are not produced
+ when `inline' is supported but GCC is not used. This
+ fixes "mixed linkage" errors with compilers such as
+ DEC/Compaq/HP CC.
+
+2008-02-27 Neil Jerram <neil@ossau.uklinux.net>
+
+ * _scm.h (errno): Remove declarations that have been there
+ forever, and are known to conflict on some platforms with that
+ provided by <errno.h>, which we include unconditionally. If
+ <errno.h> doesn't provide a errno declaration, what is the point
+ of it?
+
+2008-02-23 Ludovic Courtès <ludo@gnu.org>
+
+ * numbers.c (scm_make_rectangular): Rename argument to
+ `real_part' and `imaginary_part' to work around Solaris 2.10
+ headers which define `imaginary' as a macro. Patch by Tim
+ Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>.
+
+2008-02-22 Ludovic Courtès <ludo@gnu.org>
+
+ * read.c (strncasecmp): Add declaration when
+ `HAVE_DECL_STRNCASECMP' is undefined. Fixes compilation on
+ NetBSD 1.6.
+
+ * gc.c (scm_ia64_ar_bsp)[linux]: Don't discard `const' qualifier
+ of OPAQUE.
+
+2008-02-21 Ludovic Courtès <ludo@gnu.org>
+
+ Fix bug #22369.
+
+ * goops.c (scm_add_slot): Add `SCM_UNDEFINED' as last argument
+ to `scm_list_n ()'. Thanks to René Köcher
+ <shirk87@googlemail.com>.
+
+2008-02-17 Ludovic Courtès <ludo@gnu.org>
+
+ * script.c (scm_compile_shell_switches): Update copyright year.
+
+2008-02-16 Ludovic Courtès <ludo@gnu.org>
+
+ * gc_os_dep.c: Add NetBSD/alpha support. Patch by Greg Troxel
+ <gdt@ir.bbn.com>.
+
+2008-02-12 Ludovic Courtès <ludo@gnu.org>
+
+ * guile-snarf.in (tempdir): Honor `$TMPDIR'.
+
+2008-02-11 Neil Jerram <neil@ossau.uklinux.net>
+
+ * numbers.c (SCM_COMPLEX_VALUE): Use GUILE_I instead of _Complex_I
+ directly, and only if GUILE_I was defined by the configure step.
+ (scm_log, scm_log10, scm_exp, scm_sqrt): Use SCM_COMPLEX_VALUE
+ code only if SCM_COMPLEX_VALUE is defined.
+
+2008-02-07 Ludovic Courtès <ludo@gnu.org>
+
+ Fix bug #21378.
+ Thanks to David Diffenbaugh <davediff@nbcs.rutgers.edu>.
+
+ * read.c (scm_read_quote): Don't use `__FUNCTION__' since it is
+ not supported by Sun CC on Solaris 9.
+ (scm_read_keyword): Likewise.
+ * strings.c (scm_take_locale_stringn): Remove
+ `SCM_C_INLINE_KEYWORD' to allow compilation with Sun CC.
+
+2008-02-07 Julian Graham <joolean@gmail.com>
+
+ * threads.c (do_thread_exit, scm_cancel_thread,
+ scm_set_thread_cleanup_x, scm_thread_cleanup): Lock on thread-specific
+ admin mutex instead of `thread_admin_mutex'.
+ * threads.h (scm_i_thread)[admin_mutex]: New field.
+ * throw.c (make_jmpbuf): Don't enter critical section during thread
+ spawn -- there is a possibility of deadlock if other threads are
+ exiting.
+
+2008-02-06 Neil Jerram <neil@ossau.uklinux.net>
+
+ * gc-malloc.c (scm_gc_malloc): Return NULL if requested size is 0.
+ (scm_gc_free): Don't call `free' if mem is NULL.
+
+2008-02-06 Ludovic Courtès <ludo@gnu.org>
+
+ * numbers.c (scm_i_mkbig, scm_i_long2big, scm_i_ulong2big,
+ scm_i_clonebig, scm_i_bigcmp, scm_i_dbl2big, scm_i_dbl2num,
+ scm_i_normbig): Remove `SCM_C_INLINE_KEYWORD' since these are
+ declared as `extern' in `numbers.h'. This precluded compilation
+ on Solaris 9 with Sun CC (reported by David Halik
+ <dhalik@nbcs.rutgers.edu>).
+