Sound very exciting.

Congratulations on the great work that continues to be done on Guile.

Best wishes,

Alex


On Wed, Apr 10, 2013 at 7:51 AM, Ludovic Courtès <l...@gnu.org> wrote:

> We are pleased to announce GNU Guile release 2.0.9, the next maintenance
> release for the 2.0.x stable series.
>
> This release contains 347 commits by 15 people over 4 months.
>
> The Guile web page is located at http://gnu.org/software/guile/ .
>
> 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 and
> a large subset of R6RS, 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 suitable for stand-alone applications.  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.
>
> Here are the compressed sources:
>   ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.gz   (7.1MB)
>   ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz   (4.4MB)
>
> Here are the GPG detached signatures[*]:
>   ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.gz.sig
>   ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz.sig
>
> Use a mirror for higher download bandwidth:
>   http://www.gnu.org/order/ftp.html
>
> Here are the MD5 and SHA1 checksums:
>
> 531839c3fe887382ca9d4774db544d34  guile-2.0.9.tar.gz
> a69b575d4a633bdd9118f3a4a1e97766  guile-2.0.9.tar.xz
> fc5d770e8b1d364b2f222a8f8c96ccf740b2956f  guile-2.0.9.tar.gz
> a2275c23c4a03e8dbd5e500c47af694e14d2365b  guile-2.0.9.tar.xz
>
> [*] Use a .sig file 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-2.0.9.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.69
>   Automake 1.13.1
>   Libtool 2.4.2
>   Gnulib v0.0-7865-ga828bb2
>   Makeinfo 5.1
>
>
> This release provides new features, many bug fixes, and performance
> improvements.  Here are the highlights, taken from the `NEWS' file:
>
>   Changes in 2.0.9 (since 2.0.7):
>
>   Note: 2.0.8 was a brown paper bag release that was never announced, but
>   some mirrors may have picked it up.  Please do not use it.
>
>   * Notable changes
>
>   ** New keyword arguments for procedures that open files
>
>   The following procedures that open files now support keyword arguments
>   to request binary I/O or to specify the character encoding for text
>   files: `open-file', `open-input-file', `open-output-file',
>   `call-with-input-file', `call-with-output-file', `with-input-from-file',
>   `with-output-to-file', and `with-error-to-file'.
>
>   It is also now possible to specify whether Guile should scan files for
>   Emacs-style coding declarations.  This scan was done by default in
>   versions 2.0.0 through 2.0.7, but now must be explicitly requested.
>
>   See "File Ports" in the manual for details.
>
>   ** Rewritten guile.m4
>
>   The `guile.m4' autoconf macros have been rewritten to use `guild' and
>   `pkg-config' instead of the deprecated `guile-config' (which itself
>   calls pkg-config).
>
>   There is also a new macro, `GUILE_PKG', which allows packages to select
>   the version of Guile that they want to compile against.  See "Autoconf
>   Macros" in the manual, for more information.
>
>   ** Better Windows support
>
>   Guile now correctly identifies absolute paths on Windows (MinGW), and
>   creates files on that platform according to its path conventions.  See
>   "File System" in the manual, for all details.
>
>   In addition, the new Gnulib imports provide `select' and `poll' on
>   Windows builds.
>
>   As an incompatible change, systems that are missing <sys/select.h> were
>   previously provided a public `scm_std_select' C function that defined a
>   version of `select', but unhappily it also provided its own incompatible
>   definitions for FD_SET, FD_ZERO, and other system interfaces.  Guile
>   should not be setting these macros in public API, so this interface was
>   removed on those plaforms (basically only MinGW).
>
>   ** Numerics improvements
>
>   `number->string' now reliably outputs enough digits to produce the same
>   number when read back in.  Previously, it mishandled subnormal numbers
>   (printing them as "#.#"), and failed to distinguish between some
>   distinct inexact numbers, e.g. 1.0 and (+ 1.0 (expt 2.0 -52)).  These
>   problems had far-reaching implications, since the compiler uses
>   `number->string' to serialize numeric constants into .go files.
>
>   `sqrt' now produces exact rational results when possible, and handles
>   very large or very small numbers more robustly.
>
>   A number (ahem) of operations involving exact rationals have been
>   optimized, most notably `integer-expt' and `expt'.
>
>   `exact->inexact' now performs correct IEEE rounding.
>
>   ** New optimizations
>
>   There were a number of improvements to the partial evaluator, allowing
>   complete reduction of forms such as:
>
>     ((let ((_ 10)) (lambda () _)))
>
>     ((lambda _ _))
>
>     (apply (lambda _ _) 1 2 3 '(4))
>
>     (call-with-values (lambda () (values 1 2)) (lambda _ _))
>
>   `string-join' now handles huge lists efficiently.
>
>   `get-bytevector-some' now uses buffered input, which is much faster.
>
>   Finally, `array-ref', `array-set!' on arrays of rank 1 or 2 is now
>   faster, because it avoids building a rest list.  Similarly, the
>   one-argument case of `array-for-each' and `array-map!' has been
>   optimized, and `array-copy!' and `array-fill!' are faster.
>
>   ** `peek-char' no longer consumes EOF
>
>   As required by the R5RS, if `peek-char' returns EOF, then the next read
>   will also return EOF.  Previously `peek-char' would consume the EOF.
>   This makes a difference for terminal devices where it is possible to
>   read past an EOF.
>
>   ** Gnulib update
>
>   Guile's copy of Gnulib was updated to v0.0-7865-ga828bb2.  The following
>   modules were imported from Gnulib: select, times, pipe-posix, fstat,
>   getlogin, poll, and c-strcase.
>
>   ** `include' resolves relative file names relative to including file
>
>   Given a relative file name, `include' will look for it relative to the
>   directory of the including file.  This harmonizes the behavior of
>   `include' with that of `load'.
>
>   ** SLIB compatibility restored
>
>   Guile 2.0.8 is now compatible with SLIB.  You will have to use a
>   development version of SLIB, however, until a new version of SLIB is
>   released.
>
>   ** Better ,trace REPL command
>
>   Sometimes the ,trace output for nested function calls could overflow the
>   terminal width, which wasn't useful.  Now there is a limit to the amount
>   of space the prefix will take.  See the documentation for ",trace" for
>   more information.
>
>   ** Better docstring syntax supported for `case-lambda'
>
>   Docstrings can now be placed immediately after the `case-lambda' or
>   `case-lambda*' keyword.  See "Case-lambda" in the manual.
>
>   ** Improved handling of Unicode byte order marks
>
>   See "BOM Handling" in the manual for details.
>
>   ** Update predefined character sets to Unicode 6.2
>
>   ** GMP 4.2 or later required
>
>   Guile used to require GMP at least version 4.1 (released in May 2002),
>   and now requires at least version 4.2 (released in March 2006).
>
>   * Manual updates
>
>   ** Better SXML documentation
>
>   The documentation for SXML modules was much improved, though there is
>   still far to go.  See "SXML" in manual.
>
>   ** Style updates
>
>   Use of "iff" was replaced with standard English.  Keyword arguments are
>   now documented consistently, along with their default values.
>
>   ** An end to the generated-documentation experiment
>
>   When Guile 2.0 imported some modules from Guile-Lib, they came with a
>   system that generated documentation from docstrings and module
>   commentaries.  This produced terrible documentation.  We finally bit the
>   bullet and incorporated these modules into the main text, and will be
>   improving them manually over time, as is the case with SXML.  Help is
>   appreciated.
>
>   ** New documentation
>
>   There is now documentation for `scm_array_type', and `scm_array_ref', as
>   well as for the new `array-length' / 'scm_c_array_length' /
>   `scm_array_length' functions.  `array-in-bounds?' has better
>   documentation as well.  The `program-arguments-alist' and
>   `program-lambda-list' functions are now documented, as well as `and=>',
>   `exit', and `quit'.  The (system repl server) module is now documented
>   (see REPL Servers).  Finally, the GOOPS class hierarchy diagram has been
>   regenerated for the web and print output formats.
>
>   * New deprecations
>
>   ** Deprecate generalized vector interface
>
>   The generalized vector interface, introduced in 1.8.0, is simply a
>   redundant, verbose interface to arrays of rank 1.  `array-ref' and
>   similar functions are entirely sufficient.  Thus,
>   `scm_generalized_vector_p', `scm_generalized_vector_length',
>   `scm_generalized_vector_ref', `scm_generalized_vector_set_x', and
>   `scm_generalized_vector_to_list' are now deprecated.
>
>   ** Deprecate SCM_CHAR_CODE_LIMIT and char-code-limit
>
>   These constants were defined to 256, which is not the highest codepoint
>   supported by Guile.  Given that they were useless and incorrect, they
>   have been deprecated.
>
>   ** Deprecate `http-get*'
>
>   The new `#:streaming?' argument to `http-get' subsumes the functionality
>   of `http-get*' (introduced in 2.0.7).  Also, the `#:extra-headers'
>   argument is deprecated in favor of `#:headers'.
>
>   ** Deprecate (ice-9 mapping)
>
>   This module, present in Guile since 1996 but never used or documented,
>   has never worked in Guile 2.0.  It has now been deprecated and will be
>   removed in Guile 2.2.
>
>   ** Deprecate undocumented array-related C functions
>
>   These are `scm_array_fill_int', `scm_ra_eqp', `scm_ra_lessp',
>   `scm_ra_leqp', `scm_ra_grp', `scm_ra_greqp', `scm_ra_sum',
>   `scm_ra_product', `scm_ra_difference', `scm_ra_divide', and
>   `scm_array_identity'.
>
>   * New interfaces
>
>   ** SRFI-41 Streams
>
>   See "SRFI-41" in the manual.
>
>   ** SRFI-45 exports `promise?'
>
>   SRFI-45 now exports a `promise?' procedure that works with its promises.
>   Also, its promises now print more nicely.
>
>   ** New HTTP client procedures
>
>   See "Web Client" for documentation on the new `http-head', `http-post',
>   `http-put', `http-delete', `http-trace', and `http-options' procedures,
>   and also for more options to `http-get'.
>
>   ** Much more capable `xml->sxml'
>
>   See "Reading and Writing XML" for information on how the `xml->sxml'
>   parser deals with namespaces, processed entities, doctypes, and literal
>   strings.  Incidentally, `current-ssax-error-port' is now a parameter
>   object.
>
>   ** New procedures for converting strings to and from bytevectors
>
>   See "Representing Strings as Bytes" for documention on the new `(ice-9
>   iconv)' module and its `bytevector->string' and `string->bytevector'
>   procedures.
>
>   ** Escape continuations with `call/ec' and `let/ec'
>
>   See "Prompt Primitives".
>
>   ** New procedures to read all characters from a port
>
>   See "Line/Delimited" in the manual for documentation on `read-string'
>    and `read-string!'.
>
>   ** New procedure `sendfile'
>
>   See "File System".
>
>   ** New procedure `unget-bytevector'
>
>   See "R6RS Binary Input".
>
>   ** New C helper: `scm_c_bind_keyword_arguments'
>
>   See "Keyword Procedures".
>
>   ** New command-line arguments: `--language' and `-C'
>
>   See "Command-line Options" in the manual.
>
>   ** New environment variables: `GUILE_STACK_SIZE', `GUILE_INSTALL_LOCALE'
>
>   See "Environment Variables".
>
>   ** New procedures for dealing with file names
>
>   See "File System" for documentation on `system-file-name-convention',
>   `file-name-separator?', `absolute-file-name?', and
>   `file-name-separator-string'.
>
>   ** `array-length', an array's first dimension
>
>   See "Array Procedures".
>
>   ** `hash-count', for hash tables
>
>   See "Hash Tables".
>
>   ** `round-ash', a bit-shifting operator that rounds on right-shift
>
>   See "Bitwise Operations".
>
>   ** New foreign types: `ssize_t', `ptrdiff_t'
>
>   See "Foreign Types".
>
>   ** New C helpers: `scm_from_ptrdiff_t', `scm_to_ptrdiff_t'
>
>   See "Integers".
>
>   ** Socket option `SO_REUSEPORT' now available from Scheme
>
>   If supported on the platform, `SO_REUSEPORT' is now available from
>   Scheme as well.  See "Network Sockets and Communication".
>
>   ** `current-language' in default environment
>
>   Previously defined only in `(system base language)', `current-language'
>   is now defined in the default environment, and is used to determine the
>   language for the REPL, and for `compile-and-load'.
>
>   ** New procedure: `fluid->parameter'
>
>   See "Parameters", for information on how to convert a fluid to a
>   parameter.
>
>   ** New `print' REPL option
>
>   See "REPL Commands" in the manual for information on the new
>   user-customizable REPL printer.
>
>   ** New variable: %site-ccache-dir
>
>   The "Installing Site Packages" and "Build Config" manual sections now
>   refer to this variable to describe where users should install their
>   `.go' files.
>
>   * Build fixes
>
>   ** Fix compilation against libgc 7.3.
>   ** Fix cross-compilation of `c-tokenize.o'.
>   ** Fix warning when compiling against glibc 2.17.
>   ** Fix documentation build against Texinfo 5.0.
>   ** Fix building Guile from a directory with non-ASCII characters.
>   ** Fix native MinGW build.
>   ** Fix --disable-posix build.
>   ** Fix MinGW builds with networking, POSIX, and thread support.
>
>   * Bug fixes
>
>   ** Fix inexact number printer.
>      (http://bugs.gnu.org/13757)
>   ** Fix infinite loop when parsing optional-argument short options
> (SRFI-37).
>      (http://bugs.gnu.org/13176)
>   ** web: Support non-GMT date headers in the HTTP client.
>      (http://bugs.gnu.org/13544)
>   ** web: support IP-literal (IPv6 address) in Host header.
>   ** Avoid stack overflows with `par-map' and nested futures in general.
>      (http://bugs.gnu.org/13188)
>   ** Peek-char no longer consumes EOF.
>      (http://bugs.gnu.org/12216)
>   ** Avoid swallowing multiple EOFs in R6RS binary-input procedures.
>   ** A fork when multiple threads are running will now print a warning.
>   ** Allow for spurious wakeups from pthread_cond_wait.
>      (http://bugs.gnu.org/10641)
>   ** Warn and ignore module autoload failures.
>      (http://bugs.gnu.org/12202)
>   ** Use chmod portably in (system base compile).
>      (http://bugs.gnu.org/10474)
>   ** Fix response-body-port for HTTP responses without content-length.
>      (http://bugs.gnu.org/13857)
>   ** Allow case-lambda expressions with no clauses.
>      (http://bugs.gnu.org/9776)
>   ** Improve standards conformance of string->number.
>      (http://bugs.gnu.org/11887)
>   ** Support calls and tail-calls with more than 255 formals.
>   ** ,option evaluates its right-hand-side.
>      (http://bugs.gnu.org/13076)
>   ** Structs with tail arrays are not simple.
>      (http://bugs.gnu.org/12808)
>   ** Make `SCM_LONG_BIT' usable in preprocessor conditionals.
>      (http://bugs.gnu.org/13848)
>   ** Fix thread-unsafe lazy initializations.
>   ** Allow SMOB mark procedures to be called from parallel markers.
>      (http://bugs.gnu.org/13611)
>   ** Fix later-bindings-win logic in with-fluids.
>      (http://bugs.gnu.org/13843)
>   ** Fix duplicate removal of with-fluids.
>      (http://bugs.gnu.org/13838)
>   ** Support calling foreign functions of 10 arguments or more.
>      (http://bugs.gnu.org/13809)
>   ** Let reverse! accept arbitrary types as second argument.
>      (http://bugs.gnu.org/13835)
>   ** Recognize the `x86_64.*-gnux32' triplet.
>   ** Check whether a triplet's OS part specifies an ABI.
>   ** Recognize mips64* as having 32-bit pointers by default.
>   ** Use portable sed constructs.
>      (http://bugs.gnu.org/14042)
>   ** Remove language/glil/decompile-assembly.scm.
>      (http://bugs.gnu.org/10622)
>   ** Use O_BINARY in `copy-file', `load-objcode', `mkstemp'.
>   ** Use byte-oriented functions in `get-bytevector*'.
>   ** Fix abort when iconv swallows BOM from UTF-16 or UTF-32 stream.
>   ** Fix compilation of functions with more than 255 local variables.
>   ** Fix `getgroups' for when zero supplementary group IDs exist.
>   ** Allow (define-macro name (lambda ...)).
>   ** Various fixes to the (texinfo) modules.
>   ** guild: Gracefully handle failures to install the locale.
>   ** Fix format string warnings for ~!, ~|, ~/, ~q, ~Q, and ~^.
>      (http://bugs.gnu.org/13485)
>   ** Fix source annotation bug in psyntax 'expand-body'.
>   ** Ecmascript: Fix conversion to boolean for non-numbers.
>   ** Use case-insensitive comparisons for encoding names.
>   ** Add missing cond-expand feature identifiers.
>   ** A failure to find a module's file does not prevent future loading.
>   ** Many (oop goops save) fixes.
>   ** `http-get': don't shutdown write end of socket.
>      (http://bugs.gnu.org/13095)
>   ** Avoid signed integer overflow in scm_product.
>   ** http: read-response-body always returns bytevector or #f, never EOF.
>   ** web: Correctly detect "No route to host" conditions.
>   ** `system*': failure to execvp no longer leaks dangling processes.
>      (http://bugs.gnu.org/13166)
>   ** More sensible case-lambda* dispatch.
>      (http://bugs.gnu.org/12929)
>   ** Do not defer expansion of internal define-syntax forms.
>      (http://bugs.gnu.org/13509)
>
>
> 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 2.1.x.
>
> Guile versions with an odd middle number, e.g., 2.1.*, 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, on behalf of the Guile team.
>

Reply via email to