GNU Guile 2.1.8 released (beta)
Andy Wingo <[email protected]> Fri, 10 Mar 2017 14:30:52 +0100
| Newsgroups | gmane.lisp.guile.devel,gmane.lisp.guile.user,gmane.lisp.guile.sources |
|---|---|
| Message-ID | <[email protected]> |
We are pleased to announce GNU Guile release 2.1.8. Guile 2.1.8 is the eighth pre-release in what will eventually become the 2.2 release series. We are optimistic that no further pre-releases will be required. We encourage you to test this pre-release and provide feedback to [email protected]. This release focuses on portability bugs. There are also a number of miscellaneous fixes. See the full NEWS below for an incomplete list of bugs fixed, along with improvements to the GUILE_PROGS macro and the addition of truly thread-local fluids. With luck, we will be able to make a stable 2.2.0 release next week, so do give this tarball a try! * * * Guile is an implementation of the Scheme programming language. 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 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 implements many common Scheme standards, including R5RS, R6RS, and a number of SRFIs. In addition, Guile includes its own module system, full access to POSIX system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, and powerful string processing. Guile 2.1.8 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.8.tar.gz (17MB) http://alpha.gnu.org/gnu/guile/guile-2.1.8.tar.xz (10MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.1.8.tar.gz.sig http://alpha.gnu.org/gnu/guile/guile-2.1.8.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 51f415403e8b44ea42d6ae2cbadf4b06bbe9801e8d1f34afb8f45098abb59a1b guile-2.1.8.tar.gz f5080f609123508e722307b8cf3ecbe8f53725bd89d170d3917e718ca1da0966 guile-2.1.8.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.8.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-1157-gb03f418 Makeinfo 6.3 * * * Changes in 2.1.8 (changes since the 2.1.7 alpha release): * Notable changes ** Update to latest 2.0 changes Notably this includes the fix for CVE-2016-8606 and the fix to make Guile's builds reproducible. ** GUILE_PROGS searches for versioned Guile The GUILE_PROGS autoconf macro can take a required version argument. As a new change, that version argument is additionally searched for as a suffix. For example, GUILE_PROGS(2.2) would look for guile-2.2, guile2.2, guile-2, guile2, and then guile. The found prefix is also applied to guild, guile-config, and the like. Thanks to Freja Nordsiek for this work. ** Add thread-local fluids Guile now has support for fluids whose values are not captured by `current-dynamic-state' and not inheritied by child threads, and thus are local to the kernel thread they run on. See "Thread-Local Variables" in the manual, for more. * Bug fixes ** Fix build errors on macOS ** Fix build errors on Cygwin ** Fix build errors with clang ** Fix statprof and gcprof stack narrowing ** Fix errors on platforms with 64 KB pages ** Fix make-polar signedness of zeros ** Fix backtraces in case-lambda with multiple cases ** Fix generic function dispatch with multiple arities ** Fix guild compile --to=cps ** Fix bogus strength reduction on (* -1 x) ** Fix type inference when multiplying flonum with complex ** Fix bug comparing real and complex numbers ** Improve memory use of read-string / get-string-all ** Allow contification within case-lambda ** Relax some constraints for circular module dependencies ** Fix scm_with_guile for threads already known to libgc ** Better errors for keyword arguments missing values (foo #:bar) ** Various manual updates ** Use docstrings instead of comments for many core Guile functions ** Support truncate-file on string ports ** Getting output from R6RS string ports now truncates buffer ** Fix class-allocated GOOPS slots ** Fix tracing/breakpoints (broken in 2.2 since a long time!) ** `select' just returns instead of throwing exception on EINTR