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.user,gmane.lisp.guile.sources,gmane.lisp.guile.devel Subject: GNU Guile 3.0.9 released Date: Wed, 25 Jan 2023 15:34:04 +0100 Message-ID: <874jseu1ib.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="34737"; 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-user-bounces+guile-user=m.gmane-mx.org@gnu.org Wed Jan 25 15:34:58 2023 Return-path: Envelope-to: guile-user@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 1pKgrZ-0008o8-CD for guile-user@m.gmane-mx.org; Wed, 25 Jan 2023 15:34:57 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pKgrB-0004WH-LP; Wed, 25 Jan 2023 09:34:33 -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 1pKgr1-0004NW-Uw; Wed, 25 Jan 2023 09:34:26 -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 1pKgqz-0007o1-Sh; Wed, 25 Jan 2023 09:34:23 -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=QlNXphz64SKxEme1JgRQgmv72CgCvNc6slgnk4J314Q=; b=QxfoRUWpOcNFuw Wcrb3vTpDHsHuGRvpTtLfKeJdGRon0F5yNUclFpMLxuvYvLA4NQXB6nwLfK7VTeCYkaY3bWa+ELFx 3fQjzzMuXUHD5CDW7EnRFIJ+Xzsti7vWOqLKBOzwSuQC/s1sJglzxzq1bb0jBT7OrE5nSMzfRCKOa FENz9eb/11D2jHBs7os3P17qy8mzOP6C6BCgJiD7rcDniubjvkZscVsIi3YsBt7oQ//Ki1AYWYikb bLYyByrerGCkKL1PJk1dd9EPfaYtHE/a2gSeKOz64sbAGxdp2l1dN2zf9q9v2Ay9V78sQBLzUCSo5 YlfafwMt9NpQdF4nqWjg==; 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 1pKgqk-0006DR-EW; Wed, 25 Jan 2023 09:34:21 -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-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:18874 gmane.lisp.guile.sources:615 gmane.lisp.guile.devel:21632 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 on behalf of the Guile team. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmPRPdwNHGx1ZG9AZ251 Lm9yZwAKCRAJCxGZPZrrtcyhD/wOq4ahL8lzHf52zDj3V/B69iCRpJ0x9zJb3vbS rlCYviN/oVuNYu0s/pwoLaioVad1xFGeLWJ/XGtlovHHn27Svlfx5WQz5DCSg42n TYzwZ24t+UjlTvDbksaTWV3EuhnjM85e2L/mOtd5SemszXFJHhkOdPLVirLB0ouh hMjkRgeD8vWgQlm5OP+5dLU+lolRlBlPpPCZCoZgPoA0OfrItsD0gEw9+XYAY08U ttnqxLlysk46Hu2InCsrZmDTKW7pEfCiu6pUTaR62lCFnOO+HoF3sAnj6QIpwLhK AhmvpTZBFxR55/vBKUFLGy9hB0Hyul/BhlYSsYUQhKivQf39QsZJeCovMG9xxIvV m3xt915wgxmE2rYFJfmYY/GNGWzO940993SKGp+x+SCQC4VYjw0VfxiB81YcmCxF Kb7SoTyQK9fDKVcskeZOHdyq1SBfWicxrGOVV2lZ4RjzVoP0Nn61+WzsoOtuyMkJ LxxocvUnJoxiVDRNkpzwRLGadWVPI4swIT/LAIQAJH+sNfnwuGCZkIHQBG/PgFIX 0wMJNzaMr8ttg2LZVEAsMlL0Jx4o/zidpajG+IT23463j+pjvyg13EohqIMAA/vv 1NBxh2qTeybdnUVQtwzoC50rmtsZoCWRUJkL2Bs+XNgtiA5Vh2soX6o7J4iu8iN0 YPd0uw== =bTLx -----END PGP SIGNATURE----- --=-=-=--