[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU Guile 2.1.4 released [beta]
From: |
Nala Ginrut |
Subject: |
Re: GNU Guile 2.1.4 released [beta] |
Date: |
Thu, 15 Sep 2016 01:45:37 +0800 |
Nice work!
Thanks for working on it!
I think maybe we can expect 2.2 released end of this year, right? ;-)
Best regards.
On Wed, 2016-09-14 at 13:41 +0200, Andy Wingo wrote:
> 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 address@hidden
>
> 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
>