David Kastrup [Fri, 12 Jun 2015 07:51:40 +0000 (09:51 +0200)]
Issue 4443: Don't pass current parser/location into #{...#} call
The construct #{...#} generates a call to a function embedded-lilypond.
After issue 4422, this call passed (*parser*)/(*location*) arguments
instead of the previous parser/location arguments needed for accessing
the respective values in a different lexical environment. But since the
respective values are stored in GUILE fluids rather than in lexical
variables now, they are already passed implicitly and unnecessary as
function parameters.
David Kastrup [Fri, 12 Jun 2015 11:41:11 +0000 (13:41 +0200)]
Issue 4442/7: Stop maintaining "parser" variable
When invoking a parser, the global "parser" variable was temporarily
pointing to the parser. This mechanism was somewhat awkward and with
problems of its own. Since an active parser maintains the %parser fluid
now, we can forego maintaining the "parser" variable altogether.
Trevor Daniels [Sat, 6 Jun 2015 21:22:13 +0000 (22:22 +0100)]
Issue 4435: Remove Solo staff when empty
The recently added Solo staff is outside the ChoirStaff and so
is not affected by the ChoirStaff overrides to VerticalAxisGroup.
This patch moves the overrides into a \layout block at top level
so all staves are affected. The overrides in PianoStaff are then
no longer required. Note that this \layout block can itself be
overridden by setting the Layout variable.
David Kastrup [Sat, 30 May 2015 08:58:22 +0000 (10:58 +0200)]
Issue 4425: Fix some CG musing about music functions
While the example code has been adapted to reflect the state of music
functions after acceptance of issue 4422 and issue 4421, the answer that
has now been replaced has been wrong from its inception.
David Kastrup [Sun, 24 May 2015 17:38:34 +0000 (19:38 +0200)]
Issue 4421/4: Make music functions callable from Scheme
The functions get their signature checked and optional argument handling
is exactly like in LilyPond, with *unspecified* taking the role of
"\default".
Dan Eble [Thu, 28 May 2015 00:39:47 +0000 (20:39 -0400)]
Issue 4423: eliminate part combiner's array of context handles (2/4)
Create child iterators in parent context. Add an initial split state
to ensure that the first split-list entry, whatever it is, will
redirect the outlets for the child iterators.
David Kastrup [Tue, 26 May 2015 23:35:08 +0000 (01:35 +0200)]
Issue 4422/3: Remove parser/location args from music function calls
When a music function definition starts with a parameter named "parser",
a compatibility definition is created that recreates the parameters
from the fluid accessors (*parser*) and (*location*) when necessary.
David Kastrup [Tue, 26 May 2015 11:36:53 +0000 (13:36 +0200)]
Issue 4422/1: Remove parser/location global variable setup
Instead of relying on the global parser/location work horse (or
respective symbols in local scope), now fluids %parser/%location and
getter functions (*parser*)/(*location*) are employed for setting up the
general parsing and providing #{...#} with accurate information.
This patch removes the global setup and internal information flow: there
is still a variable "parser" being set in local parser modules.
hanwen [Sat, 14 Mar 2015 14:39:16 +0000 (15:39 +0100)]
Decrease space between vertical beams by length-fraction.
This causes 16th and higher grace beams to be closer together.
Thanks to Daniel Spreadbury for noting this in his blog,
http://blog.steinberg.net/2015/03/development-diary-part-10/
To fix the regression in grace-start.ly, decrease collision-padding
for grace beams: since grace beams are smaller, objects must come
closer to be considered a collision.
To fix regressions where grace stems become too large, decrease
importance of forbidden quant scoring if length-fraction != 1.0..
David Kastrup [Wed, 20 May 2015 15:31:32 +0000 (17:31 +0200)]
Issue 3057: misbehavior of \deadNotesOn et al at start of music
User-level commands that do not move to a particular context will tend
to be applied at Bottom context when following any notes or similar
events, but at arbitrary level when being at the start of music. That's
a bad idea. This patch moves the head styling overrides to Bottom
level. While this means that
\new Staff { \deadNotesOn ...
will only affect the default Voice instead of the whole Staff, one can
still get per-Staff behavior with
David Kastrup [Wed, 20 May 2015 19:32:13 +0000 (21:32 +0200)]
Issue 4408: Several typos in the German doc
Particularly, the German docs confuse "eingestrichenes C" (middle C, C4,
LilyPond c') several times with "zweigestrichenenes C" (C in treble
staff, C5, LilyPond c'').
Dan Eble [Sat, 2 May 2015 02:21:43 +0000 (22:21 -0400)]
Issue 4365: non-member unsmob<T> replaces T::unsmob and T::is_smob
Hide Smob_base<>::is_smob() to prevent the misleading situation of
D::is_smob(S) returning true when S represents an ancestor of D rather
than a D. This issue was previously worked around by overriding
is_smob in several derived smob classes; that is no longer needed.
LY_ASSERT_SMOB() now returns a smob pointer. This is not used yet,
but is available for future use to avoid unsmobbing twice.
Smob_base<>::smob_p() is hidden because there doesn't seem to be a
need for it to be public.
Files in lily/include were edited by hand. Files in lily itself were
processed with the following sed script.
David Kastrup [Sun, 17 May 2015 10:04:32 +0000 (12:04 +0200)]
Issue 4400: Rework LY_DECLARE_SMOB_PROC to declare a member function
This is nicer to work with. LY_DECLARE_SMOB_PROC now needs to
additionally get the class name for declaring the smob procedure: this
is astonishingly hard to avoid. Moving the initialization out of
Smob_base<Super>::init into a separate routine smob_proc_init defined by
LY_DECLARE_SMOB_PROC considerably simplifies the initialization.
were done as hotfixes (apparently without associated tracker issues) to
get the current implementation of smobs to compile with old versions of
GCC in GUB as of Oct 2014. The attempts to make these versions of GCC
work were ultimately unsuccessful and GUB was upgraded to newer versions
of GCC.
It does not make sense to retain the workarounds that did not really
help.