Changes from arch/CVS synchronization
[bpt/guile.git] / libguile / ChangeLog
index f3dd1c5..d59bc98 100644 (file)
@@ -1,3 +1,79 @@
+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 ()'