[Top][All Lists]
[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/