+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.
+
+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.
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
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,
* 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'.
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.
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".
* 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):
* 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
scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and
scm_t_int32.
-2006-01-04 Ludovic Court<E8>s <ludovic.courtes@laas.fr>
+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
2005-12-07 Marius Vollmer <mvo@zagadka.de>
Reported by Bruce Korb:
-
+
* init.c (invoke_main_func): Don't call exit here. Throws that
are only caught by scm_with_guile will bypass us and would cause
scm_boot_guile to return erroneously.
here, passing it an appropriate exit code.
From Andy Wingo:
-
+
* script.c (scm_find_executable): Compile fix -- fgetc returns an
unsigned char cast to an int, or -1 for EOS.
-
+
2005-12-06 Marius Vollmer <mvo@zagadka.de>
* 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!
-
+
* threads.h, threads.c (scm_t_guile_ticket, scm_leave_guile,
scm_enter_guile): Removed from public API. See comment at
scm_without_guile for the rationale.
2005-10-23 Marius Vollmer <marius.vollmer@uni-dortmund.de>
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is not portable enough.
-
+
* null-threads.h, pthread-threads.h
(SCM_I_PTHREAD_RECURSIVE_MUTEX_INITIALIZER): Removed.
(scm_i_pthread_mutexattr_recursive): New.
(scm_threads_prehistory): Initialize
scm_i_pthread_mutexattr_recursive and scm_i_critical_section_mutex
here.
-
+
* eval.c (source_mutex): Do not initialiaze statically.
(scm_init_eval): Do it here, using
scm_i_pthread_mutexattr_recursive.
(quote_keywordish_symbol): New, for evaluating the option.
(scm_print_symbol_name): Use it.
(scm_init_print): Initialize new option to sym_reader.
-
+
2005-08-15 Neil Jerram <neil@ossau.uklinux.net>
* eval.c (eval_letrec_inits): New.
* modules.h, modules.c (scm_eval_closure_module): Removed, we
already have scm_lookup_closure_module, which does the same thing.
-
+
2005-08-01 Marius Vollmer <mvo@zagadka.de>
New marking algorithm for weak hashtables that fixes the problem
Guardians have been changed back to their original semantics and
are no longer greedy and no longer drop cycles.
-
+
* gc-mark.c (scm_mark_all): Do not rely on hooks to run the weak
hashtable and guardian machinery but call the relevant functions
directly.
scm_i_identify_inaccessible_guardeds,
scm_i_mark_inaccessible_guardeds): New.
(scm_make_guardian): Removed greedy_p argument.
-
+
* weaks.h, weaks.c (SCM_I_WVECT_TYPE, SCM_I_SET_WVECT_TYPE): New.
(SCM_I_WVECT_N_ITEMS, SCM_I_SET_WVECT_N_ITEMS): New.
(SCM_WVECTF_NOSCAN, SCM_WVECT_NOSCAN_P): Removed.
scm_i_remove_weaks_from_weak_vectors, scm_i_remove_weaks): New.
(scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
scm_scan_weak_vectors): Removed.
-
+
* hashtab.h (scm_i_scan_weak_hashtables): New.
* hashtab.c (make_hash_table, scm_i_rehash): Do not use
SCM_WVECTF_NOSCAN.
* hashtab.c (scm_i_rehash): Cast SCM_HASHTABLE_FLAGS (table) to
scm_t_bits before storing them in the type word.
-
+
* gc.c (tag_table_to_type_alist): Modified type of c_tag from
scm_t_bits to int.
* pairs.c (scm_error_pair_access): Use scm_from_locale_string rather
than scm_makfrom0str.
Reported by Ken Raeburn.
-
+
* gc-card.c (scm_dbg_gc_get_bvec): Change return from long* to
scm_t_c_bvec_long*, gcc 4 doesn't like different pointer targets when
returning SCM_GC_CARD_BVEC.
-
+
* pairs.c (scm_error_pair_access): Plain ascii ' in error message
rather than latin-1 acute accent, the latter may not print on all
terminals.
2005-06-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
* gc.c (tag_table_to_type_alist): convert tag number to "tag %d"
- string, so live object stats can be sorted with string<?.
+ string, so live object stats can be sorted with string<?.
2005-06-06 Marius Vollmer <mvo@zagadka.de>
From Jan Nieuwenhuizen <janneke@gnu.org>. Thanks!
* hashtab.h: Bugfix: use SCM_API (WAS: extern).
-
+
* socket.c: Remove obsolete comment about socklen_t.
(s_scm_setsockopt)[!HAVE_IP_MREQ]: Do not use ip_mreq code.
-
+
* numbers.h (isnan)[__MINGW32__]: Remove.
-
+
* Makefile.am (gen_scmconfig_SOURCES): Bugfix: Add
DEFAULT_INCLUDES when cross compiling.
-
+
* threads.c (ETIMEDOUT, pipe)[__MINGW32__]: Add defines.
* stime.c (scm_strftime)[!HAVE_TM_ZONE]: Use
SCM_SIMPLE_VECTOR_REF instead of SCM_VELTS. (Changed slightly
from Jan's patch.)
-
+
2005-05-22 Marius Vollmer <mvo@zagadka.de>
* unif.c (scm_make_shared_array): Add old base to new base since
2005-05-12 Neil Jerram <neil@ossau.uklinux.net>
Mac OS X compile warning fixes, reported by Richard Todd.
-
+
* unif.c (scm_i_read_array): Declare rank as ssize_t, to guarantee
that it is signed.
2005-05-11 Neil Jerram <neil@ossau.uklinux.net>
Fix C99isms reported by Ludovic Courtès:
-
+
* threads.c (s_scm_lock_mutex): Don't declare msg in middle of
code.
non-NULL. Always use a NULL closure.
(scm_hash_fn_create_handle_x): Also rehash when table contains too
few entries.
-
+
2005-03-29 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* hashtab.h, hashtab.c (scm_hash_fx_remove_x): Removed delete_fn
(scm_hashx_remove_x): Likewise. Also, exported to Scheme.
(scm_hash_clear): Accept plain vectors as hashtables.
(scm_delx_x): Removed.
-
+
2005-03-28 Han-Wen Nienhuys <hanwen@xs4all.nl>
* inline.h (scm_double_cell): use __asm__ iso. asm, to maintain
scm_root.
* threads.c: Removed fprintf debug statements.
-
+
2005-03-24 Neil Jerram <neil@ossau.uklinux.net>
* debug.c (scm_make_memoized): Restore use of SCM_UNPACK.
simple things inside that region.
(scm_make_fluid, scm_make_dynamic_state): Lock fluid_admin_mutex
while adding to the global lists.
-
+
2005-03-08 Marius Vollmer <mvo@zagadka.de>
libltdl is no longer distributed. We expect it to be installed
already.
-
+
* Makefile.am (INCLUDES): Removed @LTDLINCL@.
(libguile_la_LIBADD): Removed @LIBLTDL@.
* throw.c (scm_ithrow): Abort when scm_i_critical_section_level is
not zero.
-
+
* threads.h, threads.c (scm_frame_lock_mutex): New.
(scm_frame_critical_section): Take mutex as argument.
(framed_critical_section_mutex): New, used as default for above.
(scm_init_threads): Initialize it.
(scm_threads_prehistory): Do not initialize thread_admin_mutex and
scm_i_critical_section_mutex; both are initialized statically.
-
+
* continuation.c, deprecated.c, goops.c, guardians.c keywords.c,
libguile_la-arrays.loT, objprop.c, ports.c, smob.c, sort.s,
srcprop.c, stime.c, struct.c, throw.c, regex-posix.c: Include
section.
(scm_dynthrow): Abort when scm_i_critical_section_level is
not zero.
-
+
2005-03-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* threads.c (scm_try_mutex): Renamed argument for consistency.
Big merge from the mvo-thread-cleanup branch. The main changes
are:
-
+
- The dynamic roots functionality has been split into dynamic
states and continuations barriers. Fluids have been
reimplemented and can now be garbage collected.
-
+
- Initialization of Guile now works in a multi-thread friendly
manner. Threads can freely enter and leave guile mode.
- Signals are delivered via a pipe to a dedicated 'signal delivery
thread'.
-
+
- SCM_DEFER_INTS, SCM_ALLOW_INTS etc have been deprecated.
* throw.c (scm_handle_by_message): Exit only the current thread,
not the whole process.
(scm_handle_by_message_noexit): Exit when catching 'quit.
-
+
* scmsigs.c (take_signal, signal_delivery_thread,
start_signal_delivery_thread, ensure_signal_delivery_thread,
install_handler): Reimplemented signal delivery as explained in
when using pthreads.
* null-threads.c, null-threads.h: Provide dummy definitions for
the above symbols when not using pthreads.
-
+
* modules.h, modules.c (scm_frame_current_module): New.
* load.c (scm_primitive_load): Use scm_i_frame_current_load_port
Moved around some init funcs. Call
scm_init_threads_default_dynamic_state. Register cleanup_for_exit
with atexit.
-
+
* hashtab.c (scm_hash_fn_create_handle_x, scm_hash_fn_remove_x):
Use "!scm_is_eq" instead of "!=".
scm_after_gc_c_hook.
(scm_permanent_object): Allocate outside of critical section.
(cleanup): Removed.
-
+
* fluids.h, fluids.c: Reimplemented completely.
(SCM_FLUID_NUM, SCM_FAST_FLUID_REF,
SCM_FAST_FLUID_SET): Reimplemented as functions.
scm_set_current_dynamic_state, scm_frame_current_dynamic_state,
scm_c_with_dynamic_state, scm_with_dynamic_state,
scm_i_make_initial_dynamic_state, scm_fluids_prehistory): New.
-
+
* feature.c (progargs_fluid): New.
(scm_program_arguments, scm_set_program_arguments): Use it instead
of scm_progargs.
(scm_init_feature): Allocate it. Also, only add "threads" feature
when SCM_USE_PTHREAD_THREADS is true.
-
+
* eval.c (scm_makprom): Use scm_make_recursive_mutex instead of
scm_make_rec_mutex, with all the consequences.
(scm_eval_x, scm_eval): Use scm_frame_begin etc instead of
scm_internal_dynamic_wind. Handle dynamic states as second
argument.
-
+
* threads.h, threads.c (scm_internal_select): Renamed to
scm_std_select and discouraged old name.
(scm_thread_sleep, scm_thread_usleep): Likewise, as scm_std_sleep
respectively.
* fluid.h (SCM_FLUIDP): Deprecated.
-
+
* coop-threads.c: Removed.
-
+
* continuations.h, continuations.c (scm_with_continuation_barrier,
scm_c_with_continuation_barrier, scm_i_with_continuation_barrier):
New.
current sleep.
(scm_system_async_mark_for_thread): Do not use scm_current_thread
since that might not work during early initialization.
-
+
* __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS, SCM_REDEFER_INTS,
SCM_REALLOW_INTS): Deprecated by moving into deprecated.h and
deprecated.c. Replaced all uses with SCM_CRITICAL_SECTION_START
and SCM_CRITICAL_SECTION_END.
(SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): Removed. Replaced with
SCM_CRITICAL_SECTION_START/END.
-
+
* Makefile.am (modinclude_HEADER): Removed threads-plugin.h.
(libguile_la_SOURCES): Added null-threads.c
(EXTRA_libguile_la_SOURCES): Removed pthread-threads.c and
scm_frame_current_dynamic_state and
scm_i_with_continuation_barrier.
(scm_dynamic_root): Return current continuation barrier.
-
-
+
+
2005-02-28 Marius Vollmer <mvo@zagadka.de>
* socket.c (scm_setsockopt): Handle IP_ADD_MEMBERSHIP and
the hashtable.
(scm_hash_fn_create_handle_x): Likewise.
* vectors.h (SCM_I_SET_WVECT_TYPE): New, for use in scm_i_rehash.
-
+
2005-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* unif.c (prototype_to_type): Bugfix: Don't compare prototype to
statistics on the number of live objects of each type.
* gc-card.c (scm_i_tag_name): new function.
- (scm_i_card_statistics): new function.
+ (scm_i_card_statistics): new function.
2005-01-24 Kevin Ryde <user42@zip.com.au>
(scm_classes_initialized): Removed.
(scm_class_of): Do not check it.
(create_standard_classes): Do not set it.
-
+
2005-01-17 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* objects.h, objects.c (scm_classes_initialized): New.
(scm_class_of): Signal error when scm_classes_initialized is zero.
* goops.c (create_standard_classes): Set scm_classes_initialized
to one.
-
+
* random.c (scm_random_solid_sphere_x): Use
scm_c_generalized_vector_length instead of
scm_uniform_vector_length.
(scm_init_srfi_4): Set mark function of smob when needed.
Initialize scm_uint64_min, scm_uint64_max, scm_int64_min,
scm_int64_max.
-
+
Recognize 1.4 -e syntax.
-
+
* script.c (sym_at, sym_atat, sym_main, all_symbols): New.
(scm_compile_shell_switches): Use them to recognize and convert
1.4 "-e" syntax.
-
+
2005-01-12 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* deprecated.h, deprecated.c, strings.h, strings.c: Turn all
(print_summary): New.
(scm_init_deprecation): Initialize SCM_WARN_DEPRECATED instead of
mode.
-
+
Deprecated SCM_ARRAY* macros.
-
+
* unif.h, unif.c, ramap.c, vectors.c, srfi-4.c, srfi-4.i.c
(SCM_ARRAYP, SCM_I_ARRAYP): Renamed former to latter internal
version. Changed all uses.
Moved from unif.h to unif.c.
(scm_c_array_rank): New.
(scm_array_rank): Reimplement using it.
-
+
* deprecated.h, deprecated.c (SCM_ARRAYP, SCM_ARRAY_NDIM,
SCM_ARRAY_CONTP, SCM_ARRAY_MEM, SCM_ARRAY_V, SCM_ARRAY_BASE,
SCM_ARRAY_DIMS, scm_t_array): New deprecated versions.
-
+
2005-01-11 Marius Vollmer <mvo@zagadka.de>
* ramap.c: Replace uses of scm_make_ra with scm_i_make_ra.
(scm_ra_set_contp): Deprecated, changed all uses to
scm_i_ra_set_contp.
(scm_cvref, scm_aind, scm_raprin1): Deprecated.
-
+
2005-01-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* eval.c (scm_eval): Added example to docstring. Thanks to Issac
(scm_i_print_array): Print length information for arrays that need
it.
(scm_i_read_array): Parse it.
-
+
* deprecated.h, deprecated.c (SCM_CHARS, SCM_UCHARS, SCM_LENGTH,
scm_i_object_chars, scm_i_object_length): Brought back from the
dead.
uvec_fast_ref since scm_array_handle_ref should be faster now.
(coerce_to_uvec, scm_c_uniform_vector_ref,
scm_c_uniform_vector_set_x): Likewise.
-
+
* unif.h, unif.c, inline.h (scm_i_t_array_ref, scm_i_t_array_set):
New.
(scm_t_array_handle): Added ref, set, elements and
scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
scm_bit_invert_x): Correctly multiply index with increment in the
general case.
-
+
* unif.c (scm_array_handle_set): Correctly execute only one
alternative. D'Oh!
(scm_list_to_typed_array, l2ra): Use scm_t_array_handle to fill
the array; this covers all cases with much simpler code.
-
+
* srfi-4.c (scm_uniform_element_size): Deprecated implementation
as well.
(scm_i_print_array): Print zero rank arrays specially.
(tag_to_type): Return #t for an empty tag, not the empty symbol.
(scm_i_read_array): Allow zero rank arrays.
-
+
2005-01-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* hashtab.h, hashtab.c (SCM_HASHTAB_BUCKET_LOC): Removed.
Removed ref_stack field.
(PSTATE_STACK_REF, PSTATE_STACK_SET): New, for accessing the stack
of a print state. Use them everywhere instead of ref_stack.
-
+
* srfi-4.h (scm_uniform_element_size): Deprecated for real.
-
+
* srfi-4.c: Include deprecation.h.
* vectors.h, vectors.c, unif.h, unif.c, deprecated.h,
scm_vector_equal_p): Moved from vectors.[hc] to deprecated.[hc].
(scm_vector_equal_p, scm_i_vector_equal_p): Renamed former to
latter. Changed use in eq.c.
-
+
2005-01-07 Marius Vollmer <mvo@zagadka.de>
Make the uniform vector routines also deal with one dimensional
arrays.
-
+
* srfi-4.c (SCM_IS_UVEC): New, use it instead of
SCM_SMOB_PREDICATE in this file.
(is_uvec): Also recognize one-dimensional uniform numeric arrays
(scm_uniform_vector_to_list): Let uvec_to_list do all the
checking.
(scm_uniform_vector_length): Use uvec_length.
-
+
2005-01-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* srfi-4.h, srfi-4.c (scm_c_uniform_vector_element_size,
scm_c_uniform_vector_size): Removed.
(scm_array_handle_uniform_element_size): New.
-
+
* unif.h (scm_array_handle_ref, scm_array_handle_set): Changed
type of POS parameter to be signed, positions can be negative.
scm_t_array_handle to properly call it.
(scm_vector_get_handle, scm_generalized_vector_get_handle):
Renamed former to latter, changed all uses.
-
+
2005-01-05 Marius Vollmer <mvo@zagadka.de>
Updated bitvector routines to also use scm_t_array_handles.
-
+
* unif.h (scm_bitvector_elements,
scm_bitvector_writable_elements): Use a scm_t_array_handle and
deliver offset, length and increment to caller. Changed all uses.
arrays is now SCM_UNSPECIFIED. The old special value SCM_BOOL_F
was a valid value to fill bitvectors with, so it can't really be
specialed out.
-
+
2005-01-04 Kevin Ryde <user42@zip.com.au>
* stime.c (scm_strftime): Free t.tm_zone produced by bdtime2c.
so that it doesn't leak.
(scm_stable_sort): Simply call scm_stable_sort_x on a copy of the
list or vector.
-
+
* ramap.c (scm_array_map_x): Do not try to convert fill value
before filling, any necessary conversion is done while storing.
vector elements API or simple vector API, as appropriate. Removed
SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
-
+
* srfi-4.h, srfi-4.c,
srfi-4.i.c (scm_array_handle_uniform_elements,
scm_array_handle_uniform_writable_elements,
scm_t_array_handle, deliver length and increment.
(scm_array_handle_<foo>_elements,
scm_array_handle_<foo>_writable_elements): New.
-
+
* gen-scmconfig.h.in (SCM_I_GSC_HAVE_ARRAYS): Removed.
* gen-scmconfig.c: Hard code SCM_HAVE_ARRAYS to "1".
-
+
* unif.h, unif.c (scm_t_array_handle, scm_array_get_handle,
scm_array_handle_rank, scm_array_handle_dims, scm_array_handle_ref
scm_array_handle_set, scm_array_handle_elements
(scm_make_shared_array, scm_enclose_array): Correctly use
scm_c_generalized_vector_length instead of
scm_uniform_vector_length.
-
+
* validate.h (SCM_VALIDATE_VECTOR,
SCM_VALIDATE_VECTOR_OR_DVECTOR): use scm_is_simple_vector instead
of SCM_VECTORP.
No longer use creators to specify the type of an array. Creators
expose the fact that arrays are wrapped around vectors, but that
might change.
-
+
* srfi-4.h (scm_i_proc_make_u8vector, scm_i_proc_make_s8vector,
scm_i_proc_make_u16vector, scm_i_proc_make_s16vector,
scm_i_proc_make_u32vector, scm_i_proc_make_s32vector,
(tag_to_type): New.
(scm_i_read_array): Use scm_list_to_typed_array instead of
scm_list_to_uniform_array.
-
+
2004-12-27 Marius Vollmer <mvo@zagadka.de>
* unif.h, unif.c (scm_bitvector_elements): Made return value "const".
scm_frame_uniform_vector_release_writable_elements): New. Takes
crown of longest identifier yet.
Changed all uses as required by the changes above.
-
+
* vectors.h, vectors.c (scm_c_vector_set_x): Make return type
void.
(scm_is_vector, scm_vector_p, scm_vector_length,
scm_uniform_vector_length.
(scm_ramap, rafe): Use scm_c_vector_ref instead of SCM_VELTS. use
scm_c_generalized_vector_ref instead of scm_uniform_vector_ref.
-
+
2004-12-23 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* continuations.h, continuations.c (scm_t_contregs): New 'offset'
scm_last_stack_frame, scm_stack_id): Use the new 'offset' member
of continuations instead of calculating the offset ourselves.
Relocate 'vect' member of scm_t_debug_frame.
-
+
2004-12-16 Kevin Ryde <user42@zip.com.au>
* ramap.c (scm_array_map_x): Check for at least one source argument.
use of an array as their storage 'vector'. When all generalized
vectors are allowed as storage, including one-dimensional arrays,
this will no longer work.)
-
+
* unif.h, unif.c: (scm_tc16_enclosed_array, SCM_ENCLOSED_ARRAYP):
New.
(exactly_one_third, singp): Removed.
explicitly.
(scm_init_unif): Initialize scm_tc16_enclosed_array smob.
Use scm_i_print_array as printer for scm_tc16_array.
-
+
2004-11-10 Marius Vollmer <mvo@zagadka.de>
* ramap.c (cind): Changed second arg to be pointer to long instead
in terms of scm_uniform_vector_read_x and
scm_uniform_vector_write, respectively. Strings and
bitvector support has been dropped.
-
+
* srfi-4.h, srfi-4.c: Do not include <libguile.h>, include the
needed files directly. Include config.h, <unistd.h> and <io.h>
when available.
(make_uvec): ...but not here.
(coerce_to_uvec): Use new generalized vector functions to handle
all kinds of vectors in one go.
-
+
* tags.h (scm_tc7_bvect): Renamed to scm_tc7_unused7, renaming the
remaining scm_tc7_unused tags to get a neatly ordered list.
scm_is_generalized_vector, scm_c_generalized_vector_length,
scm_c_generalized_vector_ref, scm_c_generalized_vector_set_x):
New.
-
+
* unif.h, unif.c (scm_bitvector_p, scm_bitvector,
scm_make_bitvector, scm_bitvector_length, scm_bitvector_ref,
scm_bitvector_set_x, scm_list_to_bitvector, scm_bitvector_to_list,
* srfi-4.h, srfi-4.c (scm_frame_uniform_vector_release): New.
* unif.c (scm_bit_set_star_x, scm_bit_count_star_x): Use it to get
more efficient access to the u32vector.
-
+
* tags.h (scm_tc7_llvect, scm_tc7_uvect, scm_tc7_fvect,
scm_tc7_dvect, scm_tc7_cvect, scm_tc7_svect, scm_tc7_byvect,
scm_tc7_ivect): Renamed to scm_tc7_unused_1 to scm_tc7_unused_8.
* unif.c (scm_bit_set_star_x, scm_bit_count_star_x): Use u32vectors
instead of old-sytle uvectors.
-
+
* convert.c, convert.i.c: Rewritten completely, using
scm_any_to_u8vector, etc and other new-style uniform vector
functions.
return creators.
(scm_make_uve): Use scm_call_1 instead of scm_call_2 with a second
arg of SCM_UNDEFINED. The latter is wrong.
-
+
* unif.h, unif.c (scm_make_u1vector): New, but only temporary.
(make_uve): Removed.
(scm_i_proc_make_vector, scm_i_proc_make_string,
Updated all tables and generic functions to support them.
(scm_i_proc_make_u8vector, scm_i_proc_make_s8vector, etc): New.
(scm_init_srfi_4): Initialize them.
-
+
* srfi-4.i.c (scm_take_u8vector, etc): use uvec_sizes instead of
sizeof(CTYPE) as explained in the comment.
vector. The plan is to gradually replace one type after the other
until none is left and then to consider general cleanups and
optimizations.
-
+
* srfi-4.h, srfi-4.i.c (scm_u8vector_elements, etc): New.
* srfi-4.h, srfi-4.c (scm_uniform_vector_p,
requested.
* convert.c (scm_c_scm2chars, scm_c_chars2scm,
scm_c_chars2byvect): Use a s8vector instead of a scm_tc7_byvect.
-
+
2004-10-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* numbers.h, numbers.c (scm_i_print_double): New.
(scm_uint2str): New, for scm_t_uintmax.
(scm_iint2str): Argument type changed to scm_t_intmax,
reimplemented in terms of scm_uint2str.
-
+
* print.c, print.h (scm_uintprint): New, for printing
scm_t_uintmax values.
(scm_intprint): Argument type changed to scm_t_intmax.
-
+
* sort.c (quicksort, scm_merge, scm_merge_list_x,
scm_merge_list_step, scm_merge_vector_step): Inserted SCM_TICKs at
strategic places so that the loops can be interrupted.
"-I$(top_srcdir)/libguile-ltdl".
(libguile_la_LIBADD): Use @LIBLTDL@ instead of
"../libguile-ltdl/libguile-ltdl.a".
-
+
* guile.c, dynl.c: Switched to using libltdl directly. Replaced
all references to scm_lt_* with just lt_*. Include <ltdl.h>
instead of <libguile-ltdl.h>.
quicksort to fail, it just put all the burdon on the insertion
sort and was thus very slow. Thanks to Rolan Orre for reporting
the slowness!
-
+
2004-10-19 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* numbers.c (scm_i_range_error): New.
* conv-integer.i.c, conv-uinteger.i.c: Use it instead of
- scm_out_of_range.
+ scm_out_of_range.
* sort.c (scm_restricted_vector_sort_x): Validate startpos <=
endpos. State inclusiveness/exclusiveness of bounds in docstring.
Keywords no longer store a 'dash symbol'. Instead, they store a
symbol with their real name.
-
+
* keywords.h, keywords.c, deprecated.h, deprecated.c
(SCM_KEYWORDP, SCM_KEYWORDSYM): Deprecated and implemented in
terms of scm_is_keyword and scm_keyword_dash_symbol.
-
+
* keywords.h, keywords.c, discouraged.h, discouraged.c
(scm_make_keyword_from_dash_symbol, scm_keyword_dash_symbol,
scm_c_make_keyword): Discouraged.
(scm_is_keyword, scm_from_locale_keyword,
scm_from_locale_keywordn): New.
- * goops.c: Replaced SCM_KEYWORDP with scm_is_keyword.
+ * goops.c: Replaced SCM_KEYWORDP with scm_is_keyword.
* snarf.h (SCM_KEYWORD, SCM_GLOBAL_KEYWORD): Use
scm_from_locale_keyword instead of scm_c_make_keyword.
(libguile_la_LIBADD): Removed THREAD_LIBS_LOCAL, which is unused
now.
(libpath.h): Put GUILE_CFLAGS in the build-info.
-
+
2004-09-23 Marius Vollmer <mvo@zagadka.de>
* print.h (scm_print_state): Added highlight_objects.
* backtrace.h, backtrace.c (scm_display_backtrace_with_highlights,
scm_backtrace_with_highlights): New. Set highlight_objects of
printstate.
-
+
* error.c (scm_error_scm): Document new meaning of data/rest
argument for out-of-range and wrong-type-arg errors.
(scm_out_of_range, scm_out_of_range_pos, scm_wrong_type_arg,
scm_wrong_type_arg_msg): Pass bad_value in rest argument of
exception so that it gets highlighted in the backtrace.
Don't talk about "argument" when not giving a position.
-
+
* throw.c (handler_message): The rest argument is the fourth
argument, not everything after the third. Call
scm_display_backtrace_with_highlights, passing the rest argument
* strings.h, strings.c (scm_substring_read_only,
scm_c_substring_read_only, scm_i_substring_read_only): New.
(RO_STRING_TAG, IS_RO_STRING): New.
- (scm_i_string_writable_chars): Bail on read-only strings.
-
+ (scm_i_string_writable_chars): Bail on read-only strings.
+
* read.c (scm_lreadr): use scm_c_substring_read_only for string
literals, thus making them read-only as specified by R5RS.
numbers.c.
(scm_to_mpz, scm_from_mpz): New.
Thanks to Andreas Vögele!
-
+
* read.c (skip_scsh_block_comment): Recognize "!#" everywhere, not
just on a line of its own.
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.
-
+
2004-09-20 Marius Vollmer <mvo@zagadka.de>
* gc-mark.c (SCM_MARK_BACKING_STORE): Removed, it was unused.
(scm_lreadr): Abort on seeing "#!", which should no longer happen.
(skip_scsh_block_comment): Use scm_input_error instead of
scm_misc_error in case of EOF.
-
+
2004-09-07 Kevin Ryde <user42@zip.com.au>
* numbers.c (scm_integer_expt): Reject exponent +/-inf.
scm_i_string_chars et al. Copious scm_remember_upto_heres have
been inserted. Made sure that no internal string pointer is used
across a SCM_TICK or a possible GC.
-
+
* script.c (scm_compile_shell_switches): Use
scm_from_locale_string instead of scm_makfrom0str.
* srfi-13.c, srfi-13.h, srfi-14.c, srfi-14.h: New files.
* strop.h, strop.c: Removed, they are now empty.
* Makefile.am: Updated for new and removed files.
-
+
* symbols.h, symbols.c (scm_string_ci_to_symbol): Moved here, next
to scm_string_to_symbol.
scm_string_geq_p, scm_string_ci_less_p, scm_string_ci_leq_p,
scm_string_ci_gr_p, scm_string_ci_geq_p): Use scm_string_eq, etc
instead of explicit code.
-
+
* deprecated.c, load.c, posix.c, unif.c, symbols.c: Include
"srfi-13.h" instead of "strop.h".
scm_i_string_char, scm_i_string_writable_chars): Use it.
(scm_i_substring_copy): Make START argument optional for C
callers, for upcoming SRFI-13 integration.
-
+
2004-08-21 Marius Vollmer <mvo@zagadka.de>
From Richard Todd, Thanks!
-
+
* script.c (scm_compile_shell_switches): added '-L' switch to add
to the %load-path.
-
+
2004-08-21 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
* eval.c (unmemoize_exprs): When dropping internal body markers
scm_i_string_writable_chars doesn't give that. Fixed by letting
mkstemp modify a locale version of the tmpl argument and copying
the result back into tmpl.
-
+
* strop.c (scm_substring_move_x): Store into str2, not str1.
2004-08-20 Kevin Ryde <user42@zip.com.au>
New string implementation, with copy-on-write strings and
mutation-sharing substrings, and a new internal string API.
Symbols can now share memory with strings.
-
+
* tags.h (scm_tc7_stringbuf): New tag.
* strings.h, strings.c: (scm_i_string_chars, scm_i_string_length,
(scm_i_thread_wake_up): Unlock all threads, including ourselves,
call scm_i_enter_guile.
(scm_thread_mark_stacks): Expect all threads to be suspended.
-
+
* gc.h, gc.c (scm_i_gc_admin_mutex): New, to protect
scm_gc_mallocated, for now.
(scm_init_storage): Initialize it.
* gc-malloc.c (descrease_mtrigger, increase_mtrigger): Use it.
-
+
* gc-mark.c (scm_gc_mark_dependencies): Call scm_i_string_mark,
scm_i_stringbuf_mark and scm_i_symbol_mark, as appropriate.
* gc-card.c (scm_i_sweep_card): Call scm_i_string_free,
(scm_recv, scm_send, scm_recvfrom, scm_sendto): Use
SCM_I_STRING_CHARS and SCM_I_STRING_LENGTH instead of
SCM_STRING_CHARS and SCM_STRING_LENGTH.
-
+
* simpos.c (scm_system): Convert SCM strings to locale strings
instead of accessing their internals.
(scm_basename, scm_dirname): Use SCM_I_STRING_CHARS and
SCM_I_STRING_LENGTH instead of SCM_STRING_CHARS and
SCM_STRING_LENGTH.
-
+
* extensions.c (load_extension): Convert lib and init to locale
strings instead of accessing the internals directly.
(scm_c_load_extension): Use scm_from_locale_string instead of
scm_makfrom0str.
-
+
* fports.h, fports.c (scm_i_fdes_to_port): New, like
scm_fdes_to_port, but take mode bits directly instead of as a C
string.
(scm_void_port): Implement using above.
(scm_sys_make_void_port): Use scm_i_void_port together with
scm_i_mode_bits to avoid accessing internals of SCM string.
-
+
* strings.h, strings.c (scm_i_get_substring_spec): New.
* socket.c, rw.c, deprecated.h, validate.h
scm_to_locale_string, etc.
(SCM_VALIDATE_SUBSTRING_SPEC_COPY): Deprecated. Replaced as
above, plus scm_i_get_substring_spec.
-
+
* regex-posix.c, read.c, random.c, ramap.c, print.c, numbers.c,
hash.c, gc.c, gc-card.c, convert.i.c, backtrace.c, strop.c,
strorder.c, strports.c, struct.c, symbols.c, unif.c, ports.c: Use
(scm_putenv): Rewritten to use only C strings.
(scm_setlocale, scm_crpt): Convert argument strings to locale
strings.
-
+
2004-08-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* load.c (scm_primitive_load_path): Do not check for absolute
(scm_string_append): Use memcpy instead of explicit loop. Do not
use register keyword. Use plain 'char' instead of 'unsigned
char'.
-
+
* strports.c (scm_mkstrport): Use SCM_I_STRING_UCHARS instead of
SCM_STRING_UCHARS. Use SCM_I_STRINGP instead of SCM_STRINGP.
SCM_STRING_LENGTH with SCM_I_STRINGP, SCM_I_STRING_CHARS, and
SCM_I_STRING_LENGTH, respectively.
(gh_scm2newstr): Implement in terms of scm_to_locale_string.
-
+
* environments.c: Instead calling scm_puts on the SCM_STRING_CHARS
of a string, call scm_display on the string itself.
scm_error, this avoids the back and forth conversion of SUBR and
MESSAGE and also plugs a memory leak.
(scm_error): Call scm_error_scm.
-
+
* backtrace.c: Replaced SCM_STRINGP with scm_is_string.
(display_header): Print FNAME when it is true, not
merely when it is a string.
* strings.h (SCM_SET_STRING_LENGTH, SCM_SET_STRING_CHARS): Removed
unceremoniously. They were unused by Guile itself, and external
use should stop immediately.
-
+
2004-08-10 Marius Vollmer <mvo@zagadka.de>
scm_truncate): Renamed to scm_c_round and scm_c_truncate;
deprecated versions installed in deprecated.h and deprecated.c.
Changed all uses.
-
+
2004-08-06 Rob Browning <rlb@defaultvalue.org>
* net_db.c (scm_resolv_error): don't cause an exception while
stat on the filename, to be certain a file rename can't mean we get
info on one filesystem object but open another. This fstat usage is
similar to Emacs copy-file.
-
+
* posix.c (scm_setgroups): Enhance docstring, per doc/ref/posix.texi.
* simpos.c (scm_system_star): Change scm_from_long to scm_from_int on
New.
(scm_make_complex): Discouraged by moving to discouraged.h and
discouraged.c. Replaced all uses with scm_c_make_rectangular.
-
+
* discouraged.h, discouraged.c, numbers.c, numbers.h
(scm_is_rational): New.
(scm_i_short2big, scm_i_int2big, scm_i_uint2big, scm_i_size2big,
explicit code.
(scm_from_double): Do not implement in terms of scm_make_real, use
explicit code.
-
+
2004-08-02 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* init.c (scm_init_guile_1): Call scm_i_init_discouraged.
* numbers.h, numbers.c: Removed GUILE_DEBUG code.
(scm_i_short2big, scm_i_ushort2big, scm_i_int2big, scm_i_uint2big,
scm_i_size2big, scm_i_ptrdiff2big): Removed.
- (scm_i_long2big, scm_i_ulong2big): New, explicit definitions.
+ (scm_i_long2big, scm_i_ulong2big): New, explicit definitions.
* conv-integer.i.c, conv-uinteger.i.c: Use them instead of
explicit code.
SCM_T_INT64_MIN, SCM_T_INT64_MAX, SCM_T_UINT64_MAX,
SCM_T_INTMAX_MIN, SCM_T_INTMAX_MAX, SCM_T_UINTMAX_MAX): Moved
definition into __scm.h, using new SCM_I_TYPE_MIN, etc.
-
+
* conv-integer.i.c, conv-uinteger.i.c: New files, used to generate
the functions below.
(scm_to_signed_integer, scm_to_unsigned_integer,
scm_from_signed_integer, scm_from_unsigned_integer): Generate via
conv-integer.i.c and conv-uinteger.i.c, as well.
-
+
* number.h (scm_to_ssize_t, scm_to_size_t): Use the new
SCM_I_SSIZE_MIN, SCM_I_SSIZE_MAX, and SCM_I_SIZE_MAX macros for
the limits. Those are always defined.
-
+
2004-07-29 Kevin Ryde <user42@zip.com.au>
* posix.c (scm_ttyname): Use scm_i_misc_mutex for thread safety.
Reimplement using scm_is_false, scm_is_true, scm_is_bool, and
scm_from_bool, respectively.
(SCM_NINUMP): Added.
-
+
* tags.h, deprecated.h (SCM_EQ_P): Deprecated by moving it into
deprecated.h. Replaced all uses with scm_is_eq.
* dynwind.c (scm_i_dowinds): Removed unused code that would call
the unexisting scm_cross_dynwind_binding_scope for inums on the
windlist.
-
+
2004-07-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* socket.c (ipv6_net_to_num, scm_from_ipv6): Renamed
an IPv& byte-wise address to a SCM integer. Changed all uses.
(bignum_in_ipv6_range_p, VALIDATE_INET6): Removed, their function
is now done by scm_to_ipv6.
-
+
* numbers.c (scm_to_signed_integer, scm_to_unsigned_integer): dot
not accept inexact integers.
use CHAR_BIT instead of hardcoding 8.
(LLONG_MIN, LLONG_MAX, ULLONG_MAX): Removed and used
SCM_I_LLONG_MIN etc. instead.
-
+
* numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to
SCM_I_MAKINUM and changed all uses.
* deprecated.h, deprecated.c (SCM_MAKINUM): Newly deprecated.
scm_from_uint8, scm_from_int16, scm_from_uint16, scm_from_int32,
scm_from_uint32, scm_from_int64, scm_from_uint64, scm_from_intmax,
scm_from_uintmax): New.
-
+
2004-07-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* tags.h (scm_is_eq): New.
scm_from_uint, scm_from_long, scm_from_ulong, scm_from_size_t,
scm_from_ssize_t, scm_is_real, scm_to_double, scm_from_double):
New.
-
+
2004-07-05 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* boolean.h, boolean.c (scm_is_true, scm_is_false, scm_from_bool,
unmemoize_do, unmemoize_if, unmemoize_lambda, unmemoize_let,
unmemoize_letrec, unmemoize_letstar, unmemoize_or,
unmemoize_set_x, unmemoize_apply, unmemoize_atcall_cc,
- unmemoize_at_call_with_values, unmemoize_future, sym_atslot_ref,
+ unmemoize_at_call_with_values, unmemoize_future, sym_atslot_ref,
unmemoize_atslot_ref, sym_atslot_set_x, unmemoize_atslot_set_x,
unmemoize_builtin_macro): New static functions and symbols.
macroexp and made static. Added new version of scm_macroexp that
emits a deprecation warning and then calls macroexp.
(scm_m_undefine): Issue deprecation warning.
-
+
2004-05-30 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
* eval.c (lookup_global_symbol, literal_p, try_macro_lookup):
Convert floating point numbers into strings with an arbitrary
radix. Thanks to Richard Todd!
-
+
* numbers.c (FLOBUFLEN): Increase so that radix 2 strings will
fit.
(fx): Removed.
* num2integral.i.c (NUM2INTEGRAL): Test BIGMPZ_FITSP with "!= 0" to
avoid warning from gcc 3.4. Reported by Hyperdivision.
-
+
* 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.
rounding in x+0.5 when x is a big value already an integer. In
certain hardware rounding cases x+0.5 can give an adjacent integer,
leading to that as the result, when we really just wanted x itself.
-
+
2004-04-19 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
* eval.c (scm_unmemocopy): Fixed unmemoization of let*.
2004-04-15 Kevin Ryde <user42@zip.com.au>
* cpp_sig_symbols.in: Add SIGSYS.
-
+
* list.c (scm_append_x): Use iterative style, to avoid non-tail
recursion.
* inline.h (scm_cell): use SCM_GC_CELL_WORD for checking tag.
* chars.h (scm_init_chars): change scm_{upcase,downcase} to
- scm_c_{up,down}case.
+ scm_c_{up,down}case.
(SCM_MAKE_CHAR): add (unsigned char) cast. This prevents havoc
- when hi-bit ASCII is subjected to SCM_MAKE_CHAR().
+ when hi-bit ASCII is subjected to SCM_MAKE_CHAR().
2004-04-06 Kevin Ryde <user42@zip.com.au>
SCM_DEBUG_CELL_ACCESSES is not defined. Scheme source code should
use (if (defined? 'set-debug-cell-accesses!) .. ) to switch on
debugging conditionally.
-
+
2004-03-21 Kevin Ryde <user42@zip.com.au>
* stime.c (scm_gmtime): Use gmtime_r when available, for thread safety.
* gc.h (scm_gc_cells_collected): Removed duplicated declaration.
Thanks to Bill Schottstaedt!
-
+
* socket.h (scm_gethost): Removed prototype it is already in
"net_db.h". Thanks to Bill Schottstaedt!
-
+
2004-02-18 Kevin Ryde <user42@zip.com.au>
* num2integral.i.c (INTEGRAL2BIG): WORDS_BIGENDIAN not right for word
* read.h: Remove conditionally compiled last arg to
scm_lreadparen.
(SCM_ELISP_VECTORS_P, SCM_ESCAPED_PARENS_P): New.
-
+
2004-01-23 Han-Wen Nienhuys <hanwen@xs4all.nl>
* eval.c (m_expand_body): remove stray variable new_body.
* dynwind.h, dynwind.c (scm_frame_unwind,
scm_frame_unwind_handler): Renamed and changed all uses.
(scm_frame_rewind, scm_frame_rewind_handler): Likewise.
-
+
2004-01-11 Kevin Ryde <user42@zip.com.au>
* unif.c (scm_bit_count, scm_bit_position, s_scm_bit_set_star_x,
case of only one fluid.
(scm_with_fluid): New.
(scm_c_with_fluid): Use frames instead of scm_c_with_fluids.
-
+
* fluids.h, fluids.c (scm_frame_fluid): New.
(scm_with_fluid): New.
(scm_i_swap_fluids, scm_i_swap_fluids_reverse): Removed.
* dynwind.c (scm_frame_end): Do not use scm_i_dowinds. Instead,
do the unwinding directly. It is simple enough.
-
+
* dynwind.h, dynwind.c: Did the following renamings:
scm_begin_frame -> scm_frame_begin,
scm_end_frame -> scm_frame_end,
scm_with_blocked_asyncs -> scm_frame_block_asyncs,
scm_with_unblocked_asyncs -> scm_frame_unblock_asyncs.
Changed all uses.
-
+
* ports.h, ports.c: Did the follwing renamings:
scm_with_current_input_port -> scm_frame_current_input_port,
scm_with_current_output_port -> scm_frame_current_output_port,
(WINDER_F_MARK, WINDER_MARK_P, winder_mark): New.
(scm_on_unwind_with_scm, scm_on_rewind_with_scm): New. Use above
to protect SCM values.
-
+
* dynwind.h (SCM_F_WIND_EXPLICITELY,
SCM_F_WIND_EXPLICITLY): It's "explicitly" not "explicitely", damn.
Changed all uses.
(scm_on_unwind_with_scm, scm_on_rewind_with_scm): New.
-
+
2004-01-05 Marius Vollmer <mvo@zagadka.de>
* ports.h, ports.c (scm_with_current_input_port,
rewinding.
(scm_dynthrow): Do not call scm_dowinds, this is now done by
copy_stack_and_call.
-
+
2004-01-04 Kevin Ryde <user42@zip.com.au>
* numbers.c (scm_less_p): Don't convert frac to float for compares,
can give bad results due to rounding.
-
+
* stime.c (scm_current_time, scm_gettimeofday): Add a comment about
setzone/restorezone protection for DOS.
2003-11-18 Marius Vollmer <marius.vollmer@uni-dortmund.de>
Support for exact fractions from Bill Schottstaedt! Thanks!
-
+
* print.c (scm_iprin1): Handle fractions.
* objects.h (scm_class_fraction): New.
- * objects.c (scm_class_fraction): New.
+ * objects.c (scm_class_fraction): New.
(scm_class_of): Handle fractions.
-
+
* hash.c (scm_hasher): Handle fractions.
* numbers.c: New code for handling fraction all over the place.
scm_rational_p): New prototypes.
(scm_i_dbl2num, scm_i_fraction2double, scm_i_fraction_equalp,
scm_i_print_fraction): New prototypes.
-
+
* goops.c (create_standard_classes): Create "<fraction>" class.
* gc-mark.c (scm_gc_mark_dependencies): Handle fractions.
* numbers.c (scm_lognot): Rewrite using ~ and mpz_com, for directness
and to have non-integer types rejected as per other logical funcs.
-
+
2003-08-28 Kevin Ryde <user42@zip.com.au>
* gc.h (scm_remember_upto_here_1): Revise comments on the asm form.
that parameter name.
(scm_primitive_property_set_x): In docstring, VAL is the value
parameter not CODE.
-
+
2003-07-27 Marius Vollmer <mvo@zagadka.de>
* print.c (scm_print_symbol_name): handle more weird characters by
* posix.c (scm_setgroups): New. Thanks to Paul Jarc!
(scm_getgroups): Handle groups ids that don't fit into a fixnum.
Don't use SCM_WRITABLE_VELTS.
-
+
* gc.h (SCM_GC_SET_CELL_BVEC): New.
* gc-card.c (scm_i_init_card_freelist): Use it. Thanks to
Matthias Koeppe!
2003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
+ * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
2003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* __scm.h (SCM_ASRTGO): add "else" to macro expansions with if
clauses.
-
+
2003-06-29 Marius Vollmer <mvo@zagadka.de>
* deprecated.h (SCM_OPDIRP, scm_fport, scm_option, scm_srcprops,
* continuations.c: Redeclaration of getcontext() via the
__asm__ ("getcontext") directive.
- * continuations.h: Include <ucontext.h> instead of
+ * continuations.h: Include <ucontext.h> instead of
<sys/ucontext.h>.
2003-06-21 Kevin Ryde <user42@zip.com.au>
(scm_getspecific, scm_setspecific): Made these two function
real part of the API.
- * posix.c (s_scm_putenv): Added some code to make a
+ * posix.c (s_scm_putenv): Added some code to make a
(putenv "FOO="), i.e. setting an empty string, work also on
Win32 systems. Thanks to Kevin Ryde for the proposal.
* read.c (scm_input_error): Pass arg list parameter to scm_error_scm,
rather than SCM_EOL. Needed by "Unknown # object" case in scm_lreadr.
-
+
2003-06-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
* __scm.h, gc-card.c (SCM_DEBUG_DEBUGGER_SUPPORT,
2003-05-30 Stefan Jahn <stefan@lkcc.org>
- * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
+ * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
appropriately for mingw32 hosts.
* numbers.h: Defining copysign(), isnan() and finite() to
* load.c (s_scm_search_path): Fixed absolute and relative
path detections for native Windows platforms.
- * gc.h, threads.h: Export some more symbols using SCM_API (necessary
+ * gc.h, threads.h: Export some more symbols using SCM_API (necessary
to build on mingw32).
- * gc-freelist.c ("s_scm_map_free_list",
+ * gc-freelist.c ("s_scm_map_free_list",
"s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
- * fports.c (fport_fill_input): Disable use of
+ * fports.c (fport_fill_input): Disable use of
fport_wait_for_input() on Win32 platforms.
* filesys.c (s_scm_basename): Fixed __MINGW32__ code.
branch. Some have been slightly rewritten.
(scm_i_object_chars, scm_i_object_length): New, to support
SCM_CHARS, SCM_UCHARS, and SCM_LENTH.
-
+
2003-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (scm_m_do, unmemocopy, SCM_CEVAL): Reversed order of
(print_state_mutex): New mutex.
(scm_make_print_state, scm_free_print_state, scm_prin1):
Lock/unlock print_state_mutex.
-
+
* deprecated.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK):
Use current names in definitions.
scm_port_for_each.
(scm_port_for_each): Reimplemented using scm_c_port_for_each.
* ports.h (scm_c_port_for_each): New prototype.
-
+
2003-04-28 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* eval.c (scm_m_atdispatch): Removed until actually needed. (This
* goops.c (prep_hashsets): make static to match prototype.
(scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL. Thanks to Albert
Chin.
-
+
* c-tokenize.lex: remove trailing comma from enum. Thanks to
Albert Chin.
builds work.
(DOT_X_FILES): Removed "iselect.x".
(DOT_DOC_FILES): Removed "iselect.doc".
-
+
2003-03-25 Rob Browning <rlb@defaultvalue.org>
* win32-socket.h: #include "libguile/__scm.h". Replace usage of
* goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
slots with instance allocation.
-
+
* goops.c, goops.h (scm_class_extended_generic_with_setter): New
class.
(scm_compute_applicable_methods): Use scm_generic_function_methods.
* Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
builds work.
(EXTRA_DIST): Added version.h.in.
-
+
2002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
This change makes it possible for one thread to do lazy sweeping
These changes remove scm_ints_disabled (which hasn't has any
effect in Guile for quite some time).
-
+
* async.c, error.h (scm_ints_disabled): Removed.
* gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
threads, though. Signalling and error handling for threads is
very likely broken. Work on making the implementation cleaner and
more efficient is needed.
-
+
* __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
(SCM_NONREC_CRITICAL_SECTION_START,
SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
* Makefile.am (version.h): Changed $^ --> $< in rule for
version.h.
-
+
2002-12-08 Rob Browning <rlb@defaultvalue.org>
* version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
implements the rest on top of that. Guile's implementation is
what the "coop-pthreads" package has been previously. Support for
"coop" threads has been removed until I get time to add it again.
-
+
* Makefile.am (libguile_la_SOURCES): Removed iselect.c.
(noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
null-threads.c, coop-pthreads.c.
(modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
pthread-threads.h.
-
+
* validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
* threads.h: Do not include "libguile/coop-defs.h". Include
* pthread-threads.h: New, implement pthread-like API by deferring
to pthread itself.
-
+
* init.c (scm_init_guile_1): Do not call scm_init_iselect, which
has been lost in the reorganization.
case; Use trampolines.
Other changes:
-
+
* sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
(subr2oless): Removed.
(scm_restricted_vector_sort_x): Use scm_return_first to keep the
SCM_COPT_THREADS is defined.
(SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
is defined.
-
+
* coop-pthreads.c: Some harmless renamings of internal stuff.
(create_thread): New, generalized version of
scm_call_with_new_thread.
(scm_call_with_new_thread): Use it.
(scm_spawn_thread): New, use create_thread.
-
+
2002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
* coop-pthreads.c, coop-pthreads.h: Redone completely, you might
(take_signal): Simplified, to avoid race conditions.
(scm_sigaction_for_thread): Use new Scheme. Validate that thread
hasn't exited yet.
-
+
* async.c (scm_async_click): Reset pending_asyncs, handle
signal_asyncs. Don't set cdr of a non-signal async to #f.
(scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
exited.
(scm_unmask_signals, decrease_block): Call scm_async_click after
block_asyncs becomes zero.
-
+
* __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
active_asyncs.
fields.
* root.c (root_mark): Mark them.
(make_root): Initialize them.
-
+
* iselect.c, iselect.h: Replaced GUILE_ISELECT with
USE_COOP_THREADS.
(scm_internal_select): Define one version for USE_COOP_THREADS and
one for USE_NULL_THREADS.
(scm_init_iselect): Likewise.
-
+
* inline.h (scm_cell, scm_double_cell): Also allow
USE_COPT_THREADS to not protect the slot initializers.
-
+
* init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
because threads need to be initialized before the stack, but
gsubrs such as scm_timed_condition_variable_wait can only be
scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
scm_cond_destory): Do not define, they are now deprecated and
handled by threads.{h,c}.
-
+
* null-threads.c (scm_null_mutex, scm_null_cond): Define here.
(scm_threads_init): Create smobs here, using the appropriate
sizes.
* goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
* coop-pthreads.h, coop-pthreads.c: New, but unfinished.
-
+
2002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
* null-threads.c: Include <time.h>. Also, use <...> for inclusion
* scmsigs.c (scm_sigaction_for_thread): Store original handler in
signal_handlers, not the closure that is used as the async.
The closure is stored in signal_handler_cells, as previously.
-
+
2002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
* root.h (scm_root_state): Added 'block_async' slot.
(increase_block, decrease_block, scm_call_with_blocked_asyncs,
scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
scm_c_call_with_unblocked_asyncs): New.
-
+
* script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
Asyncs are enabled by default.
(scm_system_async_mark_for_thread): Initialize cdr of handler cell
with SCM_BOOL_F.
* scmsigs.c (scm_sigaction_for_thread): Likewise.
-
+
2002-10-04 Rob Browning <rlb@defaultvalue.org>
* guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
Removed prototypes.
(scm_i_queue_async_cell): New.
-
+
* __scm.h (scm_asyncs_pending_p): Removed.
(SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
scm_asyncs_pending_p.
2002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
+ * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
2002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* gc-malloc.c (scm_gc_init_malloc): check user settings for
sanity.
- * gc-freelist.c (scm_init_freelist): check user settings for sanity.
+ * gc-freelist.c (scm_init_freelist): check user settings for sanity.
* struct.h: change scm_structs_to_free to scm_i_structs_to_free
2002-08-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* gc-segment.c (scm_i_get_new_heap_segment): Oops. We want segment
- length *at* least SCM_MIN_HEAP_SEG_SIZE, not at most.
+ length *at* least SCM_MIN_HEAP_SEG_SIZE, not at most.
2002-08-22 Han-Wen Nienhuys <hanwen@cs.uu.nl>
function
* ports.h: use scm_i_ prefix for port table and port table size.
-
+
2002-08-15 Mikael Djurfeldt <mdj@linnaeus>
* vports.c (scm_make_soft_port): Initialize pt variable.
(scm_eval_string): Implement using scm_eval_string_in_module.
(scm_c_eval_string_in_module): New.
Thanks to Ralf Mattes for the suggestion!
-
+
2002-08-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* gc-card.c ("sweep_card"): remove SCM_MISC_ERROR messages: print
message and abort.
-
+
* gc-mark.c ("scm_gc_mark_dependencies"): idem.
* ports.c ("scm_new_port_table_entry"): return a boxed SCM in
2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- * tags.h: remove GC bits documentation from the tags table.
+ * 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).
+ implementation).
(scm_gc_calloc): new function
2002-08-04 Han-Wen Nienhuys <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.
2002-07-24 Stefan Jahn <stefan@lkcc.org>
- * continuations.h: ia64: Include <signal.h> before
+ * continuations.h: ia64: Include <signal.h> before
<sys/ucontext.h>.
2002-07-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
* *.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.