guile-devel
[Top][All Lists]
Advanced

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

Re: GNU Guile 2.0.10 released


From: Alex Sassmannshausen
Subject: Re: GNU Guile 2.0.10 released
Date: Tue, 18 Mar 2014 09:35:06 +0100
User-agent: mu4e 0.9.9.5; emacs 23.4.1

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 address@hidden'.  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

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