[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gcc3 issues/questions
From: |
Paul E Johnson |
Subject: |
gcc3 issues/questions |
Date: |
Wed, 28 Aug 2002 14:17:56 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020606 |
I'm not a programmer, I keep saying, so you should try to read what I
mean rather than what I say.
Until RedHat supplies gcc-3.2 in some form or other, I am not going to
assume it is safe to swim in those waters. In the past, I take their
source and patches and then start revising from there. I've been into
their beta tree to grab their 3.1 sources and patches
ftp://people.redhat.com/jakub/gcc3/3.1-5/
and I've got that and I'm trying to do the upgrades necesary on my
system to build that. The RedHat guy who puts up that stuff is one of
the gcc programmers at Cygnus/RedHat, so I trust his judgment pretty
well to tell me when 3.2 is safe.
Until then, let me explain the story as fully as I understand, since we
seem to have more and more people wanting to build Swarm from scratch.
I've been digging in my mail archives to understand the different tweaks
we were doing to gcc to make it work with swarm.
First, there is the patch for gcc-2.95 through 3.04 that makes the big
ugly compiler warnings go away. That is the one referred to here:
http://lark.cc.ku.edu/~pauljohn/SwarmFaq/SwarmOnlineFaq.html#2.4
My understanding all along is that this was a purely cosmetic change.
It makes the warnings go away. Models still run, even if you ignore it.
I filed a bug report with the gcc maintainer about it and about a month
and a half ago they emailed me saying they had attended to the problem.
We'll see.
Second, there is a patch to accelerate messaging in objective C. I'm
just copying the idea/words Marcus gave me:
If you look in the Swarm source, you find that sometimes there is code
that looks like:
_i_Foo_bar (foo, M(goo));
instead of:
[foo goo];
There are CPP flags that lead to one or the other formulation. The first
one is a "method function" because it is a C function representation of
the Objective C call. For often-called methods, this causes a speedup.
This compiles "method lookup" at runtime, saving some percentage when a
message is used.
Using that speedup requires a change in gcc, like so:
http://lark.cc.ku.edu/~pauljohn/Swarm/Marcus_gcc301_MethodFunction.patch
This patch still applies to gcc-3.1, I've just tested it.
Since the Swarm development team had applied that patch and were using
it, then we changed the file in the swarm source etc/interface.el by
putting in the line
(load-dispatch-hash-table protocol phase ht)
in there. IF you don't want to patch gcc for method functions, then you
should reverse the effect of that patch, which I think means undo this:
http://lark.cc.ku.edu/~pauljohn/Swarm/Marcus-interface.patch
So, as I try to compile gcc-3.1 (and eventually 3.2) my plan is to see
if I can patch in support for method functions and ignore the problem
with big ugly gcc warnings.
--
Paul E. Johnson email: address@hidden
Dept. of Political Science http://lark.cc.ku.edu/~pauljohn
1541 Lilac Lane, Rm 504
University of Kansas Office: (785) 864-9086
Lawrence, Kansas 66044-3177 FAX: (785) 864-5700
==================================
Swarm-Support is for discussion of the technical details of the day
to day usage of Swarm. For list administration needs (esp.
[un]subscribing), please send a message to <address@hidden>
with "help" in the body of the message.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gcc3 issues/questions,
Paul E Johnson <=