]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/context.cc (where_defined): also assign value in
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 24 Jul 2005 01:33:35 +0000 (01:33 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 24 Jul 2005 01:33:35 +0000 (01:33 +0000)
where_defined().

* lily/bezier.cc (get_other_coordinate): use curve_coordinate
(curve_coordinate): new function

* flower/include/parray.hh (binsearch): add lo,hi range to arguments.

* lily/simple-spacer.cc (add_columns): only add rods between
column i and begin/end if keep-inside-line is set (this repleces
allow-outside-line as default)

142 files changed:
ChangeLog
flower/include/parray.hh
lily/accidental-engraver.cc
lily/ambitus-engraver.cc
lily/arpeggio-engraver.cc
lily/auto-beam-engraver.cc
lily/axis-group-engraver.cc
lily/axis-group-interface.cc
lily/bar-check-iterator.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/beam-engraver.cc
lily/beam-performer.cc
lily/bezier.cc
lily/break-align-engraver.cc
lily/breathing-sign-engraver.cc
lily/chord-name-engraver.cc
lily/chord-tremolo-engraver.cc
lily/clef-engraver.cc
lily/cluster-engraver.cc
lily/coherent-ligature-engraver.cc
lily/collision-engraver.cc
lily/completion-note-heads-engraver.cc
lily/context-property.cc
lily/context-scheme.cc
lily/context.cc
lily/custos-engraver.cc
lily/default-bar-line-engraver.cc
lily/dot-column-engraver.cc
lily/drum-note-engraver.cc
lily/drum-note-performer.cc
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/engraver-group-engraver.cc
lily/engraver.cc
lily/extender-engraver.cc
lily/figured-bass-engraver.cc
lily/fingering-engraver.cc
lily/font-size-engraver.cc
lily/forbid-break-engraver.cc
lily/glissando-engraver.cc
lily/grace-engraver.cc
lily/gregorian-ligature-engraver.cc
lily/grid-line-interface.cc
lily/grid-line-span-engraver.cc
lily/grid-point-engraver.cc
lily/grob-pq-engraver.cc
lily/grob-property.cc
lily/grob-smob.cc
lily/hara-kiri-engraver.cc
lily/horizontal-bracket-engraver.cc
lily/hyphen-engraver.cc
lily/include/bezier.hh
lily/include/context.hh
lily/include/program-option.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/translator.icc
lily/instrument-name-engraver.cc
lily/key-engraver.cc
lily/key-performer.cc
lily/ledger-line-engraver.cc
lily/ligature-bracket-engraver.cc
lily/ligature-engraver.cc
lily/lyric-engraver.cc
lily/lyric-performer.cc
lily/mark-engraver.cc
lily/measure-grouping-engraver.cc
lily/melisma-translator.cc
lily/mensural-ligature-engraver.cc
lily/metronome-engraver.cc
lily/multi-measure-rest-engraver.cc
lily/music.cc
lily/new-fingering-engraver.cc
lily/note-head-line-engraver.cc
lily/note-heads-engraver.cc
lily/note-name-engraver.cc
lily/note-performer.cc
lily/ottava-engraver.cc
lily/output-property-engraver.cc
lily/paper-column-engraver.cc
lily/part-combine-engraver.cc
lily/percent-repeat-engraver.cc
lily/performer-group-performer.cc
lily/phrasing-slur-engraver.cc
lily/piano-pedal-engraver.cc
lily/piano-pedal-performer.cc
lily/pitch-squash-engraver.cc
lily/pitched-trill-engraver.cc
lily/program-option.cc
lily/recording-group-engraver.cc
lily/repeat-acknowledge-engraver.cc
lily/rest-collision-engraver.cc
lily/rest-engraver.cc
lily/rhythmic-column-engraver.cc
lily/score-engraver.cc
lily/score-performer.cc
lily/script-column-engraver.cc
lily/script-engraver.cc
lily/separating-line-group-engraver.cc
lily/separation-item.cc
lily/simple-spacer.cc
lily/slash-repeat-engraver.cc
lily/slur-engraver.cc
lily/slur-performer.cc
lily/spaceable-grob.cc
lily/spacing-engraver.cc
lily/span-arpeggio-engraver.cc
lily/span-bar-engraver.cc
lily/span-dynamic-performer.cc
lily/staff-collecting-engraver.cc
lily/staff-performer.cc
lily/staff-symbol-engraver.cc
lily/stanza-number-align-engraver.cc
lily/stanza-number-engraver.cc
lily/stem-engraver.cc
lily/string-number-engraver.cc
lily/swallow-engraver.cc
lily/swallow-perf.cc
lily/system-start-delimiter-engraver.cc
lily/system.cc
lily/tab-note-heads-engraver.cc
lily/tab-staff-symbol-engraver.cc
lily/tempo-performer.cc
lily/text-engraver.cc
lily/text-spanner-engraver.cc
lily/tie-engraver.cc
lily/tie-performer.cc
lily/time-signature-engraver.cc
lily/time-signature-performer.cc
lily/timing-translator.cc
lily/translator.cc
lily/trill-spanner-engraver.cc
lily/tuplet-engraver.cc
lily/type-swallow-translator.cc
lily/vaticana-ligature-engraver.cc
lily/vertical-align-engraver.cc
lily/vertically-spaced-context-engraver.cc
lily/volta-engraver.cc
lily/volta-repeat-iterator.cc
scm/define-grob-properties.scm
scm/lily.scm

index 629a49fc86718991e5eb483ec174f96d061fa343..46d952722da56709a5950f22c520e0b704396779 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-07-24  Han-Wen Nienhuys  <hanwen@xs4all.nl>
+
+       * lily/context.cc (where_defined): also assign value in
+       where_defined().
+
+       * lily/bezier.cc (get_other_coordinate): use curve_coordinate
+       (curve_coordinate): new function
+
+       * flower/include/parray.hh (binsearch): add lo,hi range to arguments.
+
+       * lily/simple-spacer.cc (add_columns): only add rods between
+       column i and begin/end if keep-inside-line is set (this repleces
+       allow-outside-line as default)
+
 2005-07-23  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
        * lily/tuplet-engraver.cc (start_translation_timestep): only read
index bc51bda5a00d3fc9f303614ae7b1e54ee9f2919f..ee3922585592da07bb0fd3dd15f47880fdbab1f5 100644 (file)
@@ -232,12 +232,10 @@ template<class T>
 int
 binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
 {
-  int lo;
-  int hi;
   int cmp;
   int result;
-  lo = 0;
-  hi = Array<T>::maxkey;
+  int lo = 0;
+  int hi = arr.size ();
 
   /* binary search */
   do
@@ -262,13 +260,12 @@ binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
 template<class T>
 int
 binsearch_links (Link_array<T> const &arr, T *t,
-                int (*compare) (T *const &, T *const &),
-                int lo = 0, int hi = -1)
+                int (*compare) (T *const &, T *const &))
 {
   int cmp;
   int result;
-  if (hi < 0)
-    hi = arr.size ();
+  int lo = 0;
+  int hi = arr.size ();
 
   if (hi == 0)
     return -1;
index be3d1b793c5fb19a7026ba8414ecf6d689cfd296..c8e00a7b25e35a6d49185366550b7d63e6e063fd 100644 (file)
@@ -128,7 +128,9 @@ Accidental_engraver::update_local_key_signature ()
   Context *trans = context ()->get_parent_context ();
 
   /* Huh. Don't understand what this is good for. --hwn.  */
-  while (trans && trans->where_defined (ly_symbol2scm ("localKeySignature")))
+
+  SCM val;
+  while (trans && trans->where_defined (ly_symbol2scm ("localKeySignature"), &val))
     {
       trans->set_property ("localKeySignature", ly_deep_copy (last_keysig_));
       trans = trans->get_parent_context ();
@@ -504,13 +506,10 @@ Accidental_engraver::stop_translation_timestep ()
       int a = pitch->get_alteration ();
       SCM key = scm_cons (scm_int2num (o), scm_int2num (n));
 
+      SCM localsig = SCM_EOL;
       while (origin
-            && origin->where_defined (ly_symbol2scm ("localKeySignature")))
+            && origin->where_defined (ly_symbol2scm ("localKeySignature"), &localsig))
        {
-         /*
-           huh? we set props all the way to the top?
-         */
-         SCM localsig = origin->get_property ("localKeySignature");
          bool change = false;
          if (accidentals_[i].tied_)
            {
@@ -616,9 +615,6 @@ ADD_TRANSLATOR (Accidental_engraver,
                "Accidental AccidentalSuggestion",
 
                "",
-               
-               /* acks */
-               "",
 
                "autoAccidentals "
                "autoCautionaries "
index e2471fc385f88aac300c85a020daaaf14f0248fc..ff3b7ea6a5a49e1994ba2b8d1c4321b325b2858b 100644 (file)
@@ -186,6 +186,5 @@ ADD_TRANSLATOR (Ambitus_engraver,
                /* descr */ "",
                /* creats*/ "Ambitus AmbitusLine AmbitusNoteHead AmbitusAccidental",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 0e36185ba1e5ed6b52c84bacf2f27d2c1bcc93f0..febbb44e5694b84b4313b9f2651e49cf462170bb 100644 (file)
@@ -110,6 +110,5 @@ ADD_TRANSLATOR (Arpeggio_engraver,
                /* descr */ "Generate an Arpeggio symbol",
                /* creats*/ "Arpeggio",
                /* accepts */ "arpeggio-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 9559e044cd1ab303809def3f71f6ae11c80daeb1..81231018524668ec1ba6a3e71fa2976e95d87933 100644 (file)
@@ -435,6 +435,5 @@ ADD_TRANSLATOR (Auto_beam_engraver,
                "@code{stemRightBeamCount}. ",
                /* creats*/ "Beam",
                /* accepts */ "beam-forbid-event",
-               /* acks  */ "",
                /* reads */ "autoBeaming autoBeamSettings beatLength subdivideBeams",
                /* write */ "");
index 69b77683b66b14ed3c3bc3a4ca5df8c42039ee6d..42a8ba30bec2946bf5da9727bd5492a13fa84045 100644 (file)
@@ -127,6 +127,5 @@ ADD_TRANSLATOR (Axis_group_engraver,
                /* descr */ "Group all objects created in this context in a VerticalAxisGroup spanner.",
                /* creats*/ "VerticalAxisGroup",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "verticalExtent minimumVerticalExtent extraVerticalExtent",
                /* write */ "");
index 24838b9be03369ca04b588b2350ea588e9255e01..11b00e97c8d0aee81f8df56b4d6259901dc728a5 100644 (file)
@@ -34,7 +34,6 @@ Axis_group_interface::add_element (Grob *me, Grob *e)
     }
 
   Pointer_group_interface::add_grob (me, ly_symbol2scm ("elements"), e);
-  me->add_dependency (e);
 }
 
 bool
index bc617a3d11020ea0c3e2e56ef8b6b39c985d4328..92a9dc988c0dd958eb50944058218a26aa826600 100644 (file)
@@ -53,7 +53,8 @@ Bar_check_iterator::process (Moment m)
          bool warn = true;
          if (to_boolean (sync))
            {
-             tr = tr->where_defined (ly_symbol2scm ("measurePosition"));
+             SCM mp; 
+             tr = tr->where_defined (ly_symbol2scm ("measurePosition"), &mp);
              Moment zero;
              tr->set_property ("measurePosition", zero.smobbed_copy ());
            }
index c67ee1a30902bff2747844bd48e5f821e77b8797..3875c05da0932f76e7794db09664b40eccda77d2 100644 (file)
@@ -100,6 +100,5 @@ ADD_TRANSLATOR (Bar_engraver,
                "@code{whichBar} property. If it has no bar line to create, it will forbid a linebreak at this point",
                /* creats*/ "BarLine",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "whichBar",
                /* write */ "");
index 66fbe687e49235437cc308d56588e4ca5d02015f..5a82841290cfb710f64b4ec38255c0abc9b20da3 100644 (file)
@@ -108,6 +108,5 @@ ADD_TRANSLATOR (Bar_number_engraver,
 
                /* creats*/ "BarNumber",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "currentBarNumber stavesFound barNumberVisibility",
                /* write */ "");
index f1738796ed32b9f0cbfb77cabafdcbb6e79d4431..40bb7c4febd891085532d276ca90b750f07c2be9 100644 (file)
@@ -280,7 +280,6 @@ ADD_TRANSLATOR (Beam_engraver,
                "printed with flags instead of beams.",
                /* creats*/ "Beam",
                /* accepts */ "beam-event",
-               /* acks  */ "",
                /* reads */ "beamMelismaBusy beatLength subdivideBeams",
                /* write */ "");
 
@@ -320,7 +319,6 @@ ADD_TRANSLATOR (Grace_beam_engraver,
                " are at grace points in time. ",
                /* creats*/ "Beam",
                /* accepts */ "beam-event",
-               /* acks  */ "stem-interface rest-interface",
                /* reads */ "beamMelismaBusy beatLength allowBeamBreak subdivideBeams",
                /* write */ "");
 
index 861f66f35aa3436d9961e21feaa26986b859782d..0d5123613268567d016cd08cc78cb5353cc5c101 100644 (file)
@@ -90,5 +90,5 @@ Beam_performer::try_music (Music *m)
 }
 
 ADD_TRANSLATOR (Beam_performer, "", "",
-               "beam-event", "", "", "");
+               "beam-event", "",  "");
 
index 2efe5c7e07431fc38d56a3d6c23ce0c4c46560b0..e701ae9d55d220ba5adfe85d23bdb55e3685c742 100644 (file)
@@ -75,14 +75,37 @@ Bezier::get_other_coordinate (Axis a, Real x) const
       return 0.0;
     }
 
-  Offset c = curve_point (ts[0]);
 
 #ifdef PARANOID
+  Offset c = curve_point (ts[0]);
   if (fabs (c[a] - x) > 1e-8)
     programming_error ("bezier intersection not correct?");
 #endif
-  
-  return c[other];
+
+  return curve_coordinate (ts[0], other);
+}
+
+Real
+Bezier::curve_coordinate (Real t, Axis a) const
+{
+  Real tj = 1;
+  Real one_min_tj[4];
+  one_min_tj[0] = 1;
+  for (int i = 1; i < 4; i++)
+    {
+      one_min_tj[i] = one_min_tj[i-1] * (1-t);
+    }
+
+  Real r = 0.0;
+  for (int j = 0; j < 4; j++)
+    {
+      r += control_[j][a] * binomial_coefficient_3[j]
+       * tj * one_min_tj[3-j];
+
+      tj *= t;
+    }
+
+  return r;
 }
 
 Offset
index 2363fdded0c4210931ca2a5f003ef23501470434..3d4eab12a53d64873d7d2dfd7c2b3a87d6f7de24 100644 (file)
@@ -128,6 +128,5 @@ ADD_TRANSLATOR (Break_align_engraver,
                "The left edge of the alignment gets a separate group, with a symbol @code{left-edge}. ",
                /* creats*/ "BreakAlignment BreakAlignGroup LeftEdge",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 372102adf88e353a8b96b45570d0ebac9f066cd1..fc922cf58aeb04b07048adcb0e04e592b15dd068 100644 (file)
@@ -68,6 +68,5 @@ ADD_TRANSLATOR (Breathing_sign_engraver,
                /* descr */ "",
                /* creats*/ "BreathingSign",
                /* accepts */ "breathing-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 8256b32aa096ea79f7a71d518d6c629df7ee18c2..b1206d28519417f8be45378f59eed8909e7c2ec7 100644 (file)
@@ -157,7 +157,6 @@ ADD_TRANSLATOR (Chord_name_engraver,
                "and generate the appropriate chordname.",
                /* creats*/ "ChordName",
                /* accepts */ "note-event",
-               /* acks  */ "",
                /* reads */ "chordChanges chordNameExceptions chordNameFunction "
                "chordNoteNamer chordRootNamer chordNameExceptions majorSevenSymbol",
                /* write */ "");
index d4221afd207d764ff189a2485b13d9cdb9f0143b..0c34395902e0694fad86e107e26b9c14d5fcd0f9 100644 (file)
@@ -214,6 +214,5 @@ ADD_TRANSLATOR (Chord_tremolo_engraver,
                /* descr */ "Generates beams for  tremolo repeats.",
                /* creats*/ "Beam",
                /* accepts */ "repeated-music",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 99b92bd5e441d6203d4cd07476d5288452fb5845..c1afd9e220097d93a47100c19dbd669279b9f15d 100644 (file)
@@ -151,7 +151,8 @@ Clef_engraver::inspect_clef_properties ()
 
   if (to_boolean (force_clef))
     {
-      Context *w = context ()->where_defined (ly_symbol2scm ("forceClef"));
+      SCM prev;
+      Context *w = context ()->where_defined (ly_symbol2scm ("forceClef"), &prev);
       w->set_property ("forceClef", SCM_EOL);
     }
 }
@@ -187,6 +188,5 @@ ADD_TRANSLATOR (Clef_engraver,
                /* descr */ "Determine and set reference point for pitches",
                /* creats*/ "Clef OctavateEight",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "clefPosition clefGlyph middleCPosition clefOctavation explicitClefVisibility forceClef",
                /* write */ "");
index cbab361ca696bd196158bdd1193df3a06eeb14a5..51d262c00e1b8f8b50b4ff6f07152270998128ec 100644 (file)
@@ -132,7 +132,6 @@ ADD_TRANSLATOR (Cluster_spanner_engraver,
                /* descr */     "Engraves a cluster using Spanner notation ",
                /* creats*/     "ClusterSpanner ClusterSpannerBeacon",
                /* accepts */   "cluster-note-event busy-playing-event",
-               /* acks  */     "",
                /* reads */     "",
                /* write */     "");
 
index 160ca72963237956987a1d7cc973c12a9b9c6b97..f9dfcfe31b8dfb65afe4458e79fa3956f6bc9d98 100644 (file)
@@ -219,10 +219,11 @@ Coherent_ligature_engraver::typeset_ligature (Spanner *ligature,
 
 #include "translator.icc"
 
+ADD_ACKNOWLEDGER(Coherent_ligature_engraver, note_head);
+ADD_ACKNOWLEDGER(Coherent_ligature_engraver, rest);
 ADD_TRANSLATOR (Coherent_ligature_engraver,
                /* descr */ "This is an abstract class.  Subclasses such as Gregorian_ligature_engraver handle ligatures by glueing special ligature heads together.",
                /* creats*/ "",
                /* accepts */ "ligature-event",
-               /* acks  */ "note-head-interface rest-interface",
                /* reads */ "",
                /* write */ "");
index 4ddf5f6e06065348bbca514c61870e88591dddac..c820e359216a0491f2d219cc281d6eb9376b3a1d 100644 (file)
@@ -72,6 +72,5 @@ ADD_TRANSLATOR (Collision_engraver,
                /* descr */ "Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.",
                /* creats*/ "NoteCollision",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index c8a179dedbc86be754167474f5cb6b6eb54d258f..4553428417126faf53b4751cec39f5b7dbb39b5b 100644 (file)
@@ -320,6 +320,5 @@ ADD_TRANSLATOR (Completion_heads_engraver,
                "break long notes and automatically tie them into the next measure.",
                /* creats*/ "NoteHead Dots Tie",
                /* accepts */ "busy-playing-event note-event",
-               /* acks  */ "",
                /* reads */ "middleCPosition measurePosition measureLength",
                /* write */ "");
index 5c0789943eee3a6cefd16d04e2e95e3f9988987c..959d6309f65107a46e59acd4493fab455e2e1071 100644 (file)
@@ -31,12 +31,12 @@ void
 execute_pushpop_property (Context *trg,
                          SCM prop, SCM eltprop, SCM val)
 {
+  SCM prev = SCM_EOL;
   if (scm_is_symbol (prop) && scm_is_symbol (eltprop))
     {
       if (val != SCM_UNDEFINED)
        {
-         SCM prev = SCM_EOL;
-         Context *where = trg->where_defined (prop);
+         Context *where = trg->where_defined (prop, &prev);
 
          /*
            Don't mess with MIDI.
@@ -50,8 +50,6 @@ execute_pushpop_property (Context *trg,
              prev = scm_cons (base, base);
              trg->internal_set_property (prop, prev);
            }
-         else
-           prev = trg->internal_get_property (prop);
 
          if (!scm_is_pair (prev))
            {
@@ -76,9 +74,8 @@ execute_pushpop_property (Context *trg,
              // warning here.
            }
        }
-      else if (trg->where_defined (prop) == trg)
+      else if (trg->where_defined (prop, &prev) == trg)
        {
-         SCM prev = trg->internal_get_property (prop);
          SCM prev_alist = scm_car (prev);
          SCM daddy = scm_cdr (prev);
 
@@ -151,7 +148,8 @@ updated_grob_properties (Context *tg, SCM sym)
 {
   assert (scm_is_symbol (sym));
 
-  tg = tg->where_defined (sym);
+  SCM props;
+  tg = tg->where_defined (sym, &props);
   if (!tg)
     return SCM_EOL;
 
@@ -160,8 +158,6 @@ updated_grob_properties (Context *tg, SCM sym)
     ? updated_grob_properties (tg->get_parent_context (), sym)
     : SCM_EOL;
 
-  SCM props = tg->internal_get_property (sym);
-
   if (!scm_is_pair (props))
     {
       programming_error ("grob props not a pair?");
index 6ebb4fcac0639b014c6e0d8d595a8098d171186b..c1c82e8d10e94f335b0eb660cf7ee7dfcb69fa82 100644 (file)
@@ -97,7 +97,8 @@ LY_DEFINE (ly_context_property_where_defined, "ly:context-property-where-defined
   SCM_ASSERT_TYPE (tr, context, SCM_ARG1, __FUNCTION__, "Context");
   SCM_ASSERT_TYPE (scm_is_symbol (name), name, SCM_ARG2, __FUNCTION__, "symbol");
 
-  tr = tr->where_defined (name);
+  SCM val;
+  tr = tr->where_defined (name, &val);
   if (tr)
     return tr->self_scm ();
 
index 663c57eeb82540bed897b3656e25f47cc7ebbfad..d1b5cd56e0e97ab9e5604597fdedbb47a3371a85 100644 (file)
@@ -329,18 +329,16 @@ Context::get_default_interpreter ()
   PROPERTIES
 */
 Context *
-Context::where_defined (SCM sym) const
+Context::where_defined (SCM sym, SCM *value) const
 {
-  if (properties_dict ()->contains (sym))
+  if (properties_dict ()->try_retrieve (sym, value))
     {
       return (Context *)this;
     }
 
-  return (daddy_context_) ? daddy_context_->where_defined (sym) : 0;
+  return (daddy_context_) ? daddy_context_->where_defined (sym, value) : 0;
 }
 
-//#define PROFILE_PROPERTY_ACCESSES
-
 SCM context_property_lookup_table;
 LY_DEFINE(ly_context_property_lookup_stats, "ly:context-property-lookup-stats",
          0,0,0, (),
@@ -357,9 +355,12 @@ LY_DEFINE(ly_context_property_lookup_stats, "ly:context-property-lookup-stats",
 SCM
 Context::internal_get_property (SCM sym) const
 {
-#ifdef PROFILE_PROPERTY_ACCESSES
-  extern void note_property_access (SCM *table, SCM sym);
-  note_property_access (&context_property_lookup_table, sym);
+#ifndef NDEBUG
+  if (profile_property_accesses)
+    {
+      extern void note_property_access (SCM *table, SCM sym);
+      note_property_access (&context_property_lookup_table, sym);
+    }
 #endif
   
   SCM val = SCM_EOL;
@@ -576,12 +577,6 @@ Context::get_parent_context () const
   return daddy_context_;
 }
 
-Translator_group *
-Context::implementation () const
-{
-  return implementation_;
-}
-
 void
 Context::clear_key_disambiguations ()
 {
index 2bf02392ffc954d92e86e307bf75e31d6d4f5d77..b9649205ac191deec5ec2254642c2630f934fdf0 100644 (file)
@@ -67,6 +67,7 @@ Custos_engraver::start_translation_timestep ()
 void
 Custos_engraver::acknowledge_bar (Grob_info info)
 {
+  (void) info;
   custos_permitted_ = true;
 }
 
@@ -142,6 +143,5 @@ ADD_TRANSLATOR (Custos_engraver,
                /* descr */ "",
                /* creats*/ "Custos",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 54c3543d711ba9ce844414f44fc5ed51859d429f..2203faa6d542dfcfc6a67ac00cb7181bb8f53f97 100644 (file)
@@ -34,7 +34,6 @@ ADD_TRANSLATOR (Default_bar_line_engraver,
                "level as @ref{Timing_translator}. ",  
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */
                "measurePosition automaticBars whichBar barAlways defaultBarType "
                "measureLength",
index b6580204e078edc512e8be7f8075eace9bfba073..235729c98a8b764b8329825c845905296e9b9190 100644 (file)
@@ -80,6 +80,5 @@ ADD_TRANSLATOR (Dot_column_engraver,
                "If omitted, then dots appear on top of the notes.",
                /* creats*/ "DotColumn",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index cf61692baad7d794ee15c5679a8a4fbc587f525b..479ac9ad0d1b4bcbb7ffa62460799187418f3462 100644 (file)
@@ -170,7 +170,6 @@ ADD_TRANSLATOR (Drum_notes_engraver,
                /* descr */ "Generate noteheads.",
                /* creats*/ "NoteHead Dots Script",
                /* accepts */ "note-event busy-playing-event",
-               /* acks  */ "",
                /* reads */ "drumStyleTable",
                /* write */ "");
 
index 2556a291fa444e0c0119ca7ead1516e4a9e9ad8c..388f6377248c5c1090da77fabe26ecb44cb1c9d2 100644 (file)
@@ -94,4 +94,4 @@ Drum_note_performer::try_music (Music *ev)
 
 ADD_TRANSLATOR (Drum_note_performer,
                "Play drum notes.", "",
-               "note-event busy-playing-event", "", "", "");
+               "note-event busy-playing-event", "", "");
index fc5c2ebefc3bb6704a59b3a950a351a4e0e4d67c..c12d437b5ac8524ab3ca48cac34b1a1212aae3b3 100644 (file)
@@ -442,6 +442,5 @@ ADD_TRANSLATOR (Dynamic_engraver,
 
                /* creats*/ "DynamicLineSpanner DynamicText Hairpin TextSpanner",
                /* accepts */ "absolute-dynamic-event crescendo-event decrescendo-event",
-               /* acks  */ "note-column-interface script-interface",
                /* reads */ "",
                /* write */ "");
index e39ea705932d1742a14c522eb14ab3f8b006a73e..7b34e4c898896e2b979fb2961a5e954b6aff76f9 100644 (file)
@@ -131,6 +131,5 @@ ADD_TRANSLATOR (Dynamic_performer,
                /*descr*/                "",
                /* creats*/ "",
                /* accepts */ "absolute-dynamic-event",
-               /* acks */ "",
                /*reads */"dynamicAbsoluteVolumeFunction midiMaximumVolume midiMinimumVolume midiInstrument instrumentEqualizer",
                /*writes*/"");
index 79ff78f90f146e5d2055fa797e759781c3ba77a9..9fa8770d352214a4c62f4f46685e661abd0eaa71 100644 (file)
@@ -134,7 +134,6 @@ ADD_TRANSLATOR_GROUP (Engraver_group_engraver,
                      /* descr */ "A group of engravers taken together",
                      /* creats*/ "",
                      /* accepts */ "",
-                     /* acks  */ "",
                      /* reads */ "",
                      /* write */ "");
 
index a93b202cbca0c0ff2ea07ee18f6d969e608499de..a8d833874a6ecd41a3e773f2c32b6793fc1a7f62 100644 (file)
@@ -63,7 +63,6 @@ ADD_TRANSLATOR (Engraver,
                "",
                "",
                "",
-               "",
                "");
 
 
index c1ca8d6a928a15f83746d7b916303b8e474ac9c6..5dd6776de5c11f2bda62007d1769203dc313741e 100644 (file)
@@ -150,6 +150,5 @@ ADD_TRANSLATOR (Extender_engraver,
                /* descr */ "Create lyric extenders",
                /* creats*/ "LyricExtender",
                /* accepts */ "extender-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index daddfaf972123e78eda9f4178c8066bbb71a32a7..6527363805e58d4d4ecbf0d0f3bb01fb8a4e137d 100644 (file)
@@ -89,6 +89,5 @@ ADD_TRANSLATOR (Figured_bass_engraver,
                /* descr */ "Make figured bass numbers.",
                /* creats*/ "BassFigure",
                /* accepts */ "rest-event bass-figure-event",
-               /* acks  */ "",
                /* reads */ "bassFigureFormatFunction",
                /* write */ "");
index b024f4b7c57e93e49001f0fab4ffa7dffb994b0b..a473cc808fe16124493a7f222da858884e0faa2d 100644 (file)
@@ -145,6 +145,5 @@ ADD_TRANSLATOR (Fingering_engraver,
                /* descr */ "Create fingering-scripts",
                /* creats*/ "Fingering",
                /* accepts */ "fingering-event",
-               /* acks  */ "rhythmic-head-interface stem-interface",
                /* reads */ "",
                /* write */ "");
index 3c644b37fcd8499408b556864ff57d09cd8c54f1..580afac3033141c37f7e6206943d9ab3c98179ea 100644 (file)
@@ -38,15 +38,15 @@ Font_size_engraver::acknowledge_font (Grob_info gi)
   /*
     We only want to process a grob once.
   */
+  if (!size)
+    return ;
+
   if (gi.context () != context ())
-    return;
-
-  if (size)
-    {
-      Real font_size = size
-       + robust_scm2double (gi.grob ()->get_property ("font-size"), 0);
-      gi.grob ()->set_property ("font-size", scm_make_real (font_size));
-    }
+    return ;
+
+  Real font_size = size
+    + robust_scm2double (gi.grob ()->get_property ("font-size"), 0);
+  gi.grob ()->set_property ("font-size", scm_make_real (font_size));
 }
 
 #include "translator.icc"
@@ -56,6 +56,5 @@ ADD_TRANSLATOR (Font_size_engraver,
                /* descr */ "Puts fontSize into font-relative-size grob property.",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "fontSize",
                /* write */ "");
index 0ba34fec52818234c12a7b4e0280a68ae154f738..4f75b2be8e052ec8f031ad89a346a815b65a6b32 100644 (file)
@@ -54,6 +54,5 @@ ADD_TRANSLATOR (Forbid_line_break_engraver,
                /* descr */ "Forbid line breaks when note heads are still playing at some point.",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "busyGrobs",
                /* write */ "");
index 16db55ec15cd4a9fa894ff1b3eebb20b5adb41a9..7f4f1823bd869145d186addffdfc0a5a2a2a3b6c 100644 (file)
@@ -110,6 +110,5 @@ ADD_TRANSLATOR (Glissando_engraver,
                /* descr */ "Engrave a glissandi",
                /* creats*/ "Glissando",
                /* accepts */ "glissando-event",
-               /* acks  */ "",
                /* reads */ "followVoice",
                /* write */ "");
index 25fe3dedecb59c8fd4672ef75822f2d721db2ea5..57bf0c476d8acf128f86e1644965c502aa1e5e57 100644 (file)
@@ -111,6 +111,5 @@ ADD_TRANSLATOR (Grace_engraver,
                /* descr */ "Set font size and other properties for grace notes.",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "graceSettings",
                /* write */ "");
index b6f65b9fa8be444e966dcc375b9f1f3b06832b70..4958274a2e14af17eb986ed1956095b5b3a37181 100644 (file)
@@ -275,10 +275,11 @@ Gregorian_ligature_engraver::stop_translation_timestep ()
 
 #include "translator.icc"
 
+ADD_ACKNOWLEDGER(Gregorian_ligature_engraver, rest);
+ADD_ACKNOWLEDGER(Gregorian_ligature_engraver, note_head);
 ADD_TRANSLATOR (Gregorian_ligature_engraver,
                /* descr */ "This is an abstract class.  Subclasses such as Vaticana_ligature_engraver handle ligatures by glueing special ligature heads together.",
                /* creats*/ "",
                /* accepts */ "ligature-event",
-               /* acks  */ "note-head-interface rest-interface",
                /* reads */ "",
                /* write */ "");
index 087aa2ba9a274b970889131f8a1322b6c6a36c58..7f1bdf47d5a9c35c1c6e4bf0faf245e89ce0be89 100644 (file)
@@ -70,7 +70,6 @@ void
 Grid_line_interface::add_grid_point (Grob *me, Grob *b)
 {
   Pointer_group_interface::add_grob (me, ly_symbol2scm ("elements"), b);
-  me->add_dependency (b);
 }
 
 ADD_INTERFACE (Grid_line_interface, "grid-line-interface",
index 73e81736c31146c1090fc680607ac887fa165c4d..204454229439f6b2dcc71395c984265b54159efa 100644 (file)
@@ -65,6 +65,5 @@ ADD_TRANSLATOR (Grid_line_span_engraver,
                "line lines, and draws a single span-line across them.",
                /* creats*/ "GridLine",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index e28c30fbee90a2ecf84000729ba9de7a1d504978..c45ff0d459b6462ea1d04741440b393288ecfb51 100644 (file)
@@ -11,6 +11,8 @@
 #include "item.hh"
 #include "moment.hh"
 
+#include "translator.icc"
+
 class Grid_point_engraver : public Engraver
 {
 public:
@@ -38,13 +40,11 @@ Grid_point_engraver::Grid_point_engraver ()
 {
 }
 
-#include "translator.icc"
 
 ADD_TRANSLATOR (Grid_point_engraver,
                /* descr */ "generate grid points.",
                /* creats*/ "GridPoint",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "gridInterval",
                /* write */ "");
 
index 00ca948cd64aee5aaf20aa1bb8e6f4ebf6bad9b9..221ba53de9b544d930c1592826e1762811c36a69 100644 (file)
@@ -141,6 +141,5 @@ ADD_TRANSLATOR (Grob_pq_engraver,
                /* descr */ "Administrate when certain grobs (eg. note heads) stop playing",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "busyGrobs",
                /* write */ "busyGrobs");
index 17d643bdfbdaa3b22a6d167a62e3d4f2fb178aa4..faa65794441239376b4501bc4468b8d1a145ffb5 100644 (file)
@@ -15,6 +15,8 @@
 #include "item.hh"
 #include "misc.hh"
 #include "item.hh"
+#include "program-option.hh"
+
 
 SCM
 Grob::get_property_alist_chain (SCM def) const
@@ -128,8 +130,11 @@ note_property_access (SCM *table, SCM sym)
 SCM
 Grob::internal_get_property (SCM sym) const
 {
-#ifdef PROFILE_PROPERTY_ACCESSES
-  note_property_access (&grob_property_lookup_table, sym);
+#ifndef NDEBUG
+  if (profile_property_accesses)
+    {
+      note_property_access (&grob_property_lookup_table, sym);
+    }
 #endif
   
   SCM s = scm_sloppy_assq (sym, mutable_property_alist_);
index 836d42c4c99ff93ac059b918b13c1f6e821775df..e7800e96e25864486f94336bb8b053bc8f4e253d 100644 (file)
@@ -43,9 +43,6 @@ Grob::mark_smob (SCM ses)
   if (s->original_)
     scm_gc_mark (s->original_->self_scm ());
 
-  if (s->pscore_)
-    scm_gc_mark (s->pscore_->self_scm ());
-
   s->derived_mark ();
   scm_gc_mark (s->object_alist_);
   scm_gc_mark (s->interfaces_);
index e73c67ab4b494edd3e9723088d26fbab46b6a9a6..98f7f36d498d87b83811048f211176ab8d40b49d 100644 (file)
@@ -12,6 +12,8 @@
 #include "rhythmic-head.hh"
 #include "spanner.hh"
 
+#include "translator.icc"
+
 class Hara_kiri_engraver : public Axis_group_engraver
 {
 protected:
@@ -66,14 +68,13 @@ Hara_kiri_engraver::Hara_kiri_engraver ()
   interesting_ = SCM_EOL;
 }
 
-#include "translator.icc"
+
 ADD_ACKNOWLEDGER(Hara_kiri_engraver, grob);
 ADD_TRANSLATOR (Hara_kiri_engraver,
                /* descr */ "Like Axis_group_engraver, but make a hara-kiri spanner, and add "
                "interesting items (ie. note heads, lyric syllables and normal rests) ",
                /* creats*/ "RemoveEmptyVerticalGroup",
                /* accepts */ "",
-               /* acks  */ "grob-interface",
                /* reads */ "keepAliveInterfaces",
                /* write */ "");
 
index 0148204f9c7953f884ae3beb41db888e5c5fd9a0..cf611c5d1abaa39f38c4c997da010f003010a7a9 100644 (file)
@@ -12,6 +12,8 @@
 #include "note-column.hh"
 #include "pointer-group-interface.hh"
 
+#include "translator.icc"
+
 class Horizontal_bracket_engraver : public Engraver
 {
 public:
@@ -27,14 +29,13 @@ public:
   DECLARE_ACKNOWLEDGER(note_column);
 };
 
-#include "translator.icc"
+
 ADD_ACKNOWLEDGER(Horizontal_bracket_engraver,note_column);
 ADD_TRANSLATOR (Horizontal_bracket_engraver,
                "Create horizontal brackets over notes for musical analysis purposes.",
                "HorizontalBracket",
                "note-grouping-event",
                "",
-               "",
                "");
 
 Horizontal_bracket_engraver::Horizontal_bracket_engraver ()
index e898f03879e92d0fcbcf03b4326219c7e8d6e52b..750b19373424f23f7299c7f0648c79284a779d7b 100644 (file)
@@ -139,6 +139,5 @@ ADD_TRANSLATOR (Hyphen_engraver,
                /* descr */ "Create lyric hyphens",
                /* creats*/ "LyricHyphen",
                /* accepts */ "hyphen-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index eb2199b33be1edb5069248a670e08cf6be0684af..60d175a9762106e3876cdfe924a95ec8ffd7a05c 100644 (file)
@@ -29,6 +29,7 @@ public:
   Interval extent (Axis)const;
   Polynomial polynomial (Axis)const;
   Offset curve_point (Real t) const;
+  Real curve_coordinate (Real t, Axis) const;
 
   static const int CONTROL_COUNT = 4;
 
index 15b281110eb7c91f8c0bc9df805b8e1acb0d1415..df053d160b4cf9aae479dc7507e1cf284963d1a7 100644 (file)
@@ -56,7 +56,7 @@ public:
   SCM children_contexts () const { return context_list_; }
   SCM default_child_context_name () const;
 
-  Translator_group *implementation () const;
+  Translator_group *implementation () const { return implementation_; }
   Context *get_parent_context () const;
   Context (Object_key const *);
 
@@ -65,7 +65,7 @@ public:
   SCM internal_get_property (SCM name_sym) const;
   SCM properties_as_alist () const;
   void internal_set_property (SCM var_sym, SCM value);
-  Context *where_defined (SCM name_sym) const;
+  Context *where_defined (SCM name_sym, SCM *value) const;
   void unset_property (SCM var_sym);
 
   Context *remove_context (Context *trans);
index c4279a971474257333b226a6f0c25f3723697d11..53f900a00d1e76411d1798b1eca12bf08b092a50 100644 (file)
@@ -15,6 +15,7 @@ extern bool do_midi_debugging_global;
 extern int testing_level_global;
 extern bool lily_1_8_relative;
 extern bool lily_1_8_compatibility_used;
+extern bool profile_property_accesses;
 
 SCM ly_get_option (SCM);
 SCM ly_set_option (SCM, SCM);
index d5330dbeb83a336206be24128450e56b3f858ca0..1dc5c0170a3632388850728847276f1f4437ca38 100644 (file)
@@ -85,7 +85,7 @@ void recurse_over_translators (Context *c, Translator_method ptr,
 void precomputed_recurse_over_translators (Context *c, Translator_precompute_index idx, Direction dir);
 Translator_group *get_translator_group (SCM sym);
 
-#define ADD_TRANSLATOR_GROUP(classname, desc, grobs, accepted, acked, read, write) \
+#define ADD_TRANSLATOR_GROUP(classname, desc, grobs, accepted, read, write) \
 
 DECLARE_UNSMOB (Translator_group, translator_group);
 
index 4056c8d5da10129144eb1a0a2763a66e294a42e2..2f7514905c54e43123f5e12d6ede86409ff89035 100644 (file)
@@ -87,6 +87,7 @@ public:
 
   TRANSLATOR_DECLARATIONS (Translator);
   DECLARE_SMOBS (Translator, dummy);
+
 protected:                     // should be private.
   Context *daddy_context_;
   virtual void derived_mark () const;
index 3097972a4cfbb7f3ed6168f6bdfc62e98b2e5dc4..6cc1d79daf80577a37b3157bd56aa06df2bdd95b 100644 (file)
@@ -30,7 +30,7 @@
   }                                                                    \
   ADD_GLOBAL_CTOR (_ ## T ## _adder);
 
-#define ADD_TRANSLATOR(classname, desc, grobs, accepted, acked, read, write) \
+#define ADD_TRANSLATOR(classname, desc, grobs, accepted, read, write) \
   Array<Acknowledge_information> classname::acknowledge_static_array_;\
   IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(classname); \
   ADD_THIS_TRANSLATOR (classname);                                     \
@@ -52,8 +52,6 @@
     static_properties = scm_acons (ly_symbol2scm ("description"),      \
                                   scm_makfrom0str (desc), static_properties); \
                                                                        \
-    static_properties = scm_acons (ly_symbol2scm ("interfaces-acked"), \
-                                  parse_symbol_list (acked), static_properties); \
     static_properties = scm_acons (ly_symbol2scm ("events-accepted"),  \
                                   parse_symbol_list (accepted), static_properties); \
                                                                        \
index bf935c31a7a9f9a5568d0d183c4e2d92dcc20433..4c6f329f6ffb8dc859d978731f259318b46f5cd1 100644 (file)
@@ -148,7 +148,6 @@ ADD_TRANSLATOR (Instrument_name_engraver,
                "at the left of the staff. ",
                /* creats*/ "InstrumentName",
                /* accepts */ "",
-               /* acks  */ "bar-line-interface axis-group-interface",
                /* reads */ "instrument instr",
                /* write */ "");
 
@@ -196,6 +195,5 @@ ADD_TRANSLATOR (Vocal_name_engraver,
                "at the left of the staff. ",
                /* creats*/ "VocalName",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "vocNam vocalName",
                /* write */ "");
index cd813ea00bd78937bc5bf203081795ce4d78fe31..b1fee206847371a137670d292081caf4e53d8dea 100644 (file)
@@ -186,6 +186,5 @@ ADD_TRANSLATOR (Key_engraver,
                /* descr */ "",
                /* creats*/ "KeySignature",
                /* accepts */ "key-change-event",
-               /* acks  */ "",
                /* reads */ "keySignature printKeyCancellation lastKeySignature explicitKeySignatureVisibility createKeyOnClefChange keyAccidentalOrder keySignature",
                /* write */ "lastKeySignature tonic keySignature");
index 065dd57fcdff4d92bb086931a04390c643d3a00c..ee0afda9eb0b7c9ebec9f547e5ec95a8f3d71943 100644 (file)
@@ -101,4 +101,4 @@ Key_performer::try_music (Music *ev)
 ADD_TRANSLATOR (Key_performer,
                "", "",
                "key-change-event",
-               "", "", "");
+               "", "");
index cd86fde310a6bfc29c8903b04c43020fd2f128a9..4ab91ece0fa7a5fd7172147c37bc68d1a19eae8f 100644 (file)
@@ -98,6 +98,5 @@ ADD_TRANSLATOR (Ledger_line_engraver,
                "Creates the spanner to draw ledger lines, and notices objects that need ledger lines",
                /* creats*/ "LedgerLineSpanner",
                /* accepts */ "",
-               /* acks  */ "", // ledgered-interface? 
                /* reads */ "",
                /* write */ "")
index 9d00279b1c00d8441f4edf509c5e403477195747..25702af274c554780a8a02efa7103144f972a602 100644 (file)
@@ -62,6 +62,5 @@ ADD_TRANSLATOR (Ligature_bracket_engraver,
                /* descr */ "Handles Ligature_events by engraving Ligature brackets.",
                /* creats*/ "TupletBracket",
                /* accepts */ "ligature-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 7f47ce516572e1479b7137b582bf360d25b09702..f773c15b1cdb3d3f5e666a66424ad79d42550b5d 100644 (file)
@@ -293,6 +293,5 @@ ADD_TRANSLATOR (Ligature_engraver,
                /* descr */ "Abstract class; a concrete subclass handles Ligature_events by engraving Ligatures in a concrete style.",
                /* creats */ "",
                /* accepts */ "ligature-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 9e93dda4440a933d0840f93b883a42bd551d08c4..4ad0e7f48a3c355a37fecc8f8f43a7479393fe23 100644 (file)
@@ -163,6 +163,5 @@ ADD_TRANSLATOR (Lyric_engraver,
                /* descr */ "",
                /* creats*/ "LyricText",
                /* accepts */ "lyric-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index b914a54644a122d00dc47c174bf1587a0ad7644d..5ae3366e681714ea919cb5496bb5eea216ad2def 100644 (file)
@@ -70,4 +70,5 @@ Lyric_performer::try_music (Music *event)
 
 #include "translator.icc"
 
-ADD_TRANSLATOR (Lyric_performer, "", "", "lyric-event", "", "", "");
+ADD_TRANSLATOR (Lyric_performer, "", "", "lyric-event",
+                "", "");
index d88f7452774aa946af8c8023a8d33a3b42b8bef4..6b813bfeddbadce60954478590d6b26c3b33ef0c 100644 (file)
@@ -142,6 +142,5 @@ ADD_TRANSLATOR (Mark_engraver,
                "end up on the same Y-location",
                /* creats*/ "RehearsalMark",
                /* accepts */ "mark-event",
-               /* acks  */ "",
                /* reads */ "rehearsalMark markFormatter stavesFound",
                /* write */ "");
index f2075348093e8b40063e45e93f8020d79c717bd2..c55bf2fee0a8cec5cee92ff3015cb044b2bc10fb 100644 (file)
@@ -112,6 +112,5 @@ ADD_TRANSLATOR (Measure_grouping_engraver,
                /* descr */ "Creates MeasureGrouping to indicate beat subdivision.",
                /* creats*/ "MeasureGrouping",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "beatGrouping beatLength measurePosition currentMusicalColumn",
                /* write */ "");
index 97a51df6703a02ce0cf3df8c8748eca793562d30..dccfb23e511f2d2cd191db6594a87004df3f74ec 100644 (file)
@@ -71,6 +71,5 @@ ADD_TRANSLATOR (Melisma_translator,
                /* descr */ "This translator collects melisma information about ties, beams, and user settings (@code{melismaBusy}, and signals it to the @code{\addlyrics} code.  ",
                /* creats*/ "",
                /* accepts */ "melisma-playing-event melisma-span-event",
-               /* acks  */ "",
                /* reads */ "melismaBusy melismaBusyProperties slurMelismaBusy tieMelismaBusy beamMelismaBusy",
                /* write */ "");
index 5a6c662f909adbbb86a31c06f77a4b4c9b518df1..1c9f64674d0f41b2715270c13b65c881e6e7c35b 100644 (file)
@@ -385,10 +385,11 @@ Mensural_ligature_engraver::build_ligature (Spanner *ligature,
 
 #include "translator.icc"
 
+ADD_ACKNOWLEDGER(Mensural_ligature_engraver, rest);
+ADD_ACKNOWLEDGER(Mensural_ligature_engraver, note_head);
 ADD_TRANSLATOR (Mensural_ligature_engraver,
                /* descr */ "Handles Mensural_ligature_events by glueing special ligature heads together.",
                /* creats*/ "MensuralLigature",
                /* accepts */ "ligature-event",
-               /* acks  */ "note-head-interface rest-interface",
                /* reads */ "",
                /* write */ "");
index 9535798f7a7c328c8d9fe1fd56bdf2b7a7a03100..35b8f780be8b84330d1c53c972eec840a3b7ec55 100644 (file)
@@ -95,6 +95,5 @@ ADD_TRANSLATOR (Metronome_mark_engraver,
                "which is maintained by @code{@ref{Staff_collecting_engraver}}. ",
                /* creats*/ "MetronomeMark",
                /* accepts */ "metronome-change-event",
-               /* acks  */ "",
                /* reads */ "stavesFound metronomeMarkFormatter",
                /* write */ "");
index a4969776819ffcb207986a64b82b37eb8a6f2375..05ac7aed3254b9f3a6e617adf4dcabebe4301d27 100644 (file)
@@ -256,6 +256,5 @@ ADD_TRANSLATOR (Multi_measure_rest_engraver,
                "should use a whole rest or a breve rest to represent 1 measure ",
                /* creats*/ "MultiMeasureRest MultiMeasureRestNumber MultiMeasureRestText",
                /* accepts */ "multi-measure-rest-event multi-measure-text-event",
-               /* acks  */ "",
                /* reads */ "currentBarNumber restNumberThreshold breakableSeparationItem currentCommandColumn measurePosition measureLength",
                /* write */ "");
index 465cfd6ae22f3a588c43112142c53e0b45275db6..942e2dbc242af837c02e0be0bd20426e868627d7 100644 (file)
@@ -93,8 +93,7 @@ Music::mark_smob (SCM m)
 {
   Music *mus = (Music *) SCM_CELL_WORD_1 (m);
   scm_gc_mark (mus->immutable_property_alist_);
-  scm_gc_mark (mus->mutable_property_alist_);
-  return SCM_EOL;
+  return mus->mutable_property_alist_;
 }
 
 Moment
index f39a35f5c29a013c93f5696653e156fec8c22480..c4489acbb5ee2b821212af0d3baefa0c79e67750 100644 (file)
@@ -370,6 +370,5 @@ ADD_TRANSLATOR (New_fingering_engraver,
                "also takes care of articulations and harmonic note heads",
                /* creats*/ "Fingering",
                /* accepts */ "",
-               /* acks  */ "rhythmic-head-interface stem-interface",
                /* reads */ "fingeringOrientations",
                /* write */ "");
index 610c48035981a603b235ee808fcf1518694ebba1..a303d95f8f4ee242ad2aa838daf2406a89ad0e04 100644 (file)
@@ -103,6 +103,5 @@ ADD_TRANSLATOR (Note_head_line_engraver,
                " followVoice is set, staff switches also generate a line.",
                /* creats*/ "Glissando VoiceFollower",
                /* accepts */ "glissando-event",
-               /* acks  */ "",
                /* reads */ "followVoice",
                /* write */ "");
index 91de2a5047890cd64e56985b75511a0645a4f974..02dc7d02923c68e58aecc8879db2543018f9703f 100644 (file)
@@ -137,6 +137,5 @@ ADD_TRANSLATOR (Note_heads_engraver,
                /* descr */ "Generate noteheads.",
                /* creats*/ "NoteHead Dots",
                /* accepts */ "note-event busy-playing-event",
-               /* acks  */ "",
                /* reads */ "middleCPosition",
                /* write */ "");
index a40cb2ac3f47bb58112fe8f6901f8c70c7916d12..096c01af46cd52aea2993812bd776c5660fec531 100644 (file)
@@ -72,6 +72,5 @@ ADD_TRANSLATOR (Note_name_engraver,
                /* descr */ "",
                /* creats*/ "NoteName",
                /* accepts */ "note-event",
-               /* acks  */ "",
                /* reads */ "printOctaveNames",
                /* write */ "");
index 333196f9bdb23d9180927f3958503190945a582b..4ac5f0ebb53f1d3d63c4f4d471bfab986a95a9ca 100644 (file)
@@ -91,7 +91,8 @@ Note_performer::try_music (Music *ev)
 #include "translator.icc"
 
 ADD_TRANSLATOR (Note_performer, "", "",
-               "note-event busy-playing-event", "", "", "");
+               "note-event busy-playing-event",
+                "", "");
 
 Note_performer::Note_performer ()
 {
index dd6ee2456b3fa0afa294805174ef69c09901c84f..8cf520f924a2c8dce583e85282c9702d124eebfa 100644 (file)
@@ -129,6 +129,5 @@ ADD_TRANSLATOR (Ottava_spanner_engraver,
                /* descr */ "Create a text spanner when the ottavation property changes..",
                /* creats*/ "OttavaBracket",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "ottavation",
                /* write */ "");
index 96f1c04a5f2e10b0abcbf57deb2fa0fcd79c65b0..07ecdd0ea01c075d632281d30ca75814d7e031fd 100644 (file)
@@ -84,6 +84,5 @@ ADD_TRANSLATOR (Output_property_engraver,
 " to any Graphic objects that satisfies the predicate.",
 /* creats*/       "",
 /* accepts */     "layout-instruction",
-/* acks  */       "",
 /* reads */       "",
 /* write */       "");
index 40deecd62d4571b4389b937a24b0a04a58ec5523..230220a31f52a6dc0e5391995ec6bbc1d8679227 100644 (file)
@@ -228,6 +228,5 @@ ADD_TRANSLATOR (Paper_column_engraver,
                "that there are no beams or notes that prevent a breakpoint.) ",
                /* creats*/ "PaperColumn NonMusicalPaperColumn",
                /* accepts */ "break-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "currentCommandColumn currentMusicalColumn");
index cfda8df12e7eb4b0720731ee50e01f66f831337c..b7de2a308f0bc824ee561f14c018e30861d202b8 100644 (file)
@@ -102,7 +102,6 @@ ADD_TRANSLATOR (Part_combine_engraver,
                "Print markings a2, Solo, Solo II, and unisono ",
                /* creats*/ "CombineTextScript",
                /* accepts */ "part-combine-event",
-               /* acks  */ "",
                /* reads */ "printPartCombineTexts soloText soloIIText "
                "aDueText",
                /* write */ "");
index 208ba3600f42eddc85e7fff359f91702846df8e6..f85b8162753d6d9d79e264809e54a447d321ae00 100644 (file)
@@ -204,6 +204,5 @@ ADD_TRANSLATOR (Percent_repeat_engraver,
                /* descr */ "Make whole bar and double bar repeats.",
                /* creats*/ "PercentRepeat DoublePercentRepeat",
                /* accepts */ "repeated-music",
-               /* acks  */ "",
                /* reads */ "measureLength currentCommandColumn",
                /* write */ "");
index 8c24bbb99664360f5e2150ae696c985bcb8d609a..fde075368ac35bb53f60b7689f707d05180e175c 100644 (file)
@@ -17,7 +17,6 @@ ADD_TRANSLATOR_GROUP (Performer_group_performer,
                /* descr */ "",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
 
index d2f43ca8e763ce7da9f786993f8b7a0fa7660a4b..cc9c69a906c75f25aec92a2e9b68a9a7034a71a7 100644 (file)
@@ -202,6 +202,5 @@ ADD_TRANSLATOR (Phrasing_slur_engraver,
                /* descr */ "Print phrasing slurs. Similar to @ref{Slur_engraver}",
                /* creats*/ "PhrasingSlur",
                /* accepts */ "phrasing-slur-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 270033f29ed2bcfee122d594268a201d2bbbefc9..d1532ee7d4141bbe75d848e6fd0f18dfc99efacf 100644 (file)
@@ -528,7 +528,6 @@ ADD_TRANSLATOR (Piano_pedal_engraver,
                /* descr */ "Engrave piano pedal symbols and brackets.",
                /* creats*/ "SostenutoPedal SustainPedal UnaCordaPedal SostenutoPedalLineSpanner SustainPedalLineSpanner UnaCordaPedalLineSpanner",
                /* accepts */ "pedal-event",
-               /* acks  */ "",
                /* reads */ "currentCommandColumn "
                "pedalSostenutoStrings pedalSustainStrings "
                "pedalUnaCordaStrings pedalSostenutoStyle "
index 65765a24aeecb6e100fd87e7bd8d8a25fce44a3d..98ba5adab7237d88caf0f722d1253068f55045c4 100644 (file)
@@ -145,4 +145,4 @@ Piano_pedal_performer::try_music (Music *r)
 
 ADD_TRANSLATOR (Piano_pedal_performer, "", "",
                "pedal-event",
-               "", "", "");
+                "", "");
index fa00090e9b8f514dae91709a9baaacf1442fae6c..0d99f154240612f027c03348d87c406a68f41d1c 100644 (file)
@@ -43,6 +43,5 @@ ADD_TRANSLATOR (Pitch_squash_engraver,
 
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "squashedPosition",
                /* write */ "");
index c29adc745d0271ad3e0e8d7385a4e0b4c979166c..59753f7c766c22994766303d3cdbee356e169729 100644 (file)
@@ -158,6 +158,5 @@ ADD_TRANSLATOR (Pitched_trill_engraver,
                /* descr */ "Print the bracketed notehead after a notehead with trill.",
                /* creats*/ "TrillPitchHead TrillPitchAccidental TrillPitchGroup",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 7233a6957eb7b9f5f8253c8efdca4f9dddb46803..c585bb4a6073d4d5770f602e2d69c1e0d42ba739 100644 (file)
@@ -27,7 +27,7 @@ bool use_object_keys;
 */
 bool lily_1_8_relative = false;
 bool lily_1_8_compatibility_used = false;
-
+bool profile_property_accesses = false;
 /*
   crash if internally the wrong type is used for a grob property.
 */
@@ -38,8 +38,15 @@ Protected_scm option_hash_;
 void internal_set_option (SCM var, SCM val)
 {
   scm_hashq_set_x (option_hash_, var, val);
-  
-  if (var == ly_symbol2scm ("midi-debug"))
+
+  if (0)
+    ;
+  else if (var == ly_symbol2scm ("profile-property-accesses"))
+    {
+      profile_property_accesses = to_boolean (val);
+      val = scm_from_bool (to_boolean (val));
+    }
+  else if (var == ly_symbol2scm ("midi-debug"))
     {
       do_midi_debugging_global = to_boolean (val);
       val = scm_from_bool (to_boolean (val));
index 364494e9273838db94269749f515f9fb9a934a45..0394d50a46eaef2ced8ba5ef13c5542c36ee57c8 100644 (file)
@@ -78,6 +78,5 @@ ADD_TRANSLATOR_GROUP (Recording_group_engraver,
                "in @code{recordEventSequence} when finished.",
                "",
                "",
-               "",
                "recordEventSequence",
                "");
index 7afe740b7a3b51f83943917bf55d4f0a19a79ec4..355e80459972e12622c30c2390b1677eb2a89cd4 100644 (file)
@@ -47,7 +47,8 @@ Repeat_acknowledge_engraver::Repeat_acknowledge_engraver ()
 void
 Repeat_acknowledge_engraver::start_translation_timestep ()
 {
-  Context *tr = context ()->where_defined (ly_symbol2scm ("repeatCommands"));
+  SCM rc;
+  Context *tr = context ()->where_defined (ly_symbol2scm ("repeatCommands"), &rc);
   if (!tr)
     tr = context ();
 
@@ -113,6 +114,5 @@ ADD_TRANSLATOR (Repeat_acknowledge_engraver,
                "repeatCommands ainto an appropriate setting for whichBar.",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "repeatCommands whichBar",
                /* write */ "");
index eca0414667da9919c518f79d0dd3fa9075e4281b..60bb70f6a4d7e6c94405d22bdc93cf8e8fa9881f 100644 (file)
@@ -69,6 +69,5 @@ ADD_TRANSLATOR (Rest_collision_engraver,
                /* descr */ "Handles collisions of rests.",
                /* creats*/ "RestCollision",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 2a90b776ce7e5b8598493ec0979d1af8bb48c897..84d193dbc874940446b547e2f5f2d0f1214f5704 100644 (file)
@@ -107,6 +107,5 @@ ADD_TRANSLATOR (Rest_engraver,
                /* descr */ "",
                /* creats*/ "Rest Dots",
                /* accepts */ "rest-event",
-               /* acks  */ "",
                /* reads */ "middleCPosition",
                /* write */ "");
index d4b8a5c82638c6a074893a5fd5e889d05c702fc4..8b1e899854584a6c40f8aebe31ec8ea3bf76beb8 100644 (file)
@@ -156,6 +156,5 @@ ADD_TRANSLATOR (Rhythmic_column_engraver,
                /* descr */ "Generates NoteColumn, an objects that groups stems, noteheads and rests.",
                /* creats*/ "NoteColumn NoteSpacing",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 5fbacd0cb2229f2a3f18b3485003262f63951f7f..5c83021be4a58da27b63efccd586db0812385407 100644 (file)
@@ -175,6 +175,5 @@ ADD_TRANSLATOR_GROUP (Score_engraver,
                "that there are no beams or notes that prevent a breakpoint.) ",
                /* creats*/ "System PaperColumn NonMusicalPaperColumn",
                /* accepts */ "break-event",
-               /* acks  */ "note-spacing-interface staff-spacing-interface axis-group-interface",
                /* reads */ "currentMusicalColumn currentCommandColumn verticallySpacedContexts",
                /* write */ "");
index a8784405f04b93530625672dfdd43ef267223693..833a8575de9453b4e37c7119a965ad2e1da107d5 100644 (file)
@@ -22,7 +22,6 @@ ADD_TRANSLATOR_GROUP (Score_performer,
                /* descr */ "",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
 
index e95fd4fd41cd28b7b6b2987efb30ab0644389014..b7937ed8b4bf2ed5f2f90b1b03fe104a90ab9418 100644 (file)
@@ -75,6 +75,5 @@ ADD_TRANSLATOR (Script_column_engraver,
                /* descr */ "",
                /* creats*/ "ScriptColumn",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 6925471460614c71a445d978f6208630caf9e5ce..e818c9d48280d1af427768e19dd142e6a0435ee8 100644 (file)
@@ -260,6 +260,5 @@ ADD_TRANSLATOR (Script_engraver,
                /* descr */ "Handles note scripted articulations.",
                /* creats*/ "Script",
                /* accepts */ "script-event articulation-event",
-               /* acks  */ "",
                /* reads */ "scriptDefinitions",
                /* write */ "");
index 09214afeb015a2dd41b87cd938bb6374d7def640..4a97081c69814e744aefb7ffb72255ff50b304da 100644 (file)
@@ -228,6 +228,5 @@ ADD_TRANSLATOR (Separating_line_group_engraver,
                /* descr */ "Generates objects for computing spacing parameters.",
                /* creats*/ "SeparationItem SeparatingGroupSpanner StaffSpacing",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "createSpacing",
                /* write */ "breakableSeparationItem");
index 97009d98c72ef2a4f98b797c4c7155aa8a0bc43d..b990ad61fbcf147aa81c9126b15ef98ee43ac2e8 100644 (file)
@@ -18,7 +18,6 @@ Separation_item::add_item (Grob *s, Item *i)
 {
   assert (i);
   Pointer_group_interface::add_grob (s, ly_symbol2scm ("elements"), i);
-  s->add_dependency (i);
 }
 
 void
index a87846948bed8bbe74d090da66d42cf7441defe4..6464651a27dc7bb060e4b670c324b841be966e58 100644 (file)
@@ -422,16 +422,15 @@ Simple_spacer_wrapper::add_columns (Link_array<Grob> const &icols)
           scm_is_pair (s); s = scm_cdr (s))
        {
          Grob *other = unsmob_grob (scm_caar (s));
-         int oi = binsearch_links (cols, other, &compare_paper_column_rank);
-         if (oi >= 0
-             && cols[oi] == other)
+         int j = binsearch_links (cols, other, &compare_paper_column_rank);
+         if (j >= 0 && cols[j] == other)
            {
-             spacer_->add_rod (i, oi, scm_to_double (scm_cdar (s)));
+             spacer_->add_rod (i, j, scm_to_double (scm_cdar (s)));
            }
        }
 
       if (i
-         && !to_boolean (cols[i]->get_property ("allow-outside-line")))
+         && to_boolean (cols[i]->get_property ("keep-inside-line")))
        {
          Interval e = cols[i]->extent (cols[i], X_AXIS);
          if (!e.is_empty ())
index 42f622699ef3e428629b3fa928a07f780aff483d..8cd9bc76c15918c5ab09a838011ec3d2800fa1d4 100644 (file)
@@ -120,6 +120,5 @@ ADD_TRANSLATOR (Slash_repeat_engraver,
                /* descr */ "Make beat repeats.",
                /* creats*/ "RepeatSlash",
                /* accepts */ "repeated-music",
-               /* acks  */ "",
                /* reads */ "measureLength",
                /* write */ "");
index 8579bd8064f548f1944f2dd70655922601903a48..2a1c7528f85a3c6c4962f1a41b3ec7569a91a9dc 100644 (file)
@@ -209,6 +209,5 @@ ADD_TRANSLATOR (Slur_engraver,
                /* descr */ "Build slurs grobs from slur events",
                /* creats*/ "Slur",
                /* accepts */ "slur-event",
-               /* acks  */ "",
                /* reads */ "slurMelismaBusy doubleSlurs",
                /* write */ "");
index 9742d753d99d0dcede78c22a06a55b3b40b3156a..5d493a60d9a0bc635d285025fe9158ed90a33fa6 100644 (file)
@@ -91,6 +91,8 @@ Slur_performer::try_music (Music *m)
 
 #include "translator.icc"
 
-ADD_TRANSLATOR (Slur_performer, "", "",
-               "slur-event", "", "", "");
+ADD_TRANSLATOR (Slur_performer,
+               "", "",
+               "slur-event",
+               "", "");
 
index 19ad14326c28915999b53c6db24b1a29e9c519a8..3f6b9daa776375b450e375fb8e7c63aee8741c08 100644 (file)
@@ -15,6 +15,7 @@
 #include "spring.hh"
 #include "pointer-group-interface.hh"
 #include "grob.hh"
+#include "paper-column.hh"
 
 SCM
 Spaceable_grob::get_minimum_distances (Grob *me)
@@ -47,6 +48,11 @@ Spaceable_grob::add_rod (Grob *me, Grob *p, Real d)
        }
     }
 
+  if (Paper_column::get_rank (p) < Paper_column::get_rank (me))
+    {
+      programming_error ("Adding reverse rod");
+    }
+  
   mins = scm_cons (scm_cons (p->self_scm (), newdist), mins);
   me->set_object ("minimum-distances", mins);
 }
@@ -104,5 +110,5 @@ Spaceable_grob::remove_interface (Grob *me)
 ADD_INTERFACE (Spaceable_grob, "spaceable-grob-interface",
               "A layout object that takes part in the spacing problem. ",
               "measure-length spacing-wishes penalty minimum-distances ideal-distances "
-              "allow-outside-line left-neighbors right-neighbors");
+              "keep-inside-line left-neighbors right-neighbors");
 
index 5d51b2f394bb2dcbaad2664cdd0a2e69119e4377..dd74d606d49b3a4214958924c4fc6dd3e8f714ea 100644 (file)
@@ -191,6 +191,5 @@ ADD_TRANSLATOR (Spacing_engraver,
                /* descr */ "make a SpacingSpanner and do bookkeeping of shortest starting and playing notes  ",
                /* creats*/ "SpacingSpanner",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 16846558ee0bf0695dd3f3c2f61125cdc527a08d..38ca9f36b9b0fa546a2dc132f9af4e41201234fd 100644 (file)
@@ -104,6 +104,5 @@ ADD_TRANSLATOR (Span_arpeggio_engraver,
                /* descr */ "",
                /* creats*/ "Arpeggio",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "connectArpeggios",
                /* write */ "");
index 645e6d7eb08f3bfdce6248dab0cffc46260fb652..aa7d078fdee3f7d4e41c73dde1d3cf5553862e11 100644 (file)
@@ -80,6 +80,5 @@ ADD_TRANSLATOR (Span_bar_engraver,
                "bar lines, and draws a single span-bar across them.",
                /* creats*/ "SpanBar",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 7b367c2899de0c06423861e26bee0ba02c4da3f6..557168fee5ba5a1e3096674885a81d13db5c1aff 100644 (file)
@@ -184,4 +184,4 @@ Span_dynamic_performer::try_music (Music *r)
 ADD_TRANSLATOR (Span_dynamic_performer,
                "", "",
                "crescendo-event decrescendo-event",
-               "", "", "");
+                "", "");
index b1924090bc1b611a7634b9ba53121d03e932698d..dcf18385cb9a4dc7f158f0086670faaf04bc2e10 100644 (file)
@@ -39,6 +39,5 @@ ADD_TRANSLATOR (Staff_collecting_engraver,
 
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "stavesFound",
                /* write */ "stavesFound");
index a687a686e07b91546e44d2003a249a84ce6c14ce..26174befc387054c43bc1fcef3823e9175186c79 100644 (file)
@@ -44,7 +44,7 @@ private:
 
 ADD_TRANSLATOR (Staff_performer, "", "",
                "",
-               "", "", "");
+                "", "");
 
 Staff_performer::Staff_performer ()
 {
index 8ec2e655c5564803efa717d0ccee649a8c0e9398..adee8fabe5159e863770896aebd0d63832dfd193 100644 (file)
@@ -117,6 +117,5 @@ ADD_TRANSLATOR (Staff_symbol_engraver,
                "staff lines.",
                /* creats*/ "StaffSymbol",
                /* accepts */ "staff-span-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 2c78cbb722b208e03bcc89a8c1352178d514f82d..0086f2b44c9e548565b102fc6ae7d6c30e7ad1b2 100644 (file)
@@ -65,6 +65,5 @@ ADD_TRANSLATOR (Stanza_number_align_engraver,
                "",
                "",
                " ",
-               "",
                "");
 
index bacc51b6d96be687a7b1b20d56cd549b8c8e0a57..2618274a055dd0ddf41d70bb3d6649070a36b0ff 100644 (file)
@@ -73,6 +73,5 @@ ADD_TRANSLATOR (Stanza_number_engraver,
                /* descr */ "",
                /* creats*/ "StanzaNumber",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "stanza",
                /* write */ "");
index 9248ef41cf5454100d9d76ac9b7cd47f9634ac5e..549da5f83d065984af9bc23682ef94ea8a646c53 100644 (file)
@@ -175,6 +175,5 @@ ADD_TRANSLATOR (Stem_engraver,
                "the beam engraver for overriding beaming.",
                /* creats*/ "Stem StemTremolo",
                /* accepts */ "tremolo-event",
-               /* acks  */ "",
                /* reads */ "tremoloFlags stemLeftBeamCount stemRightBeamCount",
                /* write */ "");
index c21eff2aa4710de6092ddaaf5a787bb63f443242..13fbf873d0b3b78a07ada34c386b2952a06d9181 100644 (file)
@@ -42,6 +42,5 @@ ADD_TRANSLATOR (String_number_engraver,
 
                /* creats*/ "",
                /* accepts */ "string-number-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 9d51eb6edd21ed040564f4ffdee3ac3fd033faa7..13fe922f67e70b124c797a8b7896d616c990ac9c 100644 (file)
@@ -33,6 +33,5 @@ ADD_TRANSLATOR (Swallow_engraver,
                "this is to prevent spurious \"event junked\" warnings.",
                /* creats*/ "",
                /* accepts */ "general-music",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 2c0dbad55c0ae46686930c40c71d490b99a2d07e..634cad9791cfb95b605d483384efb413460352b7 100644 (file)
@@ -37,6 +37,5 @@ ADD_TRANSLATOR (Swallow_performer,
                /* descr */ "",
                /* creats*/ "",
                /* accepts */ "general-music",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 5a43fc0767b298a810fd9f16192e53356fec1f27..102f48b68e78106a1b5565d2c414d0019237f98d 100644 (file)
@@ -91,6 +91,5 @@ ADD_TRANSLATOR (System_start_delimiter_engraver,
                /* descr */ "Creates a system start delimiter (ie. SystemStart@{Bar, Brace, Bracket@} spanner",
                /* creats*/ "SystemStartBar SystemStartBrace SystemStartBracket",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "systemStartDelimiter",
                /* write */ "");
index 115ab8720c6f11e3460a44773a8260c0eb5ac7f9..4adadc6e585c270d67f51b4426d5e584333d8529 100644 (file)
@@ -100,6 +100,10 @@ System::derived_mark () const
          ptr ++;
        }
     }
+
+  if (pscore_)
+    scm_gc_mark (pscore_->self_scm ());
+  
   Spanner::derived_mark ();
 }
 
index 3aab0a9e862aa8eff8d38fa707aab70d36896fd4..b6958323620252e76e71861fe290b9ad361d3d33 100644 (file)
@@ -171,7 +171,6 @@ ADD_TRANSLATOR (Tab_note_heads_engraver,
                /* descr */ "Generate one or more tablature noteheads from Music of type NoteEvent.",
                /* creats*/ "TabNoteHead Dots",
                /* accepts */ "note-event string-number-event busy-playing-event",
-               /* acks  */ "",
                /* reads */ "middleCPosition stringTunings minimumFret tablatureFormat highStringOne stringOneTopmost",
                /* write */ "");
 
index 32020eee13c877f93ef737f399fc43cd1ea61f3d..aa220631e5651860b82573a3250cff1863ab005a 100644 (file)
@@ -43,6 +43,5 @@ ADD_TRANSLATOR (Tab_staff_symbol_engraver,
                "staff lines.",
                /* creats*/ "StaffSymbol",
                /* accepts */ "staff-span-event",
-               /* acks  */ "",
                /* reads */ "stringTunings",
                /* write */ "");
index 85f8aa5322a2d3ec4d726cface1746eeb7d148ae..437c271ce018608213a23b9f5ec0a5f722db6c2d 100644 (file)
@@ -81,4 +81,4 @@ Tempo_performer::try_music (Music *event)
 
 ADD_TRANSLATOR (Tempo_performer, "", "",
                "metronome-change-event",
-               "", "", "");
+                "", "");
index bdd0ba83069a6e79f6d22f109ad96b6183ac3f10..72a81264525c74262c686ff8ff2d20a56eb10813 100644 (file)
@@ -127,6 +127,5 @@ ADD_TRANSLATOR (Text_engraver,
                /* descr */ "Create text-scripts",
                /* creats*/ "TextScript",
                /* accepts */ "text-script-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 110acce0a0926a7fb7deab87fc10136cb5034d39..cca154d0dd85625efdceb1d9010fde2221b3a00f 100644 (file)
@@ -145,6 +145,5 @@ ADD_TRANSLATOR (Text_spanner_engraver,
                /* descr */ "Create text spanner from a Music.",
                /* creats*/ "TextSpanner",
                /* accepts */ "text-span-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index d68c10457e0eab6424a99bc72b3aec4c616a4511..e12b100f1ce72adf54e6092c1d058624f3a9f1bc 100644 (file)
@@ -211,6 +211,5 @@ ADD_TRANSLATOR (Tie_engraver,
                /* descr */ "Generate ties between noteheads of equal pitch.",
                /* creats*/ "Tie TieColumn",
                /* accepts */ "tie-event",
-               /* acks  */ "",
                /* reads */ "tieMelismaBusy",
                /* write */ "");
index f47e3ae597914533cc389217095a5a66eca30e07..755b4074aa5b512a9c1b3a356367d5e79e375643 100644 (file)
@@ -114,6 +114,5 @@ ADD_TRANSLATOR (Tie_performer,
                /* descr */ "Generate ties between noteheads of equal pitch.",
                /* creats*/ "",
                /* accepts */ "tie-event",
-               /* acks  */ "",
                /* reads */ "tieMelismaBusy",
                /* write */ "");
index c904595505b5e824856ddbc2e17c6fc6aaad9efb..90af017890b00b7bf636b69c7dda658bc0e3168f 100644 (file)
@@ -74,6 +74,5 @@ ADD_TRANSLATOR (Time_signature_engraver,
                /* descr */ "Create a TimeSignature whenever @code{timeSignatureFraction} changes",
                /* creats*/ "TimeSignature",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 45c74e208e8f6a3ce511912a68b12dee357bd6a9..63b4bf241891fdf13f894d010cabbe61aa5dbc27 100644 (file)
@@ -71,4 +71,4 @@ Time_signature_performer::stop_translation_timestep ()
 
 #include "translator.icc"
 
-ADD_TRANSLATOR (Time_signature_performer, "", "", "", "", "", "");
+ADD_TRANSLATOR (Time_signature_performer, "", "", "", "", "");
index b105d17d6052f35caa37081ac21ae699f6208cd1..5bee235cd67d303f51b8cf82c51895ec6417c0b8 100644 (file)
@@ -148,4 +148,4 @@ ADD_TRANSLATOR (Timing_translator,
 
                ,
 
-               "", "", "", "", "");
+               "",  "", "", "");
index 46e735acbdaa4304cd8d9c12e387f1468d972c23..0c0c4da57312e1928f01c8be52b39dc1ed9f4077 100644 (file)
@@ -192,5 +192,4 @@ ADD_TRANSLATOR(Translator,
               "",
               "",
               "",
-              "",
               "");
index 15e628510a6fac3cb41ae10afda4d73de4d17297..393dfe4ff16c3a9810030cc617bd52b45ce1ec22 100644 (file)
@@ -151,6 +151,5 @@ ADD_TRANSLATOR (Trill_spanner_engraver,
                /* descr */ "Create trill spanner from a Music.",
                /* creats*/ "TrillSpanner",
                /* accepts */ "trill-span-event",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index f0a4844a6e714ff498ef72a2ca7e5c3066f3e13a..12b5db31d8a468df8744f9658211391823669e74 100644 (file)
@@ -135,6 +135,5 @@ ADD_TRANSLATOR (Tuplet_engraver,
                /* descr */ "Catch Time_scaled_music and generate appropriate bracket  ",
                /* creats*/ "TupletBracket",
                /* accepts */ "time-scaled-music",
-               /* acks  */ "",
                /* reads */ "tupletNumberFormatFunction tupletSpannerDuration",
                /* write */ "");
index 11f79a70cb372c0508d3a76442230325a91b8147..cb420405ebed4cc163fd9b0aa269c004983accd0 100644 (file)
@@ -38,7 +38,6 @@ ADD_TRANSLATOR (Skip_event_swallow_translator,
                "",
                "skip-event",
                "",
-               "",
                "");
 
 Rest_swallow_translator::Rest_swallow_translator (){}
@@ -48,8 +47,6 @@ ADD_TRANSLATOR (Rest_swallow_translator,
                "",
                "rest-event",
                "",
-               "",
-
                "");
 
 class Note_swallow_translator : public Translator
@@ -70,6 +67,6 @@ ADD_TRANSLATOR (Note_swallow_translator,
                "",
                "note-event",
                "",
-               "",
+       
                "");
 
index 2804346e2e632f82efa27d434765478ea6c7ddcc..94692d483d4962ff28936e7958344dc6040d7dce 100644 (file)
@@ -596,10 +596,11 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature,
 #endif
 }
 
+ADD_ACKNOWLEDGER(Vaticana_ligature_engraver, rest);
+ADD_ACKNOWLEDGER(Vaticana_ligature_engraver, note_head);
 ADD_TRANSLATOR (Vaticana_ligature_engraver,
                /* descr */ "Handles ligatures by glueing special ligature heads together.",
                /* creats*/ "VaticanaLigature",
                /* accepts */ "ligature-event",
-               /* acks  */ "note-head-interface rest-interface",
                /* reads */ "",
                /* write */ "");
index 2cdd18d9d59db953cae2193eefdd19b6bc5ec97d..8a05d5e27748578e34fc88fcc85c780b5503bce7 100644 (file)
@@ -41,7 +41,6 @@ ADD_TRANSLATOR (Vertical_align_engraver,
                "them vertically.",
                /* creats*/ "VerticalAlignment",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
 
index 63a7be9cd140c9739f3082237562a178993ff542..864f27aa693b55570bdcf56d4e6a6e798566ae21 100644 (file)
@@ -61,6 +61,5 @@ ADD_TRANSLATOR (Vertically_spaced_contexts_engraver,
                /* descr */ "",
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "verticallySpacedContexts",
                /* write */ "verticallySpacedContexts");
index 3d4082821b9decfde55d35b1597e177ec815bdd0..089045005f0129a924bfe5553396e4f83d0b87df 100644 (file)
@@ -241,6 +241,5 @@ ADD_TRANSLATOR (Volta_engraver,
                /* descr */ "Make volta brackets.",
                /* creats*/ "VoltaBracket",
                /* accepts */ "",
-               /* acks  */ "",
                /* reads */ "repeatCommands voltaSpannerDuration stavesFound",
                /* write */ "");
index 9e3705608943720eb7f30bebbfd4bc8e5c629ac2..af1127f261cbe71e6b124441e3787799d60f490b 100644 (file)
@@ -63,9 +63,9 @@ void
 Volta_repeat_iterator::add_repeat_command (SCM what)
 {
   SCM reps = ly_symbol2scm ("repeatCommands");
-  SCM current_reps = get_outlet ()->internal_get_property (reps);
+  SCM current_reps = SCM_EOL;
+  Context *where = get_outlet ()->where_defined (reps, &current_reps);
 
-  Context *where = get_outlet ()->where_defined (reps);
   if (where
       && current_reps == SCM_EOL || scm_is_pair (current_reps))
     {
index 2a209d16cd43d3e3cb0da937c0c0ddefb8cf2c00..faa7491cec50c59f9e5a9a5c658a81a0e2fdc923 100644 (file)
@@ -261,7 +261,7 @@ unset, script and slur ignore each other ")
      (inspect-quants ,number-pair? "If debugging is set,
 set beam quant to this position, and print the respective scores.")
 
-     (allow-outside-line ,boolean? "If set, allow this column to
+     (keep-inside-line ,boolean? "If set, this column cannot have
 things sticking into the margin.")
      (kern ,ly:dimension? "Amount of extra white space to add. For
 bar line, this is the amount of space after a thick line.")
index 1f4f59c89eb5f6c93cfca8db2d6b061a05ee4458..a3f166477a2a128a4cb37c6dfa0261bc4cd03d6f 100644 (file)
@@ -16,6 +16,7 @@
              (parse-protect #t    "continue when finding errors in inline
 scheme are caught in the parser. If off, halt 
 on errors, and print a stack trace.")
+             (profile-property-accesses #f "keep statistics of get_property() calls.")
              (old-relative #f
                            "relative for simultaneous music works
 similar to chord syntax")