[Top][All Lists]

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

GNU Guile 1.9.9 released (beta)

From: Ludovic Courtès
Subject: GNU Guile 1.9.9 released (beta)
Date: Fri, 19 Mar 2010 00:48:52 +0100
User-agent: 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, 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:   (4.9MB)

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:

f0d4cff814d83b0ced6241302a4d5b5f  guile-1.9.9.tar.gz
b4abff121c6f16b28214fa0eecabc90ef1dd0ea5  guile-1.9.9.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.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 --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.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
  for reading!

  ** 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.

  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.

Attachment: pgpQrrO2YpKYm.pgp
Description: PGP signature

reply via email to

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