discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Darling


From: Luboš Doležel
Subject: Re: Darling
Date: Mon, 05 Aug 2013 10:05:47 +0200
User-agent: Roundcube Webmail/0.5

On Fri, 02 Aug 2013 18:20:35 +0200, Fred Kiefer wrote:
Hi Lubos,

sad to hear that GNustep gui is giving you so much trouble. Could you
please expand a bit on what it is that goes wrong for you? There is one big difference between gui and base that is that base already supports
the hiding of the instance variables. Would it help you to have that
implemented in gui as well?

Hi,

if you mean adding an extra level of indirection like this:

@interface SomeClass {
   void* allMyIvarsAreHere;
}

then this is definitely needed for 32-bit OS X apps. 64-bit ones are OK thanks to the non-fragile ABI. I've been mostly dealing with 64-bit apps so far, but I'll surely speak up when this becomes a problem. I think NSView will be the first class that won't "fit".

There are other reasons why base should be easier, for example most base
classes are actually class clusters and user code has no expectations
about the actual object layout. Subclassing base classes is far less
common than sunclassing NSView. We cannot do anything about these and
some other differences, but I am willing to support you with things that
need changing in gui. But be aware that binary compatibility to Apple
has never been a goal for GNUstep.

The ABI compatibility is actually not such a big deal and GNUstep is doing surprisingly well in this regard, more so after the NSInteger/NSUInteger size correction.

The problem is the NIB loader (the NSClassSwapper problem and other random issues), missing support for short language names ("en.lproj"), missing classes (would you accept dummy, empty classes for autolayout support?) and other crashes I haven't had time to debug properly. Basically, it's all things that you would encounter even when using gnustep-gui for native apps.

--
Luboš Doležel




reply via email to

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