Subject: bug#10132: closed (Re: bug#10132: Help lilypond interleave scheme and lilypond code in guile 2.x)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 27 Jan 2012 15:50:03 +0000

Your bug report

#10132: Help lilypond interleave scheme and lilypond code in guile 2.x

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10132: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10132
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10132: Help lilypond interleave scheme and lilypond code in guile 2.x
From: Andy Wingo <[email-masked]>
To: [email-masked]
Cc: Ian Hulin <[email-masked]>, David Kastrup <[email-masked]>
Date: Fri, 27 Jan 2012 16:48:22 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Ian and David,

On Fri 25 Nov 2011 12:15, Andy Wingo <[email-masked]> writes:

> On Fri 25 Nov 2011 11:37, David Kastrup <[email-masked]> writes:
>
>> As I said: for this particular application, I have coded a rather
>> inelegant and resource-grabbing workaround that really is not going to
>> help performance since the intertwined Lilypond interpreter does not
>> benefit from precompilation of mostly trivial lambda functions when the
>> actual procedure-environment is unlikely to ever reference more than
>> five variables.
>
> Understood.  Let's work to find a good solution in 2.0.

2.0 now has the-environment and local-eval again (though not
procedure-environment).  Import the (ice-9 local-eval) module to have
access to these forms.  Hopefully at this point we have solved this
issue; please give it a try, and open a new bug if something comes up.

Cheers,

Andy
-- 
http://wingolog.org/

Subject: Help lilypond interleave scheme and lilypond code in guile 2.x
From: Andy Wingo <[email-masked]>
To: bug-guile <[email-masked]>
Cc: Ian Hulin <[email-masked]>, David Kastrup <[email-masked]>
Date: Fri, 25 Nov 2011 12:15:14 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi David,

This bug was forked from bug 10099, where David has a longer
explanation.

On Fri 25 Nov 2011 11:37, David Kastrup <[email-masked]> writes:

> So much for that.  The next quote is for a totally different issue, the
> availability of local environments and evaluation in them.  Lilypond has
> an input syntax of its own, and it allows interspersing Scheme code. $
> or # switches to the Scheme interpreter (for one sexp) when in Lilypond
> syntax, and #{ ... #} switches to Lilypond inside.

Aaah.  Thanks for this explanation; I had never seen this code before.

Do you use a read-hash-extend reader for #{#} ?

What do you use to parse the lilypond code?  What does it parse to?

I agree that the-environment and local-eval were nice solutions for
this.  In Guile 2.0 it's not as nice for you, because if you implement
another evaluator, you don't get backtraces that are as nice.

> As I said: for this particular application, I have coded a rather
> inelegant and resource-grabbing workaround that really is not going to
> help performance since the intertwined Lilypond interpreter does not
> benefit from precompilation of mostly trivial lambda functions when the
> actual procedure-environment is unlikely to ever reference more than
> five variables.

Understood.  Let's work to find a good solution in 2.0.

Andy
-- 
http://wingolog.org/