unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GNU Guile 3.0.2 released
@ 2020-03-27 15:24 Ludovic Courtès
  0 siblings, 0 replies; only message in thread
From: Ludovic Courtès @ 2020-03-27 15:24 UTC (permalink / raw)
  To: guile-user, guile-devel, guile-sources, info-gnu

[-- Attachment #1: Type: text/plain, Size: 5481 bytes --]

We are delighted to announce GNU Guile release 3.0.2, the second bug-fix
release of the new 3.0 stable series.  This release represents 22
commits by 8 people since version 3.0.1.  See the NEWS excerpt that
follows for full details.

                             *  *  *

The Guile web page is located at http://gnu.org/software/guile/, and
among other things, it contains a copy of the Guile manual and pointers
to more resources.

Guile is an implementation of the Scheme programming language, packaged
for use in a wide variety of environments.  In addition to implementing
the R5RS, R6RS, and R7RS Scheme standards, Guile includes full access to
POSIX system calls, networking support, multiple threads, dynamic
linking, a foreign function call interface, powerful string processing,
and HTTP client and server implementations.

Guile can run interactively, as a script interpreter, and as a Scheme
compiler to VM bytecode.  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.  It is easy to call Scheme code
from C code and vice versa.  Applications can add new functions, data
types, control structures, and even syntax to Guile, to create a
domain-specific language tailored to the task at hand.

Guile 3.0 can be installed in parallel with Guile 2.2.x; see
http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html.

                             *  *  *

Changes in 3.0.2 (since 3.0.1)

* New interfaces and functionality

** New (srfi srfi-171) module

This module implements "tranducers" as specified in
<https://srfi.schemers.org/srfi-171/srfi-171.html>.
Thanks to Linus Björnstam for this new API!

** SRFI-14 character data set upgraded to Unicode 13.0.0

* Bug fixes

** Fix heap corruption when allocating structs
   (<https://bugs.gnu.org/39266>)

This bug would cause random crashes; users are invited to upgrade.
Thanks to rr (<https://rr-project.org/>) for being instrumental in
finding this bug!

** Fix race condition between 'abort-to-prompt' and stack marking
   (<https://bugs.gnu.org/28211>)

This bug could occasionally cause crashes in multi-threaded Guile
programs using delimited continuations or exceptions.

** Ensure weak sets are occasionally vacuumed
   (<https://bugs.gnu.org/40194>)

Previously, weak sets, which are used internally for interned symbols
and for ports with SCM_PORT_TYPE_NEEDS_CLOSE_ON_GC, could grow seemingly
indefinitely without being vacuumed.

** Interpret dynamic library name as literal file name first
   (<https://bugs.gnu.org/21076>)

Until now, 'dynamic-link' would always append an extension, such as
".so", to the user-provided file names.  Now, 'dynamic-link' first tries
the file name literally, and only then falls back to adding the OS
shared library file name extension.

This allows users to refer to "libsomething.so.1.2.3" instead of
"libsomething.so", the latter being usually provided by "-dev" packages
of GNU/Linux distributions, unlike the former.

** <libguile.h> includes <libguile/hooks.h> again

This fixes an omission in Guile 3.0.

** Fix fixpoint computation in compute-significant-bits
   (<https://bugs.gnu.org/38486>)

** Fix compilation '--without-threads'
   (<https://bugs.gnu.org/40075>)

* New deprecations

** 'tmpnam' is now deprecated

The 'tmpnam' function in the C library has been deprecated for years due
to security concerns; the Scheme procedure 'tmpnam' is now deprecated as
well, in favor of 'mkstemp!'.  In addition, a new '--disable-tmpnam'
option has been added to 'configure' for users who would like to disable
it right away.

                             *  *  *

Here are the compressed sources:
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.gz   (21MB)
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.lz   (11MB)
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.xz   (13MB)

Here are the GPG detached signatures[*]:
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.gz.sig
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.lz.sig
  https://ftp.gnu.org/gnu/guile/guile-3.0.2.tar.xz.sig

Use a mirror for higher download bandwidth:
  https://www.gnu.org/order/ftp.html

Here are the SHA256 checksums:

  04485e759b2aec44e33cdd06ece28bbb859c1dbef73e8aeac02e4e7ca2fe0e57  guile-3.0.2.tar.gz
  1d8330d4f0b284d216beef35670b8d8471984e7b2b32a5f2fd3cb10c88751c59  guile-3.0.2.tar.lz
  53c47d320533c80a3145adbd83e14bbe107c0441c18a8b214ff20849b28a9f8a  guile-3.0.2.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-3.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 pool.sks-keyservers.net \
      --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.16.2
  Libtool 2.4.6
  Makeinfo 6.7
  Gnulib v0.1-1157-gb03f418


Happy hacking with Guile!

Ludovic Courtès and Andy Wingo.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-27 15:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-27 15:24 GNU Guile 3.0.2 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).