gnustep-dev
[Top][All Lists]
Advanced

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

Re: GDL2 on Mac OS X, stage two


From: Markus Hitter
Subject: Re: GDL2 on Mac OS X, stage two
Date: Sun, 29 Dec 2002 02:14:33 +0100


Am Samstag, 28.12.02 um 22:23 Uhr schrieb Mirko Viviani:

Markus Hitter <address@hidden> ha scritto:

- Disabled all source files for all frameworks except the PostgreSQL
Adaptor. Then, added subsequently source files as needed to fill in the
linking failures.

Why you did this ?

Mostly to sort things a little and to get rid of issues not needed at the adaptor level. A strategy I often use when learning new things.

I know there is some header incompatibilities with the
two foundations and the compilers (at least with 2.95) but resolved these
problems it should be quite ok.

One is the #include/#import issue. You can't #include Apple headers. So I changed to #import <Foundation/Foundation.h> in all headers. Compatible and faster because of precompiled headers here.

All inclusions of EO* headers are sparse (no unneeded inclusions) and got #include to satisfy the friends of this keyword ;-)

Then, I had to insert the compatibility headers, surrounded by "#ifdef __APPLE__"

A big bunch of other issues could be solved with tweaking these compatibility headers. They are at the top level of the archive I've uploaded. Mostly, they switch things off, however ...


- Commented out some of the debugging code since it wouldn't even
compile.

Precisely, which one ?

A diff would tell you exactly ...

One thing I remember is:
... in the header ...
#define NSDebugMLLog(level, format, args...) {}
... in source ...
   NSDebugMLLog(@"gsdb", @"EOAdaptorLockOperator");

This doesn't work on OS X. Obviously, you can't replace "args..." with zero arguments. It's gcc 3.1 here.


Almost all stuff using ObjC runtime directly seems to be more or less incompatible. There's a file in GNUstep base which tries to deal with this issue but in detail, there will be some work. The file is in the uploaded project, too.


- As nobody could confirm the actual need of Garbage Collection (sample code anybody?), I disabled all the GC stuff after half-fixing it. To be ported in the future ... From what I've seen in the source, there is no
functional difference to the Autorelease stuff. Maybe I'm blind, maybe
I really need an example to understand it.

It does not work in the same way but to take advantage of it your EOs should
inherith from GCObject.

You have a few lines of code to demonstrate?

For convenience, there are "#ifdef PSEUDO_GC" 's. You can switch the stuff on or off by a flag. All code outside the GC* files is left almost unchanged.


P.S.: The future? Get more in sync with the original sources. Any
suggestions on how to do that?

Hmmm... we could add double makefiles (gstep/osx) for the various frameworks,

No need for Makefiles on OS X with ProjectBuilder. All you need is the .pbproj directory. And a nice place for the compatibility files.

For building without ProjectBuilder you can use GNUstep make with the same Makefiles, then.

remove the circular dependencies from EOAccess/EOControl...

Found only one method against it for now ...

 then send patches!!!!

I'll try to sort the stuff a little bit.


Ciao,
Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. Markus Hitter
http://www.jump-ing.de/






reply via email to

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