summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-04-07 00:26:48 +0200
committerAndy Wingo <wingo@pobox.com>2010-04-07 00:26:48 +0200
commitf5318d8b188c6636d1f593bb1d2690ba1b0a42e4 (patch)
tree50c7d1933a70ba8fa6f087cacf75e6306d384a1d
parent4d75554d0a2ed446c1fd7a75f5b69355c5109bcc (diff)
downloadguile-f5318d8b188c6636d1f593bb1d2690ba1b0a42e4.tar.gz
update NEWS for 1.9.10
* NEWS: Update for new 1.9.10 entries.
-rw-r--r--NEWS77
1 files changed, 77 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 8e3344a8b..efa8e1a34 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,83 @@ prerelease, and a full NEWS corresponding to 1.8 -> 2.0.)
Changes in 1.9.10 (since the 1.9.9 prerelease):
+** Hygienic macros documented as the primary syntactic extension mechanism.
+
+The macro documentation was finally fleshed out with some documentation
+on `syntax-case' macros, and other parts of the macro expansion process.
+See "Macros" in the manual, for details.
+
+** Interactive Guile follows GNU conventions
+
+As recommended by the GPL, Guile now shows a brief copyright and
+warranty disclaimer on startup, along with pointers to more information.
+On the other hand, changing languages is more concise.
+
+** Support for arbitrary procedure metadata
+
+Building on its support for docstrings, Guile now supports multiple
+docstrings, adding them to the tail of a compiled procedure's
+properties. For example:
+
+ (define (foo)
+ "one"
+ "two"
+ 3)
+ (use-modules (system vm program))
+ (program-properties foo)
+ => ((name . foo) (documentation . "one") (documentation . "two"))
+
+Also, vectors of pairs are now treated as additional metadata entries:
+
+ (define (bar)
+ #((quz . #f) (docstring . "xyzzy"))
+ 3)
+ (use-modules (system vm program))
+ (program-properties bar)
+ => ((name . bar) (quz . #f) (docstring . "xyzzy"))
+
+This allows arbitrary literals to be embedded as metadata in a compiled
+procedure.
+
+** Better documentation infrastructure for macros
+
+It is now possible to introspect on the type of a macro, e.g.
+syntax-rules, identifier-syntax, etc, and extract information about that
+macro, such as the syntax-rules patterns or the defmacro arguments.
+`(texinfo reflection)' takes advantage of this to give better macro
+documentation.
+
+** Autocompilation for applications that use Guile as an extension language
+
+It used to be that only applications that ran Guile through the
+`scm_shell' function got the advantages of autocompilation. This has
+been changed so that all applications have autocompilation on by
+default.
+
+** Better integration of Lisp nil
+
+`scm_is_boolean', `scm_is_false', and `scm_is_null' all return true now
+for Lisp's `nil'. This shouldn't affect any Scheme code at this point,
+but when we start to integrate more with Emacs, it is possible that we
+break code that assumes that, for example, `(not x)' implies that `x' is
+`eq?' to `#f'. This is not a common assumption. Refactoring affected
+code to rely on properties instead of identities will improve code
+correctness.
+
+That is to say, user code should test falsity with `if', not with `eq?'.
+
+** Integration of lalr-scm, a parser generator
+
+Guile has included Dominique Boucher's fine `lalr-scm' parser generator
+as `(system base lalr)'. See "LALR(1) Parsing" in the manual, for more
+information.
+
+** Documentation for the dynamic foreign function interface (FFI).
+
+See "Foreign Function Interface" in the manual, for more information.
+
+** Unicode character set update to Unicode 5.2.
+
** And of course, the usual collection of bugfixes
Interested users should see the ChangeLog for more information.