[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [swarm-hackers] Compiling CVS Swarm in ia64 system

From: Marcus G. Daniels
Subject: Re: [swarm-hackers] Compiling CVS Swarm in ia64 system
Date: Sat, 14 Jun 2008 10:22:05 -0600
User-agent: Thunderbird (Windows/20080421)

Hi Robson,
When the make runs emacs in order to modify some files (since I don't
need GUI and I've disabled with the '--disable-gui' option in
configure) the compilation gets frozen and a message appears:
"Activity failed"
Emacs isn't really `editing' files, it is reading a set of interface specifications and writing C stubs and Java declarations for those stubs. It's being used like Perl or awk or similar, except that Emacs is convenient for traversing whole Objective C expressions in a random-access way (as opposed to being line oriented). The purpose of the stubs is to provide Java Native Interface wrapper to Swarm functions so that Java can call them. To write the stubs themselves, an optimization is attempted so that message dispatch won't be needed. It's this process that sometimes fails, but that failure is expected in cases such as when a -createEnd sets the available methods, or else switches the underlying object.

That being said, I think the main problem you will encounter with a port of the Java stuff to IA64 is some code called mframe. That code reads a stack frame and some Objective C metadata in the runtime and determines what parameter values the caller (Swarm) had made. It needs to do this when, for example Swarm's scheduler sends a message to an object in the `classic' Objective C style, but in fact the target object will be a Java object. It needs to take apart the Objective C call and re-issue it as a Java call. This is done through Objective C call forwarding, and it uses mframe to this. mframe is port specific and I don't think its been tested on IA64.

With some work Scott Christley is doing, we expect that this mframe code will be replaced using standard APIs from MacOS X and GNUstep, but this isn't yet done.


reply via email to

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