* backtrace.c (display_expression, display_frame): Call
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index c322e3f..c348cf2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -118,6 +118,11 @@ while the scripting code runs single-threadedly.
 
 This is an implementation of SRFI-26.
 
+** New module (srfi srfi-31)
+
+This is an implementation of SRFI-31 which provides a special form
+`rec' for recursive evaluation.
+
 ** Guile now includes its own version of libltdl.
 
 We now use a modified version of libltdl that allows us to make
@@ -577,6 +582,10 @@ order described by the SRFI-1 specification
 
 list-copy now accepts improper lists, per the specification.
 
+** SRFI-4 fixes
+
+Larger values in 64-bit vectors should print correctly now.
+
 ** SRFI-19 fixes
 
 date-week-number now correctly respects the requested day of week
@@ -584,6 +593,30 @@ starting the week.
 
 * Changes to the C interface
 
+** SCM_CELL_WORD_LOC has been deprecated.
+
+Use the new macro SCM_CELL_OBJECT_LOC instead, which return a pointer
+to a SCM, as opposed to a pointer to a scm_t_bits.
+
+This was done to allow the correct use of pointers into the Scheme
+heap.  Previously, the heap words were of type scm_t_bits and local
+variables and function arguments were of type SCM, making it
+non-standards-conformant to have a pointer that can point to both.
+
+** New macros SCM_SMOB_DATA_2, SM_SMOB_DATA_3, etc.
+
+These macros should be used instead of SCM_CELL_WORD_2/3 to access the
+second and third words of double smobs.  Likewise for
+SCM_SET_SMOB_DATA_2 and SCM_SET_SMOB_DATA_3.
+
+Also, there is SCM_SMOB_FLAGS and SCM_SET_SMOB_FLAGS that should be
+used to get and set the 16 exra bits in the zeroth word of a smob.
+
+And finally, there is SCM_SMOB_OBJECT and SCM_SMOB_SET_OBJECT for
+accesing the first immediate word of a smob as a SCM value, and there
+is SCM_SMOB_OBJECT_LOC for getting a pointer to the first immediate
+smob words.  Like wise for SCM_SMOB_OBJECT_2, etc.
+
 ** New way to deal with non-local exits and reentries.
 
 There is a new set of functions that essentially do what
@@ -637,6 +670,20 @@ On platforms that have them, these types are identical to intmax_t and
 uintmax_t, respectively.  On other platforms, they are identical to
 the largest integer types that Guile knows about.
 
+** scm_unmemocopy and scm_unmemoize have been removed from public use.
+
+For guile internal use, the functions scm_i_unmemocopy_expr,
+scm_i_unmemocopy_body and scm_i_unmemoize_expr are provided to replace
+scm_unmemocopy and scm_unmemoize.  User code should not have used
+scm_unmemocopy and scm_unmemoize and thus should not use the replacement
+functions also.
+
+Background: Formerly, scm_unmemocopy and scm_unmemoize would have allowed to
+unmemoize a single expression as well as a sequence of body forms.  This would
+have lead to problems when unmemoizing code of the new memoizer.  Now the two
+cases have to be distinguished.
+
+
 ** Many public #defines with generic names have been made private.
 
 #defines with generic names like HAVE_FOO or SIZEOF_FOO have been made