* 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
** 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
(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
doc-snarf
generate-autoload
punify
+ read-scheme-source
use2dot
See README there for more info.
(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.
** 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.
** 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.
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
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,
(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
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:
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