From 847d52cbfbdd2b1b891536a811241deb08567c67 Mon Sep 17 00:00:00 2001
From: fred <fred>
Date: Wed, 27 Mar 2002 02:06:00 +0000
Subject: [PATCH] lilypond-1.5.35

---
 input/regression/beam-over-barline.ly      |  6 ++++
 input/regression/beaming-ternary-metrum.ly | 10 +++++++
 lily/engraver-group-engraver.cc            | 32 ++++++++++++++++++++--
 3 files changed, 46 insertions(+), 2 deletions(-)
 create mode 100644 input/regression/beam-over-barline.ly
 create mode 100644 input/regression/beaming-ternary-metrum.ly

diff --git a/input/regression/beam-over-barline.ly b/input/regression/beam-over-barline.ly
new file mode 100644
index 0000000000..6f57cff901
--- /dev/null
+++ b/input/regression/beam-over-barline.ly
@@ -0,0 +1,6 @@
+\header {
+texidoc = "explicit beams may cross barlines. "
+}
+\score {
+\notes \context Voice { c2. [c8 c8 c8 c8] }
+}
diff --git a/input/regression/beaming-ternary-metrum.ly b/input/regression/beaming-ternary-metrum.ly
new file mode 100644
index 0000000000..a0fcb46bd2
--- /dev/null
+++ b/input/regression/beaming-ternary-metrum.ly
@@ -0,0 +1,10 @@
+\header {
+texidoc = "automatic beaming also works in ternary time sigs."
+}
+
+\score {
+   \notes \context Staff {
+\time 6/8
+[c8. c16 c16 c16] 
+}
+}
diff --git a/lily/engraver-group-engraver.cc b/lily/engraver-group-engraver.cc
index b30a854d16..03b268ea76 100644
--- a/lily/engraver-group-engraver.cc
+++ b/lily/engraver-group-engraver.cc
@@ -34,8 +34,36 @@ Engraver_group_engraver::create_grobs_in_simple_children ()
 }
 
 /*
-  TODO: use this mechanism for the current Engraver_group_engraver as well.
-  
+
+  '''Done: eliminating useless broadcast/acknowledge'''
+
+
+One cause for translation slowness: grob broadcasted/acknowledges
+(b/a): every grob is b/a'd to all peer-engravers and all
+parent-engravers. This means that lots of (often) useless b/a is done
+for large scores (the top-level engravers gets to know every detail of
+every voice, thread, etc. Measurements indicate this is 10% of the
+interpretation time:
+
+standchen
+
+old: (pre 1.5.13)  10.28
+new: 8.73
+speedup: 15 %
+
+Coriolan:
+
+new: 197.59
+old: 219.12 seconds
+speedup: 10%
+
+
+The cost of this B/A is # of useless engravers * cost of one ack,
+which is rather low, since cost of one ack is only an interface check.
+The cost of precomputing engraver lists has two elts: computing the
+list itself, GC for the structure, looking up the list during the
+acks.
+
  */
 SCM find_acknowledge_engravers (SCM gravlist, SCM meta);
 void
-- 
2.39.5