12 Commits (9206f48bce61478c6fb845a0e30d7dd68930175e)

Author SHA1 Message Date
David Chisnall c5fbeb7287 Revert "Provide compat classes only in compat builds."
This reverts commit 1970ba6d7b.

Some code paths are not resilient against these classes not existing.
7 years ago
David Chisnall 1970ba6d7b Provide compat classes only in compat builds.
Don't provide the two legacy protocol classes if we're building without
legacy compatibility.
7 years ago
David Chisnall 49bf9378fb Force linking the protocol classes.
We use the existence of the `Protocol` class in a set of loaded objects
to determine whether we are mixing ABIs in a safe way (i.e. only mixing
a new ABI runtime with old ABI everything else).  Unfortunately, in
static linking, the Protocol class was not being linked because it is
never directly referenced, which made this check fail.

Fixes #85
7 years ago
David Chisnall 67cf43c5a2 Add support for class properties in protocols. 8 years ago
David Chisnall 65b34a196f Add support for improved property structure.
As a side effect, we need to upgrade properties in class and protocols
(but not categories because we didn't have class properties in earlier
ABIs).
8 years ago
David Chisnall d44bf5655b Ensure that objects that support ARC will use ARC, even if they are
created without sending a message to the class.

Also ensure that protocols are always valid objects so that ARC doesn't
become confused.
10 years ago
theraven 3754c9fdbe Accidentally deleted class declaration for Protocol2. Add it back. 15 years ago
theraven 34f7baf8d7 Added a fast path for ARC. Now, if a class implements ARC-compatible retain / release / autorelease methods, we don't call them at all. Instead, we inline them in the ARC accessors. This avoids all of the overhead of the message send (lookup and call) and should make ARC quite a bit faster than manual reference counting. 15 years ago
theraven 5b77c3e694 Add +class and -self to Protocol. PyObjC breaks if these don't exist. 15 years ago
theraven a83428b883 Move toydispatch into libobjc2.
Some build system tidies.

Add -retain / release to Protocol.

Initial work on clang-specific makefile.
15 years ago
theraven 65ec110a61 Make sure both protocol classes are available before resolving protocols. 16 years ago
theraven 77ed3977bc Added missing file. 16 years ago