Changes in 2.2.4 (since 2.2.3):
* New interfaces and functionality
** SRFI-71 (Extended LET-syntax for multiple values)
Guile now includes SRFI-71, which extends let, let*, and letrec to
support assigning multiple values. See "SRFI-71" in the manual for
details.
** (web client) export 'http-request' procedure
The 'http-request' procedure is the generalized procedure underneath
'http-get', 'http-post', etc.
** GDB support now registers the 'guile-backtrace' GDB command
The 'guile-backtrace' GDB command displays a backtrace of the VM stack
for the current thread.
** Recognize RISC-V compilation targets in (system base target)
* Bug fixes
** Fix stack-marking bug affecting multi-threaded programs
(<https://bugs.gnu.org/28211>)
** Add missing SYNC_IP calls in the VM
These could cause multi-threaded code to crash.
** Fix multi-threaded access to modules
(<https://bugs.gnu.org/30602>, <https://bugs.gnu.org/31879>,
and <https://bugs.gnu.org/31878>)
** (ice-9 match) now has better documentation
** 'get-bytevector-n' and 'get-bytevector-n!' can now read more than 4 GB
** Fix cross-compilation support for elisp
** Fix error reporting in 'load-thunk-from-memory'
** Fix GOOPS 'instance?' to work on objects that aren't structs
(<https://bugs.gnu.org/31606>)
** Fix type inference for bitwise logical operators
(<https://bugs.gnu.org/31474>)
** Avoid inexact arithmetic in the type inferrer for 'sqrt'
** Fix floating point unboxing regression in 2.2.3
(<https://bugs.gnu.org/30020>)
** Fix eta-conversion edge cases in peval (<https://bugs.gnu.org/29520>)
** Correctly interpret SRFI-18 timeout parameters
(<https://bugs.gnu.org/29704>)
** 'select' returns empty sets upon EINTR and EAGAIN
(<https://bugs.gnu.org/30368>)
** Restore pre-2.2.3 '%fresh-auto-compile' behavior
This reverts an incorrect fix for <https://bugs.gnu.org/29226>.
Upstream Changelog is large; bug fixes are omitted and heaeders only
follow; see NEWS for details.
Changes in 2.2.3 (since 2.2.2):
* New interfaces and functionality
** (web uri) module has better support for RFC 3986
** `struct-ref/unboxed' and `struct-set!/unboxed'
** Improved support for arrays with non-zero lower bounds
** Add `uintptr_t' and `intptr_t' to FFI types.
* Compiler improvements
** Improve speed of compiler backend for functions without loops
** Disable slot pre-coloring for optimization level "-O1" or below
** Improve complexity of constant subexpression elimination pass
** CPS conversion avoids generating return arity adapters if possible
* New deprecations
** Using `uri?' as a predicate on relative-refs deprecated
** Struct tail arrays deprecated
** Struct "self" slots deprecated
** Struct fields with opaque ("o") protection deprecated
** Using `struct-ref' and `struct-set!' on unboxed fields is deprecated
Changes in 2.2.2 (since 2.2.1):
Changes in 2.2.1 (since 2.2.0):
* Notable changes
** New sandboxed evaluation facility
** All literal constants are read-only
** Syntax objects are now a distinct type
If Guile installs into a non-default installation prefix, then
use ${GUILE_PREFIX}/info and ${GUILE_PREFIX}/man as the locations
for the installed GNU info files and manpages. This avoids needing
to do a lot of fixes to the PLISTs.
GUILE, GNU's Ubiquitous Intelligent Language for Extension, is a library
that implements the Scheme language plus various convenient facilities.
It's designed so that you can link it into an application or utility to
make it extensible. Our plan is to link this library into all GNU programs
that call for extensibility.
This is guile 2.2, the current stable version.