2017-01-13 20:53 GMT+01:00 David Pirotte <da...@altosw.be>: > Hello, > >> I never tried to compile lilypond with a guile version higher than >> 2.0.13, so I can't say anything about it. > > I (really) recommend you to do so: guile 2.2 is due to be released in a month > or > two, at the very most. 2.1.5 beta is the latest [1], 2.1.6 will be released > in a few > days (and I think it fixes a(some) utf8 related bug(s). > > At this point in time Thomas, if I was in your position, I would not spend > time to > get things done for 2.0, I would skip 2.0 and work on 2.2 instead, it is too > late, > and imo totally useless, 2.2 is an order of magnitude better then 2.0, for > numerous > reasons (read the NEWS since its first release...). Not only that, but when > 2.2 is > released, support to 2.0 will be kept to the very strict minimum... Don't > loose your > time here, it is my advice, maybe a bit more then 2c this time... > > Cheers, > David > > [1] http://lists.gnu.org/archive/html/guile-devel/2016-12/msg00005.html
I now compiled guile master from 35a90592501ebde7e7ddbf2486ca9d315e317d09 "Add unboxed floating point comparison instructions." Getting Guile 2.1.5.21-35a90 Then I compiled LilyPond with this guile (thanks Werner fore the hints) As mentioned before, scm_protects doesn't work anymore. Simply replacing it with scm_gc_protect_object as the IRC-log https://gnunet.org/bot/log/guile/2017-01-05 seems to sugest didn't work for me, so I commented the whole definition of ly:protects and replaced the result of it's call with an empty list. I'm aware this is brute-force and one should do a proper fix instead, but my most naive attempt (see above) didn't work, so someone with better knowledge is needed. A change in scheme-sandbox was needed as well, not for compilation but I stumbled over it ... Here the whole diff so far: $ git diff diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 1168ee9..e4efe60 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -267,17 +267,20 @@ LY_DEFINE (ly_dimension_p, "ly:dimension?", 1, 0, 0, (SCM d), /* Debugging mem leaks: */ +/* LY_DEFINE (ly_protects, "ly:protects", 0, 0, 0, (), "Return hash of protected objects.") { - //scm_protects is available only in Guile versions before 2.1. + //scm_protects is available only in Guile versions before 2.1. -> scm_gc_protect_object ?? #if SCM_MAJOR_VERSION < 2 || SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION < 1 return scm_protects; #else - return programming_error ("ly:protects is not supported in Guile 2.1"); + // return programming_error ("ly:protects is not supported in Guile 2.1"); + return scm_gc_protect_object; #endif } +*/ LY_DEFINE (ly_gettext, "ly:gettext", 1, 0, 0, (SCM original), diff --git a/ly/scheme-sandbox.ly b/ly/scheme-sandbox.ly index 7dec0dc..1f233c0 100644 --- a/ly/scheme-sandbox.ly +++ b/ly/scheme-sandbox.ly @@ -13,4 +13,8 @@ % requirements may be different. #(newline) -#(scm-style-repl) +#(if (guile-v2) + (begin + (use-modules (system repl repl)) + (start-repl)) + (scm-style-repl)) diff --git a/scm/lily.scm b/scm/lily.scm index d3164e4..703b00e 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -840,6 +840,7 @@ messages into errors.") (lambda (a b) (< (object-address (car a)) (object-address (car b)))))) + (protects '()) (out-file-name (string-append "gcstat-" (number->string gc-protect-stat-count) ".scm")) With this changes on top of my rebased local copy of the dev/guile-v2-work)-branch I've got a successful make and a full make doc. Up to now I only made some observations, far too early for more. (1) While invoking lilypond I always get a guile-message: Import (ice-9 threads) to have access to `call-with-new-thread'. Import (ice-9 threads) to have access to `current-thread'. (2) Compiling a huge score http://lists.gnu.org/archive/html/lilypond-user/2016-11/msg00943.html lasts ~15 minutes With lilypond and guile 2.0.13 it was ~17 minutes Though, lilypond with guile 1.8.8 made it in ~5 minutes (3) guile now finds files with chinese, etc characters guile --no-auto-compile filename_名字.scm succeeded. (4) Trying to compile filename_名字.ly with lilypond still returns warning: cannot find file: `filename_??????.ly' fatal error: failed files: "filename_??????.ly" So far for today. No time left to research about (ice-9 threads) or what it is about that --no-auto-compile or other issues. But let me say, why, I mean WHY?? did noone drop a note about (3) here http://lists.gnu.org/archive/html/guile-devel/2017-01/msg00003.html or here http://lists.gnu.org/archive/html/guile-user/2016-11/msg00031.html Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user