From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Newsgroups: gmane.lisp.guile.sources,gmane.lisp.guile.user,gmane.lisp.guile.devel Subject: GNU Guile 3.0.9 released Followup-To: gmane.lisp.guile.user Date: Wed, 25 Jan 2023 15:32:13 +0100 Message-ID: <87a626u1le.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31508"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) To: guile-user@gnu.org, guile-sources@gnu.org, guile-devel@gnu.org, info-gnu@gnu.org Original-X-From: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Wed Jan 25 15:34:28 2023 Return-path: Envelope-to: guile-sources@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pKgr6-0007z7-5J for guile-sources@m.gmane-mx.org; Wed, 25 Jan 2023 15:34:28 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pKgqZ-0004F7-WC; Wed, 25 Jan 2023 09:33:56 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKgq0-00049h-Rp; Wed, 25 Jan 2023 09:33:24 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKgpy-0007cH-Ro; Wed, 25 Jan 2023 09:33:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=2suTQ8CEd84Wvw6Rrwyp34UDcrkZC83KujGfJXL1mns=; b=HYxhWHruSSDaiC fwUDVmjiXeEk9CrPGRJ88yOqAX1slr/Vgn3+SXnf/aopzaeWlDIWXF3NzEetXqW1xgCdvwRZ+LZ/b U1pimacQFoPzHzKVpnh42RQoSyUjS/7yRp6Zw1VwZziHSn0qIKiz/Bvtb2H+Rf6nv4T3nlx7WM6z2 4Km7WKajRJdsdNhBNKkv/B25FlqHQBqKNa/nxSG/A0l7uegvzav+AUQMX71Z6OAY5QzS42GgspCuU 93DMPDOSUEyQAOTZIgJwO03MEDFDPSelk6K8RkIX6yoq9J29o/ahLPxnsdfMTWgMuJx5yVymc9n99 K2O/WdO8ypqJ2i+1tgEQ==; Original-Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201] helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKgoz-0003cs-SH; Wed, 25 Jan 2023 09:32:48 -0500 Mail-Followup-To: guile-user@gnu.org X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Sextidi 6 =?utf-8?Q?Pluvi=C3=B4se?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Laurier-thym X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu X-BeenThere: guile-sources@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Guile source code postings and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Original-Sender: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.sources:614 gmane.lisp.guile.user:18873 gmane.lisp.guile.devel:21631 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable We are pleased to announce GNU Guile release 3.0.9, the latest in the 3.0 stable release series, corresponding to 138 commits by 27 people since 3.0.8. This release provides many bug fixes as well as new functionality, including new bindings to POSIX interfaces. See the =E2=80=98NEWS=E2=80=99= excerpt below for details. Compared to the previous stable series (2.2.x), Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. 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. Check out the web page for more info and resources: https://gnu.org/software/guile Guile 3.0.9 can be installed in parallel with Guile 2.2.x; see http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.h= tml. Here are the compressed sources: https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.gz (9.3MB) https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.lz (5.2MB) https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.xz (5.5MB) Here are the GPG detached signatures: https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.gz.sig https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.lz.sig https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.xz.sig Use a mirror for higher download bandwidth: https://www.gnu.org/order/ftp.html Here are the SHA1 and SHA256 checksums: 6ce38ec3fefc19aa08d4662e9b054f7018a72004 guile-3.0.9.tar.gz GFJQea0poNRtFcdlgbXZHIcCMBv9ghZm0uHRNyYWKBE guile-3.0.9.tar.gz bcc02997587cdd03a831ee8d7153cad92629dc3f guile-3.0.9.tar.lz vA7go2D7E5GcFOtuJFMxmt8eyZgojJk4KbzxePtIzJo guile-3.0.9.tar.lz bf6af1aac320a56233d4d8c0fbeb2c0dca474eab guile-3.0.9.tar.xz GiYlrHKyNm6VeS8/51j9Lfd1tARKkKSpeHMm5mwNdQ0 guile-3.0.9.tar.xz The SHA256 checksum is base64 encoded, instead of the hexadecimal encoding that most checksum tools default to. 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.9.tar.gz.sig The signature should match the fingerprint of the following key: pub rsa4096 2014-08-11 [SC] 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 uid [ unknown] Ludovic Court=C3=A8s uid [ unknown] Ludovic Court=C3=A8s uid [ unknown] Ludovic Court=C3=A8s (Inria) If that command fails because you don't have the required public key, or that public key has expired, try the following commands to retrieve or refresh it, and then rerun the 'gpg --verify' command. gpg --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 As a last resort to find the key, you can try the official GNU keyring: wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg gpg --keyring gnu-keyring.gpg --verify guile-3.0.9.tar.gz.sig This release was bootstrapped with the following tools: Autoconf 2.71 Automake 1.16.5 Libtool 2.4.7 Gnulib v0.1-5703-g356a414e8c Makeinfo 7.0.1 Changes in 3.0.9 (since 3.0.8) * Notable changes * New interfaces and functionality ** New `spawn' procedure to spawn child processes The new `spawn' procedure creates a child processes executing the given program. It lets you control the environment variables of that process and redirect its standard input, standard output, and standard error streams. Being implemented in terms of `posix_spawn', it is more portable, more robust, and more efficient than the combination of `primitive-fork' and `execl'. See "Processes" in the manual for details, and see the 2019 paper entitled "A fork() in the road" (Andrew Baumann et al.) for background information. `system*', as well as the `open-pipe' and `pipeline' procedures of (ice-9 popen) are now implemented in terms of `posix_spawn' as well, which fixes bugs such as redirects: . ** `open-file' now supports an "e" flag for O_CLOEXEC Until now, the high-level `open-file' facility did not provide a way to pass O_CLOEXEC to the underlying `open' call. It can now be done by appending "e" to the `mode' string passed as a second argument. See "File Ports" in the manual for more info. ** `pipe' now takes flags as an optional argument This lets you pass flags such as O_CLOEXEC and O_NONBLOCK, as with the pipe2(2) system call found on GNU/Linux and GNU/Hurd, instead of having to call `fnctl' afterwards. See "Ports and File Descriptors" in the manual for details. ** Bindings to `openat' and friends The procedures `openat', `open-fdes-at', `statat', `chownat', `unlinkat', `chmodat', `renameat', `mkdirat' and `symlinkat' have been added. They resolve file names relative to a directory passed as a file port. The procedures `chdir' `readlink' and `utime' have been extended to support file ports. The related flags `AT_REMOVEDIR' and `AT_EACCESS' have been added. See `File System' in the manual ** Abstract Unix-domain sockets are supported It is now possible to create an AF_UNIX socket with a leading zero byte in its file name to create an abstract Unix-domain socket. See "man 7 unix" for information on abstract Unix-domain sockets. ** New socket-related constants defined The `IN6ADDR_ANY' and `IN6ADDR_LOOPBACK' are now defined on systems with IPv6 support; they can be used with `bind'. Likewise, the `IPPROTO_IPV6' and `IPV6_V6ONLY' constants are defined, for use with `setsockopt'. ** New `bytevector-slice' procedure As an extension to the R6RS interface, the new (rnrs bytevectors gnu) module defines `bytevector-slice', which returns a bytevector that aliases part of an existing bytevector. See "Bytevector Slices" in the manual. ** Disassembler now shows intrinsic names Disassembler output now includes the name of intrinsics next to each `call-' instruction (info "(guile) Intrinsic Call Instructions"). ** Linker and assembler consume less memory Previously, the entire output ELF file contents would be stored in memory when compiling as with `guild compile'. This is no longer the case. * Bug fixes ** JIT compilation is now supported on Apple M1 processors (https://bugs.gnu.org/44505) ** Type sizes are correctly determined when cross-compiling (https://bugs.gnu.org/54198) ** psyntax honors source properties coming from read hash extensions (https://bugs.gnu.org/54003) ** ./configure checks whether the linker supports '-flto' (needed on macOS) ** libguile/srfi-14.i.c is now longer shipped and is instead built from sou= rce (https://bugs.gnu.org/54111) ** Cross-compilation supports triplets with empty vendor strings (https://bugs.gnu.org/54915) ** It is possible to use a 'library-form' inside 'cond-expand' in R7RS libr= aries (https://bugs.gnu.org/55934) ** 'coverage-data->lcov' accepts a #:modules argument as documented (https://bugs.gnu.org/54911) ** 'connect' returns #f upon EAGAIN, not just EINPROGRESS ** (web http) capitalizes the "Basic" authorization header ** (web http) terminates chunked encoding with an extra \r\n ** (web client) retries TLS handshake upon non-fatal errors (https://bugs.gnu.org/49223) ** 'primitive-load' opens files as O_CLOEXEC (https://bugs.gnu.org/57567) ** Baseline compiler no longer crashes on (not (list 1 2)) (https://bugs.gnu.org/58217) ** Fix documentation of =E2=80=98mkdir=E2=80=99 Previously, the documentation implied the umask was ignored if the mode was set explicitly. However, this is not the case. ** 'system*' honors output/error port redirects (https://bugs.gnu.org/52835) ** 'open-input-pipe' & co. are now much faster (https://bugs.gnu.org/59321) ** Fix crash with out-of-bound indexes with `string-ref' and `fluid-ref*' (https://bugs.gnu.org/60488, https://bugs.gnu.org/58154) ** Fix infinite loop when compiling (make-vector) (https://bugs.gnu.org/60522) Many thanks to everyone who contributed to Guile, in particular to the following people for their contributions to code and documentation: 2 Aleix Conchillo Flaqu=C3=A9 5 Andrew Whatson 3 Andy Wingo 1 Antoine Kalmbach 1 Arne Babenhauserheide 3 Christopher Baines 1 Colin Woodbury 7 Daniel Llorens 2 Fulbert 5 Jean Abou Samra 1 Jessica Tallon 3 Josselin Poiret 1 Liliana Marie Prikler 58 Ludovic Court=C3=A8s 14 Maxime Devos 5 Michael Gran 1 Mihail Iosilevich 1 Mikael Djurfeldt 13 Mike Gran 1 Olivier Dion 1 Rob Browning 1 Sergei Trofimovich 1 Taylor R Campbell 2 Timothy Sample 2 Vijay Marupudi 1 Zhang Ning 2 jgart Ludo=E2=80=99. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmPRPW0NHGx1ZG9AZ251 Lm9yZwAKCRAJCxGZPZrrtbCkEACLc8xObQPH+r9UEB0y7a8ZZA/g0e+zhY+gs2pE +t8Rwiz/XKsgvnC3bOBSGXoumfIb9vJrpa5KPSznZ9H3B2R/cMbktFBT/IMuVAia OdG4EbkSIqOBSh/wSuJwywMuQ9K5fkIyoZ82xku94y1hm6Cj/EbEtkvm2dCCb4cj 9NX2Qk4HyF8QVJIagitk43hUEndk20s2DI9yqgJLFfpsDREzr98u51ien5iaDrFU wlH+LMAvxcPU5oNZ/xuJ1+u3GrR8lR7P5SuMpKjmrf499NqB+0XW92qFnba5n1dD sW8RdpA4Cv1HFnvk3rBu+UrrDV8vQxsEpvUlE57/A3/Rm1dv/buFhBwcwPAyCavZ 5j6gIeuVMGHkXsW41NQOF8LW4R8KsThuWWE6bihSAZkdz/lP7y9296+3uU6/d33g iPRJrVbFjn7kd8REYebzVuygO8TMVEjvazZanT6RiAqlk0/WnsNEGy4iRHW4z6gx ih6zUVCjFFledulWyhq8IdE/os6ce7b8zjh0WwFMBK9VNydByEkMS9S0AuIRo86J haC/ZOx5qyszixllkjRMQvkVB+oibvRebrdhlxRo17+ZyX+JTOt2O3rGp8rO5yVq viAR80EsuB1U92w0Auv35bqiMhXC6L4rqRP4fTHpj6A9u1QZX8JWfUb8qYgV69Fj lHgMiw== =LTRG -----END PGP SIGNATURE----- --=-=-=--