[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Markup module patch (Issue 2026)
From: |
Ian Hulin |
Subject: |
Re: Markup module patch (Issue 2026) |
Date: |
Fri, 16 Dec 2011 17:46:39 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 |
Hi Han-Wen,
On 15/12/11 12:48, Han-Wen Nienhuys wrote:
> On Wed, Dec 14, 2011 at 12:51 AM, Ian Hulin <address@hidden> wrote:
>
>> In order to get the markup stuff to compile or be interpreted
>> correctly with Guile V2, I had to get the procedures validating the
>> markup commands to look in a single module at the list where they were
>> held. So I chose the base (lily) module.
>
>> To keep it consistent, I got
>> the define-markup-command and define-markup-list-command macros to
>> push and pop the current Scheme module by doing
>> (let (prevmod (current-module))
>> (existing declaration)
>> ...
>
> Does this mean that markup definitions in user code (ie. in .ly files)
> will be put in the lily module too? How will you prevent definitions
> from leaking between files?
>
You mean in the case of something like
$ lilypond gibbon.ly vole.ly aardvark.ly
where gibbon.ly has
#(define-markup-command (bananas layout properties markup?) blah ...)
vole.ly and aardvark.ly would still be able code
\markup \bananas ...
and they would pick up the definition from gibbon.ly.
Mao. You're right.
> Why can't the validation procedure look in multiple places?
>
Because this means serious fiddling with the maoing markup code. I
really hope you didn't write it because I agree with David, it's a fetid
pile of Dingo's kidneys to maintain, and I fear it'll take me a
lo-o-o-ong time and much cursing and swearing to change it.
It'll mean trying to find a way of getting compile-markup-expression to
look in a list both in the current module, and then falling back to the
(lily) module (where all the base code markup commands from
define-markup-commands.scm will be) before failing the validation.
> If it needs to be one place, it should probably be the scope of the
> .ly file, with some initialization importing the definitions from the
> lily module.
>
You mean:
1. do some icky stuff in the lilypond-file procedure to create a new
lilypond scope, then make sure it (use-modules (lily)) before letting
ly:parse-file loose in it?
2. have compile-markup-expression do a double lookup in
(current-module), and if needed then look in (lily)?
Worth a punt,
Cheers,
Ian
Re: Markup module patch (Issue 2026), Han-Wen Nienhuys, 2011/12/14