[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU Guile 1.9.9 released (beta)
GNU Guile 1.9.9 released (beta)
Fri, 19 Mar 2010 00:48:52 +0100
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)
We are pleased to announce GNU Guile release 1.9.9. This is the next
pre-release of what will eventually become the 2.0 release series. 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 address@hidden'.
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:
Here are the GPG detached signatures[*]:
To reduce load on the main server, use a mirror listed at:
Here are the MD5 and SHA1 checksums:
[*] 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.9.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:
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.8 pre-release:
** Faster dynamic binding with fluids
`fluid-ref' and `fluid-set' now have dedicated bytecode instructions.
Dynamic binding via `with-fluids' or `with-fluids*' no longer causes
recursive VM invocations, nor closure allocation of the body. Unused
fluid numbers are now garbage-collected.
** Incompatible Tree-IL changes
There were a number of incompatible changes made in the last cycle
regarding Tree-IL, Guile's high-level intermediate language. See the
change logs for details. If these affected you, clearly you need to
submit your compiler patches upstream!
** Prompts: Delimited, composable continuations
Guile now has prompts as part of its primitive language. See "Prompts"
in the manual, for more information.
Expressions entered in at the REPL, or from the command line, are
surrounded by a prompt with the default prompt tag.
** Deprecated: `lazy-catch'
`lazy-catch' was a form that captured the stack at the point of a
`throw', but the dynamic state at the point of the `catch'. It was a bit
crazy. Please change to use `catch', possibly with a throw-handler, or
** `catch', `throw', `with-throw-handler' implemented in Scheme
This doesn't have any end-user impact, but we're so proud of being able
to implement these constructs in terms of prompts and fluids, while not
changing the user API, that we need to mention it in the NEWS. Thanks
** Current-module tracking in the syntax expander
Expanding a `begin' expression that changed the current module via an
`eval-when' wasn't working, due to a bug. This was fixed.
** Backtraces at the REPL don't show REPL frames
The 1.9 series has had overly verbose backtraces, which showed frames
internal to the implementation of the REPL. This has been mostly fixed.
Please report bugs to address@hidden
** Additions to the foreign function interface (FFI)
The `(system foreign)' module now provides additional foreign types
corresponding to C's `int', `long', `size_t', etc.
In addition, the `dynamic-link' procedure can now be called without any
argument, in which case it returns a "global symbol handle", allowing
symbols currently available to the program to be looked up.
** Documentation of `syntax-rules' macros
The documentation of macros in the manual is now separate from that of
procedures. A new section on `syntax-rules' macros has been added.
** Effective version bump to 2.0
Guile has had an "effective version" for some time, typically generated
as "MAJOR-VERSION.MINOR-VERSION". This release decouples the effective
version from the actual version, setting it prematurely to 2.0. This
should shake out any version-related distribution bugs.
** Parallel installability fixes
Guile now installs its header files to a effective-version-specific
directory, and includes the effective version (e.g. 2.0) in the library
name (e.g. libguile-2.0.so).
This change should be transparent to users, who should detect Guile via
the guile.m4 macro, or the guile-2.0.pc pkg-config file. It will allow
parallel installs for multiple versions of Guile development
** 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 address@hidden'. 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.
Description: PGP signature
|[Prev in Thread]
||[Next in Thread]|
- GNU Guile 1.9.9 released (beta),
Ludovic Courtès <=