David Kastrup [Mon, 29 Sep 2014 18:11:48 +0000 (20:11 +0200)]
Issue 4141/1: Define inline members unsmob and is_smob for several derived classes
David Kastrup [Thu, 25 Sep 2014 10:43:53 +0000 (12:43 +0200)]
Issue 4130: Isolated durations don't work after \pageBreak
The example
\score {
\new RhythmicStaff {
R1 |
\pageBreak
1~ |
8 r r4 r2 |
}
}
led to unexpected results since \pageBreak produces an EventChord which
is then taken as a repeat note by 1~. This patch makes sure that
repeated durations only attach to event chords containing rhythmic
events.
David Kastrup [Fri, 26 Sep 2014 12:26:54 +0000 (14:26 +0200)]
Issue 4133: Give predicate ly:grob-properties? the description "grob properties"
\set Staff.InstrumentName = "Test"
previously led to
warning: type check for `InstrumentName' failed;
value `"Test"' must be of type `ly:grob-properties'
and will now instead produce
warning: type check for `InstrumentName' failed;
value `"Test"' must be of type `grob properties'.
The output looks slightly less cryptic and more intentional. The plural
form is indeed correct: this type of context property serves as a
container for _all_ grob properties of InstrumentName.
David Kastrup [Sat, 27 Sep 2014 11:56:59 +0000 (13:56 +0200)]
Issue 4134: Remove trivial print_smob member functions
Those are provided by the Smob_base class anyway.
David Kastrup [Wed, 10 Sep 2014 15:01:43 +0000 (17:01 +0200)]
Issue 4135/2: Replace mark_smob static member functions with non-static members
Since the mark functions generally need to access a number of members,
it is quite more convenient if the mark functions are proper non-static
member functions.
David Kastrup [Sat, 27 Sep 2014 11:27:45 +0000 (13:27 +0200)]
Issue 4135/1: Don't use ASSERT_LIVE_IS_ALLOWED in simple smobs
When replacing mark_smob with a proper member function, use of
ASSERT_LIVE_IS_ALLOWED would require access to self_scm () or similar,
and simple smobs don't link back to their SCM cell. This only
concerns Skyline and Context_mod, so the loss is not all that
large.
James Lowe [Sun, 21 Sep 2014 07:22:10 +0000 (08:22 +0100)]
Changes.tely updated - 2.19.x up to September 2014
Issue 4122
Since June 2014.
Added Tracker issues
2813/3966, 3734/3825/3834, 4015, 4022,
4038, 4042, 4047, 4056, 4063, 4083,
and 4097.
Included @lilypond examples where appropriate
James Lowe [Sat, 27 Sep 2014 14:55:31 +0000 (15:55 +0100)]
Doc: Usage: Add more explanation for LaTeX environ
Issue 4136
Taken from:
http://lists.gnu.org/archive/html/bug-lilypond/2014-08/msg00047.html
Added paragraph explaining the finer details on how LaTeX handles
environments using \begin{lilypond} ... \end{lilypond}
James Lowe [Sat, 27 Sep 2014 15:26:36 +0000 (16:26 +0100)]
Doc: LM 4.1.2 additonal para for positioning grobs
Issue 4137
As reported in
http://lists.gnu.org/archive/html/bug-lilypond/2014-09/msg00025.html
Added paragraph regarding grobs that don't print output
but are used for 'positioning' and 'managing' other
grobs
David Kastrup [Wed, 1 Oct 2014 17:40:43 +0000 (19:40 +0200)]
Revert "Issue 4107/1: Use START/STOP for *recurse_over_translators instead of the counterintuitive DOWN/UP"
This reverts commit
113223f5d488baf62b0e1a7bf4c2cfee037f4e0e.
David Kastrup [Wed, 1 Oct 2014 17:40:34 +0000 (19:40 +0200)]
Revert "Issue4107/2: Score_performer::prepare: precomputed_recurse_over_translators should do START, not STOP"
This reverts commit
0e1e8169813d68179939d2361936cb4e80f7c394.
Federico Bruni [Mon, 29 Sep 2014 21:18:11 +0000 (23:18 +0200)]
Merge branch 'lilydev' into staging
Phil Holmes [Sun, 28 Sep 2014 20:21:32 +0000 (21:21 +0100)]
Release: bump VERSION.
Phil Holmes [Sun, 28 Sep 2014 13:56:19 +0000 (14:56 +0100)]
Release: bump Welcome versions.
Phil Holmes [Sun, 28 Sep 2014 13:56:19 +0000 (14:56 +0100)]
Release: update news.
Phil Holmes [Sun, 28 Sep 2014 13:56:19 +0000 (14:56 +0100)]
PO: update template.
Phil Holmes [Sun, 28 Sep 2014 13:56:19 +0000 (14:56 +0100)]
Release: bump VERSION_DEVEL.
David Kastrup [Thu, 18 Sep 2014 13:46:39 +0000 (15:46 +0200)]
Issue 4119: Avoid using `markup' as local binding
I suspected this to be a case of GUILEv2 porting problems, but that does
not appear to be the case. Nevertheless, using the `markup' macro's
name as a local identifier may well confuse humans even if it does
manage to convince GUILE.
James Lowe [Sat, 20 Sep 2014 04:11:40 +0000 (05:11 +0100)]
Authors: Updated Authors.itexi
Issue 4118
From June 2014 until September 2014
Based on all those contributors for 2.18.x
and current 2.19.x
David Kastrup [Wed, 14 Aug 2013 18:43:37 +0000 (20:43 +0200)]
Issue 4126: Provide a --enable-guile2 option in configure
For convenient experimenting with GUILEv2, we want to have everything in
master, so provide a configure option that will allow the switch to
GUILEv2 compilation. Off by default since, well, lots of stuff does not
work yet.
David Kastrup [Thu, 5 Jun 2014 18:14:40 +0000 (20:14 +0200)]
Issue4129/3: Let safe-utility-defs.scm avoid bugs in (ice-9 curried-definitions)
The exporting definitions in the GUILEv2 module
(ice-9 curried-definitions) were buggy until quite recently.
David Kastrup [Fri, 23 Aug 2013 20:14:57 +0000 (22:14 +0200)]
Issue 4129/2: Use curried-definitions in titling-init and safe-utility-defs
David Kastrup [Fri, 23 Aug 2013 13:36:50 +0000 (15:36 +0200)]
Issue 4129/1: Load (ice-9 curried-definitions) in ly/init.scm and documentation-lib.scm
The load is made conditionally for GUILEv2 where curried definitions
need this library.
David Kastrup [Mon, 22 Sep 2014 13:53:56 +0000 (15:53 +0200)]
Issue 4125: Disable character set recognition
GUILE 1.8 presumably does not make use of the LC_CTYPE information and
just does its input/output/string processing in 8bit chunks. For the
sake of getting comparable results at first when working on GUILE 2.0,
we switch off character set recognition here.
At a later point of time, integration with the character processing of
GUILE 2.0 may be attempted but since this is an entirely new can of
worms with its own performance pitfalls, we put this aside for now.
David Kastrup [Sat, 20 Sep 2014 17:57:38 +0000 (19:57 +0200)]
Issue 4121/2: Store markup command argument list names in docstring
For one thing, the doc string does not make a lot of sense without the
argument list and it cannot reliably be deduced from the doc string
itself.
For another, GUILEv2 does not do us the favor of storing the original
argument list anywhere where it could be retrieved with a useful amount
of labor.
While it would be nice to put the types of the arguments into the doc
string as well, the signature's actual predicates are only evaluated
after macro expansion and that is too late for generating the doc
string.
So we just stick the argument list (after uncurrying) as a line at the
top.
David Kastrup [Sat, 20 Sep 2014 17:57:38 +0000 (19:57 +0200)]
Issue 4121/1: Store music function argument list names in docstring
For one thing, the doc string does not make a lot of sense without the
argument list and it cannot reliably be deduced from the doc string
itself.
For another, GUILEv2 does not do us the favor of storing the original
argument list anywhere where it could be retrieved with a useful amount
of labor.
While it would be nice to put the types of the arguments into the doc
string as well, the signature's actual predicates are only evaluated
after macro expansion and that is too late for generating the doc
string.
So we just stick the argument list (after uncurrying) as a line at the
top.
Federico Bruni [Mon, 22 Sep 2014 20:29:11 +0000 (22:29 +0200)]
CG: add new instructions for LilyDev 3 (issue 2538)
David Kastrup [Fri, 19 Sep 2014 10:14:28 +0000 (12:14 +0200)]
Issue 4116: Disable ASSERT_LIVE_IS_ALLOWED in GUILEv2
Apparently the garbage collection in GUILEv2 can do a mark pass over
material without actually protecting it from collection, possibly
because the garbage collector can run in a separate thread. At least,
the attempt to print such remaining live smobs still seen by a mark pass
leads to crashes, so disable this memory leak detection mechanism on
GUILEv2.
David Kastrup [Fri, 19 Sep 2014 09:53:46 +0000 (11:53 +0200)]
Issue 4115: Call (ice-9 format) with #f as second argument
Our own format in (lily) will substitute the #f by itself when necessary, but in
scm/document-context-mods.scm, we are explicitly asking for (ice-9 format)
David Kastrup [Thu, 18 Sep 2014 14:02:17 +0000 (16:02 +0200)]
Issue 4114: Rearrange load order of markup macros and definitions
The markup macro has to be defined before use, and any of its arguments
have to be defined before use as well.
David Kastrup [Sun, 21 Sep 2014 16:43:39 +0000 (18:43 +0200)]
Issue 4124: Move make-engraver macro to output-lib.scm
GUILEv2 is a bit picky about macros being defined before use, so we need
to define this one early.
David Kastrup [Sun, 21 Sep 2014 10:56:28 +0000 (12:56 +0200)]
Issue 4123: markup macro must not be used in output-lib.scm
It is not defined at that time, and GUILEv2 is not forgiving about using
macros before definition.
Phil Holmes [Tue, 23 Sep 2014 13:41:05 +0000 (14:41 +0100)]
Updates instructions in CG for LilyPad development
David Kastrup [Thu, 18 Sep 2014 09:03:06 +0000 (11:03 +0200)]
Issue 4110: Patch up GUILE 2.0 SCM_SMOB_OBJECT*_LOC API, broken 2009-2014
David Kastrup [Thu, 18 Sep 2014 11:38:57 +0000 (13:38 +0200)]
Issue 4111: (scm accreg): don't use markup definition and markup macro in the same form
GUILEv2 is not happy about that.
David Kastrup [Sun, 14 Sep 2014 12:58:08 +0000 (14:58 +0200)]
Issue 4100: IR: Fix subproperty and default-child descriptions in context docs
David Kastrup [Mon, 15 Sep 2014 16:04:33 +0000 (18:04 +0200)]
Issue 4102: misaligned composer in LP 2.19.14
This problem surfaced in the wake of the fix for issue 3855. It is due
to Stencil::translate not moving an empty expression even if it has
non-empty extents so that
\markup fill-line { "" "" "composer" }
which assembles a line piece by piece and determining the offset of the
next piece by looking at the end of the assemblage so far lost the
offset between the first and second "" in the line.
David Kastrup [Mon, 15 Sep 2014 16:03:55 +0000 (18:03 +0200)]
Remove redundant check for empty X interval
David Kastrup [Tue, 16 Sep 2014 07:45:33 +0000 (09:45 +0200)]
Issue4107/2: Score_performer::prepare: precomputed_recurse_over_translators should do START, not STOP
David Kastrup [Tue, 16 Sep 2014 07:44:14 +0000 (09:44 +0200)]
Issue 4107/1: Use START/STOP for *recurse_over_translators instead of the counterintuitive DOWN/UP
Jürgen Reuter [Sat, 20 Sep 2014 04:51:08 +0000 (06:51 +0200)]
Fixes bog in Lookup::bezier_sandwich, tethering sandwiches at their extremal ends with a line (issue 4087)
James Lowe [Tue, 16 Sep 2014 07:34:12 +0000 (08:34 +0100)]
Doc: NR and CG - fix some Doc Compilation warnings in logs
contributor.splittexi.log:
Fixed some sectioning warnings
notation.splittexi.log:
removed @rinternals reference to non-existant node in fr, es
and en changing-defaults.itely files.
James Lowe [Mon, 15 Sep 2014 05:46:21 +0000 (06:46 +0100)]
Doc: LM - correct @example for Tweak Command
Issue 4101
Corrected existing 'long form' example for Syntax Consistency
Dan Eble [Sat, 6 Sep 2014 18:35:20 +0000 (14:35 -0400)]
Issue 4094: Check for Note_column interface before using grob.
Rest_collision was calling Note_column functions on grobs that did not
have the Note_column interface. Now Rest_collision ignores such grobs
and Note_column will print a more accurate message if such an error
ever happens again.
Phil Holmes [Mon, 15 Sep 2014 13:16:36 +0000 (14:16 +0100)]
Release: bump VERSION.
Phil Holmes [Sun, 14 Sep 2014 16:53:25 +0000 (17:53 +0100)]
Merge remote branch 'origin/master' into release/unstable
David Kastrup [Sun, 14 Sep 2014 15:47:07 +0000 (17:47 +0200)]
Don't use incomplete template type Smob2 in Unpure_pure_container
Some compilers complain, and I think they might have a point.
Phil Holmes [Sun, 14 Sep 2014 13:02:10 +0000 (14:02 +0100)]
Release: bump Welcome versions.
Phil Holmes [Sun, 14 Sep 2014 13:02:10 +0000 (14:02 +0100)]
Release: update news.
Phil Holmes [Sun, 14 Sep 2014 13:02:09 +0000 (14:02 +0100)]
PO: update template.
Phil Holmes [Sun, 14 Sep 2014 13:02:09 +0000 (14:02 +0100)]
Release: bump VERSION_DEVEL.
David Kastrup [Sun, 14 Sep 2014 05:49:03 +0000 (07:49 +0200)]
Merge branch 'issue4097' into HEAD
David Kastrup [Tue, 9 Sep 2014 14:54:17 +0000 (16:54 +0200)]
Add regtest for \addlyrics on Staff context
David Kastrup [Tue, 9 Sep 2014 09:14:34 +0000 (11:14 +0200)]
Allow \addlyrics to work with arbitrary contexts
David Kastrup [Tue, 9 Sep 2014 09:04:27 +0000 (11:04 +0200)]
Revert "Convert \new Staff ... \addlyrics into \new Staff \new Voice ... \addlyrics"
This reverts commit
76f256075f0a4f481d7e11c19dd55ab09030fe5b.
David Kastrup [Tue, 9 Sep 2014 08:15:35 +0000 (10:15 +0200)]
Allow associatedVoice to be of different type than Voice
David Kastrup [Mon, 8 Sep 2014 21:19:23 +0000 (23:19 +0200)]
Derive melisma_busy state from child contexts when available
David Kastrup [Sun, 14 Sep 2014 05:46:29 +0000 (07:46 +0200)]
Merge branch 'issue4096' into HEAD
David Kastrup [Mon, 8 Sep 2014 13:32:47 +0000 (15:32 +0200)]
Add regtest for issue 4096, \addlyrics using existing contexts
David Kastrup [Mon, 8 Sep 2014 15:24:37 +0000 (17:24 +0200)]
Convert \new Staff ... \addlyrics into \new Staff \new Voice ... \addlyrics
David Kastrup [Mon, 8 Sep 2014 09:28:14 +0000 (11:28 +0200)]
Give \addlyrics the power of christening the associated context
With
\new Voice \with { \stemDown } { c1 } \addlyrics { Oh }
as opposed to
\new Voice = "upper" \with { \stemDown } { c1 } \addlyrics { Oh }
\addlyrics created its own context (consequently not using \stemDown)
since it had no context name for the Lyrics context to attach to. In
this case (namely being preceded by an unnamed new Voice context), it
will now give a name to the context itself.
David Kastrup [Mon, 8 Sep 2014 09:15:19 +0000 (11:15 +0200)]
Fix bugs preventing \addlyrics from finding an existing context to attach to
David Kastrup [Mon, 8 Sep 2014 09:01:56 +0000 (11:01 +0200)]
Refactor grammar to give \addlyrics a good target to attach to
So far,
\new Staff \new Voice { c1 } \addlyrics { Oh } \addlyrics { Ah }
was factored as
\new Staff \new Voice { { c1 } \addlyrics { Oh } \addlyrics { Ah } }
which resulted in something like
\new Staff \new Voice
<< \context Voice = "uniqueContext0" { c1 }
\new Lyrics \lyricsto "uniqueContext0" { Oh }
\new Lyrics \lyricsto "uniqueContext0" { Ah }
>>
This made it impossible to work with the likes of
\new Staff \new Voice \with { \stemUp } { c1 } \addlyrics ...
since the voice the lyrics attached to was always a new voice.
Fixing the grouping in the grammar is a first required step for getting
this under control.
David Kastrup [Mon, 4 Aug 2014 07:55:17 +0000 (09:55 +0200)]
Refactor grammar, folding re_rhythmed_music into composite_music
David Kastrup [Mon, 4 Aug 2014 07:55:17 +0000 (09:55 +0200)]
Refactor grammar, folding complex_music into composite_music
David Kastrup [Tue, 2 Sep 2014 13:14:41 +0000 (15:14 +0200)]
Add regtest for \tagGroup command
David Kastrup [Tue, 2 Sep 2014 10:21:43 +0000 (12:21 +0200)]
Basic documentation for \tagGroup command
David Kastrup [Tue, 2 Sep 2014 10:21:20 +0000 (12:21 +0200)]
Issue 4083: Implement \tagGroup command
David Kastrup [Fri, 5 Sep 2014 22:07:59 +0000 (00:07 +0200)]
Issue 346: monochord issues
This lets a reverse notehead at the stem start creep up closer to its
same-pitch unreversed partner in order to avoid a gap caused by notehead
slant.
Jean-Charles Malahieude [Sat, 13 Sep 2014 11:51:34 +0000 (13:51 +0200)]
Doc-fr: full update
James Lowe [Fri, 12 Sep 2014 08:25:40 +0000 (09:25 +0100)]
James Lowe [Thu, 26 Jun 2014 21:37:04 +0000 (22:37 +0100)]
Doc: NR Pitches.itely - Clef - updated snippets and text
Issue 3976
Added 2 new snippets:
1 snippet added to NR
1 snippet added just to Snippets
Modified 1 existing snippet:
This was already (and still is) included in the NR
Deleted 2 snippets (and incorporated them in the
main text in @lilyponds)
Added new @lilypond example that was originally
described (but not show)n in the 'Tweaking Clef
Properties' snippet to show how to remove
the clef glyph from the end of a line. As this
'tweak' is relatively simple (a single \set and
\unset) and more than likely to be used (IMHO) by
the general user than the listed items in the
snippet, I thought it better to be in the NR than
another example in either an already long snippet
or by creating yet another snippet.
Some minor linelength formatting as per CG.
David Kastrup [Thu, 4 Sep 2014 18:48:06 +0000 (20:48 +0200)]
Issue 3855: programming error with \markup \fill-line { \vspace #10 }
David Kastrup [Thu, 4 Sep 2014 15:23:51 +0000 (17:23 +0200)]
Issue 4092: Limit tuplet bracket length to actual tuplet length
See the regtest for an example of the problem. Without the patch, the
tuplet bracket extends over all of
\tuplet 3/2 4 { g16 a b } c8
including c8, resulting in visual lengths not adding up.
David Kastrup [Thu, 4 Sep 2014 13:07:20 +0000 (15:07 +0200)]
Issue 4030: Lyrics associated to a Staff are placed on top of each other
The approach here is simply to avoid attaching to noteheads that have
actually started _before_ the current moment of time. It is somewhat
irritating that includeGraceNotes cannot possibly be supported in
associated voices with its own timing (rather than the fully
synchronized \addlyrics or \lyricsto): Instead you need to use the same
durations, including \grace constructs, in order to match the note you
are aiming for.
David Kastrup [Wed, 3 Sep 2014 17:29:27 +0000 (19:29 +0200)]
Issue 3832: react sanely to ill-formed version strings
Mostly, this cleans up Lilypond_version
We no longer convert to int because it is weird, but we still want
version comparisons. Conversion to bool for checking validity seems
nice in addition.
And bombing out because of invalid data to String_convert::dec2int
seemed definitely non-nice. This version requires specifying at
least major and minor version number explicitly separated by dots.
It accepts a trailing dot, too. A trailing extra_patch_string after
major.minor.patchlevel. is also accepted but not interpreted.
David Kastrup [Wed, 3 Sep 2014 15:44:05 +0000 (17:44 +0200)]
Don't verify result of String_convert::dec2int
The error behavior is not useful and triggers on things like "00".
David Kastrup [Tue, 2 Sep 2014 17:19:23 +0000 (19:19 +0200)]
Make "Don't know how to parenthesize spanners." warning, not programming error
Also add location information.
David Kastrup [Tue, 2 Sep 2014 17:14:34 +0000 (19:14 +0200)]
Issue 3849: \parenthesize\p generates programming error
Register a grob as the cause for DynamicLineSpanner rather than an event.
David Kastrup [Thu, 4 Sep 2014 09:18:06 +0000 (11:18 +0200)]
Issue 4028: Automatic beaming of grace notes inhibits beam subdivision
While the whole extend_mom_ logic seems rather fishy to me (it probably
should be reset to a sane value at some other location per-beam) and
I don't have an actual idea why the Grace_auto_beam_engraver would
be involved at all here, initializing extend_mom_ to a value before
all grace notes seems to do the trick for this report.
David Kastrup [Sun, 31 Aug 2014 07:51:55 +0000 (09:51 +0200)]
Issue 4086/6: Reimplement unpure-pure-containers in terms of Simple_smob and Smob1
David Kastrup [Thu, 28 Aug 2014 17:28:19 +0000 (19:28 +0200)]
Issue 4086/5: Introduce callable Smob infrastructure
David Kastrup [Sun, 31 Aug 2014 11:47:48 +0000 (13:47 +0200)]
Issue 4086/4: Reimplement Simple_closure using Smob1
David Kastrup [Sat, 30 Aug 2014 09:11:37 +0000 (11:11 +0200)]
Issue 4086/3: Reimplement Music_function in terms of Smob2
David Kastrup [Fri, 29 Aug 2014 13:09:37 +0000 (15:09 +0200)]
Issue 4086/2: Add include/small-smobs.hh for smobs without extra allocation
David Kastrup [Sun, 31 Aug 2014 13:58:46 +0000 (15:58 +0200)]
Issue 4086/1: Reimplement Input in terms of Simple_smob
David Kastrup [Wed, 3 Sep 2014 14:43:21 +0000 (16:43 +0200)]
Issue 4091: Lexer: don't go through int for fractions
GUILE can deal fine with things like
\void \displayScheme
6563546345635436/
3654635463456
if one does not route through C code.
Janek Warchoł [Thu, 21 Aug 2014 16:34:22 +0000 (18:34 +0200)]
Replace internal_get_property with get_property where possible
Note that thanks to lily-guile-macros magic, we can use get_property
with both string and SCM input (see lily/include/lily-guile-macros.hh:48).
Janek Warchoł [Wed, 3 Sep 2014 22:17:55 +0000 (00:17 +0200)]
Initialize main_head to 0 (in Note_column::calc_main_extent)
Make sure that the pointer won't be assigned a random value.
Keith OHara [Sun, 24 Aug 2014 22:54:45 +0000 (15:54 -0700)]
Ottava Bracket bounds; issue 3690
Ottava Bracket: do not dash edges; issue 3866
Keith OHara [Sun, 24 Aug 2014 08:48:17 +0000 (01:48 -0700)]
note-collision: rework horizontal shifts; issue 1774,2196
Also allow duplicate 'horizontal-shift's without the "too many clashing
note-columns" warning.
Trevor Daniels [Sat, 30 Aug 2014 20:44:23 +0000 (21:44 +0100)]
Issue 4078: Doc: Use variables rather than instrument definitions
Using variables for switching character names in vocal music
rather than instrument definitions is easier to understand,
easier to set up and quicker to type. It also frees up the
use of instrument definitions so they may be tailored for
better use in instrumental compositions.
Remove the mention of \transposition. This is never required
in vocal music.
Adjust references to match the changes.
David Kastrup [Tue, 2 Sep 2014 10:27:25 +0000 (12:27 +0200)]
Merge branch 'issue4082'
David Kastrup [Tue, 2 Sep 2014 10:24:29 +0000 (12:24 +0200)]
Revert "Issue 4082/2: Add scripts/auxiliar/smob-convert.sh for one-time C++ conversion"
This reverts commit
b91616a79ea28aed15a3c7e9c801a843ae38753f.
The script is no longer needed.
David Kastrup [Wed, 27 Aug 2014 19:12:55 +0000 (21:12 +0200)]
Issue 4082/3: Run scripts/auxiliar/smob-convert.sh
David Kastrup [Fri, 22 Aug 2014 16:01:42 +0000 (18:01 +0200)]
Issue 4082/2: Add scripts/auxiliar/smob-convert.sh for one-time C++ conversion
This script is used for the mechanical stage of converting the Smob
machinery from working via the C preprocessor to working via C++
templates.
David Kastrup [Mon, 25 Aug 2014 15:46:29 +0000 (17:46 +0200)]
Issue 4082/1: Reimplement Smobs via templates rather than preprocessor
This creates the underlying code for the new implementation without
converting the bulk of the code (which is left to a script committed
separately). The include file ly-smobs.icc is removed completely. A
new file smobs.tcc contains generic template instantiations. The GCC
implementation works by loading it unconditionally in smobs.hh.
Depending on the underlying template mechanism, it might be feasible to
include it into just one compilation unit.
Where the previous implementation referred to class names passed into
macros, the typeinfo mechanism of C++ is employed for deriving the
respective name. The GCC implementation uses some cursory demangling of
the resulting type id, converting "3Box" into "Box" and similarly.
Other APIs might warrant different polishing but the type names are
mostly used for internal purposes and differences are not all that
problematic.
David Kastrup [Mon, 25 Aug 2014 16:40:54 +0000 (18:40 +0200)]
Don't assign 'safe' values to self_scm_ outside of smobify_self
David Kastrup [Fri, 22 Aug 2014 15:34:19 +0000 (17:34 +0200)]
Minor style fixes to some class definitions.
Phil Holmes [Sun, 31 Aug 2014 21:07:42 +0000 (22:07 +0100)]
Release: bump VERSION.