GNU Guile 3.0.4 released
We are pleased but also embarrassed to announce GNU Guile release 3.0.4. This release fixes the SONAME of libguile-3.0.so, which was wrongfully bumped in 3.0.3. Distributions should use 3.0.4. Apologies! * * * 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, 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. Guile 3.0 can be installed in parallel with Guile 2.2.x; see http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html. * * * Changes in 3.0.4 (since 3.0.3) This release fixes the SONAME of libguile-3.0.so, which was erroneously bumped in 3.0.3 compared to 3.0.2. Distributions are strongly encouraged to use 3.0.4 instead of 3.0.3. Thanks to Chris Vine for reporting the issue. * * * Here are the compressed sources: https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.gz (21MB) https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.lz (11MB) https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.xz (13MB) Here are the GPG detached signatures[*]: https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.gz.sig https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.lz.sig https://ftp.gnu.org/gnu/guile/guile-3.0.4.tar.xz.sig Use a mirror for higher download bandwidth: https://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 13f2f61a665469d330e651c8e9f7faecbb87fe474767f9532f2e821701730957 guile-3.0.4.tar.gz f2b0b66fd72bc24df76856e1549bf327c025b8a5d5fa3cb1696327c5941c89c4 guile-3.0.4.tar.lz 6b7947dc2e3d115983846a268b8f5753c12fd5547e42fbf2b97d75a3b79f0d31 guile-3.0.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-3.0.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 pool.sks-keyservers.net \ --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.16.2 Libtool 2.4.6 Makeinfo 6.7 Gnulib v0.1-1157-gb03f418 Happy hacking with Guile! Ludovic Courtès and Andy Wingo. signature.asc Description: PGP signature
Re: GNU Guile 3.0.3 released
Hello, Andy Wingo skribis: > On Tue 23 Jun 2020 11:36, Chris Vine writes: [...] >>> I was hesitant about the SONAME: the ABI jump was unnecessary unless in >>> ‘--disable-deprecated’ builds. I erred on the side of cautiousness: >>> >>> >>> https://git.savannah.gnu.org/cgit/guile.git/commit/?id=5d052c87bd8f0fd894e67f0bebd4fa6f6160d83c >> >> Hi, >> >> Ah right. There must have been two SO breaks between guile-3.0.2 and >> guile-3.0.3. >> >> It's a nuisance having SO bumps on micro releases and I wonder if that >> could be included in the announcement so that you don't first notice it >> when stuff fails to run? > > I think I agree with Chris. The intention is certainly to have a stable > ABI within a stable series, so 3.0.3 should have the same CURRENT. > > It's certainly correct that a --disable-deprecated 3.0.3 build has a > different ABI than 3.0.2, and if that were what we were looking at, we > would indeed need the CURRENT version bump; but I think the premise is > wrong: we do *not* have a stable ABI in --disable-deprecated builds, and > we never have. Otherwise we wouldn't ever be able to deprecate anything > within a stable series. Following our discussion on IRC, I agree with restoring CURRENT and will push a 3.0.4 in that direction. Apologies for the annoyance! Ludo’.
Re: The size of ‘.go’ files
Hi :) On Tue 09 Jun 2020 18:09, Ludovic Courtès writes: > Andy Wingo skribis: > >> The guile.arities section starts with a sorted array of fixed-size >> headers, then is followed by a sequence of ULEB128 references to local >> variable names, including non-arguments. The size is a bit perplexing, >> I agree. I can think of a number of ways to encode that section >> differently but we'd need to understand a bit more about it and why the >> baseline compiler is significantly different. > > ‘.guile.arities’ size should be proportional to the number of > procedures, right? Additionally, if there are only/mostly thunks, the > string table for argument names should be small if not empty. For N > thunks, I would expect roughly N 28-byte headers + NxM UL128, say 100 > bytes per thunk; there’s 1000 of them, so we should be ~100,000 bytes. > This is roughly what we get observe with the baseline compiler. Yes but that doesn't mean that you can directly compare baseline to CPS -- CPS has many more intermediate names than baseline for non-argument locals, all of which end up getting entries in the arities section. Andy
Re: GNU Guile 3.0.3 released
On Tue 23 Jun 2020 11:36, Chris Vine writes: > On Tue, 23 Jun 2020 10:05:51 +0200 > Ludovic Courtès wrote: >> Hi Chris, >> >> Chris Vine skribis: >> >> > On Sun, 21 Jun 2020 23:04:03 +0200 >> > Ludovic Courtès wrote: >> >> We are delighted to announce GNU Guile release 3.0.3, the third bug-fix >> >> release of the new 3.0 stable series. This release represents 170 >> >> commits by 17 people since version 3.0.2. See the NEWS excerpt that >> >> follows for full details. >> > [snip] >> > >> > This has a libguile so ABI jump from libguile-3.0.so.1 to >> > libguile-3.0.so.3, which breaks my binaries linked to libguile. Is that >> > normal for a micro update in the stable release series and if so can >> > there be some warning in the announcement? >> >> Yes, it means you need to relink those binaries. >> >> I was hesitant about the SONAME: the ABI jump was unnecessary unless in >> ‘--disable-deprecated’ builds. I erred on the side of cautiousness: >> >> >> https://git.savannah.gnu.org/cgit/guile.git/commit/?id=5d052c87bd8f0fd894e67f0bebd4fa6f6160d83c > > Hi, > > Ah right. There must have been two SO breaks between guile-3.0.2 and > guile-3.0.3. > > It's a nuisance having SO bumps on micro releases and I wonder if that > could be included in the announcement so that you don't first notice it > when stuff fails to run? I think I agree with Chris. The intention is certainly to have a stable ABI within a stable series, so 3.0.3 should have the same CURRENT. It's certainly correct that a --disable-deprecated 3.0.3 build has a different ABI than 3.0.2, and if that were what we were looking at, we would indeed need the CURRENT version bump; but I think the premise is wrong: we do *not* have a stable ABI in --disable-deprecated builds, and we never have. Otherwise we wouldn't ever be able to deprecate anything within a stable series. WDYT about a quick 3.0.4 that restores the CURRENT ? Cheers, Andy