mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-09 07:00:23 +02:00
Update `NEWS'.
* NEWS: Add news for 2.0.7.
This commit is contained in:
parent
4d599c2441
commit
13fac28218
1 changed files with 176 additions and 0 deletions
176
NEWS
176
NEWS
|
@ -5,6 +5,182 @@ See the end for copying conditions.
|
|||
Please send Guile bug reports to bug-guile@gnu.org.
|
||||
|
||||
|
||||
Changes in 2.0.7 (since 2.0.6):
|
||||
|
||||
* Notable changes
|
||||
|
||||
** SRFI-105 curly infix expressions are supported
|
||||
|
||||
Curly infix expressions as described at
|
||||
http://srfi.schemers.org/srfi-105/srfi-105.html are now supported by
|
||||
Guile's reader. This allows users to write things like {a * {b + c}}
|
||||
instead of (* a (+ b c)). SRFI-105 support is enabled by using the
|
||||
`#!curly-infix' directive in source code, or the `curly-infix' reader
|
||||
option. See the manual for details.
|
||||
|
||||
** Reader options may now be per-port
|
||||
|
||||
Historically, `read-options' and related procedures would manipulate
|
||||
global options, affecting the `read' procedure for all threads, and all
|
||||
current uses of `read'.
|
||||
|
||||
Guile can now associate `read' options with specific ports, allowing
|
||||
different ports to use different options. For instance, the
|
||||
`#!fold-case' and `#!no-fold-case' reader directives have been
|
||||
implemented, and their effect is to modify the current read options of
|
||||
the current port only; similarly for `#!curly-infix'. Thus, it is
|
||||
possible, for instance, to have one port reading case-sensitive code,
|
||||
while another port reads case-insensitive code.
|
||||
|
||||
** Futures may now be nested
|
||||
|
||||
Futures may now be nested: a future can itself spawn and then `touch'
|
||||
other futures. In addition, any thread that touches a future that has
|
||||
not completed now processes other futures while waiting for the touched
|
||||
future to completed. This allows all threads to be kept busy, and was
|
||||
made possible by the use of delimited continuations (see the manual for
|
||||
details.)
|
||||
|
||||
Consequently, `par-map' has been rewritten and can now use all cores.
|
||||
|
||||
** `load-in-vicinity' search for `.go' files in `%load-compiled-path'
|
||||
|
||||
Previously, `load-in-vicinity' would look for compiled files in the
|
||||
auto-compilation cache, but not in `%load-compiled-path'. This is now
|
||||
fixed. This affects `load', and the `-l' command-line flag. See
|
||||
<http://bugs.gnu.org/12519> for details.
|
||||
|
||||
** Extension search order fixed, and LD_LIBRARY_PATH preserved
|
||||
|
||||
Up to 2.0.6, Guile would modify the `LD_LIBRARY_PATH' environment
|
||||
variable (or whichever is relevant for the host OS) to insert its own
|
||||
default extension directories in the search path (using GNU libltdl
|
||||
facilities was not possible here.) This approach was problematic in two
|
||||
ways.
|
||||
|
||||
First, the `LD_LIBRARY_PATH' modification would be visible to
|
||||
sub-processes, and would also affect future calls to `dlopen', which
|
||||
could lead to subtle bugs in the application or sub-processes. Second,
|
||||
when the installation prefix is /usr/local, the `LD_LIBRARY_PATH'
|
||||
modification would typically end up inserting /usr/lib before
|
||||
/usr/local/lib in the search path, which is often the opposite of
|
||||
system-wide settings such as `ld.so.conf'.
|
||||
|
||||
Both issues have now been fixed.
|
||||
|
||||
** `make-vtable-vtable' is now deprecated
|
||||
|
||||
Programs should instead use `make-vtable' and `<standard-vtable>'.
|
||||
|
||||
** The `-Wduplicate-case-datum' and `-Wbad-case-datum' are enabled
|
||||
|
||||
These recently introduced warnings have been documented and are now
|
||||
enabled by default when auto-compiling.
|
||||
|
||||
** Optimize calls to `equal?' with a constant argument
|
||||
|
||||
The compiler simplifies calls to `equal?' with a constant argument to
|
||||
use `eq?' or `eqv?' instead, when applicable.
|
||||
|
||||
* Manual updates
|
||||
|
||||
** SRFI-9 records now documented under "Compound Data Types"
|
||||
|
||||
The documentation of SRFI-9 record types has been moved in the "Compound
|
||||
Data Types", next to Guile's other record APIs. A new section
|
||||
introduces the various record APIs, and describes the trade-offs they
|
||||
make. These changes were made in an attempt to better guide users
|
||||
through the maze of records API, and to recommend SRFI-9 as the main
|
||||
API.
|
||||
|
||||
The documentation of Guile's raw `struct' API has also been improved.
|
||||
|
||||
** (ice-9 and-let-star) and (ice-9 curried-definitions) now documented
|
||||
|
||||
These modules were missing from the manual.
|
||||
|
||||
* New interfaces
|
||||
|
||||
** New "functional record setters" as a GNU extension of SRFI-9
|
||||
|
||||
The (srfi srfi-9 gnu) module now provides three new macros to deal with
|
||||
"updates" of immutable records: `define-immutable-record-type',
|
||||
`set-field', and `set-fields'.
|
||||
|
||||
The first one allows record type "functional setters" to be defined;
|
||||
such setters keep the record unchanged, and instead return a new record
|
||||
with only one different field. The remaining macros provide the same
|
||||
functionality, and also optimize updates of multiple or nested fields.
|
||||
See the manual for details.
|
||||
|
||||
** web: New `http-get*', `response-body-port', and `text-content-type?'
|
||||
procedures
|
||||
|
||||
These procedures return a port from which to read the response's body.
|
||||
Unlike `http-get' and `read-response-body', they allow the body to be
|
||||
processed incrementally instead of being stored entirely in memory.
|
||||
|
||||
The `text-content-type?' predicate allows users to determine whether the
|
||||
content type of a response is textual.
|
||||
|
||||
See the manual for details.
|
||||
|
||||
** `string-split' accepts character sets and predicates
|
||||
|
||||
The `string-split' procedure can now be given a SRFI-14 character set or
|
||||
a predicate, instead of just a character.
|
||||
|
||||
** R6RS SRFI support --- FIXME
|
||||
|
||||
5d7c55b R6RS srfi library names should ignore first identifier after the :n
|
||||
acc1d8e Preserve additional R6RS library name components after srfi :n
|
||||
|
||||
** `define-public' is no a longer curried definition by default
|
||||
|
||||
The (ice-9 curried-definitions) should be used for such uses. See the
|
||||
manual for details.
|
||||
|
||||
* Build fixes
|
||||
|
||||
** Remove reference to `scm_init_popen' when `fork' is unavailable
|
||||
|
||||
This fixes a MinGW build issue (http://bugs.gnu.org/12477).
|
||||
|
||||
** Fix race between installing `guild' and the `guile-tools' symlink
|
||||
|
||||
* Bug fixes
|
||||
|
||||
** Procedures returned by `eval' now have docstrings
|
||||
(http://bugs.gnu.org/12173)
|
||||
** web client: correctly handle uri-query, etc. in relative URI headers
|
||||
(http://bugs.gnu.org/12827)
|
||||
** Fix docs for R6RS `hashtable-copy'
|
||||
** R6RS `string-for-each' now accepts multiple string arguments
|
||||
** Fix out-of-range error in the compiler's CSE pass
|
||||
(http://bugs.gnu.org/12883)
|
||||
** Add missing R6RS `open-file-input/output-port' procedure
|
||||
** Futures: Avoid creating the worker pool more than once
|
||||
** Fix invalid assertion about mutex ownership in threads.c
|
||||
(http://bugs.gnu.org/12719)
|
||||
** Have `SCM_NUM2FLOAT' and `SCM_NUM2DOUBLE' use `scm_to_double'
|
||||
** The `scandir' procedure now uses `lstat' instead of `stat'
|
||||
** Fix `generalized-vector->list' indexing bug with shared arrays
|
||||
(http://bugs.gnu.org/12465)
|
||||
** web: Change `http-get' to try all the addresses for the given URI
|
||||
** Implement `hash' for structs
|
||||
(http://lists.gnu.org/archive/html/guile-devel/2012-10/msg00031.html)
|
||||
** `read' now adds source properties for data types beyond pairs
|
||||
** Improve error reporting in `append!'
|
||||
** In fold-matches, set regexp/notbol unless matching string start
|
||||
** Don't stat(2) and access(2) the .go location before using it
|
||||
** SRFI-19: use zero padding for hours in ISO 8601 format, not blanks
|
||||
** web: Fix uri-encoding for strings with no unreserved chars, and octets 0-15
|
||||
** More robust texinfo alias handling
|
||||
** Optimize `format' and `simple-format'
|
||||
(http://bugs.gnu.org/12033)
|
||||
** Angle of -0.0 is pi, not zero
|
||||
|
||||
|
||||
Changes in 2.0.6 (since 2.0.5):
|
||||
|
||||
* Notable changes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue