* GNU Guile 2.0.1 released
@ 2011-04-27 21:58 Ludovic Courtès
0 siblings, 0 replies; only message in thread
From: Ludovic Courtès @ 2011-04-27 21:58 UTC (permalink / raw)
To: guile-devel; +Cc: guile-user, guile-sources
[-- Attachment #1: Type: text/plain, Size: 10852 bytes --]
We are pleased to announce GNU Guile release 2.0.1, the next maintenance
release for the 2.0.x stable series.
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 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.1.tar.gz (6.4MB)
Here are the GPG detached signatures[*]:
ftp://ftp.gnu.org/gnu/guile/guile-2.0.1.tar.gz.sig
To reduce load on the main server, use a mirror listed at:
http://www.gnu.org/order/ftp.html
Here are the MD5 and SHA1 checksums:
b68f66fbdcbf65036ce4af5f915000f5 guile-2.0.1.tar.gz
3276a826f17a5edc0baf2eedc4821a771824141b guile-2.0.1.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-2.0.1.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.68
Automake 1.11.1
Libtool 2.4
Gnulib v0.0-5158-g7d06b32
This release contains many bug fixes along with some new features.
Here are the highlights, taken from the `NEWS' file:
Changes in 2.0.1 (since 2.0.0):
* Notable changes
** guile.m4 supports linking with rpath
The GUILE_FLAGS macro now sets GUILE_LIBS and GUILE_LTLIBS, which
include appropriate directives to the linker to include libguile-2.0.so
in the runtime library lookup path.
** `begin' expands macros in its body before other expressions
This enables support for programs like the following:
(begin
(define even?
(lambda (x)
(or (= x 0) (odd? (- x 1)))))
(define-syntax odd?
(syntax-rules ()
((odd? x) (not (even? x)))))
(even? 10))
** REPL reader usability enhancements
The REPL now flushes input after a read error, which should prevent one
error from causing other errors. The REPL also now interprets comments
as whitespace.
** REPL output has configurable width
The REPL now defaults to output with the current terminal's width, in
columns. See "Debug Commands" in the manual for more information on
the ,width command.
** Better C access to the module system
Guile now has convenient C accessors to look up variables or values in
modules and their public interfaces. See `scm_c_public_ref' and friends
in "Accessing Modules from C" in the manual.
** Added `scm_call_5', `scm_call_6'
See "Fly Evaluation" in the manual.
** Added `scm_from_latin1_keyword', `scm_from_utf8_keyword'
See "Keyword Procedures" in the manual, for more. Note that
`scm_from_locale_keyword' should not be used when the name is a C string
constant.
** R6RS unicode and string I/O work
Added efficient implementations of `get-string-n' and `get-string-n!'
for binary ports. Exported `current-input-port', `current-output-port'
and `current-error-port' from `(rnrs io ports)', and enhanced support
for transcoders.
** Added `pointer->scm', `scm->pointer' to `(system foreign)'
These procedure are useful if one needs to pass and receive SCM values
to and from foreign functions. See "Foreign Variables" in the manual,
for more.
** Added `heap-allocated-since-gc' to `(gc-stats)'
Also fixed the long-standing bug in the REPL `,stat' command.
** Add `on-error' REPL option
This option controls what happens when an error occurs at the REPL, and
defaults to `debug', indicating that Guile should enter the debugger.
Other values include `report', which will simply print a backtrace
without entering the debugger. See "System Commands" in the manual.
** Enforce immutability of string literals
Attempting to mutate a string literal now causes a runtime error.
** Fix pthread redirection
Guile 2.0.0 shipped with headers that, if configured with pthread
support, would re-define `pthread_create', `pthread_join', and other API
to redirect to the BDW-GC wrappers, `GC_pthread_create', etc. This was
unintended, and not necessary: because threads must enter Guile with
`scm_with_guile', Guile can handle thread registration itself, without
needing to make the GC aware of all threads. This oversight has been
fixed.
** `with-continuation-barrier' now unwinds on `quit'
A throw to `quit' in a continuation barrier will cause Guile to exit.
Before, it would do so before unwinding to the barrier, which would
prevent cleanup handlers from running. This has been fixed so that it
exits only after unwinding.
** `string->pointer' and `pointer->string' have optional encoding arg
This allows users of the FFI to more easily deal in strings with
particular (non-locale) encodings, like "utf-8". See "Void Pointers and
Byte Access" in the manual, for more.
** R6RS fixnum arithmetic optimizations
R6RS fixnum operations are are still slower than generic arithmetic,
however.
** New procedure: `define-inlinable'
See "Inlinable Procedures" in the manual, for more.
** New procedure: `exact-integer-sqrt'
See "Integer Operations" in the manual, for more.
** "Extended read syntax" for symbols parses better
In #{foo}# symbols, backslashes are now treated as escapes, as the
symbol-printing code intended. Additionally, "\x" within #{foo}# is now
interpreted as starting an R6RS hex escape. This is backward compatible
because the symbol printer would never produce a "\x" before. The
printer also works better too.
** Added `--fresh-auto-compile' option
This allows a user to invalidate the auto-compilation cache. It's
usually not needed. See "Compilation" in the manual, for a discussion.
* Manual updates
** GOOPS documentation updates
** New man page
Thanks to Mark Harig for improvements to guile.1.
** SRFI-23 documented
The humble `error' SRFI now has an entry in the manual.
* New modules
** `(ice-9 binary-ports)': "R6RS I/O Ports", in the manual
** `(ice-9 eval-string)': "Fly Evaluation", in the manual
** `(ice-9 command-line)', not documented yet
* Bugs fixed
** Fixed `iconv_t' memory leak on close-port
** Fixed some leaks with weak hash tables
** Export `vhash-delq' and `vhash-delv' from `(ice-9 vlist)'
** `after-gc-hook' works again
** `define-record-type' now allowed in nested contexts
** `exact-integer-sqrt' now handles large integers correctly
** Fixed C extension examples in manual
** `vhash-delete' honors HASH argument
** Make `locale-digit-grouping' more robust
** Default exception printer robustness fixes
** Fix presence of non-I CPPFLAGS in `guile-2.0.pc'
** `read' updates line/column numbers when reading SCSH block comments
** Fix imports of multiple custom interfaces of same module
** Fix encoding scanning for non-seekable ports
** Fix `setter' when called with a non-setter generic
** Fix f32 and f64 bytevectors to not accept rationals
** Fix description of the R6RS `finite?' in manual
** Quotient, remainder and modulo accept inexact integers again
** Fix `continue' within `while' to take zero arguments
** Fix alignment for structures in FFI
** Fix port-filename of stdin, stdout, stderr to match the docs
** Fix weak hash table-related bug in `define-wrapped-pointer-type'
** Fix partial continuation application with pending procedure calls
** scm_{to,from}_locale_string use current locale, not current ports
** Fix thread cleanup, by using a pthread_key destructor
** Fix `quit' at the REPL
** Fix a failure to sync regs in vm bytevector ops
** Fix (texinfo reflection) to handle nested structures like syntax patterns
** Fix stexi->html double translation
** Fix tree-il->scheme fix for <prompt>
** Fix compilation of <prompt> in <fix> in single-value context
** Fix race condition in ensure-writable-dir
** Fix error message on ,disassemble "non-procedure"
** Fix prompt and abort with the boot evaluator
** Fix `procedure->pointer' for functions returning `void'
** Fix error reporting in dynamic-pointer
** Fix problems detecting coding: in block comments
** Fix duplicate load-path and load-compiled-path in compilation environment
** Add fallback read(2) suppport for .go files if mmap(2) unavailable
** Fix c32vector-set!, c64vector-set!
** Fix mistakenly deprecated read syntax for uniform complex vectors
** Fix parsing of exact numbers with negative exponents
** Ignore SIGPIPE in (system repl server)
** Fix optional second arg to R6RS log function
** Fix R6RS `assert' to return true value.
** Fix fencepost error when seeking in bytevector input ports
** Gracefully handle `setlocale' errors when starting the REPL
** Improve support of the `--disable-posix' configure option
** Make sure R6RS binary ports pass `binary-port?' regardless of the locale
** Gracefully handle unterminated UTF-8 sequences instead of hitting an `assert'
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 Courtès, on behalf of the Guile team.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-04-27 21:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-27 21:58 GNU Guile 2.0.1 released Ludovic Courtès
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).