I compiled it myself, using Xcode's cc (Apple clang version 14.0.0). Got a ton of warnings, mostly of the form "implicit conversion changes signedness". These seem like the sort of thing that might not be too hard to fix. It's a worthwhile goal to eliminate compiler warnings from as many of the build environments as possible. I used Homebrew to install various needed packages. I also installed it "over the top" of the 2.23.81 Guile 2 binary distribution, although I deleted all of the bits of Guile 2, including the bytecode cache.
After running "make bytecode" and "make install-bytecode", the elapsed time for running my script went from 17 minutes down to about 6 minutes. Still slightly slower than Guile 2, but more in the neighborhood where some optimizations might easily bring it into parity. Also, I didn't try to run a controlled benchmark, so this is really just a rough guess on performance. Process creation and destruction has to be a sizable part of the overhead, too. This performance differential is significant enough that "make bytecode" should probably just be part of "make all" and "make install-bytecode" should be included in "make install". On Sat, Nov 26, 2022 at 2:10 PM Jonas Hahnfeld <hah...@hahnjo.de> wrote: > > On Sat, 2022-11-26 at 13:36 -0800, Eric Benson wrote: > > In anticipation of the impending release of 2.24, I recently ported my > > Lilypond files from 2.22 to 2.23.81. I have about 100 lead sheets with > > lyrics, parameterized so that I can easily create them in different keys > > and in treble clef or bass clef. There are all in the range of 1 to 2 pages > > when typeset. I have a script that generates them in four different keys, > > so that's roughly 400 invocations of lilypond. > > > > I know that Lilypond 2.24 binary distributions will be built with Guile 2, > > not Guile 3, but I thought you might like to know that I was able to build > > 2.23.81 from source with Guile 3, run my script, and I got what appears to > > be the exact same result as I had with the Guile 2 binary distribution. > > This was on a Mac Studio with Apple CPU running MacOS Ventura 13.0.1. I'm > > not sure if the Guile 3 JIT is enabled in this build, or if it even works > > currently on Apple silicon. At any rate, lilypond with Guile 3 on this > > system works, although it was considerably slower than Guile 2 in my build. > > My script takes about 5 minutes elapsed time on 2.23.81 with Guile 2, and > > it took about 17 minutes with Guile 3. > > Thanks for measuring this! May I ask how you installed LilyPond? If you > compiled it yourself, did you run "make bytecode" and "make install- > bytecode" as advertised here: > http://lilypond.org/doc/v2.23/Documentation/changes/index.html#notes-for-source-compilation-and-packagers > > Jonas