swarm-support
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]