GNU Guile 2.2.0 released
By Andy Wingo
March 17, 2017
We are pleased to announce GNU Guile 2.2.0, the first of a new stable release series. More than 6 years in the making, Guile 2.2 includes a new optimizing compiler and high-performance register virtual machine. Compared to the old 2.0 series, real-world programs often show a speedup of 30% or more with Guile 2.2.
Besides bringing the compiler and virtual machine, Guile 2.2 removes limitations on you and your programs by lowering memory usage, speeding up the "eval" interpreter, providing better support for multi-core programming, and last but not least, removing any fixed stack size limit. With Guile 2.2, you can recurse to your heart's content!
Not only does Guile 2.2 run fast, it also supports the creation of user-space concurrency facilities that have millions of lightweight "fibers" running at the same time. When a fiber goes to read or write on a port, and that operation would block, concurrency libraries built on Guile can now cause the calling fiber to suspend and only resume when the I/O operation can progress. In the mean-time, these concurrency facilities can schedule other fibers. Guile has not blessed any one library (yet?) but for some examples, see 8sync, guile-a-sync, and Fibers. Also check out the Fibers manual for a full discussion.
See the release announcement for full details and a download link. If you are migrating from earlier versions of Guile, be sure to read the NEWS from the release announcement for exhaustive information on user-visible changes relative to the previous stable series.
This release is parallel-installable with the 2.0 series. See Parallel Installations in the manual, for more. Many Guile libraries and applications already support 2.2; Ludovic Courtès mentions that Guix is ready for Guile 2.2, for example. Give your favorite application a try and if you have problems, check the NEWS for what steps to take to fix it, and pop by #guile if you need help.