[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: compiling lilypond fails
From: |
David Kastrup |
Subject: |
Re: compiling lilypond fails |
Date: |
Fri, 24 Jun 2016 15:13:06 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
Knut Petersen <address@hidden> writes:
> os / compiler
> ===========
>
> os version: linux, openSUSE 13.2 (Harlequin) (x86_64)
> gcc --version: (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
Pretty old as well.
> git bisect log
> =================
> git bisect start
> # good: [f4e12f1b0cb5dfb32f193f87e7ca28c406b87771] Issue 2232: fix MIDI
> output of abutting (de)crescendi
> git bisect good f4e12f1b0cb5dfb32f193f87e7ca28c406b87771
> # bad: [a975d6f176453d35367e3fa4808c7061d326a9e7] Issue 4898: Set
> rhythmic-location early in paper-column-engraver
> git bisect bad a975d6f176453d35367e3fa4808c7061d326a9e7
> # good: [f9b2cfebb944a0ea7d7c35a583233c51039486aa] PO: update template.
> git bisect good f9b2cfebb944a0ea7d7c35a583233c51039486aa
> # bad: [f7013d65b51f1372dc31973b78bbe04f505ea569] Issue 4899/1: Let
> method_finder also find listeners
> git bisect bad f7013d65b51f1372dc31973b78bbe04f505ea569
> # good: [f869d8f6ebe878618588036e17971166721de9e0] Release: bump Welcome
> versions.
> git bisect good f869d8f6ebe878618588036e17971166721de9e0
> # good: [5dbaaca80b06fda4b0a3b9cdc67760a2735dbee1] Merge remote branch
> 'origin/release/unstable' into HEAD
> git bisect good 5dbaaca80b06fda4b0a3b9cdc67760a2735dbee1
> # good: [ec6b4cc313dd6a1aa4070080076da54b7f1c0c71] Release: bump VERSION.
> git bisect good ec6b4cc313dd6a1aa4070080076da54b7f1c0c71
> # first bad commit: [f7013d65b51f1372dc31973b78bbe04f505ea569] Issue 4899/1:
> Let method_finder also find listeners
Ok, this is sort of a nuisance because I still have pending stuff in
that exact area (starting with issue 4903) and the same engravers.
At any rate, this implies that TRANSLATOR_INHERIT fails doing its job
when it has to inherit overloaded template functions with a single
"using" instruction. I propose the following patch (to current
master). Does it change something for you?
>From fa45edd4db3d49817425fa7833559f20697c3c74 Mon Sep 17 00:00:00 2001
From: David Kastrup <address@hidden>
Date: Fri, 24 Jun 2016 15:10:44 +0200
Subject: [PATCH] Split overloaded `method_finder' in two
Some older g++ compilers seem unhappy about the mixture of `using'
instructions and overloading in connection with templates, so the
overloaded way of calling `method_finder' is split into `method_finder'
and `listen_finder'.
---
lily/include/translator.hh | 8 +++++++-
lily/include/translator.icc | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lily/include/translator.hh b/lily/include/translator.hh
index cd05091..3a13f8a 100644
--- a/lily/include/translator.hh
+++ b/lily/include/translator.hh
@@ -39,6 +39,7 @@
#define TRANSLATOR_INHERIT(BASE) \
using BASE::method_finder; \
+ using BASE::listen_finder; \
using BASE::ack_finder;
#define DECLARE_TRANSLATOR_CALLBACKS(NAME) \
@@ -48,7 +49,7 @@
return Callback0_wrapper::make_smob<NAME, mf> (); \
} \
template <void (NAME::*mf)(Stream_event *)> \
- static SCM method_finder () \
+ static SCM listen_finder () \
{ \
return Callback_wrapper::make_smob<trampoline<NAME, mf> > (); \
} \
@@ -165,6 +166,11 @@ protected: // should be private.
static SCM
method_finder () { return SCM_UNDEFINED; }
+ // Overriden elsewhere but needed for TRANSLATOR_INHERIT
+ template <void (Translator::*)(Stream_event *)>
+ static SCM
+ listen_finder () { return SCM_UNDEFINED; }
+
// Overriden in Engraver. Don't instantiate.
template <class T, void (T::*)(Grob_info)>
static SCM ack_trampoline (SCM, SCM, SCM);
diff --git a/lily/include/translator.icc b/lily/include/translator.icc
index 3d038b6..cd9fa58 100644
--- a/lily/include/translator.icc
+++ b/lily/include/translator.icc
@@ -112,7 +112,7 @@ void add_acknowledger (SCM ptr,
#define ADD_LISTENER(cl, m) \
listener_list_ = scm_acons \
(event_class_symbol (#m), \
- method_finder<&cl::listen_ ## m> (), \
+ listen_finder<&cl::listen_ ## m> (), \
listener_list_)
#endif /* TRANSLATOR_ICC */
--
2.7.4
--
David Kastrup
- compiling lilypond fails, Marc Hohl, 2016/06/24
- Re: compiling lilypond fails, Thomas Morley, 2016/06/24
- Re: compiling lilypond fails, Phil Holmes, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Re: compiling lilypond fails, Knut Petersen, 2016/06/24
- Re: compiling lilypond fails,
David Kastrup <=
- Re: compiling lilypond fails, Knut Petersen, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Re: compiling lilypond fails, Knut Petersen, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Re: compiling lilypond fails, Knut Petersen, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Message not available
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/24
- Re: compiling lilypond fails, David Kastrup, 2016/06/25
- Re: compiling lilypond fails, David Kastrup, 2016/06/25