Guile - State of 2 / Release of 3

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Guile - State of 2 / Release of 3

Jahrme Risner
Hello all,

I recently saw that Andy Wingo (the primary maintainer of Guile) gave a talk about the upcoming release of Guile 3 (projected for “Spring 2019”).

https://www.gnu.org/software/guile/news/
https://fosdem.org/2019/schedule/event/guile3fasterprograms/

Currently version 2.9.1 is serving as the beta release for version 3.

For me, this announcement has raised a couple of questions:

1. What is the state of Guile 2 support right now? I know that there is a configuration command that enables experimental support, but what are the current limitations preventing the adoption of Guile 2 as the default version of Guile?

2. I understand that part of the issue with Guile 2 was a slowdown in performance due to the way in which LilyPond uses Guile; if substantiated, would the alleged doubling in speed compared to 2.2 place Guile 3 as a better candidate for the version of Guile to replace 1.8?

More generally, if someone was interested in working on Guile support, where would be the best place to start? Also, is there anyone who has been heading the work on moving to a newer version of Guile?

Best wishes,
Jahrme
_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Guile - State of 2 / Release of 3

Thomas Morley-2
Am So., 14. Apr. 2019 um 23:01 Uhr schrieb Jahrme Risner <[hidden email]>:

>
> Hello all,
>
> I recently saw that Andy Wingo (the primary maintainer of Guile) gave a talk about the upcoming release of Guile 3 (projected for “Spring 2019”).
>
> https://www.gnu.org/software/guile/news/
> https://fosdem.org/2019/schedule/event/guile3fasterprograms/
>
> Currently version 2.9.1 is serving as the beta release for version 3.
>
> For me, this announcement has raised a couple of questions:
>
> 1. What is the state of Guile 2 support right now? I know that there is a configuration command that enables experimental support, but what are the current limitations preventing the adoption of Guile 2 as the default version of Guile?
>
> 2. I understand that part of the issue with Guile 2 was a slowdown in performance due to the way in which LilyPond uses Guile; if substantiated, would the alleged doubling in speed compared to 2.2 place Guile 3 as a better candidate for the version of Guile to replace 1.8?
>
> More generally, if someone was interested in working on Guile support, where would be the best place to start? Also, is there anyone who has been heading the work on moving to a newer version of Guile?
>
> Best wishes,
> Jahrme
Hi Jahrme,

great you're interested in the topic.
I'll try to give you some feedback to your questions.

ad 1.

If you do on master
confirgure --enable-guile2
and apply the attached patches (some are in master already, if in
doubt prefer what's in the source already) you'll get a working
lilypond.
Working means `make´, `make doc´ will succeed and it survives the
regtest with very minor issues, for guile-2.2.x and guile-2.9.1
At least the last time I tested this.

Disadvantges/issues are the slow-down.
Other issues are listed here: https://ao2.it/tmp/lilypond-guile2/TODO
Furthermore `procedure-source´ is disabled in guile-2, which is
problematic for us.
In general we have no method to deal with .go-files.
And we're beaten by encoding-issues.
There's are likely more ...

ad 2.
Though, the slow-down is still huge. I can't confirm a substantielly
speed up for guile-2.9.1

Over the years several people worked on the topic.
Speaking only for me, I think all low hanging fruits are done. And I
don't have the knowledge to go deeper :(
.go-files and encoding-thingies are the heaviest showstopper for now,
all way out of my depth.

If you want to start the above listed issues are the current TODO-list.



Best,
  Harm

_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

patches-for-guile-2-9-1.zip (24K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Guile - State of 2 / Release of 3

David Kastrup
Thomas Morley <[hidden email]> writes:

> Hi Jahrme,
>
> great you're interested in the topic.
> I'll try to give you some feedback to your questions.
>
> ad 1.
>
> If you do on master
> confirgure --enable-guile2
> and apply the attached patches (some are in master already, if in
> doubt prefer what's in the source already) you'll get a working
> lilypond.
> Working means `make´, `make doc´ will succeed and it survives the
> regtest with very minor issues, for guile-2.2.x and guile-2.9.1
> At least the last time I tested this.
>
> Disadvantges/issues are the slow-down.
> Other issues are listed here: https://ao2.it/tmp/lilypond-guile2/TODO
> Furthermore `procedure-source´ is disabled in guile-2, which is
> problematic for us.

I've grepped for it: I don't think that this should be an issue since it
just involves some diagnostic output that could be disabled without loss
of crucial functionality.

> In general we have no method to deal with .go-files.

Yup.  That's important for installed versions of LilyPond.

> And we're beaten by encoding-issues.

That's a strong word: most stuff works but the principal problem is that
Guile has no way to pass anything but Latin-1 strings through the Guile
API without recoding, and LilyPond works in UTF-8.  This is a major
performance problem since LilyPond is coded in significant parts in C++
and passes large amounts of text in and out of Guile.

> There's are likely more ...
>
> ad 2.
> Though, the slow-down is still huge. I can't confirm a substantielly
> speed up for guile-2.9.1
>
> Over the years several people worked on the topic.
> Speaking only for me, I think all low hanging fruits are done. And I
> don't have the knowledge to go deeper :(
> .go-files and encoding-thingies are the heaviest showstopper for now,
> all way out of my depth.
>
> If you want to start the above listed issues are the current TODO-list.

--
David Kastrup

_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel