I just managed to get guile-log running under guile 3.0.
yay!
On Thu, Jan 16, 2020 at 12:04 PM Andy Wingo wrote:
> We are delighted to announce GNU Guile release 3.0.0, the first in the
> new 3.0 stable release series.
>
> 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.
> See the NEWS extract at the end of the mail for full details.
>
>
> 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.0 can be installed in parallel with Guile 2.2.x; see
>
> http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html
> .
>
> A more detailed NEWS summary follows these details on how to get the
> Guile sources.
>
> Here are the compressed sources:
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.lz (10MB)
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.xz (12MB)
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.gz (21MB)
>
> Here are the GPG detached signatures[*]:
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.lz.sig
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.xz.sig
> http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.gz.sig
>
> Use a mirror for higher download bandwidth:
> http://www.gnu.org/order/ftp.html
>
> Here are the SHA256 checksums:
>
> e28c450d11f7335769f607214f9b79547400881ddbbc9805ccf3ce2121aa97e0
> guile-3.0.0.tar.lz
> c9138d6595a9f69bf9733d0bc2d3b9f3d8b79f35f289006912b3361cb0510c75
> guile-3.0.0.tar.xz
> 049b286849fa9764fac781071c4ec9daef707da51e5050ffb498d7bf6422da2f
> guile-3.0.0.tar.gz
>
> [*] 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.0.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 keys.gnupg.net --recv-keys
> 4FD4D288D445934E0A14F9A5A8803732E4436885
>
> and rerun the 'gpg --verify' command.
>
> This release was bootstrapped with the following tools:
> Autoconf 2.69
> Automake 1.16.1
> Libtool 2.4.6
> Gnulib v0.1-1157-gb03f418
> Makeinfo 6.7
>
> An extract from NEWS follows.
>
>
> Changes in 3.0.0 (since the stable 2.2 series):
>
> * Notable changes
>
> ** Just-in-time code generation
>
> Guile programs now run up to 4 times faster, relative to Guile 2.2,
> thanks to just-in-time (JIT) native code generation. Notably, this
> brings the performance of "eval" as written in Scheme back to the level
> of "eval" written in C, as in the days of Guile 1.8.
>
> See "Just-In-Time Native Code" in the manual, for more information. JIT
> compilation will be enabled automatically and transparently. To disable
> JIT compilation, configure Guile with `--enable-jit=no' or
> `--disable-jit'. The default is `--enable-jit=auto', which enables the
> JIT if it is available. See `./configure --help' for more.
>
> JIT compilation is enabled by default on x86-64, i686, ARMv7, and
> AArch64 targets.
>
> ** Lower-level bytecode
>
> Relative to the virtual machine in Guile 2.2, Guile's VM instruction set
> is now more low-level. This allows it to express more advanced
> optimizations, for example type check elision or integer
> devirtualization, and makes the task of JIT code generation easier.
>
> Note that this change can mean that for a given function, the
> corresponding number of instructions in Guile 3.0 may be higher than
> Guile 2.2, which can lead to slowdowns when the function is interpreted.
> We hope that JIT compilation more than makes up for this slight
> slowdown.
>
> ** Interleaved internal definitions and expressions allowed
>
> It used to be that internal definitions had to precede all expressions
> in their bodies. This restricti