** 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
See README there for more info.
+These scripts can be invoked from the shell with the new program
+"guile-tools", which keeps track of installation directory for you.
+For example:
+
+ $ guile-tools display-commentary srfi/*.scm
+
+guile-tools is copied to the standard $bindir on "make install".
+
** New module (ice-9 stack-catch):
stack-catch is like catch, but saves the current state of the stack in
** 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: