guile-devel
[Top][All Lists]
Advanced

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

GNU Guile 1.9.0 released (alpha)


From: Ludovic Courtès
Subject: GNU Guile 1.9.0 released (alpha)
Date: Sat, 20 Jun 2009 00:05:21 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.91 (gnu/linux)

We are pleased to announce GNU Guile release 1.9.0.  This is the first
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 interpreter, compiler, and virtual machine for 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.0.tar.gz   (4.6MB)

Here are the GPG detached signatures[*]:
  ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz.sig

Here are the MD5 and SHA1 checksums:

71c3fa0ed22c91b30e9573478fdee4dc  guile-1.9.0.tar.gz
836cffc2d05cd0de938bf24bc91e9debe8fea060  guile-1.9.0.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.0.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.63
  Automake 1.10.2
  Libtool 2.2.6


This is a new release series with many new features and differences
compared to 1.8.  Excerpt from the `NEWS' file:

  * New modules (see the manual for details)

  ** `(srfi srfi-18)', more sophisticated multithreading support
  ** `(ice-9 i18n)', internationalization support
  ** `(rnrs bytevector)', the R6RS bytevector API
  ** `(rnrs io ports)', a subset of the R6RS I/O port API
  ** `(system xref)', a cross-referencing facility (FIXME undocumented)

  * Changes to the stand-alone interpreter

  ** Guile now can compile Scheme to bytecode for a custom virtual machine.
  ** The stack limit is now initialized from the environment.
  ** New environment variables: GUILE_LOAD_COMPILED_PATH,
     GUILE_SYSTEM_LOAD_COMPILED_PATH
  ** New read-eval-print loop (REPL) implementation
  ** New `guile-tools' commands: `compile', `disassemble'

  * Changes to Scheme functions and syntax

  ** Procedure removed: `the-environment'
  ** Files loaded with `primitive-load-path' will now be compiled
     automatically.
  ** New POSIX procedures: `getrlimit' and `setrlimit'
  ** New procedure in `(oops goops)': `method-formals'
  ** BUG: (procedure-property func 'arity) does not work on compiled
     procedures
  ** New procedures in (ice-9 session): `add-value-help-handler!',
     `remove-value-help-handler!', `add-name-help-handler!'
     `remove-name-help-handler!', `procedure-arguments',
  ** Deprecated: `procedure->memoizing-macro', `procedure->syntax'
  ** New language: ECMAScript
  ** Defmacros may now have docstrings.
  ** The psyntax expander now knows how to interpret the @ and @@ special
     forms.
  ** The psyntax expander is now hygienic with respect to modules.
  ** New function, `procedure-module'
  ** `eval-case' has been deprecated, and replaced by `eval-when'.
  ** Guile is now more strict about prohibiting definitions in expression
     contexts.
  ** Defmacros must now produce valid Scheme expressions.
  ** Guile's psyntax now supports docstrings and internal definitions.
  ** Macros need to be defined before their first use.
  ** Functions needed by macros at expand-time need to be present at
     expand-time.
  ** New variable, %pre-modules-transformer
  ** Temporarily removed functions: `macroexpand', `macroexpand-1'
  ** New reader macros: #' #` #, #,@
  ** Incompatible change to #'
  ** Scheme expresssions may be commented out with #;
  ** `make-stack' with a tail-called procedural narrowing argument no longer
     works (with compiled procedures)
  ** backtraces through compiled procedures only show procedures that are
     active in the current continuation
  ** syntax-rules and syntax-case macros now propagate source information
     through to the expanded code
  ** The currying behavior of `define' has been removed.
  ** All modules have names now
  ** Many syntax errors have different texts now
  ** Returning multiple values to compiled code will silently truncate the
     values to the expected number
  ** Multiple values in compiled code are not represented by compound
     objects
  ** Defmacros are now implemented in terms of syntax-case.
  ** psyntax is now the default expander
  ** syntax-rules and syntax-case are available by default.
  ** Lexical bindings introduced by hygienic macros may not be referenced
     by nonhygienic macros.
  ** Macros may no longer be referenced as first-class values.
  ** New macro type: syncase-macro
  ** A new `memoize-symbol' evaluator trap has been added.
  ** Duplicate bindings among used modules are resolved lazily.
  ** New thread cancellation and thread cleanup API
  ** Fix bad interaction between `false-if-exception' and stack-call.
  ** New global variables: %load-compiled-path, %load-compiled-extensions
  ** New procedure, `make-promise'
  ** New entry into %guile-build-info: `ccachedir'
  ** Fix bug in `module-bound?'.
  ** `(ice-9 syncase)' has been deprecated.

  * Changes to the C interface

  ** The GH interface (deprecated in version 1.6, 2001) was removed.
  ** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF
  ** Functions for handling `scm_option' now no longer require an argument
  indicating length of the `scm_t_option' array.
  ** scm_primitive_load_path has additional argument, exception_on_error
  ** New C function: scm_module_public_interface
  ** `scm_stat' has an additional argument, `exception_on_error'
  ** `scm_primitive_load_path' has an additional argument

  * Changes to the distribution

  ** Guile's license is now LGPLv3+
  ** `guile-config' will be deprecated in favor of `pkg-config'
  ** New installation directory: $(pkglibdir)/1.9/ccache
  ** New dependency: GNU libunistring.


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


reply via email to

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