Re: Problem with guile-2.9.1-prerelease

2018-10-14 Thread Thomas Morley
Am So., 14. Okt. 2018 um 11:22 Uhr schrieb Thomas Morley
:
>
> Am Fr., 12. Okt. 2018 um 01:45 Uhr schrieb Thomas Morley
> :
>
> > Tomorrow I'll redo a full 'make doc'.

David, I forgot to mention:
A new run of a full 'make doc' with your patch
"Use different `values' implementation of Guilev2"
and my guile-2.9.1 lily-version was successful.

Cheers,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-14 Thread Thomas Morley
Am Fr., 12. Okt. 2018 um 01:45 Uhr schrieb Thomas Morley
:

> 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.

To facilitate testing I had to change my local setup to compare
multiple combinations of guile-versions with lilypond.
Sorry for the delay, compiling guile-versions is very time-consuming...

So, here my setup, in the end I tested with 5 lilypond-versions:

(1)
LilyPond 2.19.82 from the installer, i.e. with guile-1.8

Below 4 selfcompiled versions out of

commit ea638182bcc87414c7f186d40f376bbbf560f5d1
Author: David Kastrup 
Date:   Wed Oct 3 14:20:45 2018 +0200

Issue 5423: First separator for subassignments must be '.'

This pares down syntax supported since issue 4790 to match the allowed
usage from issue 4797.  Permitting ',' here seemed particularly
strange.

(2)
LilyPond 2.21.0 with guile-1.8.8

(3)
LilyPond 2.21.0 with guile-2.0.14

(4)
LilyPond 2.21.0 with guile-2.2.4

(5)
LilyPond 2.21.0 with guile-2.9.1

(3) to (5) have the attached patches applied to make them work with guilev2

on top of (2) - (5) David's patch from this thread:
Use different `values' implementation of Guilev2
is applied. It is in the attached archive as well.


Results:

David, your patch always works and does as desired.
How about putting it up for review?

Karlin et all, here some performance-values (always taken from a
second of two runs) with
$ time  

>From a file with close to no user-generated guile-code
(resulting in a 40-pages-pdf)

ad (1)
real1m19,297s
user1m16,390s
sys0m1,883s

ad (2)
real1m10,707s
user1m9,220s
sys0m1,336s


ad (3)
real4m13,883s
user5m7,904s
sys0m1,474s


ad (4)
real4m3,027s
user5m10,502s
sys0m1,697s

ad (5)
real3m34,525s
user4m34,974s
sys0m1,613s


>From a file with huge amount of user generated guile-code
(resulting in a 8-pages-pdf)

(1)
real0m24,107s
user0m23,002s
sys0m1,101s

(2)
real0m21,689s
user0m20,740s
sys0m0,923s

(3)
real1m20,443s
user1m33,126s
sys0m0,918s

(4)
real0m45,537s
user0m52,817s
sys0m0,991s

(5)
real0m40,445s
user0m46,441s
sys0m0,955s

So there _is_ some improvement, but all in all not overwhelming, imho.

Additionally, I've probably found a new small issue with guilev2, but
this is worth another thread.

As said above the used guilev2-patches are attached, if someone wants
to join testing.
Be aware some of them (especially my own ones) are more workarounds
than proper fixes.
Hints are always welcome.

Cheers,
  Harm
<>
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-12 Thread David Kastrup
Thomas Morley  writes:

> Am Do., 11. Okt. 2018 um 21:25 Uhr schrieb Thomas Morley
> :
>
> '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

A complete commit is applied using

git am

not git apply.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 21:25 Uhr schrieb Thomas Morley
:
>
> Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup :
> >
> > Thomas Morley  writes:
> >
> > > Am Do., 11. Okt. 2018 um 20:17 Uhr schrieb Karlin High 
> > > :
> > >>
> > >> 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 (v))
{
if (!unsmob
(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;
}

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Thomas Morley  writes:

> Am Do., 11. Okt. 2018 um 21:54 Uhr schrieb David Kastrup :
>>
>> Thomas Morley  writes:
>>
>> > Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup :
>> >>
>> >> 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.
>> >
>> > 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.
>>
>> What kind of processor?
>
> Probably bad wording, I wanted to say I did 'make doc' and not 'make
> -j5 CPU_COUNT=5 doc'.
> But to answer the question:
> ~$ cat /proc/cpuinfo
> [...]
> model name: Intel(R) Pentium(R) CPU  N3510  @ 1.99GHz
> [...]

Well, then I don't have anything better to offer you I guess.  Heck, the
system I am working on is the fastest I have (takes about 30 minutes for
a 9-process make doc) and its processor is a thermal mismatch to the
laptop, dissipating 6 times as much power as your CPU because it has the
same number of cores:

model name  : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz

The 2-core version it replaced takes only a bit more than 4 times the
power of your processor.  And, well, that's the system I got this year.
Because the older system with a P9300 (already an upgrade) was becoming
a bit long in the tooth.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 21:54 Uhr schrieb David Kastrup :
>
> Thomas Morley  writes:
>
> > Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup :
> >>
> >> 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.
> >
> > 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.
>
> What kind of processor?

Probably bad wording, I wanted to say I did 'make doc' and not 'make
-j5 CPU_COUNT=5 doc'.
But to answer the question:
~$ cat /proc/cpuinfo
[...]
model name: Intel(R) Pentium(R) CPU  N3510  @ 1.99GHz
[...]

Cheers,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Thomas Morley  writes:

> Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup :
>>
>> 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.
>
> 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.

What kind of processor?

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 20:57 Uhr schrieb David Kastrup :
>
> Thomas Morley  writes:
>
> > Am Do., 11. Okt. 2018 um 20:17 Uhr schrieb Karlin High 
> > :
> >>
> >> 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

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Carl Sorensen  writes:

> On 10/11/18, 12:35 PM, "lilypond-devel on behalf of Urs Liska"
>  li...@openlilylib.org> wrote:
>
> 
> 
> Am 11. Oktober 2018 20:17:45 MESZ schrieb Karlin High 
> :
> >On 10/11/2018 12:59 PM, David Kastrup wrote:
> >What level of optimism is appropriate for that claim?
> 
> I don't think that tells us very much. From 1.8 to 2 they added
> "significant improvements" that caused massive performance problems
> for our specific use case.  And I woulcn't bet too much money that the
> improvements you mention specifically address these issues ...
> 
>
> On the other hand, the 3.0 test that they report on indicates that the
> new JIT compile code is almost as fast as 1.8.

That makes little to no sense since 1.8 was slower than Guile 2 for most
compiled code.

The only thing I can imagine is that they mean the new JIT compile code
is almost as fast as programming in C while manipulating SCM data with
the 1.8 API calls.

> And the way around the performance issues with 2 was to use
> precompiled bytecode because the compiler was slow.  This new JIT
> compile claims to not need bytecode, so I am optimistic

Our problems is not code written in Scheme but passing stuff between C++
and Scheme.  Let's hope your optimism turns out more vindicated than my
pessimism.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Thomas Morley  writes:

> Am Do., 11. Okt. 2018 um 20:17 Uhr schrieb Karlin High :
>>
>> 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.

>From 6d974c4990f2bb4c34605908ba3b7ca1c21487cf Mon Sep 17 00:00:00 2001
From: David Kastrup 
Date: Thu, 11 Oct 2018 20:52:19 +0200
Subject: [PATCH] Use different `values' implementation of Guilev2

---
 lily/lexer.ll | 12 
 1 file changed, 12 insertions(+)

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 (v))
 {
 	if (!unsmob (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;
 	}
-- 
2.17.1



-- 
David Kastrup
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Karlin High  writes:

> 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?

Pretty much none I should think.  The performance improvements are for
algorithms implemented in Scheme.  We don't really have them to
significant degree: we do the time-consuming algorithmic stuff in C++.
What gave us the large performance hit for Guile 2 was the interfacing
between C++ and Scheme which we do really a lot.  That has become quite
slower with Guilev2, and part of the reason are strings which are now
utf8-aware while Guilev2 natively does not store strings as utf8 but has
to convert them into other presentations.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Carl Sorensen


On 10/11/18, 12:35 PM, "lilypond-devel on behalf of Urs Liska" 
 wrote:



Am 11. Oktober 2018 20:17:45 MESZ schrieb Karlin High 
:
>On 10/11/2018 12:59 PM, David Kastrup wrote:
>What level of optimism is appropriate for that claim?

I don't think that tells us very much. From 1.8 to 2 they added 
"significant improvements" that caused massive performance problems for our 
specific use case.  And I woulcn't bet too much money that the improvements you 
mention specifically address these issues ...


On the other hand, the 3.0 test that they report on indicates that the new JIT 
compile code is almost as fast as 1.8.  And the way around the performance 
issues with 2 was to use precompiled bytecode because the compiler was slow.  
This new JIT compile claims to not need bytecode, so I am optimistic

Carl


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Urs Liska



Am 11. Oktober 2018 20:17:45 MESZ schrieb Karlin High :
>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?

I don't think that tells us very much. From 1.8 to 2 they added "significant 
improvements" that caused massive performance problems for our specific use 
case. And I woulcn't bet too much money that the improvements you mention 
specifically address these issues ...

Urs

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 20:17 Uhr schrieb Karlin High :
>
> 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...

Cheers,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Karlin High

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

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 20:00 Uhr schrieb David Kastrup :

> Sorry, I overlooked that you already boiled this down to a minimal
> example using $@.  I am sort-of sure that this will be due to the
> internals of (values ...) having changed in some manner.  The "wrong
> type argument" will be for trying to access elements here.
>
> I think Guile-2.0 introduced some mechanism for doing so but retained
> compatibility, and this compatibility has now gone out of the window.
> So with some luck and some #ifdef GUILEV2 guard, we should be able to
> add code that will run under all versions.  I'll take a look.


The use of
$@
comes from the failed regtest which does work with guile-2.2.4
But stopped with guile-2.9.1

Thanks,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
David Kastrup  writes:

> I think Guile-2.0 introduced some mechanism for doing so but retained
> compatibility, and this compatibility has now gone out of the window.
> So with some luck and some #ifdef GUILEV2 guard, we should be able to
> add code that will run under all versions.  I'll take a look.

lexer.ll:

if (extra_token && SCM_VALUESP (sval))
{
sval = scm_struct_ref (sval, SCM_INUM0);

I should very much be not surprised if that is the location throwing the
error.  I'll take a look at what Guilev2 offers to use here instead.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Thomas Morley  writes:

> Am Do., 11. Okt. 2018 um 19:34 Uhr schrieb David Kastrup :
>>
>> Thomas Morley  writes:
>>
>> > Hi,
>> >
>> > according to this post:
>> > https://lists.gnu.org/archive/html/guile-devel/2018-10/msg0.html
>> > guile prepares to release 3.0 soon.
>> >
>> > I tried to test LilyPond with the guile-2.9.1-prelease.
>> > Checking out our dev/guile-v2-work-branch, rebasing, applying several
>> > patches (working with guile-2.2.4) as well as editing configure.ac and
>> > aclocal.m4 to accept this guile-version I've got a successful 'make'
>> >
>> > Though, 'make doc' fails soon with 'input/regression/rest-positioning.ly'
>> > I boiled it down to this minimal:
>> >
>> > \version "2.21.0"
>> > $@(make-list 2 #{ r1 #})
>> >
>> > I get:
>> >
>> > $ lilypond-git-guile-3.0 atest-80.ly
>> > GNU LilyPond 2.21.0
>> > Processing `atest-80.ly'
>> > Parsing...Backtrace:
>> >6 (apply-smob/1 #)
>> > In ice-9/eval.scm:
>> >293:34  5 (_ #(#(#) #))
>> > 619:8  4 (_ #(#(#(#(#(#(#(#) …) …) …) …) …) …))
>> > In srfi/srfi-1.scm:
>> > 640:9  3 (for-each # …)
>> > In ice-9/eval.scm:
>> > 619:8  2 (_ #(#(#(#(#(# …) …) …) …) …))
>> > In ice-9/boot-9.scm:
>> > 826:9  1 (catch _ _ # …)
>> > In unknown file:
>> >0 (ly:parse-file "atest-80.ly")
>> >
>> > ERROR: In procedure ly:parse-file:
>> > In procedure struct-ref: Wrong type argument in position 1 (expecting
>> > struct): #) (origin
>> > . #))((display-methods #> > (a)>) (name . RestEvent) (iterator-ctor . #> > ly:rhythmic-music-iterator::constructor ()>) (types event
>> > rhythmic-event rest-event)) >
>> >
>> > I'm not able to get meaningful info out of this.
>> > Any insight?
>>
>> Try with -dverbose ?  Sometimes that improves the backtrace.  Sounds
>> like some incompatible change of internals behavior but I have problems
>> guessing just what may be involved here.
>
> -dverbose gives not more info

Sorry, I overlooked that you already boiled this down to a minimal
example using $@.  I am sort-of sure that this will be due to the
internals of (values ...) having changed in some manner.  The "wrong
type argument" will be for trying to access elements here.

I think Guile-2.0 introduced some mechanism for doing so but retained
compatibility, and this compatibility has now gone out of the window.
So with some luck and some #ifdef GUILEV2 guard, we should be able to
add code that will run under all versions.  I'll take a look.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Am Do., 11. Okt. 2018 um 19:34 Uhr schrieb David Kastrup :
>
> Thomas Morley  writes:
>
> > Hi,
> >
> > according to this post:
> > https://lists.gnu.org/archive/html/guile-devel/2018-10/msg0.html
> > guile prepares to release 3.0 soon.
> >
> > I tried to test LilyPond with the guile-2.9.1-prelease.
> > Checking out our dev/guile-v2-work-branch, rebasing, applying several
> > patches (working with guile-2.2.4) as well as editing configure.ac and
> > aclocal.m4 to accept this guile-version I've got a successful 'make'
> >
> > Though, 'make doc' fails soon with 'input/regression/rest-positioning.ly'
> > I boiled it down to this minimal:
> >
> > \version "2.21.0"
> > $@(make-list 2 #{ r1 #})
> >
> > I get:
> >
> > $ lilypond-git-guile-3.0 atest-80.ly
> > GNU LilyPond 2.21.0
> > Processing `atest-80.ly'
> > Parsing...Backtrace:
> >6 (apply-smob/1 #)
> > In ice-9/eval.scm:
> >293:34  5 (_ #(#(#) #))
> > 619:8  4 (_ #(#(#(#(#(#(#(#) …) …) …) …) …) …))
> > In srfi/srfi-1.scm:
> > 640:9  3 (for-each # …)
> > In ice-9/eval.scm:
> > 619:8  2 (_ #(#(#(#(#(# …) …) …) …) …))
> > In ice-9/boot-9.scm:
> > 826:9  1 (catch _ _ # …)
> > In unknown file:
> >0 (ly:parse-file "atest-80.ly")
> >
> > ERROR: In procedure ly:parse-file:
> > In procedure struct-ref: Wrong type argument in position 1 (expecting
> > struct): #) (origin
> > . #))((display-methods # > (a)>) (name . RestEvent) (iterator-ctor . # > ly:rhythmic-music-iterator::constructor ()>) (types event
> > rhythmic-event rest-event)) >
> >
> > I'm not able to get meaningful info out of this.
> > Any insight?
>
> Try with -dverbose ?  Sometimes that improves the backtrace.  Sounds
> like some incompatible change of internals behavior but I have problems
> guessing just what may be involved here.
>
> --
> David Kastrup

-dverbose gives not more info

Using gdb:

(gdb) run atest-80.ly
Starting program:
/home/hermann/lilypond-git-guile-3.0/build/out/bin/lilypond
atest-80.ly
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
GNU LilyPond 2.21.0
[New Thread 0x7369a700 (LWP 5765)]
[New Thread 0x72e99700 (LWP 5766)]
[New Thread 0x72698700 (LWP 5767)]
[New Thread 0x71ae8700 (LWP 5768)]
Processing `atest-80.ly'
Parsing...Backtrace:
   6 (apply-smob/1 #)
In ice-9/eval.scm:
   293:34  5 (_ #(#(#) #))
619:8  4 (_ #(#(#(#(#(#(#(#)
("atest-80.ly")) #) #f) #f) #f)
#))
In srfi/srfi-1.scm:
640:9  3 (for-each # ("atest-80.ly"))
In ice-9/eval.scm:
619:8  2 (_ #(#(#(#(#(# #f
# #f #f) "atest-80.ly") #f) "./atest-80") ((#
. #f) # # …)))
In ice-9/boot-9.scm:
826:9  1 (catch ly-file-failed # # …)
In unknown file:
   0 (ly:parse-file "atest-80.ly")

ERROR: In procedure ly:parse-file:
In procedure struct-ref: Wrong type argument in position 1 (expecting
struct): #) (origin
. #))((display-methods #) (name . RestEvent) (iterator-ctor . #) (types event
rhythmic-event rest-event)) >

[Thread 0x71ae8700 (LWP 5768) exited]
[Thread 0x72e99700 (LWP 5766) exited]
[Thread 0x7369a700 (LWP 5765) exited]
[Thread 0x77fc3740 (LWP 5761) exited]
[Inferior 1 (process 5761) exited with code 01]
(gdb) bt
No stack.
(gdb)


Iiuc, it's the same again...

Cheers,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Problem with guile-2.9.1-prerelease

2018-10-11 Thread David Kastrup
Thomas Morley  writes:

> Hi,
>
> according to this post:
> https://lists.gnu.org/archive/html/guile-devel/2018-10/msg0.html
> guile prepares to release 3.0 soon.
>
> I tried to test LilyPond with the guile-2.9.1-prelease.
> Checking out our dev/guile-v2-work-branch, rebasing, applying several
> patches (working with guile-2.2.4) as well as editing configure.ac and
> aclocal.m4 to accept this guile-version I've got a successful 'make'
>
> Though, 'make doc' fails soon with 'input/regression/rest-positioning.ly'
> I boiled it down to this minimal:
>
> \version "2.21.0"
> $@(make-list 2 #{ r1 #})
>
> I get:
>
> $ lilypond-git-guile-3.0 atest-80.ly
> GNU LilyPond 2.21.0
> Processing `atest-80.ly'
> Parsing...Backtrace:
>6 (apply-smob/1 #)
> In ice-9/eval.scm:
>293:34  5 (_ #(#(#) #))
> 619:8  4 (_ #(#(#(#(#(#(#(#) …) …) …) …) …) …))
> In srfi/srfi-1.scm:
> 640:9  3 (for-each # …)
> In ice-9/eval.scm:
> 619:8  2 (_ #(#(#(#(#(# …) …) …) …) …))
> In ice-9/boot-9.scm:
> 826:9  1 (catch _ _ # …)
> In unknown file:
>0 (ly:parse-file "atest-80.ly")
>
> ERROR: In procedure ly:parse-file:
> In procedure struct-ref: Wrong type argument in position 1 (expecting
> struct): #) (origin
> . #))((display-methods # (a)>) (name . RestEvent) (iterator-ctor . # ly:rhythmic-music-iterator::constructor ()>) (types event
> rhythmic-event rest-event)) >
>
> I'm not able to get meaningful info out of this.
> Any insight?

Try with -dverbose ?  Sometimes that improves the backtrace.  Sounds
like some incompatible change of internals behavior but I have problems
guessing just what may be involved here.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Problem with guile-2.9.1-prerelease

2018-10-11 Thread Thomas Morley
Hi,

according to this post:
https://lists.gnu.org/archive/html/guile-devel/2018-10/msg0.html
guile prepares to release 3.0 soon.

I tried to test LilyPond with the guile-2.9.1-prelease.
Checking out our dev/guile-v2-work-branch, rebasing, applying several
patches (working with guile-2.2.4) as well as editing configure.ac and
aclocal.m4 to accept this guile-version I've got a successful 'make'

Though, 'make doc' fails soon with 'input/regression/rest-positioning.ly'
I boiled it down to this minimal:

\version "2.21.0"
$@(make-list 2 #{ r1 #})

I get:

$ lilypond-git-guile-3.0 atest-80.ly
GNU LilyPond 2.21.0
Processing `atest-80.ly'
Parsing...Backtrace:
   6 (apply-smob/1 #)
In ice-9/eval.scm:
   293:34  5 (_ #(#(#) #))
619:8  4 (_ #(#(#(#(#(#(#(#) …) …) …) …) …) …))
In srfi/srfi-1.scm:
640:9  3 (for-each # …)
In ice-9/eval.scm:
619:8  2 (_ #(#(#(#(#(# …) …) …) …) …))
In ice-9/boot-9.scm:
826:9  1 (catch _ _ # …)
In unknown file:
   0 (ly:parse-file "atest-80.ly")

ERROR: In procedure ly:parse-file:
In procedure struct-ref: Wrong type argument in position 1 (expecting
struct): #) (origin
. #))((display-methods #) (name . RestEvent) (iterator-ctor . #) (types event
rhythmic-event rest-event)) >

I'm not able to get meaningful info out of this.
Any insight?

Thanks,
  Harm

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel