We are pleased to announce GNU Guile release 1.9.10. This may be the last pre-release before the 2.0 release.
It provides many new noteworthy features, most notably the addition of a compiler and virtual machine. We encourage you to test them and provide feedback to `guile-de...@gnu.org'. The Guile web page is located at http://gnu.org/software/guile/, and among other things, it contains a link to the Guile FAQ and pointers to the mailing lists. Guile is an implementation of the Scheme programming language, with support for many SRFIs, packaged for use in a wide variety of environments. In addition to implementing the R5RS Scheme standard, Guile includes a module system, full access to POSIX system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, and powerful string processing. Guile can run interactively, as a script interpreter, and as a Scheme compiler to VM bytecode. It is also packaged as a library so that applications can easily incorporate a complete Scheme interpreter/VM. An application can use Guile as an extension language, a clean and powerful configuration language, or as multi-purpose "glue" to connect primitives provided by the application. It is easy to call Scheme code From C code and vice versa. Applications can add new functions, data types, control structures, and even syntax to Guile, to create a domain-specific language tailored to the task at hand. Here are the compressed sources: ftp://alpha.gnu.org/gnu/guile/guile-1.9.10.tar.gz (4.9MB) Here are the GPG detached signatures[*]: ftp://alpha.gnu.org/gnu/guile/guile-1.9.10.tar.gz.sig To reduce load on the main server, use a mirror listed at: http://www.gnu.org/order/ftp.html Here are the MD5 and SHA1 checksums: 1ee7a94db25d37bca00e11a0698d6941 guile-1.9.10.tar.gz 1a3134fc05d5cdc5108dc4717c8a37bffccf19f4 guile-1.9.10.tar.gz [*] You can use either of the above signature files to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify guile-1.9.10.tar.gz.sig If that command fails because you don't have the required public key, then run this command to import it: gpg --keyserver keys.gnupg.net --recv-keys EA52ECF4 and rerun the `gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.65 Automake 1.11.1 Libtool 2.2.6b Gnulib v0.0-3575-g128e4b8 This is a new release series with many new features and differences compared to 1.8. The complete list of changes compared to the 1.8.x series is available in the `NEWS' file. Changes since the 1.9.9 pre-release: ** 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. You can follow Guile development in the Git repository and on the Guile mailing lists. Guile builds from the `master' branch of Git have version number 1.9.x. Guile versions with an odd middle number, e.g., 1.9.*, are unstable development versions. Even middle numbers indicate stable versions. This has been the case since the 1.3.* series. Please report bugs to `bug-gu...@gnu.org'. We also welcome reports of successful builds, which can be sent to the same email address. Ludovic Courtès, on behalf of the Guile team.
pgpv4Aamkw6tY.pgp
Description: PGP signature