* GNU Guile 2.0.2 released
@ 2011-07-01 22:15 Ludovic Courtès
2011-07-02 10:17 ` Andy Wingo
0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2011-07-01 22:15 UTC (permalink / raw)
To: guile-devel; +Cc: guile-user, guile-sources
[-- Attachment #1: Type: text/plain, Size: 8795 bytes --]
We are pleased to announce GNU Guile release 2.0.2, 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.2.tar.gz (6.5MB)
Here are the GPG detached signatures[*]:
ftp://ftp.gnu.org/gnu/guile/guile-2.0.2.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:
177153393c10d668a8fd0fa62c9c30e0 guile-2.0.2.tar.gz
1943fd22417ce1e51babbdcd7681e66a794a8da3 guile-2.0.2.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.2.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-5874-g7170ee0
This release contains many bug fixes along with some new features.
Here are the highlights, taken from the `NEWS' file:
Changes in 2.0.2 (since 2.0.1):
* Notable changes
** `guile-tools' renamed to `guild'
The new name is shorter. Its intended future use is for a CPAN-like
system for Guile wizards and journeyfolk to band together to share code;
hence the name. `guile-tools' is provided as a backward-compatible
symbolic link. See "Using Guile Tools" in the manual, for more.
** New control operators: `shift' and `reset'
See "Shift and Reset" in the manual, for more information.
** `while' as an expression
Previously the return value of `while' was unspecified. Now its
values are specified both in the case of normal termination, and via
termination by invoking `break', possibly with arguments. See "while
do" in the manual for more.
** Disallow access to handles of weak hash tables
`hash-get-handle' and `hash-create-handle!' are no longer permitted to
be called on weak hash tables, because the fields in a weak handle could
be nulled out by the garbage collector at any time, but yet they are
otherwise indistinguishable from pairs. Use `hash-ref' and `hash-set!'
instead.
** More precision for `get-internal-run-time', `get-internal-real-time'
On 64-bit systems which support POSIX clocks, Guile's internal timing
procedures offer nanosecond resolution instead of the 10-millisecond
resolution previously available. 32-bit systems now use 1-millisecond
timers.
** Guile now measures time spent in GC
`gc-stats' now returns a meaningful value for `gc-time-taken'.
** Add `gcprof'
The statprof profiler now exports a `gcprof' procedure, driven by the
`after-gc-hook', to see which parts of your program are causing GC. Let
us know if you find it useful.
** `map', `for-each' and some others now implemented in Scheme
We would not mention this in NEWS, as it is not a user-visible change,
if it were not for one thing: `map' and `for-each' are no longer
primitive generics. Instead they are normal bindings, which can be
wrapped by normal generics. This fixes some modularity issues between
core `map', SRFI-1 `map', and GOOPS.
Also it's pretty cool that we can do this without a performance impact.
** Add `scm_peek_byte_or_eof'.
This helper is like `scm_peek_char_or_eof', but for bytes instead of
full characters.
** Implement #:stop-at-first-non-option option for getopt-long
See "getopt-long Reference" in the manual, for more information.
** Improve R6RS conformance for conditions in the I/O libraries
The `(rnrs io simple)' module now raises the correct R6RS conditions in
error cases. `(rnrs io ports)' is also more correct now, though it is
still a work in progress.
** All deprecated routines emit warnings
A few deprecated routines were lacking deprecation warnings. This has
been fixed now.
* Speed improvements
** Constants in compiled code now share state better
Constants with shared state, like `("foo")' and `"foo"', now share state
as much as possible, in the entire compilation unit. This cuts compiled
`.go' file sizes in half, generally, and speeds startup.
** VLists: optimize `vlist-fold-right', and add `vhash-fold-right'
These procedures are now twice as fast as they were.
** UTF-8 ports to bypass `iconv' entirely
This reduces memory usage in a very common case.
** Compiler speedups
The compiler is now about 40% faster. (Note that this is only the case
once the compiler is itself compiled, so the build still takes as long
as it did before.)
** VM speed tuning
Some assertions that were mostly useful for sanity-checks on the
bytecode compiler are now off for both "regular" and "debug" engines.
This together with a fix to cache a TLS access and some other tweaks
improve the VM's performance by about 20%.
** SRFI-1 list-set optimizations
lset-adjoin and lset-union now have fast paths for eq? sets.
** `memq', `memv' optimizations
These procedures are now at least twice as fast than in 2.0.1.
* Deprecations
** Deprecate scm_whash API
`scm_whash_get_handle', `SCM_WHASHFOUNDP', `SCM_WHASHREF',
`SCM_WHASHSET', `scm_whash_create_handle', `scm_whash_lookup', and
`scm_whash_insert' are now deprecated. Use the normal hash table API
instead.
** Deprecate scm_struct_table
`SCM_STRUCT_TABLE_NAME', `SCM_SET_STRUCT_TABLE_NAME',
`SCM_STRUCT_TABLE_CLASS', `SCM_SET_STRUCT_TABLE_CLASS',
`scm_struct_table', and `scm_struct_create_handle' are now deprecated.
These routines formed part of the internals of the map between structs
and classes.
** Deprecate scm_internal_dynamic_wind
The `scm_t_inner' type and `scm_internal_dynamic_wind' are deprecated,
as the `scm_dynwind' API is better, and this API encourages users to
stuff SCM values into pointers.
** Deprecate scm_immutable_cell, scm_immutable_double_cell
These routines are deprecated, as the GC_STUBBORN API doesn't do
anything any more.
* Manual updates
Andreas Rottman kindly transcribed the missing parts of the `(rnrs io
ports)' documentation from the R6RS documentation. Thanks Andreas!
* Bugs fixed
** Fix double-loading of script in -ds case
** -x error message fix
** iconveh-related cross-compilation fixes
** Fix small integer return value packing on big endian machines.
** Fix hash-set! in weak-value table from non-immediate to immediate
** Fix call-with-input-file & relatives for multiple values
** Fix `hash' for inf and nan
** Fix libguile internal type errors caught by typing-strictness==2
** Fix compile error in MinGW fstat socket detection
** Fix generation of auto-compiled file names on MinGW
** Fix multithreaded access to internal hash tables
** Emit a 1-based line number in error messages
** Fix define-module ordering
** Fix several POSIX functions to use the locale encoding
** Add type and range checks to the complex generalized vector accessors
** Fix unaligned accesses for bytevectors of complex numbers
** Fix '(a #{.} b)
** Fix erroneous VM stack overflow for canceled threads
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.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: GNU Guile 2.0.2 released
2011-07-01 22:15 GNU Guile 2.0.2 released Ludovic Courtès
@ 2011-07-02 10:17 ` Andy Wingo
2011-07-02 20:57 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: Andy Wingo @ 2011-07-02 10:17 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-user, guile-devel
On Sat 02 Jul 2011 00:15, ludo@gnu.org (Ludovic Courtès) writes:
> We are pleased to announce GNU Guile release 2.0.2, the next maintenance
> release for the 2.0.x stable series.
Thanks for rolling the release, Ludo!
There were 155 changesets in this release, touching 284 files. 27326
lines were removed, and 20388 deleted.
Special thanks to our contributors on this release:
Andreas Rottmann
Daniel Llorens
Ian Price
Jan Nieuwenhuizen
Mark H Weaver
Mark Harig
Neil Jerram
Stefan Israelsson Tampe
Cheers,
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: GNU Guile 2.0.2 released
2011-07-02 10:17 ` Andy Wingo
@ 2011-07-02 20:57 ` Ludovic Courtès
2011-07-02 21:14 ` Andy Wingo
0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2011-07-02 20:57 UTC (permalink / raw)
To: Andy Wingo; +Cc: guile-user, guile-devel
Hi!
Andy Wingo <wingo@pobox.com> skribis:
> There were 155 changesets in this release, touching 284 files. 27326
> lines were removed, and 20388 deleted.
Woow! Is there any code left? :-)
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: GNU Guile 2.0.2 released
2011-07-02 20:57 ` Ludovic Courtès
@ 2011-07-02 21:14 ` Andy Wingo
0 siblings, 0 replies; 4+ messages in thread
From: Andy Wingo @ 2011-07-02 21:14 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-user, guile-devel
On Sat 02 Jul 2011 22:57, ludo@gnu.org (Ludovic Courtès) writes:
> Andy Wingo <wingo@pobox.com> skribis:
>
>> There were 155 changesets in this release, touching 284 files. 27326
>> lines were removed, and 20388 deleted.
>
> Woow! Is there any code left? :-)
Nope. I was thinking of taking up farming!
Er, s/removed/added/, of course; I still might take up farming :)
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-07-02 21:14 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-01 22:15 GNU Guile 2.0.2 released Ludovic Courtès
2011-07-02 10:17 ` Andy Wingo
2011-07-02 20:57 ` Ludovic Courtès
2011-07-02 21:14 ` Andy Wingo
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).