[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 02/02: Update NEWS

From: Andy Wingo
Subject: [Guile-commits] 02/02: Update NEWS
Date: Mon, 1 Mar 2021 14:18:07 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit e4647a0ca862bd1774e6e7d0d380da2de9f6386c
Author: Andy Wingo <>
AuthorDate: Mon Mar 1 20:17:36 2021 +0100

    Update NEWS
    * NEWS: Start updating for new release.
 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/NEWS b/NEWS
index 2f55f5d..c42896a 100644
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,42 @@ libraries via also adding the ".libs" subdirectories of
 `LTDL_LIBRARY_PATH' elements.  See "Foreign Libraries" in the
 documentation for a full discussion.
+** New `read' implementation in Scheme
+The new `(ice-9 read)' module implements a reader, in Scheme.  Compared
+to the C reader (which still exists for bootstrapping reasons), the new
+implementation is more maintainable, more secure, more debuggable, all
+while faithfully reproducing all quirks from Guile's legacy reader
+implemented in C.  Also, the Scheme reader is finally compatible with
+suspendable ports, allowing REPL implementations to be built with
+lightweight concurrency packages such as the third-party "Fibers"
+library.  The Scheme implementation is currently about 60% as fast as
+the C implementation, and we hope to close the gap over time.  Bug
+reports very welcome.
+** Scheme compiler uses `read-syntax' for better debugging
+The new Scheme reader also shares implementation with the new
+`read-syntax' procedure, which annotates each datum with source location
+information.  Guile's compiler can use this to provide better
+source-level debugging for Scheme programs.  Note that this can slightly
+increase compiled file sizes, though this is mitigated by some assembler
+** Syntax objects record source locations
+When compiling a file that defines a macro, the output will usually
+include a number of syntax objects as literals.  Previously, these
+literals had no source information; now they do.  This should improve
+** Optimized run-time relocations
+The code that patches references between statically-allocated Scheme
+data has been optimized to be about 30% shorter than before or so, which
+can significantly decrease compiled file size and run-time
+initialization latency.
 ** Updated Gnulib
 The Gnulib compatibility library has been updated, for the first time
@@ -59,12 +95,38 @@ See "Bytevector Ports" in the manual.
 ** `GUILE_EXTENSIONS_DIR' environment variable.
+** `mkdtemp' and `mkstemp'
+See "File System" in the manual.  There is still `mkstemp!' but we
+recommend that new code uses `mkstemp', which does not mutate the
+contents of the "template" argument string.
 ** `(system foreign-library)' module
 See the newly reorganized "Foreign Function Interface", for details.
 These new interfaces replace `dynamic-link', `dynamic-pointer' and
 similar, which will eventually be deprecated.
+** `read-syntax' and the `(ice-9 read)' module
+** `syntax-sourcev'
+** `quote-syntax'
+** Optimized "eof-object?"
+* Bug fixes
+** Fix reverse-list->string docstring
+** Fix R7RS "member" result when no item found
+** Fix make-transcoded-port on input+output ports
+** Fix many bugs that prevented Guile from building on MinGW
+** Fix many bugs that prevented Guile's test suite from running on MinGW
+Thanks to Andrey Ivanov, Rob Browning, Erik Dominikus, Göran Weinholt,
+and Michael Gran.
 * New deprecations
 ** `dynamic-unlink'

reply via email to

[Prev in Thread] Current Thread [Next in Thread]