+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>).
+
+2008-02-05 Neil Jerram <neil@ossau.uklinux.net>
+
+ * fports.c (fport_seek): Make dependent on GUILE_USE_64_CALLS.
+
+ * _scm.h: Make definition of CHOOSE_LARGEFILE depend on
+ GUILE_USE_64_CALLS.
+
+2008-02-01 Neil Jerram <neil@ossau.uklinux.net>
+
+ * modules.c (the_root_module): Moved before scm_current_module.
+ (scm_current_module): Return the root module if `the-module' fluid
+ gives #f.
+
+2008-01-22 Neil Jerram <neil@ossau.uklinux.net>
+
+ * COPYING: Removed.
+
+ * __scm.h, _scm.h, weaks.c: Update copyright statement to LGPL.
+
+2008-01-18 Neil Jerram <neil@ossau.uklinux.net>
+
+ * hashtab.c (scm_hash_fn_create_handle_x): If supplied assoc_fn
+ returns neither a pair nor #f, signal a wrong-type-arg error.
+ (Thanks to Gregory Marton for reporting this.)
+
+2007-12-29 Neil Jerram <neil@ossau.uklinux.net>
+
+ * gc.c (mark_gc_async): Change "func_data" to "fn_data", to avoid
+ clash with AIX header file.
+ * hooks.c (scm_c_hook_add, scm_c_hook_remove): Same again.
+ * hooks.h (scm_t_c_hook_function, scm_c_hook_add,
+ scm_c_hook_remove): Same again.
+
+2007-12-08 Ludovic Courtès <ludo@gnu.org>
+
+ * __scm.h (SCM_EXPECT, SCM_LIKELY, SCM_UNLIKELY): New macros.
+ (SCM_ASSERT, SCM_ASSERT_TYPE, SCM_ASRTGO, SCM_GASSERT0,
+ SCM_GASSERT1, SCM_GASSERT2, SCM_GASSERTn): Use them.
+ * eval.c (ASSERT_SYNTAX, ASSERT_SYNTAX_2): Likewise.
+ * eval.i.c (CEVAL): Use branch prediction hints for syntax
+ errors, wrong number of arguments and similar.
+ * numbers.c (scm_sum): Use `SCM_LIKELY' for the sum of two
+ immediate numbers.
+ (scm_difference, scm_product, scm_i_divide): Likewise.
+ * validate.h (SCM_ASSERT_RANGE): Use `SCM_UNLIKELY'.
+
+2007-12-04 Ludovic Courtès <ludo@gnu.org>
+
+ * ports.c (scm_c_read): Validate PORT as an open input port.
+ (scm_c_write): Validate PORT as an open output port.
+
+ * socket.c (scm_accept): Leave guile mode using
+ `scm_std_select ()' before calling `accept(2)'. Reported by
+ dskr <dskr@mac.com>.
+
+2007-10-27 Ludovic Courtès <ludo@gnu.org>
+
+ * fports.c (scm_i_evict_port): Expect a port, rather than a pair
+ containing the port. Fixes a bug in the new port table (2007-08-26).
+ (scm_evict_ports): Use `scm_c_port_for_each ()'.
+
+2007-10-21 Neil Jerram <neil@ossau.uklinux.net>
+
+ * eval.c (unmemoize_delay): Extend the environment before
+ unmemoizing the promise thunk. This fixes a segmentation fault
+ reported by Frank Schwidom.
+
+2007-10-20 Julian Graham <joolean@gmail.com>
+
+ Add support for thread cancellation and user-defined thread
+ cleanup handlers. Small rework by Ludovic Courtès.
+
+ * null-threads.h (scm_i_pthread_cancel,
+ scm_i_pthread_cleanup_push, scm_i_pthread_cleanup_pop): New.
+ * pthread-threads.h (scm_i_pthread_cancel,
+ scm_i_pthread_cleanup_push, scm_i_pthread_cleanup_pop): New.
+ * scmsigs.c (scm_i_signal_delivery_thread,
+ signal_delivery_thread_mutex): New.
+ (signal_delivery_thread): Leave when `read_without_guile ()'
+ returns zero.
+ (start_signal_delivery_thread): Acquire SIGNAL_DELIVERY_THREAD
+ before spawning the thread. Initialize
+ SCM_I_SIGNAL_DELIVERY_THREAD.
+ (ensure_signal_delivery_thread): Renamed to...
+ (scm_i_ensure_signal_delivery_thread): this.
+ (scm_i_close_signal_pipe): New.
+ * scmsigs.h: Updated.
+ * threads.c (thread_mark): Mark `t->cleanup_handler'.
+ (guilify_self_1): Initialize `t->cleanup_handler' and
+ `t->canceled'.
+ (do_thread_exit): Invoke `t->cleanup_handler'.
+ (on_thread_exit): Call `scm_i_ensure_signal_delivery_thread ()'.
+ Call `scm_i_close_signal_pipe ()' when the next-to-last thread
+ vanishes.
+ (scm_leave_guile_cleanup): New.
+ (scm_i_with_guile_and_parent): Use `scm_i_pthread_cleanup_push ()'
+ and `scm_leave_guile_cleanup ()' to leave guile mode, rather
+ than call `scm_leave_guile ()' after FUNC.
+ (scm_cancel_thread, scm_set_thread_cleanup_x,
+ scm_threads_cleanup): New.
+ (scm_all_threads): Remove SCM_I_SIGNAL_DELIVERY_THREAD from the
+ returned list.
+ * threads.h (scm_i_thread)[cleanup_handler, canceled]: New
+ fields.
+ Add declarations of new functions.
+
+2007-10-17 Ludovic Courtès <ludo@gnu.org>
+
+ * read.c (CHAR_IS_BLANK_): Add `\r' (ASCII 0x0d). This fixes a
+ regression compared to 1.8.2. Reported by Puneet
+ <schemer@gmail.com>.
+
+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.
+