[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New Issue: Disallow uncontained context-spec-music on top level
From: |
David Kastrup |
Subject: |
Re: New Issue: Disallow uncontained context-spec-music on top level |
Date: |
Wed, 23 Sep 2015 16:52:38 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Simon Albrecht <address@hidden> writes:
> <https://sourceforge.net/p/testlilyissues/issues/4617/>
>
> If
>
> $ git grep'= #(context-spec-music'
> Documentation/snippets/additional-voices-to-avoid-collisions.ly:voiceFive=
> #(co
> ly/declarations-init.ly:melisma= #(context-spec-music (make-property-set
> 'melis
> ly/declarations-init.ly:melismaEnd= #(context-spec-music
> (make-property-unset '
> ly/property-init.ly:voiceOne= #(context-spec-music (make-voice-props-set 0)
> ly/property-init.ly:voiceTwo= #(context-spec-music (make-voice-props-set 1)
> ly/property-init.ly:voiceThree= #(context-spec-music (make-voice-props-set 2)
> ly/property-init.ly:voiceFour= #(context-spec-music (make-voice-props-set 3)
> ly/property-init.ly:oneVoice= #(context-spec-music (make-voice-props-revert)
>
>
> doesn’t deceive me, there are seven commands which output
> context-spec-music.
>
> It’s currently possible to use these on top level:
>
> %%%%% \version "2.19.27"
> \melisma
> %%%%%
It's possible to use any music variable at top level.
> gives no warning or other message, but the attached (nonsense) output.
>
> This becomes a problem when ")" has been redefined and somewhere else
> a Scheme expression has mismatched braces:
>
> %%%%% \version "2.19.27"
> ")" =\melismaEnd
> #(define test "foo"))
> %%%%%
>
> An extremely annoying case to debug, I can tell you.
>
> So redefining ")" should not preclude the warnings which turn up
> without the redefinition.
What warnings? You are talking about an error here:
/tmp/riga.ly:1:1: error: syntax error, unexpected EVENT_IDENTIFIER
and that error is based exclusively on the _content_ of ")" and not
related to any independently produced warnings. For example, you can
write \] and just get
/tmp/riga.ly:1:1: warning: cannot find start of ligature
Making an error based on context-spec-music would be quite strange, by
the way, since _many_ toplevel expressions are context-spec-music, like
\new PianoStaff ...
--
David Kastrup