[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Test reader speed of Guile 3.0.6

From: David Kastrup
Subject: Re: Test reader speed of Guile 3.0.6
Date: Fri, 12 Mar 2021 23:40:57 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

"Dr. Arne Babenhauserheide" <> writes:

> Han-Wen Nienhuys <> writes:
>> On Wed, Mar 10, 2021 at 8:23 AM Dr. Arne Babenhauserheide
>> <> wrote:
>>> there’s a Guile 3.0.6 release planned that includes a rewrite of the
>>> reader in Scheme. It has speed in the same order of magnitude as the
>>> previous reader but might have different performance characteristics.
>>> If I remember correctly, lilypond uses the reader a lot, so if you have
>>> a test-system with lilypond on Guile 3, could you test how running
>>> lilypond with the current Guile master from git affects lilypond?
>> last time I looked, building GUILE 3 from source was truly glacial,
>> making this kind of thing annoying to check.
> If you build from tarball it is much faster, because it then provides
> pre-created bootstrapping files. What’s so slow is creating the initial
> optimized reader.
>> You say "same order of magnitude". Do you have benchmarks so we know
>> what to expect?
> The current *average* spead of the reader is roughly 80% of the reader
> implemented in C, but with different performance characteristics. I’m
> asking here because I want to avoid surprising and avoidable changes
> that block Lilypond. I consider Lilypond to be the most important
> flagship project of Guile, and I want to do what I can to prevent
> unnecessary friction.

Sadly, you are not likely to block LilyPond.  The compilation
instructions for LilyPond strongly recommend using version 1.8.8 (or the
branch tip catered for by Thien-Thi Nguyen) since all other versions are
vastly slower and less stable.

All reasonably workable versions of LilyPond do this.  The others are
more like "proof of concept" installations provided by package
maintainers that are not by themselves LilyPond users.  They are
unusably slow and resource-intensive and have a tendency towards
crashing and eating all memory for non-trivial scores.

> Also Lilypond is the one Guile-using project that is actually
> essential and irreplaceable for stuff I do as Hobby (music).

If you do serious work with LilyPond and have a useful installation,
then the LilyPond file

\void \displayScheme #(version)

is likely to output


on the console.

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]