swarm-support
[Top][All Lists]
Advanced

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

GNUstep and MacOS X Port Effort


From: W . Northcott
Subject: GNUstep and MacOS X Port Effort
Date: Thu, 3 Oct 2002 21:49:37 +1000

As I result of a general lack of interest some weeks back, I got to be 
coordinator for the MacOS X port.

There seeems to have been much fairly enthusiastic discussion amongst 
various programmers regarding the merits of rewriting Swarm on the GNUstep 
foundation.

I considered it might be appropriate at this point to try and summarise 
the GNUstep port idea together with its implications for a MacOS X port 
and some indication of a desired outcome and the way it might be achieved. 
 Others could then express their thoughts and hopefully we could reduce 
the project to a number of tasks that I might put up on the Savannah site 
in substitution for the existing MacOS X outline.

I see this as attempt to focus people's thoughts as an aid to action 
rather than some effort to put forward my view of the issues.

1.  Motivation
As Marcus has pointed out, a few years back it looked like Objective-C was 
a dead language.  As a result various decisions were made to modify low 
level components of the language and roll these into Swarm.  This appeared 
to be the best course of action at the time.
The situation has now changed.  Apple is shipping millions of Objective-C 
based computers and interest in GNUstep has revived.  Apple are spending 
big development dollars on Objective-C and most of their work which is 
relevant to Swarm is opensource.
It no longer makes sense for Swarm to roll its own Objective-C runtime, 
doing so makes Swarm very hard to install on MacOS X or GNU step and fails 
to take advantage of development work on the language and Foundation class 
libraries which has been carried out by others.
For the avoidance of doubt, I use the word 'runtime' to refer to the C 
function library which implements the guts of ObjC message passing etc and 
the ObjC program which defines the root object - NSObject on MacOS X and 
GNUstep.  It is my impression that only this program should make C 
function calls into the runtime library.

2.  Objectives (Wish list) in no particular order
a. Swarm should be simple to install on any 'standard' GNUstep or MacOS X 
system.  Other than GNUstep the only other non-standard item should be 
hdf5 if it is required.
b.  To facilitate the above, Swarm should not make any C calls into the 
'runtime'.
c.  The phasic object system should be preserved and possiby elaborated.
d.  The GNUstep/Cocoa classes should provide the GUI eliminating 
dependence on Tcl/Tk/BLT
e.  As many basic classes as possible should come from the standard 
libraries, to maximise the benefit from work done by others.
f.  Wherever possible existing APIs should be supported even if deprecated 
for new modelling.

3.  Observations
a.  Marcus has observed that the purpose of the mframe stuff in the 
runtime is to support the link between Java and ObjC.  GNUstep and Cocoa 
already contain such a link.  Indeed Apple has put a lot of development 
effort into this.  We should use this and scrap mframe which is a nasty 
machine specific klugeTM.
b.  Being totally Gatesophobic, I have no idea how this plays on Windoze. 
Is there a workable Cygwin/GNUstep installation available?
c.  The above scenario is based on a possibly unfounded belief that 
GNUstep and MacOS X/Cocoa have a large degree of source code compatability 
at the level we would require for Swarm.  Any comments?
d.  Method functions are incompatable with the above objectives as well as 
being abhorrent to any OO believer.  They should be given a decent burial.
e.  On the MacOS X front, none of the above removes the need to get a 
basic Swarm on XFree86 running as a learning exercise.
f.  The root object of Swarm is Object which maybe can be built by 
extending NSObject, which makes the above at least faintly plausible.

Please comment/abuse/destroy.

Bill Northcott



                  ==================================
   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]