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 `guile-de...@gnu.org'.
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.3.tar.gz (4.2MB) Here are the GPG detached signatures[*]: ftp://alpha.gnu.org/gnu/guile/guile-1.9.3.tar.gz.sig 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 keys.gnupg.net --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 failures. 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, respectively. ** 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 `bug-gu...@gnu.org'. 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.
pgphUq5YxpmxP.pgp
Description: PGP signature