From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel,gmane.lisp.guile.user,gmane.lisp.guile.sources Subject: GNU Guile 2.1.7 released (beta) Date: Sat, 18 Feb 2017 11:31:20 +0100 Message-ID: <87y3x3zt6v.fsf@pobox.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1487413906 22953 195.159.176.226 (18 Feb 2017 10:31:46 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 18 Feb 2017 10:31:46 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) To: guile-user@gnu.org, guile-devel@gnu.org, guile-sources@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Feb 18 11:31:41 2017 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cf2Ij-0005Bn-JK for guile-devel@m.gmane.org; Sat, 18 Feb 2017 11:31:38 +0100 Original-Received: from localhost ([::1]:57934 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cf2Ip-0004Ed-Cd for guile-devel@m.gmane.org; Sat, 18 Feb 2017 05:31:43 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59418) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cf2Ii-0004EV-8h for guile-devel@gnu.org; Sat, 18 Feb 2017 05:31:37 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cf2If-0001cR-2z for guile-devel@gnu.org; Sat, 18 Feb 2017 05:31:36 -0500 Original-Received: from pb-sasl1.pobox.com ([64.147.108.66]:64568 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cf2Ie-0001c4-SP; Sat, 18 Feb 2017 05:31:33 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 406B55D9DB; Sat, 18 Feb 2017 05:31:29 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to :subject:date:message-id:mime-version:content-type; s=sasl; bh=Z XwbW17olUl+LNpfXRyeBWYoHQ8=; b=biewDuNEfUHX+7vjI/jVyi88u4jooQRw9 vpK0z68R1IEf3GZg6HrSj6aM3m+Z1qvRWV0Cj7XZSt8UvFvBqCeYioKDkWnbYx8I 8Q7eUsXrFqqefo5Qa+xS76rD1YZFRSV/rz4kpesRTJQBXLqactuGrXGPLzCv8nH4 Mv6mpERZCI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:subject :date:message-id:mime-version:content-type; q=dns; s=sasl; b=uRp 3ERo+m7svCdJOaXvJvBfbvw3i8SCJa+MU8N3dn0la91NbcD1GI3jt68aN68jNFvn ERG10h5ZqWGz8d3uwltZTZk1yMYH9wLxgOxUPHmJgC2UCM3d5wiRG5QG6WbGGk8o HveP4s551q3SoaDFv+lAL+ZGjY/BoaP/x/yKP6R0= Original-Received: from pb-sasl1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 383D25D9D9; Sat, 18 Feb 2017 05:31:29 -0500 (EST) Original-Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id 28B455D9D6; Sat, 18 Feb 2017 05:31:28 -0500 (EST) X-Pobox-Relay-ID: 680F6804-F5C5-11E6-A77B-CDEC6462E9F6-02397024!pb-sasl1.pobox.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 64.147.108.66 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:18915 gmane.lisp.guile.user:13286 gmane.lisp.guile.sources:463 Archived-At: We are pleased to announce GNU Guile release 2.1.7. Guile 2.1.7 is the seventh 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 is a bug-fix release, mostly fixing bugs related to suspending partial continuations on one thread and resuming them on another. See the full NEWS below for details. At this point you might ask yourself when 2.2.0 is coming. The answer is, very soon! A followup mail will propose a timeline and a list of blocker bugs. I would like to aim for final prerelease in another 4 weeks and a final release a week after that. * * * 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.7 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.7.tar.gz (17MB) http://alpha.gnu.org/gnu/guile/guile-2.1.7.tar.xz (10MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.1.7.tar.gz.sig http://alpha.gnu.org/gnu/guile/guile-2.1.7.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 917f2b06eb07383f092920a6e93ead78a0710afcdaabb66863aeb411b4cb3965 guile-2.1.7.tar.gz aae1ca162ff5a1f8d173effb8635e8691f9fdf612c254664ce65d3b78831c261 guile-2.1.7.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.7.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.7 (changes since the 2.1.6 alpha release): * Notable changes ** Web server now suspendable The web server's implementation has been slightly modified in order to allow coroutines to suspend and resume around it when it would block on input or output. See "Non-Blocking IO" in the manual for more. ** Add support for arrays in `truncated-print'. See "Pretty Printing" in the manual. Thanks to Daniel Llorens. ** Gnulib update Gnulib has been updated to v0.1-1157-gb03f418. * Performance improvements ** Stringbufs immutable by default Stringbufs are backing buffers for strings, and are not user-visible. Calling "substring" on a base string will result in a new string that shares state with the base string's stringbuf. A subsequent attempt to mutate the substring will first copy a fresh stringbuf; that is, Guile's strings are copy-on-write. There is also "substring/shared" which allows mutations to be shared between substring and base string; in that case the stringbuf is modified directly. It used to be that mutating a string would have to take a global lock, to ensure that no one was concurrently taking a copy-on-write substring of that string. That is, stringbufs were mutable by default and transitioning to immutable could happen at any time. This situation has been reversed: stringbufs are now immutable by default and attempts to mutate an immutable stringbuf will copy a fresh stringbuf and mark it as mutable. This way we can avoid the global lock. This change likely speeds up common "substring" workloads, though it make make the first in-place mutation on an immutable string take more time because it has to copy a fresh backing stringbuf. ** Speed up number->string ** `accept' now takes optional flags argument These flags can include `SOCK_NONBLOCK' and `SOCK_CLOEXEC', indicating options to apply to the returned socket, potentially removing the need for additional system calls to set these options. See "Network Sockets and Communication" in the manual, for more. * New deprecations ** `SCM_FDES_RANDOM_P' Instead, use `lseek (fd, 0, SEEK_CUR)' directly. * Bug fixes ** Fix too-broad capture of dynamic stack by delimited continuations Guile was using explicit stacks to represent, for example, the chain of current exception handlers. This means that a delimited continuation that captured a "catch" expression would capture the whole stack of exception handlers, not just the exception handler added by the "catch". This led to strangeness when resuming the continuation in some other context like other threads; "throw" could see an invalid stack of exception handlers. This has been fixed by the addition of the new "fluid-ref*" procedure that can access older values of fluids; in this way the exception handler stack is now implicit. See "Fluids and Dynamic States" in the manual, for more on fluid-ref*. ** Fix bug comparing unboxed floating-point values (#25492) Thanks to Daniel Llorens. ** Fix crasher bugs for multiple threads writing to same port ** Fix bug resuming partial continuations that contain prompts