* GNU Guile 2.0.4 released
@ 2012-01-30 20:56 Ludovic Courtès
2012-01-30 21:13 ` Ludovic Courtès
0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2012-01-30 20:56 UTC (permalink / raw)
To: guile-devel; +Cc: guile-user, guile-sources
[-- Attachment #1: Type: text/plain, Size: 11467 bytes --]
We are pleased to announce GNU Guile release 2.0.4, 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.4.tar.gz (6.7MB)
ftp://ftp.gnu.org/gnu/guile/guile-2.0.4.tar.xz (4.1MB)
Here are the GPG detached signatures[*]:
ftp://ftp.gnu.org/gnu/guile/guile-2.0.4.tar.gz.sig
ftp://ftp.gnu.org/gnu/guile/guile-2.0.4.tar.xz.sig
Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html
Here are the MD5 and SHA1 checksums:
4129f1d5c20b303d6cb628e790474313 guile-2.0.4.tar.gz
687073b66f1a10dcbbb4c930f7162837 guile-2.0.4.tar.xz
7bffd7564f99bccb6af6950bc7af56af39fc0281 guile-2.0.4.tar.gz
a29a49ea70f87c6211c9885bac543165e31c3a73 guile-2.0.4.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.4.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.2
Libtool 2.4
Gnulib v0.0-6827-g39c3009
This release provides many bug fixes, performance improvements, and some
new features. Here are the highlights, taken from the `NEWS' file:
* Notable changes
** Better debuggability for interpreted procedures.
Guile 2.0 came with a great debugging experience for compiled
procedures, but the story for interpreted procedures was terrible. Now,
at least, interpreted procedures have names, and the `arity' procedure
property is always correct (or, as correct as it can be, in the presence
of `case-lambda').
** Support for cross-compilation.
One can now use a native Guile to cross-compile `.go' files for a
different architecture. See the documentation for `--target' in the
"Compilation" section of the manual, for information on how to use the
cross-compiler. See the "Cross building Guile" section of the README,
for more on how to cross-compile Guile itself.
** The return of `local-eval'.
Back by popular demand, `the-environment' and `local-eval' allow the
user to capture a lexical environment, and then evaluate arbitrary
expressions in that context. There is also a new `local-compile'
command. See "Local Evaluation" in the manual, for more. Special
thanks to Mark Weaver for an initial implementation of this feature.
** Fluids can now have default values.
Fluids are used for dynamic and thread-local binding. They have always
inherited their values from the context or thread that created them.
However, there was a case in which a new thread would enter Guile, and
the default values of all the fluids would be `#f' for that thread.
This has now been fixed so that `make-fluid' has an optional default
value for fluids in unrelated dynamic roots, which defaults to `#f'.
** Garbage collector tuning.
The garbage collector has now been tuned to run more often under some
circumstances.
*** Unmanaged allocation
The new `scm_gc_register_allocation' function will notify the collector
of unmanaged allocation. This will cause the collector to run sooner.
Guile's `scm_malloc', `scm_calloc', and `scm_realloc' unmanaged
allocators eventually call this function. This leads to better
performance under steady-state unmanaged allocation.
*** Transient allocation
When the collector runs, it will try to record the total memory
footprint of a process, if the platform supports this information. If
the memory footprint is growing, the collector will run more frequently.
This reduces the increase of the resident size of a process in response
to a transient increase in allocation.
*** Management of threads, bignums
Creating a thread will allocate a fair amount of memory. Guile now does
some GC work (using `GC_collect_a_little') when allocating a thread.
This leads to a better memory footprint when creating many short-lived
threads.
Similarly, bignums can occupy a lot of memory. Guile now offers hooks
to enable custom GMP allocators that end up calling
`scm_gc_register_allocation'. These allocators are enabled by default
when running Guile from the command-line. To enable them in libraries,
set the `scm_install_gmp_memory_functions' variable to a nonzero value
before loading Guile.
** SRFI-39 parameters are available by default.
Guile now includes support for parameters, as defined by SRFI-39, in the
default environment. See "Parameters" in the manual, for more
information. `current-input-port', `current-output-port', and
`current-error-port' are now parameters.
** Add `current-warning-port'.
Guile now outputs warnings on a separate port, `current-warning-port',
initialized to the value that `current-error-port' has on startup.
** Syntax parameters.
Following Racket's lead, Guile now supports syntax parameters. See
"Syntax parameters" in the manual, for more.
Also see Barzilay, Culpepper, and Flatt's 2011 SFP workshop paper,
"Keeping it Clean with syntax-parameterize".
** Parse command-line arguments from the locale encoding.
Guile now attempts to parse command-line arguments using the user's
locale. However for backwards compatibility with other 2.0.x releases,
it does so without actually calling `setlocale'. Please report any bugs
in this facility to bug-guile@gnu.org.
** One-armed conditionals: `when' and `unless'
Guile finally has `when' and `unless' in the default environment. Use
them whenever you would use an `if' with only one branch. See
"Conditionals" in the manual, for more.
** `current-filename', `add-to-load-path'
There is a new form, `(current-filename)', which expands out to the
source file in which it occurs. Combined with the new
`add-to-load-path', this allows simple scripts to easily add nearby
directories to the load path. See "Load Paths" in the manual, for more.
** `random-state-from-platform'
This procedure initializes a random seed using good random sources
available on your platform, such as /dev/urandom. See "Random Number
Generation" in the manual, for more.
** Warn about unsupported `simple-format' options.
The `-Wformat' compilation option now reports unsupported format options
passed to `simple-format'.
** Manual updates
Besides the sections already mentioned, the following manual sections
are new in this release: "Modules and the File System", "Module System
Reflection", "Syntax Transformer Helpers", and "Local Inclusion".
* New interfaces
** (ice-9 session): `apropos-hook'
** New print option: `escape-newlines', defaults to #t.
** (ice-9 ftw): `file-system-fold', `file-system-tree', `scandir'
** `scm_c_value_ref': access to multiple returned values from C
** scm_call (a varargs version), scm_call_7, scm_call_8, scm_call_9
** Some new syntax helpers in (system syntax)
Search the manual for these identifiers and modules, for more.
* Build fixes
** FreeBSD build fixes.
** OpenBSD compilation fixes.
** Solaris 2.10 test suite fixes.
** IA64 compilation fix.
** MinGW build fixes.
** Work around instruction reordering on SPARC and HPPA in the VM.
** Gnulib updates: added `dirfd', `setenv' modules.
* Bug fixes
** Add a deprecated alias for $expt.
** Add an exception printer for `getaddrinfo-error'.
** Add deprecated shim for `scm_display_error' with stack as first argument.
** Add warnings for unsupported `simple-format' options.
** Allow overlapping regions to be passed to `bytevector-copy!'.
** Better function prologue disassembly
** Compiler: fix miscompilation of (values foo ...) in some contexts.
** Compiler: fix serialization of #nil-terminated lists.
** Compiler: allow values bound in non-tail let expressions to be collected.
** Deprecate SCM_ASRTGO.
** Document invalidity of (begin) as expression; add back-compat shim.
** Don't leak file descriptors when mmaping objcode.
** Empty substrings no longer reference the original stringbuf.
** FFI: Fix `set-pointer-finalizer!' to leave the type cell unchanged.
** FFI: Hold a weak reference to the CIF made by `procedure->pointer'.
** FFI: Hold a weak reference to the procedure passed to `procedure->pointer'.
** FFI: Properly unpack small integer return values in closure call.
** Fix R6RS `fold-left' so the accumulator is the first argument.
** Fix bit-set*! bug from 2005.
** Fix bug in `make-repl' when `lang' is actually a <language>.
** Fix bugs related to mutation, the null string, and shared substrings.
** Fix <dynwind> serialization.
** Fix erroneous check in `set-procedure-properties!'.
** Fix generalized-vector-{ref,set!} for slices.
** Fix error messages involving definition forms.
** Fix primitive-eval to return #<unspecified> for definitions.
** HTTP: Extend handling of "Cache-Control" header.
** HTTP: Fix qstring writing of cache-extension values
** HTTP: Fix validators for various list-style headers.
** HTTP: Permit non-date values for Expires header.
** HTTP: `write-request-line' writes absolute paths, not absolute URIs.
** Hack the port-column of current-output-port after printing a prompt.
** Make sure `regexp-quote' tests use Unicode-capable string ports.
** Peval: Fix bugs in the new optimizer.
** Statistically unique marks and labels, for robust hygiene across sessions.
** Web: Allow URIs with empty authorities, like "file:///etc/hosts".
** `,language' at REPL sets the current-language fluid.
** `primitive-load' returns the value(s) of the last expression.
** `scm_from_stringn' always returns unique strings.
** `scm_i_substring_copy' tries to narrow the substring.
** i18n: Fix gc_malloc/free mismatch on non-GNU systems.
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] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-30 20:56 GNU Guile 2.0.4 released Ludovic Courtès
@ 2012-01-30 21:13 ` Ludovic Courtès
2012-01-30 21:27 ` Neil Jerram
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Ludovic Courtès @ 2012-01-30 21:13 UTC (permalink / raw)
To: guile-devel
... and I forgot to bump the SONAME. :-/
I guess I have to push a 2.0.5 tarball now? Thoughts?
Ludo’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-30 21:13 ` Ludovic Courtès
@ 2012-01-30 21:27 ` Neil Jerram
2012-01-30 21:43 ` Hans Aberg
2012-01-30 22:15 ` Ludovic Courtès
2 siblings, 0 replies; 8+ messages in thread
From: Neil Jerram @ 2012-01-30 21:27 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
ludo@gnu.org (Ludovic Courtès) writes:
> ... and I forgot to bump the SONAME. :-/
>
> I guess I have to push a 2.0.5 tarball now? Thoughts?
I'm afraid I've forgotten the implications of that...
But congratulations and thanks for the release anyway; for my FFI
hacking I particularly appreciate the fixes related to
procedure->pointer and GC.
Neil
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-30 21:13 ` Ludovic Courtès
2012-01-30 21:27 ` Neil Jerram
@ 2012-01-30 21:43 ` Hans Aberg
2012-01-30 22:15 ` Ludovic Courtès
2 siblings, 0 replies; 8+ messages in thread
From: Hans Aberg @ 2012-01-30 21:43 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
On 30 Jan 2012, at 22:13, Ludovic Courtès wrote:
> ... and I forgot to bump the SONAME. :-/
>
> I guess I have to push a 2.0.5 tarball now? Thoughts?
Are you sure it was there in earlier versions? Though OS X uses different objective file format, I could not find it in the .dylib.
Hans
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-30 21:13 ` Ludovic Courtès
2012-01-30 21:27 ` Neil Jerram
2012-01-30 21:43 ` Hans Aberg
@ 2012-01-30 22:15 ` Ludovic Courtès
2012-01-31 9:41 ` Andy Wingo
2 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2012-01-30 22:15 UTC (permalink / raw)
To: guile-devel
All apologies. This should be fixed now with 2.0.5.
And note that this significantly increases our average release rate,
which is excellent for publicity, no?
Ludo’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-30 22:15 ` Ludovic Courtès
@ 2012-01-31 9:41 ` Andy Wingo
2012-01-31 13:20 ` Ludovic Courtès
0 siblings, 1 reply; 8+ messages in thread
From: Andy Wingo @ 2012-01-31 9:41 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
On Mon 30 Jan 2012 23:15, ludo@gnu.org (Ludovic Courtès) writes:
> All apologies. This should be fixed now with 2.0.5.
Thanks for handling the release, Ludo. What a crazy process, this
time. Do you have any thoughts about how it might be made smoother in
the future?
> And note that this significantly increases our average release rate,
> which is excellent for publicity, no?
:)
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-31 9:41 ` Andy Wingo
@ 2012-01-31 13:20 ` Ludovic Courtès
2012-01-31 13:46 ` Andy Wingo
0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2012-01-31 13:20 UTC (permalink / raw)
To: Andy Wingo; +Cc: guile-devel
Hi,
Andy Wingo <wingo@pobox.com> skribis:
> On Mon 30 Jan 2012 23:15, ludo@gnu.org (Ludovic Courtès) writes:
>
>> All apologies. This should be fixed now with 2.0.5.
>
> Thanks for handling the release, Ludo. What a crazy process, this
> time.
Indeed.
> Do you have any thoughts about how it might be made smoother in the
> future?
For the SONAME error, I should just have been more carefully reading the
check-list (doc/release.org). It’s really PEBKAC here, so the only good
fix would be to change the guy. ;-)
Regarding bug fixing, there’s probably room for improvement. For
instance, when a bug is filed, we could assign a target release for the
fix, and stick to it. Perhaps we could have a more formal freeze window
also, during which we would only fix new bugs and be extremely
conservative about anything else.
What do you think?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: GNU Guile 2.0.4 released
2012-01-31 13:20 ` Ludovic Courtès
@ 2012-01-31 13:46 ` Andy Wingo
0 siblings, 0 replies; 8+ messages in thread
From: Andy Wingo @ 2012-01-31 13:46 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
On Tue 31 Jan 2012 14:20, ludo@gnu.org (Ludovic Courtès) writes:
> Regarding bug fixing, there’s probably room for improvement. For
> instance, when a bug is filed, we could assign a target release for the
> fix, and stick to it. Perhaps we could have a more formal freeze window
> also, during which we would only fix new bugs and be extremely
> conservative about anything else.
I don't know. Releases are also energetic times, when people become
more active -- and it's not always activity that can be redirected to
fixing bugs, unfortunately :/ So if we're too strict, we might lose
some of that without it going in other productive directions.
The local-eval thing was not satisfying for many reasons, and it did
delay the release. Still, it's good to have it in and settled.
> What do you think?
I guess in summary: I don't know :)
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-01-31 13:46 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-30 20:56 GNU Guile 2.0.4 released Ludovic Courtès
2012-01-30 21:13 ` Ludovic Courtès
2012-01-30 21:27 ` Neil Jerram
2012-01-30 21:43 ` Hans Aberg
2012-01-30 22:15 ` Ludovic Courtès
2012-01-31 9:41 ` Andy Wingo
2012-01-31 13:20 ` Ludovic Courtès
2012-01-31 13:46 ` 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).