From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alex Sassmannshausen Newsgroups: gmane.lisp.guile.devel Subject: Re: GNU Guile 2.0.10 released Date: Tue, 18 Mar 2014 09:35:06 +0100 Message-ID: <87a9cnucp1.fsf@serenity.home> References: <87fvmgxvxw.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1395131748 26682 80.91.229.3 (18 Mar 2014 08:35:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 18 Mar 2014 08:35:48 +0000 (UTC) Cc: guile-devel@gnu.org To: =?utf-8?Q?Ludovic_Court=C3=A8s?= Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Mar 18 09:35:58 2014 Return-path: Envelope-to: guile-devel@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 1WPpV8-0002r4-2g for guile-devel@m.gmane.org; Tue, 18 Mar 2014 09:35:58 +0100 Original-Received: from localhost ([::1]:33979 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPpV7-0003wV-BM for guile-devel@m.gmane.org; Tue, 18 Mar 2014 04:35:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52358) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPpV0-0003oK-OK for guile-devel@gnu.org; Tue, 18 Mar 2014 04:35:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WPpUu-0004NA-NT for guile-devel@gnu.org; Tue, 18 Mar 2014 04:35:50 -0400 Original-Received: from mail-ee0-x22c.google.com ([2a00:1450:4013:c00::22c]:44328) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPpUu-0004Mb-1i; Tue, 18 Mar 2014 04:35:44 -0400 Original-Received: by mail-ee0-f44.google.com with SMTP id e49so5033245eek.17 for ; Tue, 18 Mar 2014 01:35:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:user-agent:in-reply-to:date :message-id:mime-version:content-type:content-transfer-encoding; bh=3jtLyLoE8haoxh2xsndW0iSrFJ0M/lF/GvM2k4efsxA=; b=EE7utwMCJRRVvfz5azwzlxWf02OSd/AcXpP9UqmR13dX4gedIkIU58ArFuptPq5CLr GKzAslrANHPfwVD1P/sXNQVU2GH7p6YKPkSqbew33Vb43cmlL2F5me9f1S2eE+SEBphK B6uIQcFqy+bYabk1E41X4D7uCK6osPDPqrEcCaZolczt9GCToZW8vFkUq5q7yF32EBPM KLi//BNa5qIb4m9vOQ/LPSuoMw2OrRAYbD9UOcNcfVfX/+h9wWnBScKom82SucTgJm1T CyQ2hNt4B20lDZFiLcp0tAdX2rdv5jSxrgqPbRCbVygjkW38yHaGf16qhiy2NCwaTjDn HmeA== X-Received: by 10.14.198.197 with SMTP id v45mr28786691een.9.1395131742237; Tue, 18 Mar 2014 01:35:42 -0700 (PDT) Original-Received: from serenity.home ([91.178.50.166]) by mx.google.com with ESMTPSA id m1sm45677891een.7.2014.03.18.01.35.40 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 18 Mar 2014 01:35:41 -0700 (PDT) User-agent: mu4e 0.9.9.5; emacs 23.4.1 In-reply-to: <87fvmgxvxw.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4013:c00::22c X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:16981 Archived-At: Congratulations to all involved in this release — it sounds great and I'm looking forward to playing with it's features! All the best, Alex Ludovic Courtès writes: > We are pleased to announce GNU Guile release 2.0.10, the next maintenance > release for the 2.0.x stable series. > > This release contains 253 commits by 11 people over 11 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.10.tar.gz (7.2MB) > ftp://ftp.gnu.org/gnu/guile/guile-2.0.10.tar.xz (4.5MB) > > Here are the GPG detached signatures[*]: > ftp://ftp.gnu.org/gnu/guile/guile-2.0.10.tar.gz.sig > ftp://ftp.gnu.org/gnu/guile/guile-2.0.10.tar.xz.sig > > Use a mirror for higher download bandwidth: > http://www.gnu.org/order/ftp.html > > Here are the MD5 and SHA1 checksums: > > 74c583b173075cc576f9e7abcf394f90 guile-2.0.10.tar.gz > 70e9d9100d84159720fe46b27210812b guile-2.0.10.tar.xz > 784839fa8b925e3c4be75017e2dd65f4e9920a7b guile-2.0.10.tar.gz > 5c1a9e61d796932ac6b924fd931dce29f043bfbb guile-2.0.10.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.10.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.14 > Libtool 2.4.2 > Makeinfo 5.2 > Gnulib v0.1-92-g546ff82 > > > ======================================================================== > This release provides new interfaces, many bug fixes, and performance > improvements. Here are the highlights, taken from the `NEWS' file: > > Changes in 2.0.10 (since 2.0.9): > > * Notable changes > > ** New GDB extension to support Guile > > Guile now comes with an extension for GDB 7.8 or later (unreleased at > the time of writing) that simplifies debugging of C code that uses > Guile. See "GDB Support" in the manual. > > ** Improved integration between R6RS and native Guile exceptions > > R6RS exception handlers, established using 'with-exception-handler' or > 'guard', are now able to catch native Guile exceptions, which are > automatically converted into appropriate R6RS condition objects. > > ** Support for HTTP proxies > > Guile's built-in web client now honors the 'http_proxy' environment > variable, as well as the new 'current-http-proxy' parameter. See > "Web Client" in the manual for details. > > ** Lexical syntax improvements > > *** Support |...| symbol notation. > > Guile's core reader and printer now support the R7RS |...| notation > for writing symbols with arbitrary characters, as a more portable and > attractive alternative to Guile's native #{...}# notation. To enable > this notation by default, put one or both of the following in your > ~/.guile: > > (read-enable 'r7rs-symbols) > (print-enable 'r7rs-symbols) > > *** Support '#true' and '#false' notation for booleans. > > The booleans '#t' and '#f' may now be written as '#true' and '#false' > for improved readability, per R7RS. > > *** Recognize '#\escape' character name. > > The escape character '#\esc' may now be written as '#\escape', per R7RS. > > *** Accept "\|" in string literals. > > The pipe character may now be preceded by a backslash, per R7RS. > > ** Custom binary input ports now support 'setvbuf'. > > Until now, ports returned by 'make-custom-binary-input-port' were always > full-buffered. Now, their buffering mode can be changed using 'setvbuf'. > > ** SRFI-4 predicates and length accessors no longer accept arrays. > > Given that the SRFI-4 accessors don't work for arrays, the fact that the > predicates and length accessors returned true for arrays was a bug. > > ** GUILE_PROGS now supports specifying a minimum required version. > > The 'GUILE_PROGS' autoconf macro in guile.m4 now allows an optional > argument to specify a minimum required Guile version. By default, it > requires Guile >= 2.0. A micro version can also be specified, e.g.: > GUILE_PROGS([2.0.10]) > > ** Error reporting improvements > > *** Improved run-time error reporting in (ice-9 match). > > If no pattern matches in a 'match' form, the datum that failed to match > is printed along with the location of the failed 'match' invocation. > > *** Print the faulty object upon invalid-keyword errors. > *** Improved error reporting of procedures defined by define-inlinable. > *** Improved error reporting for misplaced ellipses in macro definitions. > *** Improved error checking in 'define-public' and 'module-add!'. > *** Improved error when 'include' form with relative path is not in a file. > > ** Speed improvements > > *** 'scm_c_read' on ISO-8859-1 (e.g. binary) unbuffered ports is faster. > *** New inline asm for VM fixnum multiply, for faster overflow checking. > *** New inline asm for VM fixnum operations on ARM and 32-bit x86. > *** 'positive?' and 'negative?' are now compiled to VM primitives. > *** Numerical comparisons with more than 2 arguments are compiled to VM code. > *** Several R6RS bitwise operators have been optimized. > > ** Miscellaneous > > *** Web: 'content-disposition' headers are now supported. > *** Web: 'uri-encode' hexadecimal percent-encoding is now uppercase. > *** Size argument to 'make-doubly-weak-hash-table' is now optional. > *** Timeout for 'unlock-mutex' and SRFI-18 'mutex-unlock!' may now be #f. > > ** Gnulib update > > Guile's copy of Gnulib was updated to v0.1-92-g546ff82. The following > modules were imported from Gnulib: copysign, fsync, isfinite, link, > lstat, mkdir, mkstemp, readlink, rename, rmdir, and unistd. > > * New interfaces > > ** Cooperative REPL servers > > This new facility supports REPLs that run at specified times within an > existing thread, for example in programs utilizing an event loop or in > single-threaded programs. This allows for safe access and mutation of > a program's data structures from the REPL without concern for thread > synchronization. See "Cooperative REPL Servers" in the manual for > details. > > ** SRFI-43 (Vector Library) > > Guile now includes SRFI-43, a comprehensive library of vector operations > analogous to the SRFI-1 list library. See "SRFI-43" in the manual for > details. > > ** SRFI-64 (A Scheme API for test suites) > > Guile now includes SRFI-64, a flexible framework for creating test > suites. The reference implementation of SRFI-64 has also been updated > to fully support earlier versions of Guile. > > ** SRFI-111 (Boxes) > > See "SRFI-111" in the manual. > > ** 'define-values' > > See "Binding multiple return values" in the manual. > > ** Custom ellipsis identifiers using 'with-ellipsis' or SRFI-46. > > Guile now allows macro definitions to use identifiers other than '...' > as the ellipsis. This is convenient when writing macros that generate > macro definitions. The desired ellipsis identifier can be given as the > first operand to 'syntax-rules', as specified in SRFI-46 and R7RS, or by > using the new 'with-ellipsis' special form in procedural macros. With > this addition, Guile now fully supports SRFI-46. > > See "Specifying a Custom Ellipsis Identifier" and "Custom Ellipsis > Identifiers for syntax-case Macros" in the manual for details. > > ** R7RS 'syntax-error' > > Guile now supports 'syntax-error', as specified by R7RS, allowing for > improved compile-time error reporting from 'syntax-rules' macros. See > "Reporting Syntax Errors in Macros" in the manual for details. > > ** New procedures to convert association lists into hash tables > > Guile now includes the convenience procedures 'alist->hash-table', > 'alist->hashq-table', 'alist->hashv-table', and 'alist->hashx-table'. > See "Hash Table Reference" in the manual. > > ** New predicates: 'exact-integer?' and 'scm_is_exact_integer' > > See "Integers" in the manual. > > ** 'weak-vector-length', 'weak-vector-ref', and 'weak-vector-set!' > > These should now be used to access weak vectors, instead of > 'vector-length', 'vector-ref', and 'vector-set!'. > > * Manual updates > > ** Improve docs for 'eval-when'. > > Each 'eval-when' condition is now explained in detail, including > 'expand' which was previously undocumented. (expand load eval) is now > the recommended set of conditions, instead of (compile load eval). > See "Eval When" in the manual, for details. > > ** Update the section on SMOBs and memory management. > > See "Defining New Types (Smobs)" in the manual. > > ** Fixes > > *** GOOPS: #:dsupers is the init keyword for the dsupers slot. > *** 'unfold-right' takes a tail, not a tail generator. > *** Clarify that 'append!' and 'reverse!' might not mutate. > *** Fix doc that incorrectly claimed (integer? +inf.0) => #t. > (http://bugs.gnu.org/16356) > *** Document that we support SRFI-62 (S-expression comments). > *** Document that we support SRFI-87 (=> in case clauses). > *** Document 'equal?' in the list of R6RS incompatibilities. > *** Remove outdated documentation of LTDL_LIBRARY_PATH. > *** Fix 'weak-vector?' doc: Weak hash tables are not weak vectors. > *** Fix 'my-or' examples to use let-bound variable. > (http://bugs.gnu.org/14203) > > * New deprecations > > ** General 'uniform-vector' interface > > This interface lacked both generality and specificity. The general > replacements are 'array-length', 'array-ref', and friends on the scheme > side, and the array handle interface on the C side. On the specific > side of things, there are the specific bytevector, SRFI-4, and bitvector > interfaces. > > ** Use of the vector interface on arrays > ** 'vector-length', 'vector-ref', and 'vector-set!' on weak vectors > ** 'vector-length', 'vector-ref', and 'vector-set!' as primitive-generics > > Making the vector interface operate only on a single representation will > allow future versions of Guile to compile loops involving vectors to > more efficient native code. > > ** 'htons', 'htonl', 'ntohs', 'ntohl' > > These procedures, like their C counterpart, were used to convert numbers > to/from network byte order, typically in conjunction with the > now-deprecated uniform vector API. > > This functionality is now covered by the bytevector and binary I/O APIs. > See "Interpreting Bytevector Contents as Integers" in the manual. > > ** 'gc-live-object-stats' > > It hasn't worked in the whole 2.0 series. There is no replacement, > unfortunately. > > ** 'scm_c_program_source' > > This internal VM function was not meant to be public. Use > 'scm_procedure_source' instead. > > * Build fixes > > ** Fix build with Clang 3.4. > > ** MinGW build fixes > *** Do not add $(EXEEXT) to guild or guile-tools. > *** tests: Use double quotes around shell arguments, for Windows. > *** tests: Don't rely on $TMPDIR and /tmp on Windows. > *** tests: Skip FFI tests that use `qsort' when it's not accessible. > *** tests: Remove symlink only when it exists. > *** tests: Don't rely on `scm_call_2' being visible. > > ** Fix computation of LIBLOBJS so dependencies work properly. > (http://bugs.gnu.org/14193) > > * Bug fixes > > ** Web: Fix web client with methods other than GET. > (http://bugs.gnu.org/15908) > ** Web: Add Content-Length header for empty bodies. > ** Web: Accept "UTC" as the zone offset in date headers. > (http://bugs.gnu.org/14128) > ** Web: Don't throw if a response is longer than its Content-Length says. > ** Web: Write out HTTP Basic auth headers correctly. > (http://bugs.gnu.org/14370) > ** Web: Always print a path component in 'write-request-line'. > ** Fix 'define-public' from (ice-9 curried-definitions). > ** psyntax: toplevel variable definitions discard previous syntactic binding. > (http://bugs.gnu.org/11988) > ** Fix thread-unsafe lazy initializations. > ** Make (ice-9 popen) thread-safe. > (http://bugs.gnu.org/15683) > ** Make guardians thread-safe. > ** Make regexp_exec thread-safe. > (http://bugs.gnu.org/14404) > ** vm: Gracefully handle stack overflows. > (http://bugs.gnu.org/15065) > ** Fix 'rationalize'. > (http://bugs.gnu.org/14905) > ** Fix inline asm for VM fixnum operations on x32. > ** Fix 'SCM_SYSCALL' to really swallow EINTR. > ** Hide EINTR returns from 'accept'. > ** SRFI-19: Update the table of leap seconds. > ** Add missing files to the test-suite Makefile. > ** Make sure 'ftw' allows directory traversal when running as root. > ** Fix 'hash-for-each' for weak hash tables. > ** SRFI-18: Export 'current-thread'. > (http://bugs.gnu.org/16890) > ** Fix inlining of tail list to apply. > (http://bugs.gnu.org/15533) > ** Fix bug in remqueue in threads.c when removing last element. > ** Fix build when '>>' on negative integers is not arithmetic. > ** Fix 'bitwise-bit-count' for negative arguments. > (http://bugs.gnu.org/14864) > ** Fix VM 'ash' for right shifts by large amounts. > (http://bugs.gnu.org/14864) > ** Fix rounding in scm_i_divide2double for negative arguments. > ** Avoid lossy conversion from inum to double in numerical comparisons. > ** Fix numerical comparison of fractions to infinities. > ** Allow fl+ and fl* to accept zero arguments. > (http://bugs.gnu.org/14869) > ** flonum? returns false for complex number objects. > (http://bugs.gnu.org/14866) > ** flfinite? applied to a NaN returns false. > (http://bugs.gnu.org/14868) > ** Flonum operations always return flonums. > (http://bugs.gnu.org/14871) > ** min and max: NaNs beat infinities, per R6RS errata. > (http://bugs.gnu.org/14865) > ** Fix 'fxbit-count' for negative arguments. > ** 'gcd' and 'lcm' support inexact integer arguments. > (http://bugs.gnu.org/14870) > ** Fix R6RS 'fixnum-width'. > (http://bugs.gnu.org/14879) > ** tests: Use shell constructs that /bin/sh on Solaris 10 can understand. > (http://bugs.gnu.org/14042) > ** Fix display of symbols containing backslashes. > (http://bugs.gnu.org/15033) > ** Fix truncated-print for uniform vectors. > ** Define `AF_UNIX' only when Unix-domain sockets are supported. > ** Decompiler: fix handling of empty 'case-lambda' expressions. > ** Fix handling of signed zeroes and infinities in 'numerator' and 'denominator'. > ** dereference-pointer: check for null pointer. > ** Optimizer: Numerical comparisons are not negatable, for correct NaN handling. > ** Compiler: Evaluate '-' and '/' in left-to-right order. > (for more robust floating-point arithmetic) > ** snarf.h: Declare static const function name vars as SCM_UNUSED. > ** chars.c: Remove duplicate 'const' specifiers. > ** Modify SCM_UNPACK type check to avoid warnings in clang. > ** Arrange so that 'file-encoding' does not truncate the encoding name. > (http://bugs.gnu.org/16463) > ** Improve error checking in bytevector->uint-list and bytevector->sint-list. > (http://bugs.gnu.org/15100) > ** Fix (ash -1 SCM_I_FIXNUM_BIT-1) to return a fixnum instead of a bignum. > ** i18n: Fix null pointer dereference when locale info is missing. > ** Fix 'string-copy!' to work properly with overlapping src/dest. > ** Fix hashing of vectors to run in bounded time. > ** 'port-position' works on CBIPs that do not support 'set-port-position!'. > ** Custom binary input ports sanity-check the return value of 'read!'. > ** bdw-gc.h: Check SCM_USE_PTHREAD_THREADS using #if not #ifdef. > ** REPL Server: Don't establish a SIGINT handler. > ** REPL Server: Redirect warnings to client socket. > ** REPL Server: Improve robustness of 'stop-server-and-clients!'. > ** Add srfi-16, srfi-30, srfi-46, srfi-62, srfi-87 to %cond-expand-features. > ** Fix trap handlers to handle applicable structs. > (http://bugs.gnu.org/15691) > ** Fix optional end argument in `uniform-vector-read!'. > (http://bugs.gnu.org/15370) > ** Fix brainfuck->scheme compiler. > ** texinfo: Fix newline preservation in @example with lines beginning with @ > > ** C standards conformance improvements > > Improvements and bug fixes were made to the C part of Guile's run-time > support (libguile). > > *** Don't use the identifier 'noreturn'. > (http://bugs.gnu.org/15798) > *** Rewrite SCM_I_INUM to avoid unspecified behavior when not using GNU C. > *** Improve fallback implemention of SCM_SRS to avoid unspecified behavior. > *** SRFI-60: Reimplement 'rotate-bit-field' on inums to be more portable. > *** Improve compliance with C standards regarding signed integer shifts. > *** Avoid signed overflow in random.c. > *** VM: Avoid signed overflows in 'add1' and 'sub1'. > *** VM: Avoid overflow in ASM_ADD when the result is most-positive-fixnum. > *** read: Avoid signed integer overflow in 'read_decimal_integer'. > > ======================================================================== > The following people contributed to this release: > > 2 Aleix Conchillo Flaque > 1 Alexandru Cojocaru > 21 Andy Wingo > 1 Arne Babenhauserheide > 1 Chris K. Jester-Young > 1 David Kastrup > 3 David Thompson > 7 Ian Price > 44 Ludovic Courtès > 170 Mark H Weaver > 2 Tom Tromey > > 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.