lilypond-devel
[Top][All Lists]
Advanced

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

Re: Problem with guile-2.9.1-prerelease


From: Thomas Morley
Subject: Re: Problem with guile-2.9.1-prerelease
Date: Fri, 12 Oct 2018 01:45:32 +0200

Am Do., 11. Okt. 2018 um 21:25 Uhr schrieb Thomas Morley
<address@hidden>:
>
> Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup <address@hidden>:
> >
> > Thomas Morley <address@hidden> writes:
> >
> > > Am Do., 11. Okt. 2018 um 20:17 Uhr schrieb Karlin High <address@hidden>:
> > >>
> > >> On 10/11/2018 12:59 PM, David Kastrup wrote:
> > >> > we should be able to add code that will run under all versions.
> > >>
> > >> The guile-devel post linked in the OP indicates that Guile 3 should have
> > >> greatly improved performance over Guile 2. Maybe even better than
> > >> LilyPond's current Guile 1.8.
> > >>
> > >> What level of optimism is appropriate for that claim?
> > >> --
> > >> Karlin High
> > >> Missouri, USA
> > >
> > > Well, I'll test that as soon as I have more success with 'make doc'.
> > > For now I've deleted said regtest and test how far it will go...
> >
> > Could you reinstate the regtest and try this untested patch?  Not
> > necessarily in that order since, well, the patch might well not even
> > compile.  Or work correctly.
> >
> >
> >
> > --
> > David Kastrup
>
> Will do, though I'll first wait for current 'make doc' to finish,
> (which may end successful or with another error, ofcourse). This may
> take some long time, because I do a one-processor run on my slow
> laptop.
>
> Thanks,
>   Harm

'make doc' (without rest-positioning.ly) now ended successfully (with
guile-2.9.1)

I then tried to apply your patch to my lilypond-git-guile-3.0 but I've got:
$ git apply 0001-Use-different-values-implementation-of-Guilev2.patch
error: patch failed: lily/lexer.ll:1107
error: lily/lexer.ll: patch does not apply

But implementing the changes from your patch manually worked [1], i.e.
'make' and compiling the minimal from above as well as the regtest
rest-positioning.ly.

Tomorrow I'll redo a full 'make doc'.
Testing your changes with guile-2.2.4 and guile-1.8 is postponed for
tomorrow as well.

Thanks,
  Harm

[1]
Though I see no real difference:

$ git diff
diff --git a/lily/lexer.ll b/lily/lexer.ll
index 421fea2734..f893715e8e 100644
--- a/lily/lexer.ll
+++ b/lily/lexer.ll
@@ -1107,6 +1107,13 @@ Lily_lexer::eval_scm (SCM readerdata, Input hi,
char extra_token)

        if (extra_token && SCM_VALUESP (sval))
        {
+#if GUILEV2
+               size_t nvals = scm_c_nvalues (sval);
+
+               if (nvals > 0) {
+                       while (--nvals) {
+                               SCM v = scm_c_value_ref (sval, nvals);
+#else
                sval = scm_struct_ref (sval, SCM_INUM0);

                if (scm_is_pair (sval)) {
@@ -1115,6 +1122,7 @@ Lily_lexer::eval_scm (SCM readerdata, Input hi,
char extra_token)
                             p = scm_cdr (p))
                        {
                                SCM v = scm_car (p);
+#endif
                                if (Music *m = unsmob<Music> (v))
                                {
                                        if (!unsmob<Input>
(m->get_property ("origin")))
@@ -1135,7 +1143,11 @@ Lily_lexer::eval_scm (SCM readerdata, Input hi,
char extra_token)
                                        break;
                                }
                        }
+#if GUILEV2
+                       sval = scm_c_value_ref (sval, 0);
+#else
                        sval = scm_car (sval);
+#endif
                } else
                        sval = SCM_UNSPECIFIED;
        }



reply via email to

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