GNU's programming and extension languagehttps://www.gnu.org/news/feed.xmlRecent Posts2023-01-25T15:37:52ZGNU Guile 3.0.9 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-309-released.htmlLudovic Courtèsguile-devel@gnu.org2023-01-25T15:30:00Z<p>We are pleased to announce the release of GNU Guile 3.0.9! This release
fixes a number of bugs and adds several new features, among which:</p><ul><li>New bindings for POSIX functionality, including bindings for the
<code>at</code> family of functions (<a href="https://www.gnu.org/software/guile/manual/html_node/Ports-and-File-Descriptors.html#index-openat"><code>openat</code>, <code>statat</code>,
etc.</a>),
a new
<a href="https://www.gnu.org/software/guile/manual/html_node/Processes.html#index-spawn"><code>spawn</code></a>
procedure that wraps
<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html"><code>posix_spawn</code></a>
and that <code>system*</code> now uses, and the ability to pass flags such as
<code>O_CLOEXEC</code> to the <code>pipe</code> procedure.</li><li>A new
<a href="https://www.gnu.org/software/guile/manual/html_node/Bytevector-Slices.html"><code>bytevector-slice</code></a>
procedure.</li><li>Reduced memory consumption for the linker and assembler.</li></ul><p>For full details, see the
<a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.9#n8">NEWS</a>
entry, and check out the <a href="/software/guile/download">download page</a>.</p><p>Happy Guile hacking!</p>GNU Guile 3.0.8 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-308-released.htmlAndy Wingoguile-devel@gnu.org2022-02-11T08:49:00Z<p>We are delighted to announce the release of GNU Guile 3.0.8. This
release adds support for cross-module inlining: allowing small functions
and constants defined in one module to be inlined into their uses in
other modules. Guile 3.0.8 also fixes a number of bugs.</p><p>For full details, see the
<a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.8#n8">NEWS</a>
entry. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2022-02/msg00030.html">release
note</a>
for signatures, download links, and all the rest. Onwards and upwards!</p>GNU Guile 3.0.7 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-307-released.htmlAndy Wingoguile-devel@gnu.org2021-05-10T11:00:00Z<p>We are humbled to announce the release of GNU Guile 3.0.7. This release
fixes a number of bugs, a couple of which were introduced in the
previous release. For full details, see the
<a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.7#n8">NEWS</a>
entry. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2021-05/msg00002.html">release
note</a>
for signatures, download links, and all the rest. Happy hacking!</p>GNU Guile 3.0.6 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-306-released.htmlAndy Wingoguile-devel@gnu.org2021-04-28T09:20:00Z<p>We are pleased to announce the release of GNU Guile 3.0.6. This release
improves source-location information for compiled code, removes the
dependency on <code>libltdl</code>, fixes some important bugs, adds an optional
bundled "mini-gmp" library, as well as the usual set of minor
optimizations and bug fixes. For full details, see the
<a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.6#n8">NEWS</a>
entry. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2021-04/msg00037.html">release
note</a>
for signatures, download links, and all the rest. Happy hacking!</p>GNU Guile 3.0.5 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-305-released.htmlAndy Wingoguile-devel@gnu.org2021-01-07T13:50:00Z<p>We are delighted to announce the release of GNU Guile 3.0.5. This
release adds optimizations that can turn chains of repeated comparisons,
such as those produced by the <code>case</code> and (sometimes) the <code>match</code> macros,
into efficient O(1) table dispatches. For full details, see the
<a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.5#n8">NEWS</a>
entry. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2021-01/msg00001.html">release
note</a>
for signatures, download links, and all the rest. Happy hacking!</p>GNU Guile 3.0.4 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-304-released.htmlLudovic Courtèsguile-devel@gnu.org2020-06-24T17:00:00Z<p>We are pleased but also embarrassed to announce GNU Guile 3.0.4. This
release fixes the <code>SONAME</code> of <code>libguile-3.0.so</code>, which was wrongfully
bumped in
<a href="https://www.gnu.org/software/guile/news/gnu-guile-303-released.html">3.0.3</a>.
Distributions should use 3.0.4.</p><p>Apologies for the inconvenience!</p>GNU Guile 3.0.3 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-303-released.htmlLudovic Courtèsguile-devel@gnu.org2020-06-21T23:20:00Z<p>We are pleased to announce GNU Guile 3.0.3, the third bug-fix release of
<a href="https://www.gnu.org/software/guile/news/gnu-guile-300-released.html">the new 3.0 stable
series</a>!
This release represents 170 commits by 17 people since version 3.0.2.</p><p>The highlight of this release is the addition of a new <a href="https://wingolog.org/archives/2020/06/03/a-baseline-compiler-for-guile"><em>baseline
compiler</em></a>,
used at optimizations levels <code>-O1</code> and <code>-O0</code>. The baseline compiler is
designed to generate code fast, for applications where compilation speed
matters more than execution time of the generated code. It is around
ten times faster than the optimizing continuation-passing style (CPS)
compiler.</p><p>This version also includes <a href="https://www.gnu.org/software/guile/manual/html_node/Pipes.html#index-pipeline">a new <code>pipeline</code>
procedure</a>
to create shell-like process pipelines, improvements to the <a href="https://www.gnu.org/software/guile/manual/html_node/Bit-Vectors.html">bitvector
interface</a>,
and bug fixes for JIT compilation on ARMv7 machines.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-06/msg00008.html">release
announcement</a>
for details and the <a href="https://www.gnu.org/software/guile/download/">download
page</a> to give it a go!</p>GNU Guile 3.0.2 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-302-released.htmlLudovic Courtèsguile-devel@gnu.org2020-03-27T16:40:00Z<p>We are pleased to announce GNU Guile 3.0.2, the second bug-fix release of
<a href="https://www.gnu.org/software/guile/news/gnu-guile-300-released.html">the new 3.0 stable
series</a>!
This release represents 22 commits by 8 people since version 3.0.1.</p><p>Among other things, this release fixes a heap corruption bug <a href="https://issues.guix.gnu.org/issue/39266">that could
lead to random crashes</a> and a
rare <a href="https://issues.guix.gnu.org/issue/28211">garbage collection issue in multi-threaded
programs</a>.</p><p>It also adds a new module implementing <a href="https://srfi.schemers.org/srfi-171/srfi-171.html">SRFI-171
<em>transducers</em></a>.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-03/msg00046.html">release
announcement</a>
for details and the <a href="https://www.gnu.org/software/guile/download/">download
page</a> to give it a go!</p>GNU Guile 3.0.1 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-301-released.htmlLudovic Courtèsguile-devel@gnu.org2020-03-08T17:14:00Z<p>We are pleased to announce GNU Guile 3.0.1, the first bug-fix release of
<a href="https://www.gnu.org/software/guile/news/gnu-guile-300-released.html">the new 3.0 stable
series</a>!
This release represents 45 commits by 7 people since version 3.0.0.</p><p>Among the bug fixes is a significant performance improvement for
applications making heavy use of bignums, such as the compiler. Also
included are fixes for an embarrassing bug in the <code>include</code> directive,
for the <code>hash</code> procedure when applied to keywords and some other
objects, portability fixes, and better R7RS support.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-03/msg00012.html">release
announcement</a>
for details and the <a href="https://www.gnu.org/software/guile/download/">download
page</a> to give it a go!</p>GNU Guile 2.2.7 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-227-released.htmlLudovic Courtèsguile-devel@gnu.org2020-03-07T21:00:00Z<p>We are pleased to announce GNU Guile 2.2.7, the seventh bug-fix release
of the “legacy” 2.2 series (the current stable series is 3.0). This
release represents 17 commits by 5 people since version 2.2.6. Among
the bug fixes is a significant performance improvement for applications
making heavy use of bignums, such as the compiler.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-03/msg00009.html">release
announcement</a>
for details.</p>GNU Guile 3.0.0 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-300-released.htmlAndy Wingoguile-devel@gnu.org2020-01-16T14:00:00Z<p>We are ecstatic and relieved to announce the release of GNU Guile 3.0.0.
This is the first release in the new stable 3.0 release series.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00080.html">release
announcement</a>
for full details and a download link.</p><p>The principal new feature in Guile 3.0 is just-in-time (JIT) native code
generation. This speeds up the performance of all programs. Compared
to 2.2, microbenchmark performance is around twice as good on the whole,
though some individual benchmarks are up to 32 times as fast.</p><p><img src="https://wingolog.org/pub/guile-3.0.0-vs-2.2.6-microbenchmarks.png" alt="Comparison of microbenchmark performance for Guile 3.0 versus 2.2" /></p><p>For larger use cases, notably, this finally makes the performance of
<a href="https://wingolog.org/archives/2009/12/09/in-which-our-protagonist-forgoes-modesty">"eval" as written in
Scheme</a>
faster than "eval" written in C, as in the days of Guile 1.8.</p><p>Other new features in 3.0 include support for <a href="https://www.gnu.org/software/guile/manual/html_node/Internal-Definitions.html#Internal-Definitions">interleaved definitions
and expressions in lexical
contexts</a>,
<a href="https://www.gnu.org/software/guile/manual/html_node/Exception-Objects.html">native support for structured
exceptions</a>,
better support for the
<a href="https://www.gnu.org/software/guile/manual/html_node/R6RS-Support.html">R6RS</a>
and
<a href="https://www.gnu.org/software/guile/manual/html_node/R7RS-Support.html">R7RS</a>
Scheme standards, along with a pile of optimizations. See the <a href="https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS#n8">NEWS
file</a> for a
complete list of user-visible changes.</p><p>Guile 3.0.0 and all future releases in the 3.0.x series are
<a href="https://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html#Parallel-Installations">parallel-installable</a>
with other stable release series (e.g. 2.2). As the first release in a
new stable series, we anticipate that Guile 3.0.0 might have build
problems on uncommon platforms; bug reports are very welcome. Send any
<a href="https://www.gnu.org/software/guile/manual/html_node/Reporting-Bugs.html#Reporting-Bugs">bug
reports</a>
you might have as email at to <code>bug-guile@gnu.org</code>.</p><p>Happy hacking with Guile 3!</p>GNU Guile 2.9.9 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-299-beta-released.htmlAndy Wingoguile-devel@gnu.org2020-01-13T09:44:00Z<p>We are delighted to announce the release of GNU Guile 2.9.9. This is
the ninth and final pre-release of what will eventually become the 3.0
release series.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00047.html">release
announcement</a>
for full details and a download link.</p><p>This release fixes a number of bugs, omissions, and regressions.
Notably, it fixes the build on 32-bit systems.</p><p>We plan to release a final Guile 3.0.0 on 17 January: this Friday!
Please do test this prerelease; build reports, good or bad, are very
welcome; send them to <code>guile-devel@gnu.org</code>. If you know you found a
bug, please do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.8 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-298-beta-released.htmlAndy Wingoguile-devel@gnu.org2020-01-02T14:33:00Z<p>We are delighted to announce the release of GNU Guile 2.9.8. This is
the eighth and possibly final pre-release of what will eventually become
the 3.0 release series.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00000.html">release
announcement</a>
for full details and a download link.</p><p>This release fixes an error in libguile that could cause Guile to crash
in some particular conditions, and was notably experienced by users compiling Guile itself on Ubuntu 18.04.</p><p>We plan to release a final Guile 3.0.0 on 17 January, though we may
require another prerelease in the meantime. However until then, note
that GNU Guile 2.9.8 is a beta release, and as such offers no API or ABI
stability guarantees. Users needing a stable Guile are advised to stay
on the stable 2.2 series.</p><p>As always, experience reports with GNU Guile 2.9.8, good or bad, are
very welcome; send them to <code>guile-devel@gnu.org</code>. If you know you found
a bug, please do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.7 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-297-beta-released.htmlAndy Wingoguile-devel@gnu.org2019-12-13T14:31:00Z<p>We are delighted to announce GNU Guile 2.9.7, the seventh and hopefully
penultimate beta release in preparation for the upcoming 3.0 stable
series. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-12/msg00010.html">release
announcement</a>
for full details and a download link.</p><p>This release makes Guile go faster. Compared to 2.9.6 there are some
significant improvements:</p><p><img src="https://wingolog.org/pub/guile-2.9.6-vs-2.9.7-microbenchmarks.png" alt="Comparison of microbenchmark performance for Guile 2.9.6 and 2.9.7" /></p><p>The cumulative comparison against 2.2 is finally looking like we have no
significant regressions:</p><p><img src="https://wingolog.org/pub/guile-2.2.6-vs-2.9.7-microbenchmarks.png" alt="Comparison of microbenchmark performance for Guile 2.2.6 and 2.9.7" /></p><p>Now we're on the home stretch! Hopefully we'll get out just one more
prerelease and then release a stable Guile 3.0.0 in January. However
until then, note that GNU Guile 2.9.7 is a beta release, and as such
offers no API or ABI stability guarantees. Users needing a stable Guile
are advised to stay on the stable 2.2 series.</p><p>As always, experience reports with GNU Guile 2.9.7, good or bad, are
very welcome; send them to <code>guile-devel@gnu.org</code>. If you know you found
a bug, please do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.6 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-296-beta-released.htmlAndy Wingoguile-devel@gnu.org2019-12-06T14:15:00Z<p>We are delighted to announce GNU Guile 2.9.6, the sixth beta release in
preparation for the upcoming 3.0 stable series. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-12/msg00006.html">release
announcement</a>
for full details and a download link.</p><p>This release fixes bugs caught by users of the previous 2.9.5
prerelease, and adds some optimizations as well as a <code>guile-3</code> feature
for <code>cond-expand</code>.</p><p>In this release, we also took the opportunity to do some more rigorous
benchmarking:</p><p><img src="https://wingolog.org/pub/guile-2.2.6-vs-2.9.6-microbenchmarks.png" alt="Comparison of microbenchmark performance for Guile 2.2.6 and 2.9.6" /></p><p>GNU Guile 2.9.6 is a beta release, and as such offers no API or ABI
stability guarantees. Users needing a stable Guile are advised to stay
on the stable 2.2 series.</p><p>As always, experience reports with GNU Guile 2.9.6, good or bad, are
very welcome; send them to <code>guile-devel@gnu.org</code>. If you know you found
a bug, please do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.5 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-295-beta-released.htmlAndy Wingoguile-devel@gnu.org2019-11-22T16:15:00Z<p>We are delighted to announce GNU Guile 2.9.5, the fifth beta release in
preparation for the upcoming 3.0 stable series. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-11/msg00016.html">release
announcement</a>
for full details and a download link.</p><p>Besides the usual set of optimizations, this release adds an <code>--r6rs</code>
option for better R6RS support out of the box, and also adds a new
<code>--r7rs</code> corresponding to R&RS. Guile's core exception handling has
also been rebased onto the <code>raise-exception</code> and
<code>with-exception-handler</code> primitives, enabling better compatibility going
forward with structured exception objects, which are more common in the
broader Scheme community than Guile's old <code>throw</code> and <code>catch</code>.</p><p>GNU Guile 2.9.5 is a beta release, and as such offers no API or ABI
stability guarantees. Users needing a stable Guile are advised to stay
on the stable 2.2 series.</p><p>Experience reports with GNU Guile 2.9.5, good or bad, are very welcome;
send them to <code>guile-devel@gnu.org</code>. If you know you found a bug, please
do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.4 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-294-beta-released.htmlAndy Wingoguile-devel@gnu.org2019-08-25T22:25:00Z<p>We are delighted to announce GNU Guile 2.9.4, the fourth beta release in
preparation for the upcoming 3.0 stable series. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-08/msg00016.html">release
announcement</a>
for full details and a download link.</p><p>This release enables inlining of references to top-level definitions
within a compilation unit, speeding up some programs by impressive
amounts. It also improves compilation of floating-point routines like
<code>sin</code>, implements the Ghuloum/Dybvig "Fixing Letrec (reloaded)"
algorithm, and allows mixed definitions and expressions within lexical
contours, as is the case at the top level. Try it out, it's good times!</p><p>GNU Guile 2.9.4 is a beta release, and as such offers no API or ABI
stability guarantees. Users needing a stable Guile are advised to stay
on the stable 2.2 series.</p><p>Experience reports with GNU Guile 2.9.4, good or bad, are very welcome;
send them to <code>guile-devel@gnu.org</code>. If you know you found a bug, please
do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.9.3 (beta) releasedhttps://www.gnu.org/software/guile/news/gnu-guile-293-beta-released.htmlAndy Wingoguile-devel@gnu.org2019-08-03T16:20:00Z<p>We are delighted to announce GNU Guile 2.9.3, the third beta release in
preparation for the upcoming 3.0 stable series. See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-08/msg00001.html">release
announcement</a>
for full details and a download link.</p><p>This release improves the quality of the just-in-time (JIT) native code
generation, resulting in up to 50% performance improvements on some
workloads. See the article <a href="https://wingolog.org/archives/2019/06/26/fibs-lies-and-benchmarks">"Fibs, lies, and
benchmarks"</a>
for an in-depth discussion of some of the specific improvements.</p><p>GNU Guile 2.9.3 is a beta release, and as such offers no API or ABI
stability guarantees. Users needing a stable Guile are advised to stay
on the stable 2.2 series.</p><p>Experience reports with GNU Guile 2.9.3, good or bad, are very welcome;
send them to <code>guile-devel@gnu.org</code>. If you know you found a bug, please
do send a note to <code>bug-guile@gnu.org</code>. Happy hacking!</p>GNU Guile 2.2.6 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-226-released.htmlLudovic Courtèsguile-devel@gnu.org2019-06-30T23:55:00Z<p>We are pleased to announce GNU Guile 2.2.6, the sixth bug-fix
release in the new 2.2 stable release series. This release represents
11 commits by 4 people since version 2.2.5. First and foremost, it
fixes a <a href="https://issues.guix.gnu.org/issue/36350">regression</a> introduced
in 2.2.5 that would break Guile’s built-in HTTP server.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-06/msg00059.html">release
announcement</a>
for details.</p>GNU Guile 2.2.5 releasedhttps://www.gnu.org/software/guile/news/gnu-guile-225-released.htmlLudovic Courtèsguile-devel@gnu.org2019-06-20T13:20:00Z<p>We are pleased to announce GNU Guile 2.2.5, the fifth bug-fix
release in the new 2.2 stable release series. This release represents
100 commits by 11 people since version 2.2.4. It fixes bugs that
had accumulated over the last few months, notably in the SRFI-19 date
and time library and in the <code>(web uri)</code> module. This release also
greatly improves performance of bidirectional pipes, and introduces the
new <code>get-bytevector-some!</code> binary input primitive that made it possible.</p><p>Guile 2.2.5 can be downloaded from <a href="https://www.gnu.org/software/guile/download">the usual
places</a>.</p><p>See the <a href="https://lists.gnu.org/archive/html/guile-devel/2019-06/msg00045.html">release
announcement</a>
for details.</p><p>Besides, we remind you that Guile 3.0 is in the works, and that you can
try out <a href="https://www.gnu.org/software/guile/news/gnu-guile-292-beta-released.html">version 2.9.2, which is the latest beta release of what will
become
3.0</a>.</p><p>Enjoy!</p>