[Top][All Lists]

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

GNU Guile 1.9.3 released (alpha)

From: Ludovic Courtès
Subject: GNU Guile 1.9.3 released (alpha)
Date: Wed, 16 Sep 2009 00:31:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

We are pleased to announce GNU Guile release 1.9.3.  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.2MB)

Here are the GPG detached signatures[*]:

Here are the MD5 and SHA1 checksums:

b1e319693dd4ed9c564790dce97c5355  guile-1.9.3.tar.gz
c8d1d25ed413b48493ec5b0cbf4de8593cab4a21  guile-1.9.3.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.3.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.64
  Automake 1.11
  Libtool 2.2.6

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.2 pre-release:

  ** Guile now uses libgc, the Boehm-Demers-Weiser garbage collector

  The semantics of `scm_gc_malloc ()' have been changed, in a
  backward-compatible way.  A new allocation routine,
  `scm_gc_malloc_pointerless ()', was added.

  Libgc is a conservative GC, which we hope will make interaction with C
  code easier and less error-prone.

  ** Files loaded with `load' will now be compiled automatically.

  As with files loaded via `primitive-load-path', `load' will also compile
  its target if autocompilation is enabled, and a fresh compiled file is
  not found.

  There are two points of difference to note, however. First, `load' does
  not search `GUILE_LOAD_COMPILED_PATH' for the file; it only looks in the
  autocompilation directory, normally a subdirectory of ~/.cache/guile.

  Secondly, autocompilation also applies to files loaded via the -l
  command-line argument -- so the user may experience a slight slowdown
  the first time they run a Guile script, as the script is autocompiled.

  ** Support for non-ASCII source code files

  The default reader now handles source code files for some of the
  non-ASCII character encodings, such as UTF-8. A non-ASCII source file
  should have an encoding declaration near the top of the file. Also,
  there is a new function, `file-encoding', that scans a port for a coding
  declaration. See the section of the manual entitled, "Character Encoding
  of Source Files".

  The pre-1.9.3 reader handled 8-bit clean but otherwise unspecified source
  code.  This use is now discouraged.

  ** Support for locale transcoding when reading from and writing to ports

  Ports now have an associated character encoding, and port read and write
  operations do conversion to and from locales automatically. Ports also
  have an associated strategy for how to deal with locale conversion

  See the documentation in the manual for the four new support functions,
  `set-port-encoding!', `port-encoding', `set-port-conversion-strategy!',
  and `port-conversion-strategy'.

  ** String and SRFI-13 functions can operate on Unicode strings

  ** Unicode support for SRFI-14 character sets

  The default character sets are no longer locale dependent and contain
  characters from the whole Unicode range. There is a new predefined
  character set, `char-set:designated', which contains all assigned
  Unicode characters. There is a new debugging function, `%char-set-dump'.

  ** Character functions operate on Unicode characters

  `char-upcase' and `char-downcase' use default Unicode casing rules.
  Character comparisons such as `char<?' and `char-ci<?' now sort based on
  Unicode code points.

  ** Unicode symbol support

  One may now use U+03BB (GREEK SMALL LETTER LAMBDA) as an identifier.

  ** New readline history functions

  The (ice-9 readline) module now provides add-history, read-history,
  write-history and clear-history, which wrap the corresponding GNU
  History library functions.

  ** Removed deprecated uniform array procedures:
     dimensions->uniform-array, list->uniform-array, array-prototype

  Instead, use make-typed-array, list->typed-array, or array-type,

  ** Removed deprecated uniform array procedures: scm_make_uve,
     scm_array_prototype, scm_list_to_uniform_array,
     scm_dimensions_to_uniform_array, scm_make_ra, scm_shap2ra, scm_cvref,
     scm_ra_set_contp, scm_aind, scm_raprin1

  These functions have been deprecated since early 2005.

  ** scm_array_p has one argument, not two

  Use of the second argument produced a deprecation warning, so it is
  unlikely that any code out there actually used this functionality.

  ** GOOPS documentation folded into Guile reference manual

  GOOPS, Guile's object system, used to be documented in separate manuals.
  This content is now included in Guile's manual directly.

  ** `libguile-i18n' has been merged into `libguile'

  The C support code for `(ice-9 i18n)', which used to be in
  `libguile-i18n', is now part of `libguile'.

  ** Last but not least, the `λ' macro can be used in lieu of `lambda'

  ** And of course, the usual collection of bugfixes

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

reply via email to

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