Re: Doc: extend description of glissandi (2844) (issue 6567059)

2012-09-29 Thread tdanielsmusic

Reviewers: benko.pal,

Message:
On 2012/09/28 07:52:32, benko.pal wrote:

what about an example like



\afterGrace f1\glissando f'16



?


Done - thanks!

Description:
Doc: extend description of glissandi (2844)

 Add examples of
  - connecting notes across staves
  - connecting notes in chords
  - adding timing marks and expressions to long glissandi
  - making glissandi breakable

 (Based on original work by
  Tiresia GIUNO tires...@googlemail.com,
  a patch by Werner LEMBERG w...@gnu.org and
  advice from Benkő Pál benko@gmail.com)


Please review this at http://codereview.appspot.com/6567059/

Affected files:
  M Documentation/notation/expressive.itely
  A Documentation/snippets/adding-timing-marks-to-long-glissandi.ly
  A Documentation/snippets/making-glissandi-breakable.ly
  A Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly
  A Documentation/snippets/new/making-glissandi-breakable.ly


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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread Marc Hohl

Am 28.09.2012 17:40, schrieb d...@gnu.org:

On 2012/09/28 15:06:38, janek wrote:

On Fri, Sep 28, 2012 at 9:30 AM, mailto:d...@gnu.org wrote:
 I must be in a controversial mood today since I feel like upholding

the

 idea.  I had been thinking about it while fetching breakfast and

eating

 and was about to reenter discussion when I found that I had already
 convinced you, so this is a bit awkward.



lol :)
Actually, my cousin gave another reason to change \omit to something
else: in his opinion omit implies \once in meaning.  Like, \omit
StringNumber sounds like only one StringNumber won't be printed.


Maybe.


 The only drawback is that one might want \yes/\no as a pairing for

some

 different purpose.  \no is really a rather important word.



Yes, this is my concern, too.


Well, at some point of time we need to crack it open, anyway.


What about \delete ?  Afaik it's not taken yet.


Guile begs to differ:
scheme@(guile-user) delete
$1 = #procedure delete (_ _)


On Fri, Sep 28, 2012 at 9:53 AM, Marc Hohl mailto:m...@hohlart.de

wrote:

 Am 28.09.2012 09:30, schrieb d...@gnu.org:
 And things like \once\no Clef also work reasonably well.  The

proposed

 \single is more awkward, but \single\omit Clef is not that much
 better, so maybe \single should change.

 I don't feel quite happy with \single either; just a spontaneous

idea:


 does \here work?

 \here\EasyNoteHeadsOn c8 d e

 I'm not sure ...



hmm... not quite perfect.
No other idea, though...


\here misses the relation to the next item (not that \single is much
better).  \directly was nicer in that regard.  \next would possibly also
work.

Having to choose between \single and \next, I would take \next.

Regards,

Marc


http://codereview.appspot.com/6575048/

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




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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread Han-Wen Nienhuys
On Wed, Sep 26, 2012 at 10:40 PM, David Kastrup d...@gnu.org wrote:
 Han-Wen Nienhuys hanw...@gmail.com writes:

 In order to do cache invalidation, you will have to construct the
 reverse graph. If A.x depends on B.y, now A points to B. For proper
 cache invalidation, if B.y changes, then A.x becomes invalid. This
 means that A has to store a back-reference to B. Hence all pointers
 have to be stored both ways (including inverting 1-N relations into
 N-1 relations), and the both-way links have to be rewritten correctly
 during line breaking.

 You can assign a generational count to properties.  If the generational
 count of any dependency is higher than that of the dependent property,
 it needs to get regenerated.  As long as the dependencies don't get lost
 (and we use arbitrary size integers, resetting for each session), this
 should be pretty straightforward and not require backwards links.  It
 just requires double-checking your dependencies for change.

But since the dependencies are also properties that could be
invalidated, you'd have to recurse , so each property access would
potentially expand into an almost infinite number of get_property
calls.

I think it is a much clearer abstraction to decide that each property
can only be evaluated once, and that everything should be driven by
callbacks. In fact, one thing I would suggest looking at is removing
{before,after}_line_breaking which breaks this model somewhat.

-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen

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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread David Kastrup
Marc Hohl m...@hohlart.de writes:

 Am 28.09.2012 17:40, schrieb d...@gnu.org:


 hmm... not quite perfect.
 No other idea, though...

 \here misses the relation to the next item (not that \single is much
 better).  \directly was nicer in that regard.  \next would possibly also
 work.
 Having to choose between \single and \next, I would take \next.

After thinking this over, I realized what worries me about \next: next
is a loop control command in a number of different languages like awk,
perl, Python.  It is also frequently used for linked list pointers.  All
of those common uses in computing are quite grammatically different in
their usage.

-- 
David Kastrup


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


Re: Error tracking through the log files [was: Re: Compilation errorwith page-breaking-page-count3.ly]

2012-09-29 Thread Marc Hohl

Am 28.09.2012 12:24, schrieb Phil Holmes:

- Original Message - From: Marc Hohl m...@hohlart.de
To: lilypond-devel@gnu.org
Sent: Friday, September 28, 2012 11:00 AM
Subject: Re: Error tracking through the log files [was: Re: 
Compilation errorwith page-breaking-page-count3.ly]




[...]



A brute force method is to find the most recent log file ...

Thanks for the tip! Just simple, but I have never thought about that myself.

input/regression/instrument-name-volta.ly is the file that throws the error.
It looks as if that's the error Keith spotted with left-bar-glyph-name ...
I'll investigate.

Regards,

Marc


--
Phil Holmes




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


Re: bar-line interface part 2/2: New bar line definition standard (issue 6498052)

2012-09-29 Thread Marc Hohl

Am 29.09.2012 07:11, schrieb k-ohara5...@oco.net:

Looks good so far.

In one pdf previewer (evince) at low resolution, the span bars look a
little thicker than the regular bar lines. Maybe a rounding fault of
the viewer, but it would be better if you know how to avoid it.
If you zoom it, this will disappear, of course (I looked at bar lines 
with Adobe Reader at
very high zoom levels), but I use evince, too and do not see these 
artifacts.
What I spot is a thin white line between staff and span bar that 
disappears when zooming in,

due to the span bars being a different object.

I don't know how this can be avoided, though.



http://codereview.appspot.com/6498052/diff/24001/scm/bar-line.scm
File scm/bar-line.scm (right):

http://codereview.appspot.com/6498052/diff/24001/scm/bar-line.scm#newcode953 


scm/bar-line.scm:953: (ly:grob-property right-bar-line 'glyph-name)))
Sometimes I get a crash that I traced back to a null -- that is, '() --
left-bar-glyph-name here. The piece in question has a repeat
alternative that starts a on new line.
Thanks! I found out that this is exactly the error that lets 'make test' 
fail –

in input/regression/instrument-name-volta.ly we have exactly this situation.



http://codereview.appspot.com/6498052/diff/24001/scm/bar-line.scm#newcode1029 


scm/bar-line.scm:1029:
;; normal bar -annotation end of line start of line span bar
You are right, this should be documented in the comment; will do in the 
next patch release.


Regards,

Marc


http://codereview.appspot.com/6498052/




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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread Marc Hohl

Am 29.09.2012 11:01, schrieb David Kastrup:

Marc Hohl m...@hohlart.de writes:


Am 28.09.2012 17:40, schrieb d...@gnu.org:

hmm... not quite perfect.
No other idea, though...

\here misses the relation to the next item (not that \single is much
better).  \directly was nicer in that regard.  \next would possibly also
work.

Having to choose between \single and \next, I would take \next.

After thinking this over, I realized what worries me about \next: next
is a loop control command in a number of different languages like awk,
perl, Python.

... or think about TeX ;-)

  It is also frequently used for linked list pointers.  All
of those common uses in computing are quite grammatically different in
their usage.

But on the other hand, we talk about usability, and I am not quite sure
that *every* user thinks Perl/Python/TeX when he or she writes Lilypond.
And \next seems to be more self-explanatory than \single (at least to 
me, it is).


Regards,

Marc





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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread m...@mikesolomon.org

On 29 sept. 2012, at 10:59, Han-Wen Nienhuys hanw...@gmail.com wrote:

 On Wed, Sep 26, 2012 at 10:40 PM, David Kastrup d...@gnu.org wrote:
 Han-Wen Nienhuys hanw...@gmail.com writes:
 
 In order to do cache invalidation, you will have to construct the
 reverse graph. If A.x depends on B.y, now A points to B. For proper
 cache invalidation, if B.y changes, then A.x becomes invalid. This
 means that A has to store a back-reference to B. Hence all pointers
 have to be stored both ways (including inverting 1-N relations into
 N-1 relations), and the both-way links have to be rewritten correctly
 during line breaking.
 
 You can assign a generational count to properties.  If the generational
 count of any dependency is higher than that of the dependent property,
 it needs to get regenerated.  As long as the dependencies don't get lost
 (and we use arbitrary size integers, resetting for each session), this
 should be pretty straightforward and not require backwards links.  It
 just requires double-checking your dependencies for change.
 
 But since the dependencies are also properties that could be
 invalidated, you'd have to recurse , so each property access would
 potentially expand into an almost infinite number of get_property
 calls.
 
 I think it is a much clearer abstraction to decide that each property
 can only be evaluated once, and that everything should be driven by
 callbacks. In fact, one thing I would suggest looking at is removing
 {before,after}_line_breaking which breaks this model somewhat.
 

I agree 110%.  The only corollary I'd add, which comes from my recent work, is 
that pure properties be re-evaluatable all the time (meaning that one should be 
allowed to arbitrarily flush the cache) to store better and better 
approximations of things.  For example, if one wants the pure heights of 
cross-staff beamed stems, the approximation one can get before line breaking is 
worse than that which one can get after.  After line breaking, one could 
theoretically run beam quanting using the pure heights and actual X positions, 
whereas before, these X positions don't exist.  So, pure properties in LilyPond 
become progressively more accurate as they go downstream, and once someone is 
positive that all the information is there to evaluate the actual property, 
get_property (or get_extent or whatever) is called.

I agree about (before,after)_line_breaking.

The single biggest offenders of this model, in my mind, are to be found in the 
engraver stage.  More specifically, I think that if we can get rid of the 
Tweak_engraver such that every property is initialized via the Grob::Grob (SCM 
basicprops) constructor (like in engraver.cc, for example) and not via 
set_property at the engraver stage, everything else will be easier.

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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread Han-Wen Nienhuys
On Sat, Sep 29, 2012 at 11:35 AM, m...@mikesolomon.org
m...@mikesolomon.org wrote:

 On 29 sept. 2012, at 10:59, Han-Wen Nienhuys hanw...@gmail.com wrote:

 On Wed, Sep 26, 2012 at 10:40 PM, David Kastrup d...@gnu.org wrote:
 Han-Wen Nienhuys hanw...@gmail.com writes:

 In order to do cache invalidation, you will have to construct the
 reverse graph. If A.x depends on B.y, now A points to B. For proper
 cache invalidation, if B.y changes, then A.x becomes invalid. This
 means that A has to store a back-reference to B. Hence all pointers
 have to be stored both ways (including inverting 1-N relations into
 N-1 relations), and the both-way links have to be rewritten correctly
 during line breaking.

 You can assign a generational count to properties.  If the generational
 count of any dependency is higher than that of the dependent property,
 it needs to get regenerated.  As long as the dependencies don't get lost
 (and we use arbitrary size integers, resetting for each session), this
 should be pretty straightforward and not require backwards links.  It
 just requires double-checking your dependencies for change.

 But since the dependencies are also properties that could be
 invalidated, you'd have to recurse , so each property access would
 potentially expand into an almost infinite number of get_property
 calls.

 I think it is a much clearer abstraction to decide that each property
 can only be evaluated once, and that everything should be driven by
 callbacks. In fact, one thing I would suggest looking at is removing
 {before,after}_line_breaking which breaks this model somewhat.


 I agree 110%.  The only corollary I'd add, which comes from my recent work, 
 is that pure properties be re-evaluatable all the time (meaning that one 
 should be allowed to arbitrarily flush the cache) to store better and better 
 approximations of things.  For example, if one wants the pure heights of 
 cross-staff beamed stems, the approximation one can get before line breaking 
 is worse than that which one can get after.  After line breaking, one could 
 theoretically run beam quanting using the pure heights and actual X 
 positions, whereas before, these X positions don't exist.  So, pure 
 properties in LilyPond become progressively more accurate as they go 
 downstream, and once someone is positive that all the information is there to 
 evaluate the actual property, get_property (or get_extent or whatever) is 
 called.

pure-properties are misnamed. If they are always are recomputed, they
should be called methods or even pure functions and not properties.

Of course, if there is a cache, you have to think about a simple and
rigorous scheme to know when the cache can be thrown away; the real
problem is about caching data based on other grobs, since invalidation
implies a lot more of pointer juggling

 I agree about (before,after)_line_breaking.

 The single biggest offenders of this model, in my mind, are to be found in 
 the engraver stage.  More specifically, I think that if we can get rid of the 
 Tweak_engraver such that every property is initialized via the Grob::Grob 
 (SCM basicprops) constructor (like in engraver.cc, for example) and not via 
 set_property at the engraver stage, everything else will be easier.

You could make a separate routine that prepends sym/value pairs onto
the immutable list; I'm not certain that this would intrinsically buy
you anything, though.

-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen

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


Re: Eliminate MARKUP_IDENTIFIER and MARKUPLIST_IDENTIFIER (issue 6561053)

2012-09-29 Thread dak

Reviewers: janek,

Message:
On 2012/09/28 06:22:40, janek wrote:

The description looks really nice, but unfortunately i think i don't

grasp the

consequences of this change.  Could you give some before/after input

examples?

Embarrassingly, not really.  The point of this change is to move forward
in removing the special-casing of various *_IDENTIFIER token types.  The
target is to arrive at only a single SCM_IDENTIFIER type.  Once that is
achieved, it is no longer necessary to evaluate identifiers in the
lexer, removing a source for awkward timing problems like

xxx = { c4 c4 c4 c4 }
\xxx

But as long as there remains more than one category of identifier, this
can't be done.  In a similar vein, it would be nice to be able to use a
scheme function call anywhere you use a markup: if we arrive there,
markup and markup list commands become mostly uninteresting for defining
commands intended to be top-level markups, usually called with \markup
\my-command ...  In that case, you can just use \my-command directly
without leading \markup and define it as a scheme function.

At the current point of time, this does not work at most places where
markups are allowed: you can use an identifier there (which basically is
an SCM_IDENTIFIER now) but you can't use a Scheme function as their
argument list parsing is a huge source of parser conflicts.  Once
Scheme/music functions are called somewhat transparently, they can be
used pretty much everywhere, also in and as markup.

This patch is part of preparing for that change, but it does not provide
significant improvements in usability by itself.  The main point is to
cut down on special cases provided by the lexer without _losing_
functionality.  But the actual awards for that will only come after a
number of similar patches.


Does this have anything to do with what you proposed in [GLISS] turn

xxx.yyy

into (xxx yyy)?


Not really.  It likely helps a bit.  It also begs the question whether
the . syntax should work just for building string lists, or whether it
should be open to building arbitrary markup lists (of which string lists
are a special case).  But that decision does not really require advance
consideration: it will more or less be hardwired into the parser actions
without requiring to be anchored in the grammar itself.

Description:
Eliminate MARKUP_IDENTIFIER and MARKUPLIST_IDENTIFIER

Those and their LYRIC variants are no longer generated by the lexer.
Instead, SCM_IDENTIFIER takes over their function.  One advantage is
that standard Scheme strings and lists of strings (including the empty
list!) are no longer receiving special syntactic status when used as
identifier.

Another is that markups and markup lists can now also be produced and
interpreted by define-scheme-function.  The ultimate goal, of course,
is to have try_special_identifiers return nothing except
SCM_IDENTIFIER.  If that is the case, $... (immediate Scheme) does
no longer need to get evaluated in the lexer and can be retitled into
active Scheme.  That would get rid of the Scheme timing problems and
make basically _everything_ doable by define-scheme-function.

This issue is a two-patch issue with the first patch being named:

parser.yy: remove embedded_scm as one production for assignment

This saved a few lines in the grammar for the price of clarity.

Please review this at http://codereview.appspot.com/6561053/

Affected files:
  M lily/parser.yy



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


Re: Eliminate MARKUP_IDENTIFIER and MARKUPLIST_IDENTIFIER (issue 6561053)

2012-09-29 Thread Janek Warchoł
On Sat, Sep 29, 2012 at 3:10 PM,  d...@gnu.org wrote:
 Embarrassingly, not really.  The point of this change is to move forward
 in removing the special-casing of various *_IDENTIFIER token types.  The
 target is to arrive at only a single SCM_IDENTIFIER type.  Once that is
 achieved, it is no longer necessary to evaluate identifiers in the
 lexer, removing a source for awkward timing problems like

So the idea is to make the grammar simpler (use less different types)
and have things happen on higher level?  Sounds reasonable, i guess...

 In a similar vein, it would be nice to be able to use a
 scheme function call anywhere you use a markup: if we arrive there,
 markup and markup list commands become mostly uninteresting for defining
 commands intended to be top-level markups, usually called with \markup
 \my-command ...  In that case, you can just use \my-command directly
 without leading \markup and define it as a scheme function.

oh, that'd be nice.

Thanks for explanation!
LTGM.
Janek

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


Re: Eliminate MARKUP_IDENTIFIER and MARKUPLIST_IDENTIFIER (issue 6561053)

2012-09-29 Thread dak

On 2012/09/29 13:37:28, janek wrote:

On Sat, Sep 29, 2012 at 3:10 PM,  mailto:d...@gnu.org wrote:
 Embarrassingly, not really.  The point of this change is to move

forward

 in removing the special-casing of various *_IDENTIFIER token types.

The

 target is to arrive at only a single SCM_IDENTIFIER type.  Once that

is

 achieved, it is no longer necessary to evaluate identifiers in the
 lexer, removing a source for awkward timing problems like



So the idea is to make the grammar simpler (use less different types)
and have things happen on higher level?  Sounds reasonable, i guess...


Actually, it is not really simplifying the grammar.  At the current
point of time, the lexer has to make decisions about the type of
identifiers (and functions) at a point of time where those decisions are
actually premature.  As a result of those decisions, different tokens
are generated for identifiers and functions.  I am moving towards
generating only one kind of token.  The same kind of decisions as before
still have to be made, and since the lexer no longer makes them, the
decisions are instead taken in the actions of the parser.  The results
of those decisions are only apparent in the parser rules when those
decisions lead to synthetic tokens (similar to the previous real
ones) being generated in the parser actions.

So the distinctions that were previously made are still there, they are
just done at a later point of time, and result in different actions
through different mechanisms.  Of course, once the lexer only delivers
identifiers in a single way, there are some simplifications possible,
but the overall architecture is still a worse fit to the Bison/Flex
pairing of parser/scanner generator than the state from two years ago,
as that pairing is based on lookahead principles with rigid tokenization
rules that are not really a perfect fit for LilyPond's sort of dynamic
typing.

So overall, the parser is not getting simpler.  I can straighten out
some stuff when passing certain milestones, boiling down complexity
again, but since I am moving functionality from where it is intended to
be from the view of the basic Bison/Flex architecture, the best it can
be is a consistent subsystem not looking more complex than the task it
is taking over.

http://codereview.appspot.com/6561053/

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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread David Kastrup
Marc Hohl m...@hohlart.de writes:

 Am 29.09.2012 11:01, schrieb David Kastrup:
 Marc Hohl m...@hohlart.de writes:

 Am 28.09.2012 17:40, schrieb d...@gnu.org:
 hmm... not quite perfect.
 No other idea, though...
 \here misses the relation to the next item (not that \single is much
 better).  \directly was nicer in that regard.  \next would possibly also
 work.
 Having to choose between \single and \next, I would take \next.
 After thinking this over, I realized what worries me about \next: next
 is a loop control command in a number of different languages like awk,
 perl, Python.
 ... or think about TeX ;-)
   It is also frequently used for linked list pointers.  All
 of those common uses in computing are quite grammatically different in
 their usage.
 But on the other hand, we talk about usability, and I am not quite sure
 that *every* user thinks Perl/Python/TeX when he or she writes Lilypond.
 And \next seems to be more self-explanatory than \single (at least to
 me, it is).

I am not convinced.  Unless I see either a new proposal that I feel I
can get behind myself, or more prominent public support for one of the
numerous existing proposals including \next, I am going to stick with
\single.

Since by far the easiest time to press a change is before a first
version is installed, people should speak up now if they feel that
c' \next \easyHeadsOn e' g' is significantly better than
c' \single \easyHeadsOn e' g' for changing just the head on e', or if
they think they have another good name.

-- 
David Kastrup


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


Re: [Lilypond-auto] Issue 2868 in lilypond: Patch: Various clean-ups in stems and beams.

2012-09-29 Thread Marc Hohl

Am 29.09.2012 17:01, schrieb lilyp...@googlecode.com:


Comment #1 on issue 2868 by mts...@gmail.com: Patch: Various clean-ups 
in stems and beams.

http://code.google.com/p/lilypond/issues/detail?id=2868#c1

Various clean-ups in stems and beams.

*) Eliminates code dups for Kievan work.
*) Transfers functions that are called a lot to C++ to speed things up.
*) Eliminates unused variables.

No regtest changes.

http://codereview.appspot.com/6584045




Not tested, but according to modularity: LGTM.

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


Re: Eliminate MARKUP_IDENTIFIER and MARKUPLIST_IDENTIFIER (issue 6561053)

2012-09-29 Thread Janek Warchoł
On Sat, Sep 29, 2012 at 4:30 PM,  d...@gnu.org wrote:
 Actually, it is not really simplifying the grammar.  At the current
 point of time, the lexer has to make decisions about the type of
 identifiers (and functions) at a point of time where those decisions are
 actually premature.  As a result of those decisions, different tokens
 are generated for identifiers and functions.  I am moving towards
 generating only one kind of token.  The same kind of decisions as before
 still have to be made, and since the lexer no longer makes them, the
 decisions are instead taken in the actions of the parser.  The results
 of those decisions are only apparent in the parser rules when those
 decisions lead to synthetic tokens (similar to the previous real
 ones) being generated in the parser actions.

ok.  That's what i meant when i said have things happen on higher
level (i expect that it's not a technically correct statement, of
course :) )
thanks for explanations!
Janek

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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread Keith OHara
Han-Wen Nienhuys hanwenn at gmail.com writes:

 I think it is a much clearer abstraction to decide that each property
 can only be evaluated once, and that everything should be driven by
 callbacks. In fact, one thing I would suggest looking at is removing
 {before,after}_line_breaking which breaks this model somewhat.
 

Should that apply to properties that describe positioning of objects? 
Often LilyPond needs tentative positions for objects.

For example, when setting note-spacing constraints, the separation of staves is 
taken to be large enough that items do not interfere between staves.  The 
widths 
of text items are ignored, based on their extra-spacing-* properties.  Rests 
avoiding beams have a tentative position.  Some repeated accidentals on tied 
notes exist, but may disappear.

The note-spacing code uses skylines, which depend on positions for the enclosed 
objects, and wants tentative positions appropriate to this phase of layout.

One way to organize these phases of layout is by registering callbacks to be 
performed (or maybe in future reset) between phases: 
before/after-line-breaking. 

The alternative organizational method in the code today is religious 
observance: 
for it is written, On the day of Note-Spacing, thou shalt avert thine eyes from 
the stems, for stems keep the company of beams, and beams are impure, thus to 
seek knowledge of the tip of a stem would be impure.



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


Re: Syntactical question [was: Re: Call for help with bar lines]

2012-09-29 Thread Laura Conrad
 David == David Kastrup d...@gnu.org writes:

 \bar  inserts an empty stencil, so the padding around the
 (invisible) bar line is preserved.

David Yes, I understood that.  But what do we need that for?

For the Renaissance music I transcribe, the composers weren't thinking
in bar lines, so it's  both unhelpful and unaesthetic to have, for
instance, a run of quarter notes interrupted by the extra space where
the non-existent barlines would be if they existed.

The way I finally figured out how to do this with the old bar line
interface was that instead of saying that the default bar type was
either empty or , I leave the default bar type, and make it
transparent, and then remove the padding.  But I never figured out how
to remove the padding from an empty or null bar line.

I hope that the new interface both makes more sense than the old one,
and still allows me to set barless music without ugly gaps where the bar
lines aren't.

-- 
Laura   (mailto:lcon...@laymusic.org, twitter: @serpentplayer)
(617) 661-8097  233 Broadway, Cambridge, MA 02139   
http://www.laymusic.org/ http://www.serpentpublications.org

Tristo e' quel discepolo che non avanza il suo Maestro.

(It's a bad student who doesn't advance past his Master.)

Leonardo da Vinci


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


Re: Provide \hide and \no functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread janek . lilypond

Too bad that \delete is taken...
Maybe using \no is the right choice, although i'd prefer to make this
decision after GLISS decides that we don't need \no for something else.

As for \single vs. \next, i don't have a strong opinion.

Janek


http://codereview.appspot.com/6575048/

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


Re: Syntactical question [was: Re: Call for help with bar lines]

2012-09-29 Thread Marc Hohl

Am 29.09.2012 18:39, schrieb Laura Conrad:

David == David Kastrup d...@gnu.org writes:

  \bar  inserts an empty stencil, so the padding around the
  (invisible) bar line is preserved.

 David Yes, I understood that.  But what do we need that for?

For the Renaissance music I transcribe, the composers weren't thinking
in bar lines, so it's  both unhelpful and unaesthetic to have, for
instance, a run of quarter notes interrupted by the extra space where
the non-existent barlines would be if they existed.

The way I finally figured out how to do this with the old bar line
interface was that instead of saying that the default bar type was
either empty or , I leave the default bar type, and make it
transparent, and then remove the padding.  But I never figured out how
to remove the padding from an empty or null bar line.

I hope that the new interface both makes more sense than the old one,
and still allows me to set barless music without ugly gaps where the bar
lines aren't.

Hmmm - with the new interface, nonexistent bar lines are not
supported (yet), but I think that \bar #f or \defaultBarType = ##f
*could* be made to work.

On the other hand, why don't you just remove the Bar_engraver
when you don't need it at all?
I had not typeset music without bars so far, but this seems to me
to be the easiest way to handle such situations.

Regards,

Marc






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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread Colin Campbell

On 12-09-29 09:47 AM, David Kastrup wrote:

I am not convinced.  Unless I see either a new proposal that I feel I
can get behind myself, or more prominent public support for one of the
numerous existing proposals including \next, I am going to stick with
\single.

Since by far the easiest time to press a change is before a first
version is installed, people should speak up now if they feel that
c' \next \easyHeadsOn e' g' is significantly better than
c' \single \easyHeadsOn e' g' for changing just the head on e', or if
they think they have another good name.




From a relatively uninformed point of view, \single seems to be 
directly and tightly coupled to the object following it, and only to 
that one object, only for the life of that object.  \next doesn't seem 
quite so definite and restricted, for some reason, perhaps because there 
could be an implication that it applies to the next instance of the 
object either before or after the \next token.  It's early and the 
caffeine level is rather low in the brain stem, but \single is the more 
clear term for me.


Cheers,
Colin

--
I've learned that you shouldn't go through life with a catcher's mitt on both 
hands.
You need to be able to throw something back.
-Maya Angelou, poet (1928- )


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


Re: Provide \hide and \omit functions for transparent and void glyphs (issue 6575048)

2012-09-29 Thread Marc Hohl

Am 29.09.2012 18:54, schrieb Colin Campbell:

On 12-09-29 09:47 AM, David Kastrup wrote:

I am not convinced.  Unless I see either a new proposal that I feel I
can get behind myself, or more prominent public support for one of the
numerous existing proposals including \next, I am going to stick with
\single.

Since by far the easiest time to press a change is before a first
version is installed, people should speak up now if they feel that
c' \next \easyHeadsOn e' g' is significantly better than
c' \single \easyHeadsOn e' g' for changing just the head on e', or if
they think they have another good name.




From a relatively uninformed point of view, \single seems to be 
directly and tightly coupled to the object following it, and only to 
that one object, only for the life of that object.  \next doesn't seem 
quite so definite and restricted, for some reason, perhaps because 
there could be an implication that it applies to the next instance of 
the object either before or after the \next token.

You are a native speaker, so I would trust you more than my feelings.
\single would be ok for me then.
  It's early and the caffeine level is rather low in the brain stem, 
but \single is the more clear term for me.

Well, here it is 19:00 and the caffeine level is rather low already ;-)

Regards,

Marc


Cheers,
Colin




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


Re: [GLISS] facilitate changes of the (default-) drumStyleTable

2012-09-29 Thread Marc Hohl

Am 27.09.2012 00:32, schrieb Thomas Morley:

2012/9/26 Marc Hohl m...@hohlart.de:


I like the idea of giving the user the ability to change only parts of the
list
without having to rewrite the full list; I think that this concept could be
of
use in other parts of lilypond as well,

Hi Marc,

further testing showed a major-problem:

Using `hashq-set!' here is too much force brute and will result in an
unintended change of lily-internals.
I.e. compiling all .ly files in a folder with
lilypond *.ly
will show the changes in _all_ files, even if \changeDrumStyleTable is
_not_ used in a file.

Oops. That's interesting (and not what we want, of course).


\set DrumStaff.drumStyleTable = #(alist-hash-table my-drums)
is not that invasive.


Nevertheless, IMHO the question about an easy, less intricate method
how to change a single value in the predefined drumStyleTable stands
as a valid request.

+1

I think you should raise an issue for that.

Regards,

Marc


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


Re: Syntactical question [was: Re: Call for help with bar lines]

2012-09-29 Thread Laura Conrad
 Marc == Marc Hohl m...@hohlart.de writes:

 I hope that the new interface both makes more sense than the old one,
 and still allows me to set barless music without ugly gaps where the bar
 lines aren't.
Marc Hmmm - with the new interface, nonexistent bar lines are not
Marc supported (yet), but I think that \bar #f or \defaultBarType = ##f
Marc *could* be made to work.

Marc On the other hand, why don't you just remove the Bar_engraver
Marc when you don't need it at all?
Marc I had not typeset music without bars so far, but this seems to me
Marc to be the easiest way to handle such situations.

I would have thought so before I did it, too.  I think if we were
typesetting for 16th century musicians, it would be.

However, I get complaints when a line break occurs within a bar.  The
facsimiles do this all the time (even in the 17th and eighteenth
centuries, when they were printing bar lines almost as often as we do),
but when I do it, the players complain.

So if you have some way to say remove the Bar Engraver, but have the
line breaker still keep some kind of count of where in the time
signature it is, I'll try it.  

I don't know whether the relationship between the Bar Engraver and the
line breaker would allow this at all.


-- 
Laura   (mailto:lcon...@laymusic.org, twitter: @serpentplayer)
(617) 661-8097  233 Broadway, Cambridge, MA 02139   
http://www.laymusic.org/ http://www.serpentpublications.org

A traveling horn virtuoso, Barry Tuckwell, was once asked about the
problem of how to practice while traveling and living in hotels. He
replied that he just turned up the TV and practiced because no one
minded the TV being loud!

quoted by RC Walsh on recor...@yahoogroups.com


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


Re: Adds tick mark to scripts (issue 6568055)

2012-09-29 Thread Janek Warchoł
Hmm.
My answer to how would we place the glyph at the correct vertical
position, above the barline? is: i suppose that we're going to create
a \tickBreathe command; if so, i guess that defining it in this manner
tickBreathe = {
  \override BreathingSign #'outside-staff-priority = something
  \override BreathingSign #'staff-padding = something
  \override BreathingSign #'stencil = #(...)
  \breathe
}
should result in tick breathe appearing where we want it (i.e. i
hope that outside-staff-priority will result in placing this object
outside of the staff, and staff-padding will determine how far would
that be).

cheers,
Janek

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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread m...@mikesolomon.org

On 29 sept. 2012, at 18:34, Keith OHara k-ohara5...@oco.net wrote:

 Han-Wen Nienhuys hanwenn at gmail.com writes:
 
 I think it is a much clearer abstraction to decide that each property
 can only be evaluated once, and that everything should be driven by
 callbacks. In fact, one thing I would suggest looking at is removing
 {before,after}_line_breaking which breaks this model somewhat.
 
 
 Should that apply to properties that describe positioning of objects? 
 Often LilyPond needs tentative positions for objects.
 
 For example, when setting note-spacing constraints, the separation of staves 
 is 
 taken to be large enough that items do not interfere between staves.  The 
 widths 
 of text items are ignored, based on their extra-spacing-* properties.  Rests 
 avoiding beams have a tentative position.  Some repeated accidentals on tied 
 notes exist, but may disappear.
 
 The note-spacing code uses skylines, which depend on positions for the 
 enclosed 
 objects, and wants tentative positions appropriate to this phase of layout.
 

The way you're using tentative is almost exactly how pure properties are used 
in LilyPond.  The only example that doesn't work that way is the accidental 
one, which I believe is a bug in LilyPond - I want to say that the space is 
reserved even after the accidental is killed off (I'd have to verify that).

 One way to organize these phases of layout is by registering callbacks to be 
 performed (or maybe in future reset) between phases: 
 before/after-line-breaking. 
 
 The alternative organizational method in the code today is religious 
 observance: 
 for it is written, On the day of Note-Spacing, thou shalt avert thine eyes 
 from 
 the stems, for stems keep the company of beams, and beams are impure, thus to 
 seek knowledge of the tip of a stem would be impure.
 
 

I am a fan of the second over the first.  I think all property look-ups should 
be pure until one is absolutely certain that the property won't change, at 
which point the unpure value should be cached and returned for both pure and 
unpure queries (impure sounds too religious, thus unpure).  The pure properties 
need not always return the same value - they can get closer and closer to the 
unpure as more and more information gets determined.  Cached pure values for 
Items can be flushed at any point if someone wants a potentially better 
approximation, at which point the calculation would be redone and the cache 
restocked.

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


Re: Adds tick mark to scripts (issue 6568055)

2012-09-29 Thread Phil Holmes
- Original Message - 
From: Janek Warchoł janek.lilyp...@gmail.com

To: Phil Holmes m...@philholmes.net
Cc: James pkx1...@gmail.com; lilypond-devel@gnu.org; d...@gnu.org; 
lemzw...@googlemail.com; re...@codereview-hr.appspotmail.com; 
philehol...@googlemail.com

Sent: Saturday, September 29, 2012 6:25 PM
Subject: Re: Adds tick mark to scripts (issue 6568055)



Hmm.
My answer to how would we place the glyph at the correct vertical
position, above the barline? is: i suppose that we're going to create
a \tickBreathe command; if so, i guess that defining it in this manner
tickBreathe = {
 \override BreathingSign #'outside-staff-priority = something
 \override BreathingSign #'staff-padding = something
 \override BreathingSign #'stencil = #(...)
 \breathe
}
should result in tick breathe appearing where we want it (i.e. i
hope that outside-staff-priority will result in placing this object
outside of the staff, and staff-padding will determine how far would
that be).

cheers,
Janek



Well, in the current version of the NR, the guidance for changing the breath 
sign is:
\override BreathingSign #'text = \markup {\musicglyph 
#scripts.caesura.straight}


No padding or anything else there.  This is what I thought it best to 
replicate.  I am OK with providing documentation that shows how to move the 
tick sign away from the top of the stave.  I'm just not OK with its default 
being halfway across the staff line.  That's plain ugly.  I've designed the 
glyph to be used as a tick for a breath mark.  No-one has cried out for a 
similar sign for any other purpose.  Let's keep the baseline in the obvious 
place - at the bottom of the glyph.  If you want one elsewhere, please add 
another glyph.



--
Phil Holmes 



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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread Keith OHara

On Sat, 29 Sep 2012 10:30:32 -0700, m...@mikesolomon.org m...@mikesolomon.org 
wrote:



The way you're using tentative is almost exactly how pure properties are used 
in LilyPond.


Specifically, 'pure-height being the estimated vertical extent before 
line-breaking, while 'height is its extent after line-breaking.

If there are distinct properties to describe the position at different stages, 
then each property can be evaluated just once (as HanWen suggested, and as Mike 
agreed 100%).



I think all property look-ups should be pure until one is absolutely certain 
that the property won't change, at which point the unpure value should be 
cached and returned for both pure and unpure queries (impure sounds too 
religious, thus unpure).  The pure properties need not always return the same 
value - they can get closer and closer to the unpure as more and more 
information gets determined.


This is the opposite approach, where some properties are not permanent at 
all.  The word 'tentative' is a better label than 'pure', because pure functions would 
always return the same value given the same arguments.


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


Re: Project - Eliminating grob parents and outside-staff-priority

2012-09-29 Thread m...@mikesolomon.org

On 29 sept. 2012, at 19:53, Keith OHara k-ohara5...@oco.net wrote:

 On Sat, 29 Sep 2012 10:30:32 -0700, m...@mikesolomon.org 
 m...@mikesolomon.org wrote:
 
 
 The way you're using tentative is almost exactly how pure properties are 
 used in LilyPond.
 
 Specifically, 'pure-height being the estimated vertical extent before 
 line-breaking, while 'height is its extent after line-breaking.
 
 If there are distinct properties to describe the position at different 
 stages, then each property can be evaluated just once (as HanWen suggested, 
 and as Mike agreed 100%).
 
 
 I think all property look-ups should be pure until one is absolutely certain 
 that the property won't change, at which point the unpure value should be 
 cached and returned for both pure and unpure queries (impure sounds too 
 religious, thus unpure).  The pure properties need not always return the 
 same value - they can get closer and closer to the unpure as more and more 
 information gets determined.
 
 This is the opposite approach, where some properties are not permanent at 
 all.  The word 'tentative' is a better label than 'pure', because pure 
 functions would always return the same value given the same arguments.
 

True dat.  Someone wanna do a perl one-line replace subbing in tenative for 
pure and post the patch? :-)

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


Re: Syntactical question [was: Re: Call for help with bar lines]

2012-09-29 Thread Marc Hohl

Am 29.09.2012 19:05, schrieb Laura Conrad:

Marc == Marc Hohl m...@hohlart.de writes:

  I hope that the new interface both makes more sense than the old one,
  and still allows me to set barless music without ugly gaps where the bar
  lines aren't.
 Marc Hmmm - with the new interface, nonexistent bar lines are not
 Marc supported (yet), but I think that \bar #f or \defaultBarType = ##f
 Marc *could* be made to work.

 Marc On the other hand, why don't you just remove the Bar_engraver
 Marc when you don't need it at all?
 Marc I had not typeset music without bars so far, but this seems to me
 Marc to be the easiest way to handle such situations.

I would have thought so before I did it, too.  I think if we were
typesetting for 16th century musicians, it would be.

However, I get complaints when a line break occurs within a bar.  The
facsimiles do this all the time (even in the 17th and eighteenth
centuries, when they were printing bar lines almost as often as we do),
but when I do it, the players complain.

So if you have some way to say remove the Bar Engraver, but have the
line breaker still keep some kind of count of where in the time
signature it is, I'll try it.

I don't know whether the relationship between the Bar Engraver and the
line breaker would allow this at all.




Just an idea: have you tried

\override Staff.BarLine #'stencil = ##f

IIUC, then 'no stencil' leads to 'no padding'.

Regards,

Marc

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


Re: Provide \hide and \omit functions for transparent and void glyphs(issue 6575048)

2012-09-29 Thread Trevor Daniels

David Kastrup wrote Saturday, September 29, 2012 4:47 PM


 Marc Hohl m...@hohlart.de writes:
 
 Am 29.09.2012 11:01, schrieb David Kastrup:
 Marc Hohl m...@hohlart.de writes:

 Am 28.09.2012 17:40, schrieb d...@gnu.org:
 hmm... not quite perfect.
 No other idea, though...
 \here misses the relation to the next item (not that \single is much
 better).  \directly was nicer in that regard.  \next would possibly also
 work.
 Having to choose between \single and \next, I would take \next.
 After thinking this over, I realized what worries me about \next: next
 is a loop control command in a number of different languages like awk,
 perl, Python.
 ... or think about TeX ;-)
   It is also frequently used for linked list pointers.  All
 of those common uses in computing are quite grammatically different in
 their usage.
 But on the other hand, we talk about usability, and I am not quite sure
 that *every* user thinks Perl/Python/TeX when he or she writes Lilypond.
 And \next seems to be more self-explanatory than \single (at least to
 me, it is).
 
 I am not convinced.  Unless I see either a new proposal that I feel I
 can get behind myself, or more prominent public support for one of the
 numerous existing proposals including \next, I am going to stick with
 \single.
 
 Since by far the easiest time to press a change is before a first
 version is installed, people should speak up now if they feel that
 c' \next \easyHeadsOn e' g' is significantly better than
 c' \single \easyHeadsOn e' g' for changing just the head on e', or if
 they think they have another good name.

I prefer \single to \next.

\justOne \onlyOne ?

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


Re: Provide \hide and \omit functions for transparent and void glyphs(issue 6575048)

2012-09-29 Thread David Kastrup
Trevor Daniels t.dani...@treda.co.uk writes:

 David Kastrup wrote Saturday, September 29, 2012 4:47 PM

 Since by far the easiest time to press a change is before a first
 version is installed, people should speak up now if they feel that
 c' \next \easyHeadsOn e' g' is significantly better than
 c' \single \easyHeadsOn e' g' for changing just the head on e', or if
 they think they have another good name.

 I prefer \single to \next.

 \justOne \onlyOne ?

It is, in a way, a complement to \once, so I would want to avoid
multiple-word approaches leading to CamelCase.

-- 
David Kastrup

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


Re: bar-line interface part 2/2: New bar line definition standard (issue 6498052)

2012-09-29 Thread k-ohara5a5a

On 2012/09/29 09:14:08, marc wrote:

Am 29.09.2012 07:11, schrieb k-ohara5...@oco.net:
 In one pdf previewer (evince) at low resolution, the span bars look

a

 little thicker than the regular bar lines.


Disregard.  The slight mis-rendering on screen was there before your
patch as well.


http://codereview.appspot.com/6498052/

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


Re: bar-line interface part 2/2: New bar line definition standard (issue 6498052)

2012-09-29 Thread k-ohara5a5a

Now looking at the log files, I do get undead errors for our
regression test 'bar-line-define-bar-glyph.ly' but not from any other
files that I tried.  (I don't know why the scripts from `make check` did
not flag it.)

There are four messages, but the particular undead objects vary from run
to run.

http://codereview.appspot.com/6498052/

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


Re: Provide \hide and \omit functions for transparent and void glyphs(issue 6575048)

2012-09-29 Thread Werner LEMBERG
 I prefer \single to \next.

 \justOne \onlyOne ?
 
 It is, in a way, a complement to \once, so I would want to avoid
 multiple-word approaches leading to CamelCase.

Had someone already suggested \here?


Werner

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


Regularize lyrics lexer mode (issue 6594047)

2012-09-29 Thread lemzwerg

LGTM.

http://codereview.appspot.com/6594047/

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


Re: GUB commands not running

2012-09-29 Thread Graham Percival
On Mon, Sep 24, 2012 at 10:43:25AM +0100, Phil Holmes wrote:
 - Original Message - From: Graham Percival
 gra...@percival-music.ca
 Either lilypond.make has changed (only one change in the past two
 years:
 https://github.com/gperciva/gub/commit/dd2f4077f5f818a6f689b0f4a795bacb92dcb8ae
 which doesn't seem like it could cause this, but also check that
 
 Have another careful look at that change.  We have:
 
 
 #FIXME: we cannot use python from tools, because of the gub/logging.py
 #   name clash.  Todo: rename gub/logging.py -- triggers full
 #   rebuild.  Not using tools means: we depend on /usr/bin/makeinfo
 #SET_TOOLS_PATH=PATH=$(CWD)/target/tools/root/usr/bin:$(PATH)
 
 and then the SET_TOOLS_PATH variable is used later in the make.  But
 look - it's commented out in the change.
 
 My guess is that this is the problem.  Do you agree?

Hmm, that sounds distinctly plausible.  I suggest uncommenting it
out and see if that fixes it?

 I've had a look through the makefiles and logs and couldn't find
 where the missing commands were supposed to be run, but I remain
 suspicious about the above.

Well, let's take the case of make -f lilypond.make test.  I've
extracted the relevant parts of lilypond.make below (but don't
feel bad; these parts are somewhat disguised by the surrounding
text)


test: dist-check test-output test-export

test-export:
... $(MAKE) cached-test-export

cached-test-export:
... $(MAKE) $(subst cached,unlocked,$@) ...
(in this case, it does unlocked-test-export)

unlocked-test-export:
...
$(SET_TOOLS_PATH) \
$(PYTHON) test-lily/rsync-test.py \
--version-file=$(NATIVE_LILY_BUILD)/out/VERSION \

--output-distance=$(NATIVE_LILY_SRC)/$(BUILDSCRIPTS)/output-distance.py
\
--test-dir=uploads/webtest


no, I don't claim to understand what all those steps are doing.
But it certainly looks like it'll have problems if
$(SET_TOOLS_PATH) is not set correctly.

- Graham

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