C code primitive), enabling the computations to run in parallel
while the scripting code runs single-threadedly.
+** Support for SRFI 61, extended cond syntax for multiple valuesm has
+ been added.
+
+This SRFI is always available.
+
** Support for require-extension, SRFI-55, has been added.
The SRFI-55 special form `require-extension' has been added. It is
* Changes to Scheme functions and syntax
+** Guardians have changed back to their original semantics
+
+Guardians now behave like described in the paper by Dybvig et al. In
+particular, they no longer make guarantees about the order in which
+they return objects, and they can no longer be greedy.
+
+They no longer drop cyclic data structures.
+
+The C function scm_make_guardian has been changed incompatibly and no
+longer takes the 'greedy_p' argument.
+
+** New function hashx-remove!
+
+This function completes the set of 'hashx' functions.
+
** The concept of dynamic roots has been factored into continuation
barriers and dynamic states.
guile> #: foo
#:foo
+** The printing of symbols that might look like keywords can be
+ controlled.
+
+The new printer option 'quote-keywordish-symbols' controls how symbols
+are printed that have a colon as their first or last character. The
+default now is to only quote a symbol with #{...}# when the read
+option 'keywords' is not '#f'. Thus:
+
+ guile> (define foo (string->symbol ":foo"))
+ guile> (read-set! keywords #f)
+ guile> foo
+ :foo
+ guile> (read-set! keywords 'prefix)
+ guile> foo
+ #{:foo}#
+ guile> (print-set! quote-keywordish-symbols #f)
+ guile> foo
+ :foo
+
** 'while' now provides 'break' and 'continue'
break and continue were previously bound in a while loop, but not
that returns the number of characters that can be read immediately
without the soft port blocking.
-** New debugging feature: breakpoints.
-
-Guile now has breakpoints. For details see the `Debugging Features'
-chapter in the reference manual.
-
** Deprecated: undefine
There is no replacement for undefine.
-* The functions make-keyword-from-dash-symbol and keyword-dash-symbol
- have been discouraged.
+** The functions make-keyword-from-dash-symbol and keyword-dash-symbol
+ have been discouraged.
They are relics from a time where a keyword like #:foo was used
directly as a Tcl option "-foo" and thus keywords were internally
Use symbol->keyword and keyword->symbol instead.
+** The `cheap' debug option is now obsolete
+
+Evaluator trap calls are now unconditionally "cheap" - in other words,
+they pass a debug object to the trap handler rather than a full
+continuation. The trap handler code can capture a full continuation
+by using `call-with-current-continuation' in the usual way, if it so
+desires.
+
+The `cheap' option is retained for now so as not to break existing
+code which gets or sets it, but setting it now has no effect. It will
+be removed in the next major Guile release.
+
+** Evaluator trap calls now support `tweaking'
+
+`Tweaking' means that the trap handler code can modify the Scheme
+expression that is about to be evaluated (in the case of an
+enter-frame trap) or the value that is being returned (in the case of
+an exit-frame trap). The trap handler code indicates that it wants to
+do this by returning a pair whose car is the symbol 'instead and whose
+cdr is the modified expression or return value.
* Changes to the C interface
+** The functions scm_hash_fn_remove_x and scm_hashx_remove_x no longer
+ take a 'delete' function argument.
+
+This argument makes no sense since the delete function is used to
+remove a pair from an alist, and this must not be configurable.
+
+This is an incompatible change.
+
+** The GH interface is now subject to the deprecation mechanism
+
+The GH interface has been deprecated for quite some time but now it is
+actually removed from Guile when it is configured with
+--disable-deprecated.
+
+See the manual "Transitioning away from GH" for more information.
+
** A new family of functions for converting between C values and
Scheme values has been added.
SCM_GLOC_VAL_LOC, scm_make_gloc, scm_gloc_p, scm_tc16_variable,
SCM_CHARS, SCM_LENGTH, SCM_SET_STRING_CHARS, SCM_SET_STRING_LENGTH.
+* Changes to bundled modules
+
+** (ice-9 debug)
+
+Using the (ice-9 debug) module no longer automatically switches Guile
+to use the debugging evaluator. If you want to switch to the
+debugging evaluator (which is needed for backtrace information if you
+hit an error), please add an explicit "(debug-enable 'debug)" to your
+code just after the code to use (ice-9 debug).
+
\f
Changes since Guile 1.4: