unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GNU Guile 2.1.4 released [beta]
@ 2016-09-14 11:41 Andy Wingo
  2016-09-14 17:45 ` Nala Ginrut
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Andy Wingo @ 2016-09-14 11:41 UTC (permalink / raw)
  To: guile-user, guile-devel, guile-sources

We are pleased to announce GNU Guile release 2.1.4.

Guile 2.1.4 is the fourth pre-release in what will eventually become the
2.2 release series.  We encourage you to test this release and provide
feedback to guile-devel@gnu.org.

This release adds an atomic reference facility and fixes many small
bugs.  See the full NEWS below, for 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, with
support for many SRFIs, packaged for use in a wide variety of
environments.  In addition to implementing the R5RS Scheme standard,
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.  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 2.1.4 can be installed in parallel with Guile 2.0.x; see
http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html.

A more detailed NEWS summary follows these details on how to get the
Guile sources.

Here are the compressed sources:
  http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.gz   (17MB)
  http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz   (10MB)

Here are the GPG detached signatures[*]:
  http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.gz.sig
  http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz.sig

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

Here are the SHA256 checksums:

  04dd7b9ea58644b5631e74c212678db6498f945c5dd8f3900c01409c054ad7c3  guile-2.1.4.tar.gz
  326440e5041892ea8f99828178385f6066f936353d3a91404b88986f91f713f1  guile-2.1.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.1.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 FF478FB264DE32EC296725A3DDC0F5358812F8F2

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.15
  Libtool 2.4.6
  Gnulib v0.1-800-g68b6ade
  Makeinfo 6.1


Changes in 2.1.4 (changes since the 2.1.3 alpha release):

* Notable changes
** C99 required

Following Emacs, you must use a C99-capable compiler when building
Guile.  In the future we also expect require C99 to use Guile's C
interface, at least for `stdint' support.

* New interfaces
** Implement R6RS custom binary input/output ports

See "Custom Ports" in the manual.

** Implement R6RS output-buffer-mode
** Implement R6RS bytevector->string, string->bytevector

See "R6RS Transcoders" in the manual.

** Thread-safe atomic boxes (references)

See "Atomics" in the manual.

** File descriptor finalizers

See "Ports and File Descriptors" in the manual.

* Performance improvements
** Added unboxing support for `logxor'
** Better integer unboxing

* Incompatible changes
** Statically scoped module duplicate handlers

It used to be that if a module did not specify a #:duplicates handler,
when a name was first referenced in that module and multiple imported
modules provide that name, the value of the
`default-duplicate-binding-handlers' parameter would be used to resolve
the duplicate bindings.  We have changed so that instead a module
defaults to the set of handlers described in the manual.  If the module
specifies #:duplicates, of course we use that.  The
`default-duplicate-binding-handlers' parameter now simply accesses the
handlers of the current module, instead of some global value.

* Bug fixes
** Better MinGW support

`system*' is now supported on MinGW targets.

** Avoid flushing buffers on ftell

Fixes regression relative to Guile 2.0.

** HTTP library does not require ETag lists to be qstrings

** Fix bug importing specific bindings with #:select

It used to be that if #:select didn't find a binding in the public
interface of a module, it would actually grovel in the module's
unexported private bindings.  This was not intended and is now fixed.

** Stronger thread-safety guarantees for port implementations

See "I/O Extensions" in the manual for notes on threads and port
implementations.

** Fix fixnum-range checks in R6RS fixnum bitops
   (http://bugs.gnu.org/14917)

** Fix `monitor' macro

** Fix bug with GUILE_INSTALL_LOCALE=1 and default port encodings

If GUILE_INSTALL_LOCALE is unset in the environment or set to 1, Guile
will call setlocale() to install the locale.  However it was neglecting
to set the default port encoding to the locale's encoding.  This is
fixed.

** Various compiler bug fixes



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-09-18 13:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-14 11:41 GNU Guile 2.1.4 released [beta] Andy Wingo
2016-09-14 17:45 ` Nala Ginrut
2016-09-15 19:19 ` Jan Wedekind
2016-09-15 19:44   ` David Pirotte
2016-09-15 20:00     ` Jan Wedekind
2016-09-15 19:45 ` Jan Wedekind
2016-09-15 20:07   ` Jan Wedekind
2016-09-16 15:49   ` David Pirotte
2016-09-16 19:42     ` Jan Wedekind
2016-09-16 20:42     ` Jan Wedekind
2016-09-17 14:07       ` David Pirotte
2016-09-18 13:42         ` Jan Wedekind

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).