discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Ubuntu and Debian packages / 2013-07-07


From: David Chisnall
Subject: Re: Ubuntu and Debian packages / 2013-07-07
Date: Mon, 8 Jul 2013 11:34:04 +0100

On 8 Jul 2013, at 11:07, Philippe Roussel <p.o.roussel@free.fr> wrote:

>> Does this package support Obj-C 2 features like properties and blocks?
> 
> Packages are compiled with gcc and gcc's libobjc so objective-c 2
> support is limited

Off the top of my head, it will lack support for:

- Blocks (requires libobjc integration for memory management)

- Blocks-as-methods (requires some per-target assembly for the trampolines.  
Works on MIPS n64, AArch32, x86-32 and x86-64)

- Non-fragile instance variables (so modifying a class doesn't require 
recompiling all subclasses)

- Fast proxies (-forwardingTargetForSelector: is a fast path)

- ARC (which comes along with faster retain / release / autorelease, as well as 
the compiler inserting them for you)

- Fast message sends (objc_msgSend() works on the four architectures listed 
above)

- Apple-compatible +initialize behaviour (+initialize is a per-class lock)

- Objective-C++ exception interoperability (various combinations of Objective-C 
and C++ exceptions will cause stack corruption or crashing)

- Associated references

- Accelerated Objective-C++ properties (various helper functions are needed to 
provide fast copies for C++ objects in ObjC ivars)

- Type checking on message sends (so type mismatches cause an error instead of 
stack corruption)

- Small objects (on 32-bit platforms, integers, on 64-bit platforms, integers, 
floats and small strings, accounting for around 5-20% of total object 
allocations in common applications are stored in a pointer)

- Libdispatch support (objects autoreleased in libdispatch blocks will be 
correctly deallocated)



Oh, and packages built this way won't be compatible with LanguageKit or some of 
the other Étoilé frameworks.

David

-- Sent from my PDP-11




reply via email to

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