New stub definitions for char-table primitives.
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index da24405..3494ce7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Guile NEWS --- history of user-visible changes.  -*- text -*-
+Guile NEWS --- history of user-visible changes.
 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -8,8 +8,23 @@ Changes since the stable branch:
 
 * Changes to the distribution
 
-** There is a new thread implementation option "null", which is also
-   the default now.
+** Guile now provide and uses an "effective" version number.
+
+Guile now provides scm_effective_version and effective-version
+functions which return the "effective" version number.  This is just
+the normal full version string without the final micro-version number,
+so the current effective-version is "1.6".  The effective version
+should remain unchanged during a stable series, and should be used for
+items like the versioned share directory name
+i.e. /usr/share/guile/1.6.
+
+Providing an unchanging version number during a stable release for
+things like the versioned share directory can be particularly
+important for Guile "add-on" packages, since it provides a directory
+that they can install to that won't be changed out from under them
+with each micro release during a stable series.
+
+** There are two new thread implementation options: "null" and "coop-pthreads".
 
 When you configure "--with-threads=null", you will get the usual
 threading API (call-with-new-thread, make-mutex, etc), but you can't
@@ -18,11 +33,14 @@ equivalent to "--with-threads=null".  This means that the thread API
 is always present, although you might not be able to create new
 threads.
 
-When cooperative threading is not supported on your platform, you will
-get the "null" threads instead.
+The "coop-pthread" (or shorter: "copt") thread implementation will use
+portable POSIX threads but will restrict them so that only one thread
+can execute 'in Guile' at any one time.  This option will give you the
+same basic behavior as the old "coop" option, but hopefully in a more
+portable way.
 
-The long term plan is to make the selection of a thread implementation
-a run-time option, not a configure time option.
+The default is now "coop-pthread", unless your platform doesn't have
+pthreads, in which case "null" threads are used.
 
 ** Guile now includes its own version of libltdl.
 
@@ -43,6 +61,12 @@ debugging evaluator gives better error messages.
 
 * Changes to Scheme functions and syntax
 
+** New function: effective-version
+
+Returns the "effective" version number.  This is just the normal full
+version string without the final micro-version number.  See "Changes
+to the distribution" above.
+
 ** Mutexes are now recursive.
 
 Locking a mutex that you have already locked will now succeed.  Every
@@ -52,7 +76,7 @@ the last call to unlock-mutex will actually unlock the mutex.
 ** New function 'try-mutex'.
 
 This function will attempt to lock a mutex but will return immediately
-instead if blocking, indicating failure.
+instead if blocking and indicate failure.
 
 ** Waiting on a condition variable can have a timeout.
 
@@ -201,8 +225,27 @@ without the soft port blocking.
 Guile now has breakpoints.  For details see the `Debugging Features'
 chapter in the reference manual.
 
+** Deprecated: undefine
+
+There is no replacement for undefine.
+
 * Changes to the C interface
 
+** New function: scm_effective_version
+
+Returns the "effective" version number.  This is just the normal full
+version string without the final micro-version number.  See "Changes
+to the distribution" above.
+
+** The function scm_call_with_new_thread has a new prototype.
+
+Instead of taking a list with the thunk and handler, these two
+arguments are now passed directly:
+
+    SCM scm_call_with_new_thread (SCM thunk, SCM handler);
+
+This is an incompatible change.
+
 ** The value 'scm_mask_ints' is no longer writable.
 
 Previously, you could set scm_mask_ints directly.  This is no longer
@@ -344,6 +387,17 @@ option to disable the checking has most probably not been used anyway.
 Full number of arguments checking of closures is mandatory now.  However, the
 option to disable the checking has most probably not been used anyway.
 
+** Deprecated configure flags USE_THREADS and GUILE_ISELECT
+
+Previously, when the C preprocessor macro USE_THREADS was defined,
+libguile included a thread API.  This API is now always included, even
+when threads are not really supported.  Thus, you don't need to test
+for USE_THREADS.
+
+Analogously, GUILE_ISELECT was defined when the function
+scm_internal_select was provided by Guile.  This function is now
+always defined, and GUILE_ISELECT with it.
+
 ** Removed definitions:  scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify, scm_m_0_ify, s_1_ify,
 scm_m_1_ify, scm_debug_newcell,        scm_debug_newcell2, scm_tc16_allocated,
@@ -6313,4 +6367,3 @@ Local variables:
 mode: outline
 paragraph-separate: "[         \f]*$"
 end:
-