* ramap.c (array-copy-in-order!, array-map-in-order): New names.
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index 192d075..2a637a5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,39 @@ occur during read or write.
 Command line history length is now controlled by the readline option
 `history-length'.  Default is 200 lines.
 
+* Changes to Scheme functions and syntax
+
+** New module: (ice-9 setf)
+Implements generalized references a la Common LISP.
+
+* New syntax: setf! PLACE VALUE
+Puts VALUE in location specified by PLACE.  setf! is more general than
+set! in the sense that PLACE can be a form (GETTER EXP1 EXP2 ...).  The
+setf! expression will bw transformed into (SETTER EXP1 EXP2 ... VALUE)
+where SETTER is a procedure or macro which has previously been
+associated with GETTER.
+
+Example:
+
+ (setf! (car x) 4) <=> (set-car! x 4)
+
+* New syntax: setter GETTER
+The name of the SETTER of GETTER.  The way to associate a SETTER with
+a GETTER is: (setf! (setter GETTER) SETTER)
+
+Example:
+
+  (setf! (setter car) set-car!)
+
+** The range of logand, logior, logxor, logtest, and logbit? have changed.
+
+These functions now operate on numbers in the range of a C unsigned
+long.
+
+These functions used to operate on numbers in the range of a C signed
+long; however, this seems inappropriate, because Guile integers don't
+overflow.
+
 ** All builtins now print as primitives.
 Previously builtin procedures not belonging to the fundamental subr
 types printed as #<compiled closure #<primitive-procedure gsubr-apply>>.