From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Newsgroups: gmane.lisp.guile.user,gmane.lisp.guile.devel Subject: GNU Guile 2.0.7 released Date: Fri, 30 Nov 2012 01:34:40 +0100 Message-ID: <87wqx3h2s7.fsf@inria.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Trace: ger.gmane.org 1354266847 19057 80.91.229.3 (30 Nov 2012 09:14:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 30 Nov 2012 09:14:07 +0000 (UTC) To: guile-user@gnu.org, guile-devel@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Nov 30 10:14:16 2012 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TeMfc-0005Re-0m for guile-user@m.gmane.org; Fri, 30 Nov 2012 10:14:04 +0100 Original-Received: from localhost ([::1]:40009 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeMfQ-0001GV-Kj for guile-user@m.gmane.org; Fri, 30 Nov 2012 04:13:52 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:47604) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeMfG-0001GK-AF for guile-user@gnu.org; Fri, 30 Nov 2012 04:13:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TeMf9-0005OA-Fy for guile-user@gnu.org; Fri, 30 Nov 2012 04:13:42 -0500 Original-Received: from [2a01:e0b:1:123:ca0a:a9ff:fe03:271e] (port=36578 helo=xanadu.aquilenet.fr) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeMf2-0005Ls-2w; Fri, 30 Nov 2012 04:13:28 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by xanadu.aquilenet.fr (Postfix) with ESMTP id 16F6675EB; Fri, 30 Nov 2012 10:13:17 +0100 (CET) Original-Received: from xanadu.aquilenet.fr ([127.0.0.1]) by localhost (xanadu.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lGcRuz5dtwGD; Fri, 30 Nov 2012 10:13:16 +0100 (CET) Original-Received: from pluto (unknown [193.50.110.70]) by xanadu.aquilenet.fr (Postfix) with ESMTPSA id BE6B02900; Fri, 30 Nov 2012 10:13:16 +0100 (CET) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 10 Frimaire an 221 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.2 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2a01:e0b:1:123:ca0a:a9ff:fe03:271e X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:9714 gmane.lisp.guile.devel:15280 --=-=-= Content-Type: text/plain We are pleased to announce GNU Guile release 2.0.7, the next maintenance release for the 2.0.x stable series. 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.7.tar.gz (6.9MB) ftp://ftp.gnu.org/gnu/guile/guile-2.0.7.tar.xz (4.3MB) Here are the GPG detached signatures[*]: ftp://ftp.gnu.org/gnu/guile/guile-2.0.7.tar.gz.sig ftp://ftp.gnu.org/gnu/guile/guile-2.0.7.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the MD5 and SHA1 checksums: c18d48ba90296fb346f4cf2779f41598 guile-2.0.7.tar.gz 30ff9e94663a2e2098b52f8ce9d050b9 guile-2.0.7.tar.xz 4425cc1a60ffe5637972a328880f98746c2a0f5b guile-2.0.7.tar.gz cd6b061e76e36c6e75083168febab4807f1eadab guile-2.0.7.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.7.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.12.2 Libtool 2.4.2 Gnulib v0.0-7695-g26c0590 This release provides many bug fixes, performance improvements, and some new features. Here are the highlights, taken from the `NEWS' file: * Notable changes ** SRFI-105 curly infix expressions are supported Curly infix expressions as described at http://srfi.schemers.org/srfi-105/srfi-105.html are now supported by Guile's reader. This allows users to write things like {a * {b + c}} instead of (* a (+ b c)). SRFI-105 support is enabled by using the `#!curly-infix' directive in source code, or the `curly-infix' reader option. See the manual for details. ** Reader options may now be per-port Historically, `read-options' and related procedures would manipulate global options, affecting the `read' procedure for all threads, and all current uses of `read'. Guile can now associate `read' options with specific ports, allowing different ports to use different options. For instance, the `#!fold-case' and `#!no-fold-case' reader directives have been implemented, and their effect is to modify the current read options of the current port only; similarly for `#!curly-infix'. Thus, it is possible, for instance, to have one port reading case-sensitive code, while another port reads case-insensitive code. ** Futures may now be nested Futures may now be nested: a future can itself spawn and then `touch' other futures. In addition, any thread that touches a future that has not completed now processes other futures while waiting for the touched future to completed. This allows all threads to be kept busy, and was made possible by the use of delimited continuations (see the manual for details.) Consequently, `par-map' and `par-for-each' have been rewritten and can now use all cores. ** `GUILE_LOAD_PATH' et al can now add directories to the end of the path `GUILE_LOAD_PATH' and `GUILE_LOAD_COMPILED_PATH' can now be used to add directories to both ends of the load path. If the special path component `...' (ellipsis) is present in these environment variables, then the default path is put in place of the ellipsis, otherwise the default path is placed at the end. See "Environment Variables" in the manual for details. ** `load-in-vicinity' search for `.go' files in `%load-compiled-path' Previously, `load-in-vicinity' would look for compiled files in the auto-compilation cache, but not in `%load-compiled-path'. This is now fixed. This affects `load', and the `-l' command-line flag. See for details. ** Extension search order fixed, and LD_LIBRARY_PATH preserved Up to 2.0.6, Guile would modify the `LD_LIBRARY_PATH' environment variable (or whichever is relevant for the host OS) to insert its own default extension directories in the search path (using GNU libltdl facilities was not possible here.) This approach was problematic in two ways. First, the `LD_LIBRARY_PATH' modification would be visible to sub-processes, and would also affect future calls to `dlopen', which could lead to subtle bugs in the application or sub-processes. Second, when the installation prefix is /usr, the `LD_LIBRARY_PATH' modification would typically end up inserting /usr/lib before /usr/local/lib in the search path, which is often the opposite of system-wide settings such as `ld.so.conf'. Both issues have now been fixed. ** `make-vtable-vtable' is now deprecated Programs should instead use `make-vtable' and `'. ** The `-Wduplicate-case-datum' and `-Wbad-case-datum' are enabled These recently introduced warnings have been documented and are now enabled by default when auto-compiling. ** Optimize calls to `equal?' or `eqv?' with a constant argument The compiler simplifies calls to `equal?' or `eqv?' with a constant argument to use `eq?' instead, when applicable. * Manual updates ** SRFI-9 records now documented under "Compound Data Types" The documentation of SRFI-9 record types has been moved in the "Compound Data Types", next to Guile's other record APIs. A new section introduces the various record APIs, and describes the trade-offs they make. These changes were made in an attempt to better guide users through the maze of records API, and to recommend SRFI-9 as the main API. The documentation of Guile's raw `struct' API has also been improved. ** (ice-9 and-let-star) and (ice-9 curried-definitions) now documented These modules were missing from the manual. * New interfaces ** New "functional record setters" as a GNU extension of SRFI-9 The (srfi srfi-9 gnu) module now provides three new macros to deal with "updates" of immutable records: `define-immutable-record-type', `set-field', and `set-fields'. The first one allows record type "functional setters" to be defined; such setters keep the record unchanged, and instead return a new record with only one different field. The remaining macros provide the same functionality, and also optimize updates of multiple or nested fields. See the manual for details. ** web: New `http-get*', `response-body-port', and `text-content-type?' procedures These procedures return a port from which to read the response's body. Unlike `http-get' and `read-response-body', they allow the body to be processed incrementally instead of being stored entirely in memory. The `text-content-type?' predicate allows users to determine whether the content type of a response is textual. See the manual for details. ** `string-split' accepts character sets and predicates The `string-split' procedure can now be given a SRFI-14 character set or a predicate, instead of just a character. ** R6RS SRFI support Previously, in R6RS modules, Guile incorrectly ignored components of SRFI module names after the SRFI number, making it impossible to specify sub-libraries. This release corrects this, bringing us into accordance with SRFI 97. ** `define-public' is no a longer curried definition by default The (ice-9 curried-definitions) should be used for such uses. See the manual for details. * Build fixes ** Remove reference to `scm_init_popen' when `fork' is unavailable This fixes a MinGW build issue (http://bugs.gnu.org/12477). ** Fix race between installing `guild' and the `guile-tools' symlink * Bug fixes ** Procedures returned by `eval' now have docstrings (http://bugs.gnu.org/12173) ** web client: correctly handle uri-query, etc. in relative URI headers (http://bugs.gnu.org/12827) ** Fix docs for R6RS `hashtable-copy' ** R6RS `string-for-each' now accepts multiple string arguments ** Fix out-of-range error in the compiler's CSE pass (http://bugs.gnu.org/12883) ** Add missing R6RS `open-file-input/output-port' procedure ** Futures: Avoid creating the worker pool more than once ** Fix invalid assertion about mutex ownership in threads.c (http://bugs.gnu.org/12719) ** Have `SCM_NUM2FLOAT' and `SCM_NUM2DOUBLE' use `scm_to_double' ** The `scandir' procedure now uses `lstat' instead of `stat' ** Fix `generalized-vector->list' indexing bug with shared arrays (http://bugs.gnu.org/12465) ** web: Change `http-get' to try all the addresses for the given URI ** Implement `hash' for structs (http://lists.gnu.org/archive/html/guile-devel/2012-10/msg00031.html) ** `read' now adds source properties for data types beyond pairs ** Improve error reporting in `append!' ** In fold-matches, set regexp/notbol unless matching string start ** Don't stat(2) and access(2) the .go location before using it ** SRFI-19: use zero padding for hours in ISO 8601 format, not blanks ** web: Fix uri-encoding for strings with no unreserved chars, and octets 0-15 ** More robust texinfo alias handling ** Optimize `format' and `simple-format' (http://bugs.gnu.org/12033) ** Angle of -0.0 is pi, not zero 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-guile@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. --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iEYEARECAAYFAlC4eKwACgkQd92V4upS7PQOWQCfR65Btw15Vc4g+29726ATWF9f OZYAoIFMKRZgD4LgMG28YbbHhT1VFRuh =DgkO -----END PGP SIGNATURE----- --=-=-=--