guile-devel
[Top][All Lists]
Advanced

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

GNU Guile 1.9.10 released (beta)


From: Ludovic Courtès
Subject: GNU Guile 1.9.10 released (beta)
Date: Thu, 15 Apr 2010 22:43:11 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

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 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:
  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 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: pgp4tG3EP3uTt.pgp
Description: PGP signature


reply via email to

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