discuss-gnustep
[Top][All Lists]
Advanced

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

Re: sync.m


From: David Chisnall
Subject: Re: sync.m
Date: Mon, 1 Mar 2010 12:44:21 +0000

On 1 Mar 2010, at 00:12, Riccardo Mottola wrote:

> As long of course as core itself doesn't require libobjc-2 feature (which I 
> hope will be never, but that's tough to say).

I don't have any plans for core to require anything in libobjc2, per se.  

There is currently one feature in -base that requires the new ABI; 
-forwardingTargetForSelector: on NSObject.  I wrote a hacky implementation that 
will try to make this work with the old ABI (using -forwardInvocation:) but 
it's unreliable.  This is quite a new feature on the Apple side, however.  It 
doesn't give any more expressiveness, just a bit more speed.  I think the other 
runtime hooks in NSObject that allow classes and objects to lazily install 
methods will also only work with libobjc2.

Nothing in -base or -gui uses these (well, NSContentAccessingProxy does, but it 
has fall-back code for when they are not present, so it doesn't /require/ 
them).  If third-party apps do, then that's beyond our control.  Depending on 
them limits you to very recent versions of OS X, but given that people seem to 
be dropping support for 10.4 already that's possibly not a problem for Mac 
developers.

On 1 Mar 2010, at 06:07, Richard Frith-Macdonald wrote:

> Nobody is breaking things gratuitously.  The c99isms slip in to code simply 
> because all modern compilers support them, and don't warn you that older 
> compilers won't.  Most people use them habitually (locality of declaration of 
> variables is particularly good for code readability for instance) and simply 
> won't notice that they have used them.

Additionally, a load of C99 features (e.g. VLAs, which GNUstep has used for 
ages) are implemented as extensions by GCC 2.95.  Without access to it, it's 
difficult to keep track of exactly which subset of C99 will work with any given 
compiler version.  GCC is terrible at documenting when features appeared; they 
expect everyone to use the latest version.

David

-- Sent from my Cray X1





reply via email to

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