[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Master fails to compile
From: |
Keith OHara |
Subject: |
Re: Master fails to compile |
Date: |
Fri, 29 May 2015 06:13:32 -0700 |
User-agent: |
Opera Mail/12.16 (Win32) |
On Thu, 28 May 2015 01:36:54 -0700, David Kastrup <address@hidden> wrote:
"Keith OHara" <address@hidden> writes:
I had an old RedHat installation with gcc updated as far as I could to
4.6. In the next few weeks I'll find some reasonably-modern linux.
Well, using no longer supported systems with network access (and it's
pretty hard to work on current LilyPond source without network access)
is a security nightmare. Old GNU/Linux installations are actually
pretty popular as mail hubs for malware distribution.
Updating most software, was no problem, even synchronizing to the release of
the whole distribution. But gcc and glibc tend to lag behind. The latest
Centos that works on a 32-bit i386 is CentOS 6.6 (supported through 2020) with
gcc 4.4.7. I'm looking into switching to Debian.
The tricky bit about the function template in Smob_base template <SCM
(Super::*pmf)(void)> static SCM smob_trampoline (SCM self) is the way
it creates functions in Smob_base that call member functions of the
derived classes like Listener. Following what happens requires a lot
of flipping back and forth between header files.
Smob_base may not be the best place. I remember wanting to put it in
Dispatcher itself at first and I got some private/protected thing in the
way. But it might make more sense to pierce the encapsulation with some
sort of "friend" declaration (if unavoidable) rather than move the whole
functionality there.
If you can define the trampoline as a static member of the class whose member
function is being called, that will be less surprising. It might be a bit
ugly to have the boiler-plate code in each derived class that uses the
mechanism, but the boilerplate is recognizable if we can see it all at once.
LY_DECLARE_SMOB_APPLY_INIT(smob_apply_trampoline, 1, 0, 0)
static SCM smob_apply_trampoline(SCM self, SCM arg) {
return unsmob(self)->listen(arg);
}
SCM listen(SCM ev) {
...}
- Re: Master fails to compile, (continued)
- Re: Master fails to compile, David Kastrup, 2015/05/22
- Re: Master fails to compile, Carl Sorensen, 2015/05/22
- Re: Master fails to compile, Phil Holmes, 2015/05/23
- Re: Master fails to compile, Keith OHara, 2015/05/26
- Re: Master fails to compile, David Kastrup, 2015/05/26
- Re: Master fails to compile, Keith OHara, 2015/05/28
- Re: Master fails to compile, David Kastrup, 2015/05/28
- Re: Master fails to compile,
Keith OHara <=
- Re: Master fails to compile, David Kastrup, 2015/05/29