Guile

The GNU extension language

News


What's the latest news?

2013-04-10
GNU Guile 2.0.9 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz. Its SHA1 hash is a2275c23c4a03e8dbd5e500c47af694e14d2365b.

See the NEWS file for details.

2013-02-16
Happy birthday GNU Guile 2.0! To celebrate two years of Guile 2.0, we organized a little birthday hack-feast—a communal potluck of programs that Guilers brought together to share with each other.

Like last year, many people took on the challenge to come up with a dish, in one month.

The complete list of dishes can be seen here. A lot of cooking!

2012-11-30
GNU Guile 2.0.7 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.7.tar.xz. Its SHA1 hash is cd6b061e76e36c6e75083168febab4807f1eadab.

See the NEWS file for details.

2012-07-07
GNU Guile 2.0.6 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.6.tar.xz. Its SHA1 hash is d048179b03052c500779168668380dc1eafdf25a.

See the NEWS file for details.

2012-02-16
GNU Guile 2.0 is one year old! To celebrate it, several hackers took on the challenge to come up in one week with a neat hack: Happy birthday Guile 2.0, and happy hacking!
2012-01-30
GNU Guile 2.0.5 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.5.tar.xz. Its SHA1 hash is e97a332228a17c4af60453280e2596cec55be007.

See the NEWS file for details.

Version 2.0.4, released on the same day, has incorrect binary interface information (SONAME) for libguile and should be ignored.

2011-12-13
The manual of GNU Guile 2.0 has been published under ISBN 978-1-906966-15-7 by Network Theory, Ltd, a UK-based publisher, and is now available from bookstores. It is fairly impressive: 918 pages, 1.4 kg (3.0 lb), reflecting 15 years of work by more than 20 writers!
2011-10-22
GNU Guile 2.0.3 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.3.tar.xz. Its SHA1 hash is 4fde55bbd612adda267420d86d8b395d49031809.

See the NEWS file for details.

2011-07-01
GNU Guile 2.0.2 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.2.tar.gz. Its SHA1 hash is 1943fd22417ce1e51babbdcd7681e66a794a8da3.

See the NEWS file for details.

2011-04-27
GNU Guile 2.0.1 released. This is the next maintenance release for the 2.0.x stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.1.tar.gz. Its SHA1 hash is 3276a826f17a5edc0baf2eedc4821a771824141b.

See the NEWS file for details.

2011-02-16
GNU Guile 2.0.0 released. This is the first of the 2.0.x stable series and the result of 3 years of work.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-2.0.0.tar.gz. Its SHA1 hash is e266b79b17a04a98c438e9d5dabb5210fb368d77.

Here are the highlights in the 2.0 series compared to 1.8.

  • New compiler infrastructure and VM

    Guile 2.0 compiles Scheme code to bytecode, which is then interpreted by the VM. This gives a noticeable performance improvement compared to earlier Guile series.

    By default source code is compiled automatically as it is encountered, without any manual intervention. The guile-tools compile command provides a command-line interface, and there are also Scheme procedures to drive the compiler.

    Besides Scheme, the compiler comes with front-ends for the ECMAScript and Emacs Lisp languages.

  • New REPL, new debugger

    A read-eval-print-loop (REPL) is available. Compared to the REPL in earlier releases, it supports "meta-commands" that provide convenient access to interactive programming features. For instance, the ,compile meta-command compiles the given expression, ,profile shows an execution profile of the given expression, etc.

    Any error or uncaught exception leads to a "recursive REPL", which is a REPL augmented with debugging capabilities: it has meta-commands to display a backtrace, inspect the variables on a stack frame, etc. The recursive REPL can be quit to return to the original one.

  • Support for hygienic macros

    The syntax-rules and syntax-case hygienic macro systems are supported natively by Guile, without importing (ice-9 syncase), and work across module boundaries. They are a better replacement for defmacro.

  • Unicode support

    Scheme strings can hold any Unicode character, and ports can read and write Unicode text in various encodings.

  • Partial R6RS compatibility

    The library and import forms of R6RS are supported, and all the R6RS libraries defined in the standard are available. See "R6RS Incompatibilities" in the manual, for details about remaining incompatibilities.

  • New dynamic foreign function interface

    The (system foreign) module provides a new dynamic foreign function interface (FFI). It allows bindings to C libraries to be written without a single line of C code.

  • Switch to the Boehm-Demers-Weiser garbage collector

    Guile now uses the Boehm-Demers-Weiser conservative garbage collector (aka. libgc). It makes interaction with C code easier making, for instance, the use of mark and free SMOB procedures optional in many cases. It also improves performance.

  • New modules
    • (srfi srfi-18), more sophisticated multithreading support
    • (srfi srfi-27), sources of random bits
    • (srfi srfi-38), External Representation for Data With Shared Structure
    • (srfi srfi-42), eager comprehensions
    • (srfi srfi-45), primitives for expressing iterative lazy algorithms
    • (srfi srfi-67), compare procedures
    • (ice-9 i18n), internationalization support
    • (ice-9 futures), fine-grain parallelism
    • (rnrs bytevectors), the R6RS bytevector API
    • (rnrs io ports), a subset of the R6RS I/O port API
    • (system xref), a cross-referencing facility
    • (ice-9 vlist), lists with constant-time random access; hash lists
    • (system foreign), foreign function interface
    • (sxml ...), tools for XML processing
    • (texinfo ...), parsing and production of Texinfo documents
    • (sxml match), a pattern matcher for SXML
    • (srfi srfi-9 gnu), extensions to the SRFI-9 record library
    • (system vm coverage), a line-by-line code coverage library
    • (web ...), modules for URI and HTTP handling
    • (ice-9 poll), a poll wrapper
    • (system base lalr), the lalr-scm LALR(1) parser generator
    • (statprof), statistical profiler
  • New dependencies

See the NEWS file for details.

2011-02-02
GNU Guile 1.9.15 (beta) released. This is the last pre-release before 2.0.0, due on February 16th!

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.15.tar.gz. Its SHA1 hash is 0b1cdd5f0506dcda3ed85324b2a0ff510920ee76.

See the NEWS file for details.

2011-01-27
The January 2011 GNU Status Report contains a summary of the Guile 2.0 news.
2010-12-17
GNU Guile 1.9.14 (beta) released. Again, one of the last releases before 2.0 comes out.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.14.tar.gz. Its SHA1 hash is 7cb61502642e7ab2ed7ab87262424678a710827d.

See the NEWS file for details.

2010-12-13
GNU Guile 1.8.8 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.8.tar.gz. Its SHA1 hash is 548d6927aeda332b117f8fc5e4e82c39a05704f9.

See the NEWS file for details.

2010-10-17
GNU Guile 1.9.13 (beta) released. Again, one of the last releases before 2.0 comes out.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.13.tar.gz. Its SHA1 hash is e8067a26aa2d01a856c0cd5bc73e7e8b4fa6429a.

See the NEWS file for details.

2010-09-04
GNU Guile 1.9.12 (beta) released. Again, this may be the last release before 2.0 comes out.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.12.tar.gz. Its SHA1 hash is c6efaca5d9e52925200b7458164cb2812b4d88df.

See the NEWS file for details.

2010-06-01
GNU Guile 1.9.11 (beta) released. This may be the last release before 2.0 comes out.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.11.tar.gz. Its SHA1 hash is abd1424a927302db31395db828d4d14fa68d13f9.

See the NEWS file for details.

2010-04-15
GNU Guile 1.9.10 (beta) released. This may be the last release before 2.0 comes out.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.10.tar.gz. Its SHA1 hash is 1a3134fc05d5cdc5108dc4717c8a37bffccf19f4.

See the NEWS file for details.

2010-03-18
GNU Guile 1.9.9 (beta) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.9.tar.gz. Its SHA1 hash is b4abff121c6f16b28214fa0eecabc90ef1dd0ea5.

See the NEWS file for details.

2010-02-17
GNU Guile 1.9.8 (beta) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.8.tar.gz. Its SHA1 hash is 9b1ef8f920db0a4119e18f19141698782c650aa3.

See the NEWS file for details.

2010-01-19
GNU Guile 1.9.7 (beta) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.7.tar.gz. Its SHA1 hash is f50f807873303d3812ba974d9be6b5ea1b9d02f2.

See the NEWS file for details.

2009-12-15
GNU Guile 1.9.6 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.6.tar.gz. Its SHA1 hash is 365341f996ea28bac08a7f38268ef3279fdedaaf.

See the NEWS file for details.

2009-11-17
GNU Guile 1.9.5 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.5.tar.gz. Its SHA1 hash is b8d6055318c8ac3482479df679adf943a2e1c292.

See the NEWS file for details.

2009-10-15
GNU Guile 1.9.4 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.4.tar.gz. Its SHA1 hash is 6fdaab75d25bba1bcfee92c5cc12f99f6ac90a46.

See the NEWS file for details.

2009-09-15
GNU Guile 1.9.3 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.3.tar.gz. Its SHA1 hash is c8d1d25ed413b48493ec5b0cbf4de8593cab4a21.

See the NEWS file for details.

2009-08-15
GNU Guile 1.9.2 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.2.tar.gz. Its SHA1 hash is 5bf59d9d17841d8d87e1744c9d35b276b5c67133.

See the NEWS file for details.

2009-07-15
GNU Guile 1.9.1 (alpha) released. This is the next pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.1.tar.gz. Its SHA1 hash is d6dff7936e0428639eee0f46c34c4b14a8688e3f.

See the NEWS file for details.

2009-07-05
GNU Guile 1.8.7 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.7.tar.gz. Its SHA1 hash is 24cd2f06439c76d41d982a7384fe8a0fe5313b54.

See the NEWS file for details.

2009-06-19
GNU Guile 1.9.0 (alpha) released. This is the first pre-release of what will eventually become the 2.0 stable series.

You can find it at ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz. Its SHA1 hash is 836cffc2d05cd0de938bf24bc91e9debe8fea060.

See the NEWS file for details.

2008-12-08
GNU Guile 1.8.6 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.6.tar.gz. Its SHA1 hash is a3896f86044a2b3740dac43e045c349d656fba31.

See the NEWS file for details.

2008-05-07
GNU Guile 1.8.5 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.5.tar.gz. Its SHA1 hash is 3ef611cf5c4998a5bdfc7935765bb68730038614.

See the NEWS file for details.

2008-02-19
GNU Guile 1.8.4 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.4.tar.gz. Its SHA1 hash is 1e80fe242acfde2bfa39fd1e8409a8f010e24e2b.

See the NEWS file for details.

2007-10-16
GNU Guile 1.8.3 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.3.tar.gz. Its SHA1 hash is 26cf7b70d4caff8fe2a5fbcc363f2457bc591c2b.

See the NEWS file for details.

2007-07-16
GNU Guile 1.8.2 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.2.tar.gz. Its SHA1 hash is b5c624b152a45f302e185e20a468a02f2eb73e38.

See the NEWS file for details.

2006-10-06
GNU Guile 1.8.1 released. This is the next maintenance release for the 1.8 stable series.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.8.1.tar.gz. Its SHA1 hash is 184555def153fdbc322045b1fdd90a7b23a84fbd.

See the NEWS file for details.

2006-05-28
GNU Guile 1.6.8 released. This is the next maintenance release for the old 1.6 stable series. The current stable series is 1.8.

You can find it at ftp://ftp.gnu.org/gnu/guile/guile-1.6.8.tar.gz. Its SHA1 hash is 5c244f730d7aaee32db4b0cc77b688f74a5caa71.

See the NEWS file for details.

2006-02-12
GNU Guile 1.8.0 released.

You can find it at: ftp://ftp.gnu.org/gnu/guile/guile-1.8.0.tar.gz. Its SHA1 hash is 22462680feeda1e5400195c01dee666162503d66.

The NEWS file is quite long. Here are the most interesting entries:

    Changes since 1.6:
  • Guile is now licensed with the GNU Lesser General Public License.
  • The manual is now licensed with the GNU Free Documentation License.
  • We now use GNU MP for bignums.
  • We now have exact rationals, such as 1/3.
  • We now use native POSIX threads for real concurrent threads.
  • There is a new way to initalize Guile that allows one to use Guile from threads that have not been created by Guile.
  • Mutexes and condition variables are now always fair. A recursive mutex must be requested explicitely.
  • The low-level thread API has been removed.
  • There is now support for copy-on-write substrings and mutation-sharing substrings.
  • A new family of functions for converting between C values and Scheme values has been added that is future-proof and thread-safe.
  • The INUM macros like SCM_MAKINUM have been deprecated.
  • The macros SCM_STRINGP, SCM_STRING_CHARS, SCM_STRING_LENGTH, SCM_SYMBOL_CHARS, and SCM_SYMBOL_LENGTH have been deprecated.
  • There is a new way to deal with non-local exits and re-entries in C code, which is nicer than scm_internal_dynamic_wind.
  • There are new malloc-like functions that work better than scm_must_malloc, etc.
  • There is a new way to access all kinds of vectors and arrays from C that is efficient and thread-safe.
  • The concept of dynamic roots has been factored into continuation barriers and dynamic states.
See NEWS and the manual for more details.

(But what is Guile?)