[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU Guile 1.9.3 released (alpha)
GNU Guile 1.9.3 released (alpha)
Wed, 16 Sep 2009 00:31:40 +0200
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 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[*]:
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.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 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.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
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!',
** 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_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.
Description: PGP signature
|[Prev in Thread]
||[Next in Thread]|
- GNU Guile 1.9.3 released (alpha),
Ludovic Courtès <=