summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-11-29 22:38:23 +0100
committerLudovic Courtès <ludo@gnu.org>2012-11-29 22:44:12 +0100
commit13fac28218b42fc5408ce62b64ae3d09c95cd91e (patch)
tree198de24c6605324b95b14d145037049ddf484bcd
parent4d599c24413ace78824a71c755ce2d6a5154a71e (diff)
downloadguile-13fac28218b42fc5408ce62b64ae3d09c95cd91e.tar.gz
Update `NEWS'.
* NEWS: Add news for 2.0.7.
-rw-r--r--NEWS176
1 files changed, 176 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 64d374d9d..c20a01a36 100644
--- a/NEWS
+++ b/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