Am Di., 13. Nov. 2018 um 01:12 Uhr schrieb Mikael Djurfeldt <mik...@djurfeldt.com>: > > It would be nice to have guile-1.8 in that list since some users stayed at > that version due to 2.0 being slower.
As does LilyPond... > Maybe, in time, we can get everyone back to the most recent release. :-)) I wrote some own test-code. To be absolutely clear, this code is silly and terrible and accumulates expensive procedures done again and again.. If I would see something like that I'd usually shout: "Man, are you crazy??" Nevertheless, I post it here (and the results) to expose the string-problem, which LilyPond still fights with (among others). (begin (use-modules (srfi srfi-1)) (let ((ls '())) (for-each (lambda (x) (set! ls (cons (string-append "'" (object->string (eval-string "'(a b c)"))) ls ))) (iota 10000)) (set! ls (delete-duplicates ls)) (write (version)))) Invoked with $ time guile-whatever-version path/to/file "1.8.8" real 0m0,471s user 0m0,446s sys 0m0,018s "2.0.14" real 0m3,141s user 0m3,595s sys 0m0,111s "2.2.4.9-71f536" real 0m1,406s user 0m1,633s sys 0m0,063s "2.9.1" real 0m1,385s user 0m1,615s sys 0m0,033s For this code guilev1 beats all others, although guile-2.9.1 is much faster than 2.0.14 As said, it's a worse test, exposing a guilev2 weakness. And ofcourse not the only problem LilyPond is facing with guilev2. I do have a working guile-2.9.1/LilyPond-setup and results for real-world ly-files are usually not that dramatically, but still big. Otoh, I observe a steady improvement from 2.0.14 to 2.2.4 and the most recent 2.9.1 So I'm eager to see how the final 3.0 will work. Thanks, Harm