Use SCM_EQ_P insteda of `==' or `!=' in certain
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index f01839e..0c5ec90 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,27 @@ Changes since Guile 1.4:
 
 * Changes to the distribution
 
+** Guile now using versioning scheme similar to that of the Linux kernel.
+
+Guile now always uses three numbers to represent the version,
+i.e. "1.6.5".  The first number, 1, is the major version number, the
+second number, 6, is the minor version number, and the third number,
+5, is the micro version number.  Changes in major version number
+indicate major changes in Guile.
+
+Minor version numbers that are even denote stable releases, and odd
+minor version numbers denote development versions (which may be
+unstable).  The micro version number indicates a minor sub-revision of
+a given MAJOR.MINOR release.
+
+In keeping with the new scheme, (minor-version) and scm_minor_version
+no longer return everything but the major version number.  They now
+just return the minor version number.  Two new functions
+(micro-version) and scm_micro_version have been added to report the
+micro version number.
+
+In addition, ./GUILE-VERSION now defines GUILE_MICRO_VERSION.
+
 ** As per RELEASE directions, deprecated items have been removed
 
 *** Macros removed
@@ -33,6 +54,9 @@ Changes since Guile 1.4:
 
 ** New SRFI modules have been added:
 
+SRFI-0 `cond-expand' is now supported in Guile, without requiring
+using a module.
+
 (srfi srfi-2) exports and-let*.
 
 (srfi srfi-6) is a dummy module for now, since guile already provides
@@ -43,12 +67,21 @@ Changes since Guile 1.4:
 
 (srfi srfi-9) exports define-record-type.
 
+(srfi srfi-10) exports define-reader-ctor and implements the reader
+  extension #,().
+
 (srfi srfi-11) exports let-values and let*-values.
 
 (srfi srfi-13) implements the SRFI String Library.
 
 (srfi srfi-14) implements the SRFI Character-Set Library.
 
+(srfi srfi-17) implements setter and getter-with-setter and redefines
+  some accessor procedures as procedures with getters. (such as car,
+  cdr, vector-ref etc.)
+
+(srfi srfi-19) implements the SRFI Time/Date Library.
+
 ** New scripts / "executable modules"
 
 Subdirectory "scripts" contains Scheme modules that are packaged to
@@ -58,6 +91,7 @@ also be executable as scripts.  At this time, these scripts are available:
      doc-snarf
      generate-autoload
      punify
+     read-scheme-source
      use2dot
 
 See README there for more info.
@@ -260,6 +294,26 @@ Example:
 (eval '(+ 1 2) m) --> 3
 (eval 'load m) --> ERROR: Unbound variable: load
 
+** New command line option `--use-srfi'
+
+Using this option, SRFI modules can be loaded on startup and be
+available right from the beginning.  This makes programming portable
+Scheme programs easier.
+
+The option `--use-srfi' expects a comma-separated list of numbers,
+each representing a SRFI number to be loaded into the interpreter
+before starting evaluating a script file or the REPL.  Additionally,
+the feature identifier for the loaded SRFIs is recognized by
+`cond-expand' when using this option.
+
+Example:
+$ guile --use-srfi=8,13
+guile> (receive (x z) (values 1 2) (+ 1 2))
+3
+guile> (string-pad "bla" 20)
+"                 bla"
+
+
 * Changes to Scheme functions and syntax
 
 ** The empty combination is no longer valid syntax.
@@ -271,7 +325,7 @@ to write the empty list as a literal constant is to use quote: "'()".
 ** Auto-loading of compiled-code modules is deprecated.
 
 Guile used to be able to automatically find and link a shared
-libraries to satisfy requests for a module.  For example, the module
+library to satisfy requests for a module.  For example, the module
 `(foo bar)' could be implemented by placing a shared library named
 "foo/libbar.so" (or with a different extension) in a directory on the
 load path of Guile.
@@ -373,14 +427,14 @@ objects are usually permanent.
 ** Escape procedures created by call-with-current-continuation now
 accept any number of arguments, as required by R5RS.
 
-** New function `call-with-deprecation'
+** New function `issue-deprecation-warning'
 
-Call a thunk, displaying a deprecation message at the first call:
+This function is used to displaying the deprecation messages that are
+controlled by GUILE_WARN_DEPRECATION as explained in the README.
 
   (define (id x)
-    (call-with-deprecation "`id' is deprecated.  Use `identity' instead."
-      (lambda ()
-       (identity x))))
+    (issue-deprecation-warning "`id' is deprecated.  Use `identity' instead.")
+    (identity x))
 
   guile> (id 1)
   ;; `id' is deprecated.  Use `identity' instead.
@@ -388,6 +442,13 @@ Call a thunk, displaying a deprecation message at the first call:
   guile> (id 1)
   1
 
+** New syntax `begin-deprecated'
+
+When deprecated features are included (as determined by the configure
+option --enable-deprecated), `begin-deprecated' is identical to
+`begin'.  When deprecated features are excluded, it always evaluates
+to `#f', ignoring the body forms.
+
 ** New function `make-object-property'
 
 This function returns a new `procedure with setter' P that can be used
@@ -594,6 +655,22 @@ Return the argument.
 
 Use `identity' instead.
 
+** Deprecated: -1+
+
+Use `1-' instead.
+
+** Deprecated: return-it
+
+Use `noop' instead.
+
+** Deprecated: string-character-length
+
+Use `string-length' instead.
+
+** Deprecated: flags
+
+Use `logior' instead.
+
 ** Deprecated: close-all-ports-except.
 
 This was intended for closing ports in a child process after a fork,
@@ -625,6 +702,12 @@ If you have old code using the old syntax, import
 
   (use-modules (oop goops old-define-method) (oop goops))
 
+** Deprecated function: builtin-variable
+   Removed function: builtin-bindings
+
+There is no longer a distinction between builtin or other variables.
+Use module system operations for all variables.
+
 * Changes to the gh_ interface
 
 * Changes to the scm_ interface
@@ -845,6 +928,26 @@ Use scm_object_to_string instead.
 Use scm_wrong_type_arg, or another appropriate error signalling function
 instead.
 
+** Explicit support for obarrays has been deprecated.
+
+Use `scm_str2symbol' and the generic hashtable functions instead.
+
+** The concept of `vcells' has been deprecated.
+
+The data type `variable' is now used exclusively.  `Vcells' have been
+a low-level concept so you are likely not affected by this change.
+
+*** Deprecated functions: scm_sym2vcell, scm_sysintern,
+    scm_sysintern0, scm_symbol_value0, scm_intern, scm_intern0.
+
+Use scm_c_define or scm_c_lookup instead, as appropriate.
+
+*** New functions: scm_c_module_lookup, scm_c_lookup,
+    scm_c_module_define, scm_c_define, scm_module_lookup, scm_lookup,
+    scm_module_define, scm_define.
+
+These functions work with variables instead of with vcells.
+
 \f
 Changes since Guile 1.3.4:
 
@@ -955,6 +1058,7 @@ This is useful when debugging your .guile init file or scripts.
 
 Usage: (help NAME) gives documentation about objects named NAME (a symbol)
        (help REGEXP) ditto for objects with names matching REGEXP (a string)
+       (help 'NAME) gives documentation for NAME, even if it is not an object
        (help ,EXPR) gives documentation for object returned by EXPR
        (help (my module)) gives module commentary for `(my module)'
        (help) gives this text