discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Discuss-gnustep Digest, Vol 193, Issue 12


From: Tom Sheffler
Subject: Re: Discuss-gnustep Digest, Vol 193, Issue 12
Date: Mon, 31 Dec 2018 10:02:48 -0800

Thanks for all your hard work on this!

I’m a big fan of modern ObjC when combined with Clang, ARC and Blocks.  I’ve 
been using it with libdispatch for concurrency and everything works beautifully 
on Ubuntu and Debian.  

Happy New Year!  And thanks again.


> On Dec 31, 2018, at 9:00 AM, discuss-gnustep-request@gnu.org wrote:
> 
> Send Discuss-gnustep mailing list submissions to
>       discuss-gnustep@gnu.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>       https://lists.gnu.org/mailman/listinfo/discuss-gnustep
> or, via email, send a message with subject or body 'help' to
>       discuss-gnustep-request@gnu.org
> 
> You can reach the person managing the list at
>       discuss-gnustep-owner@gnu.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Discuss-gnustep digest..."
> 
> 
> Today's Topics:
> 
>   1. GNUstep Objective-C v2 ABI update (David Chisnall)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Mon, 31 Dec 2018 11:34:05 +0000
> From: David Chisnall <gnustep@theravensnest.org>
> To: DISCUSS GNUstep <discuss-gnustep@gnu.org>
> Subject: GNUstep Objective-C v2 ABI update
> Message-ID: <408c8176-ec8c-060b-90a8-3874c25d512f@theravensnest.org>
> Content-Type: text/plain; charset=utf-8; format=flowed
> 
> Hello the list,
> 
> It seems that Christmas is about the only time I get to work on 
> Objective-C things these days.  I started the new ABI project two 
> Christmases ago and this Christmas I've managed to update all of the 
> FreeBSD GNUstep ports to use it.  As far as I can tell, everything is 
> working (I've tried running a few GUI apps and everything seemed happy).
> 
> A few highlights of the new ABI:
> 
> - A new constant string representation, including space to store a hash 
> and better unicode support.  This should improve performance for 
> anything that uses constant strings as dictionary keys.  The compiler 
> will now emit tiny strings (up to 8 ASCII characters) embedded in the 
> pointer.
> 
> - Better introspection metadata.  We now have full introspection 
> metadata for properties (including class properties and properties 
> declared in categories) and the extended type encodings that 
> JavaScriptCore (WebKit) needs for the JavaScript bridge.
> 
> - Significantly reduced redundancy for selectors and protocols.  The 
> linker can now deduplicate these within a library, so we get (for 
> example) one copy of the +alloc selector per library, not one per 
> compilation unit.  This means that we have significantly smaller (5-10%) 
> binary sizes, even with the richer reflection metadata.
> 
> - Protocols and classes are referenced via an indirection layer, so a 
> future version of the ABI can be backwards compatible.
> 
> - @private and @package are now enforced by the linker.  You cannot 
> refer to a @package or @private ivar from a different library.  This 
> means that, aside from reflection, @package and @private ivars are not 
> part of the public ABI and can be removed without breaking any code that 
> does not use reflection.
> 
> The Windows version still has a few rough corners to iron out.  On 
> Windows, a DLL cannot contain a global initialised to be a pointer to a 
> global in another library.  This is normally not a bad thing, because it 
> enforces modularity, but it does mean that Objective-C classes, for 
> example, can't be statically initialised to point to their superclasses 
> (though we can emit code that does this).  Dustin has some patches for 
> clang that should fix these issues.
> 
> I've pushed patches to -base to support the new string representation 
> and to Gorm to make it use reflection instead of directly accessing 
> ivars in -gui classes.  I also have a patch to Pantomime that prevents 
> it from doing the same.
> 
> David
> 
> 
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
> 
> 
> ------------------------------
> 
> End of Discuss-gnustep Digest, Vol 193, Issue 12
> ************************************************




reply via email to

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