Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective-C 2.0 ABI specification

Does documentation for the Objective-C 2.0 ABI exist somewhere on the Internet? The release notes for objc4-493.9 say:

Forthcoming documentation will describe the ABI for the use of compilers and developer tools only.

Has it since been released? The closest such reference is Apple's Objective-C runtime reference, but this only describes the public-facing API rather than the implementation details. In fact, it even mentions the ABI in passing:

In addition, the new Objective-C ABI (not described here) [...]

Unfortunately the new ABI is not hyperlinked in the aforementioned text. :-) Is my only option to grok the source code for the objc4 runtime and Clang's CGObjCNonFragileABIMac code-generation projects?

like image 706
Sedate Alien Avatar asked Dec 11 '11 02:12

Sedate Alien


People also ask

Is Objective-C still supported by Apple?

Community & supportAlthough Objective-C is still supported by Apple, it has never been an open-source language.

Is Objective-C obsolete?

Programming in Objective-C will not become obsolete any time soon because, thanks to its 20 years of existence, it has a large code base, a number of apps maintained, and third-party framework with Objective-C at its core. These solutions and libraries are unlikely to be rebuilt from scratch with a new language.

What is Objective-C run time?

The Objective-C runtime is a runtime library that provides support for the dynamic properties of the Objective-C language, and as such is linked to by all Objective-C apps. Objective-C runtime library support functions are implemented in the shared library found at /usr/lib/libobjc.

Does swift use the Objective-C runtime?

Even when written without a single line of Objective-C code, every Swift app executes inside the Objective-C runtime, opening up a world of dynamic dispatch and associated runtime manipulation.


1 Answers

Nope. Analysis of the clang and runtime source are your only options, aside from perhaps emailing the clang and Apple obj-c lists and seeing if anyone wants to respond. I know several of the people responsible for the GNU runtime subscribe to the clang list, so that may be a start.

like image 173
Jon Shier Avatar answered Oct 24 '22 02:10

Jon Shier