The convert-ly rule was only intended for making our documentation
somewhat snappier. Since it is only intended to remove manual
beamings that have now become redundant, it's mainly interesting for
documentation rather than user-level documents.
David Kastrup [Tue, 24 Sep 2013 09:30:12 +0000 (11:30 +0200)]
Issue 3579: Make "Adding extra fingering with scheme" snippet do something useful
This snippet was never operative in 2.16 due to the EventChord changes
of issue 2240. This updates it into using a few 2.16 features in
order to make things simpler while retaining the basic purpose.
David Kastrup [Tue, 24 Sep 2013 14:40:02 +0000 (16:40 +0200)]
Issue 3580: Replace unwarranted uses of map with for-each and other Scheme cleanups
Note that some uses of map actually relied on execution order (namely
expecting map to behave like map-in-order) and thus were not just
inelegant because of the side effect. There are also some other
mostly trivial simplification of Scheme constructs.
David Kastrup [Sun, 22 Sep 2013 16:34:11 +0000 (18:34 +0200)]
Issue3571: Stop \lyricmode { \skip 1.*3 } from failing.
The problem was that the lexer preferred to match ".*" as a word since
the matched pattern was longer than the explicit pattern matching ".".
The word pattern is now amended so that it does not compete with the
single-character patterns.
David Kastrup [Thu, 19 Sep 2013 12:52:26 +0000 (14:52 +0200)]
Issue 3565: Doc, EG: LilyPond's getting too smart for the "Inline Scheme code" section
The "Inline Scheme code" section already was embarrassing enough
during its last revision, when a trivial syntactic change was all that
was required in order to have the stated problem go away without
requiring to revert to Scheme.
Since then, the situation has further deteriorated: the originally
"what we would like to do but it fails" example works entirely
unchanged without a hitch.
David Kastrup [Wed, 18 Sep 2013 18:57:59 +0000 (20:57 +0200)]
Issue 3563: Allow define-*-function to accept currying definitions
This is actually only useful for define-scheme-function since the
purpose of a currying definition is to return a function rather than a
music expression. A typical usage case would be a function creating
an engraver closure:
David Kastrup [Thu, 12 Sep 2013 20:05:07 +0000 (22:05 +0200)]
Issue 3553/2: When creating a hierarchy above Bottom, all intermediate levels are named "\new"
Previously, get_default_interpreter gave all intermediate levels the
same id as that of the new Bottom level.
However, since issue 3225, there can be more than one Bottom in one
hierarchy since a Bottom context (defined by not having a
\defaultchild) can still have children contexts (of any type it
\accepts even while it would not create them implicitly).
So it is a bad idea to give implicitly created contexts the same id as
any explicitly named context.
David Kastrup [Sun, 15 Sep 2013 13:53:51 +0000 (15:53 +0200)]
Issue 3555: Parse context definitions and context modifications in \notemode
Since context modifications and context definitions are somewhat more
concerned with musical content, it makes sense to parse them in a mode
where note names are recognized and can be used in music and scheme
function arguments.
The main argument for a separate INITIAL lexer mode is for being able
to specify REAL number values in a lenient syntax, such as .5\cm.
However, dimensions are almost never used in context definitions
or modifications but rather in output definitions like layout, midi,
paper and header blocks.
Build: Disallow metapost versions 1.600 <= x < 1.803.
Add a check in ./configure to avoid buggy versions of metapost
starting with the rewrite that occured in the 1.600 series and
finally fixed in version 1.803 and later.
Fixes issue 3539: Configure should forbid mpost 1.802 from TexLive 2013
http://code.google.com/p/lilypond/issues/detail?id=3539
Build: Dependencies for metafont files (issue 779).
Write .dep files containing make dependency rules for .mf files,
allowing to simply type `make' to process the fonts after changing
an input'ed file and have the fonts updated with the minimum amount
of processing.
These .dep files are generated by recursively scanning for lines
of the form "input X;" in the .mf files, and looking up these
input'ed files within the mf source directory. The .dep files are
included into the build by stepmake/generic-targets.make.
Fixes issue 779: fonts should be rebuilt upon modifications to mf/
http://code.google.com/p/lilypond/issues/detail?id=779
David Kastrup [Sat, 14 Sep 2013 09:09:18 +0000 (11:09 +0200)]
Issue 3552: Don't modify lists returned by markup list functions in interpret-markup-list
This requires either
a) copying any list manually
b) interpreting markup lists right-to-left
c) more complicated and/or non-O(n) algorithms
This patch chooses b). Modifying the lists is not really appropriate
since the lists may be created by user-written markup commands and any
problems resulting from not expecting modifications of the return
value might be quite hard to debug.
David Kastrup [Sun, 15 Sep 2013 09:01:06 +0000 (11:01 +0200)]
Issue 3554: Avoid empty grammar rules using @$ for getting a source location
Several rules use @$ for getting the source position from an empty
rule, but Bison does not even provide a source position for empty
rules.
This patch fixes most cases by letting different non-empty rules
assign the respective source positions. The case of #{ #} cannot be
fixed in that manner since there is not a single token providing a
source position in the whole production. Fixing this particular case
would require a different technique.
David Kastrup [Sun, 8 Sep 2013 21:50:16 +0000 (23:50 +0200)]
Issue 3297: Make lexer more robust against unexpected EOF in main input
This approach works by letting Lily_lexer::pop_state not cross the
maininput threshold. Since Lily_lexer::pop_state is the "cooked" form
of yy_pop_state (also hiding the extratoken machinery), this keeps the
"maininput" state firmly under the lexer's control and avoids exiting
it prematurely.