Use a single rule to build header and source files from
the syntax file, thus avoiding any possibility to have
`make' rebuild one but not the other, which might happen
if the syntax and target files have almost the same but
slightly differing timestamps.
See http://www.mail-archive.com/bug-lilypond@gnu.org/msg37081.html
Fixes issue 3528: Keep bison-generated files in sync.
http://code.google.com/p/lilypond/issues/detail?id=3528
Frédéric Bron [Fri, 23 Aug 2013 15:30:34 +0000 (17:30 +0200)]
Issue 3531: replaced function argument 'string' by 'const string&' where it makes sense to avoid unnecessary copying of 'string' objects.
Measurements on x86_64 (i7-2760QM, 2.40GHz) Fedora 19 with g++ 4.8.1, with
configure --enable-optimising --disable-debugging; tests run 10 times, average
elapsed time compared (/usr/bin/time)
* Bach, Concerto in E major or violin and strings, BWV 1042 (Mutopia source),
38 pages:
$ lilypond score.ly -> master: 15.4s, with patch: -0.1%
* lilypond regression tests (1153 .ly files):
$ lilypond *.ly -> master: 276.6s, with patch: -2.5%
Keith OHara [Thu, 29 Aug 2013 17:43:40 +0000 (10:43 -0700)]
markup: some skylines should not follow printed shapes; issue 3522
Implement the stencil tag 'transparent to support proper skylining of
stencils with extents different from their printed shapes, such as those
created by \transparent and \with-dimensions, or where the printed shape
is not yet known during layout, such as \page-ref.
Janek Warchol [Sun, 12 Jun 2011 22:34:45 +0000 (00:34 +0200)]
make sure that AmbitusLine is visible for small ambits
Until now, the gap between ambitus heads and ambitus line
was constant, so either the gap had to be very small or
the line wasn't visible in case of smaller ambits (like
4th or 5th). With this patch ambitus gap will be calculated
dynamically, depending on the distance between ambitus heads.
Also, the default gap for bigger ambits is changed so that
ambitus line will end precisely in the staffline or in the
middle of staffspace.
David Kastrup [Sat, 31 Aug 2013 16:57:09 +0000 (18:57 +0200)]
Issue 3527: parser.yy: allow "scalar" to be a negative literal number
This makes the syntax of the value for \override (a hardwired syntax
construct which accepts a "scalar") and \tweak (which is a music
function accepting an expression of type "scheme?" possibly ending up
as a negative number) more comparable.
David Kastrup [Tue, 16 Jul 2013 16:12:06 +0000 (18:12 +0200)]
Add some comments to lily/dispatcher.cc
Also change "bubblesort" moniker to "insertion sort". While it's
widespread malpractice to call any O(n^2) sorting algorithm comparing
and conditionally exchanging adjacent elements "bubblesort", something
as rare and precious as a comment in LilyPond code deserves getting
done right.
David Kastrup [Sat, 17 Aug 2013 15:34:00 +0000 (17:34 +0200)]
Issue 3505: Let add-grace-property and remove-grace-property work from current context
This basically sets the grace settings in the current context unless
the context specification is for a parent context in which case it is
directed there lest it become ineffective.
Thomas Morley [Sun, 18 Aug 2013 15:34:28 +0000 (17:34 +0200)]
Some clean up about grace-settings in music-functions.scm
- Stores a list,general-grace-settings, used by make-voice-props-set and make-voice-props-override.
- Settings to be used by the Score-context are appended to general-grace-settings and stored in score-grace-settings, used in engraver-init.ly
David Kastrup [Wed, 21 Aug 2013 02:09:29 +0000 (04:09 +0200)]
Issue 3489: Let \cue... use quoted-context-type of CueVoice consistently
Previously Voice was used and this relied on a a CueVoice purportedly
being created by cue-substitute itself and providing a Voice alias.
There is a regtest input/regression/quote-tuplet-end.ly which relied
on an explicit Voice = "cue" serving as a substite catch for the cue
notes, effectively turning \cueDuring into \quoteDuring. This kind of
usage is rather bizarre, and since it diverts the \voiceOne/\voiceTwo
settings for the cue voice into a CueVoice context anyway (which is
otherwise empty), the cue voice is still missing proper directional
information. This was not worth supporting.
Regularizing the usage in this manner will reliably stop \quoteDuring
from introducing surprise CueVoice contexts.
David Kastrup [Wed, 21 Aug 2013 02:04:02 +0000 (04:04 +0200)]
Issue 3489: Let \quoteDuring descend to bottom context for its output
Also regularizes interpretation of quoted-context-id. This patch by
itself does not resolve the issue since a CueContext is created in
any case, serving as Bottom and Voice context. A followup patch
fixes that.
Grobs that are not cross-staff are placed before staff-spacing,
so they may not force placement of cross-staff grobs.
When cross-staff items are placed around the spaced staves, let
them side-position using the final, not 'pure', information.
David Kastrup [Wed, 14 Aug 2013 19:36:58 +0000 (21:36 +0200)]
Issue 3498: fatal error with toplevel-markup-identifier
The reported problem
mrkp = \markup { "x" }
\mrkp
triggers an error because of markup requiring additional lookahead in
assignments. This is fixed by sacrificing string addition, an arcane
and undocumented feature that has probably not been used in the last
decade or so.
David Kastrup [Sun, 4 Aug 2013 09:32:09 +0000 (11:32 +0200)]
Issue 3487: Make several special characters with or without backslash "shorthands"
Single non-alphanumeric ASCII characters not requiring special
treatment in lexer or parser can now be redefined like escaped
identifiers. The same holds for escaped non-alphanumeric ASCII
characters. The identifying name you use for redefining them is the
string corresponding to the full shorthand, in contrast to escaped
identifiers where the identifying name omits the initial backslash.
Notable shorthands not treated specially in the parser (some of them
newly so) can be seen in the following definitions from
scm/declarations-init.ly:
David Kastrup [Sun, 4 Aug 2013 09:36:34 +0000 (11:36 +0200)]
Make tempo range \tempo 20~30 be input as \tempo 20-30 instead
\tempo's use of ~ was rather untypical for LilyPond. Letting it
rather use @code{-} for ranges leaves just a single use for ties,
making it feasible to make @code{~} definable by the user in a later
commit.