22 Commits (4891eb9d5f1201ed833ec4d3dbf7fcac0f6e3cc6)

Author SHA1 Message Date
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 45d0b8e4c9 Add support for registering aliases.
Also add a test.
8 years ago
David Chisnall 6c1fc86f01 Clean up a condition.
Skip adding the null capability.
8 years ago
David Chisnall 12a0d97849 Add protocol references in the loader.
These are currently ignored, because they are only important when the
runtime has upgraded the protocol.  The runtime will upgrade legacy
protocols, but they are not referenced by this indirection layer.
8 years ago
David Chisnall 9718ce247d Initial start of documenting the ABI. 8 years ago
David Chisnall f91fb2e745 Checkpoint more work on new ABI.
We're now using a new class and category structure and auto-upgrading the old ones.  Other changes:

- The Ivar structure now points to the ivar offset variable, so we can more easily find it.
- Categories can now add properties.
8 years ago
David Chisnall f55c158be8 First pass at new Objective-C ABI. 10 years ago
theraven 8d954d1cb8 When linking libdispatch, register to create / destroy autorelease pools at the
correct time.  This fixes the intermittent problems when using libdispatch from
LanguageKit, among other things.
13 years ago
theraven 9e93a413d1 Print some memory usage statistics on exit if LIBOBJC_MEMORY_PROFILE is
defined.
13 years ago
theraven 43ee8b9819 Add initial support for imp_implementationWithBlock() and friends. Currently
only works on x86 and x86-64 and doesn't work with sret functions.
14 years ago
theraven bc87ed22e1 Implemented support for __weak with ARC.
ARC functions are all now exposed in a header, but not yet documented.  See the ARC ABI spec for now:

http://clang.llvm.org/docs/AutomaticReferenceCounting.html#runtime
15 years ago
theraven 4a78269815 Removed debugging line accidentally committed. 15 years ago
theraven 4ffb19230f Make sure that the statics used to store internal tables are marked as roots. 15 years ago
theraven fe5d1b892a Tweak GC check, make sure GC_init() is called even when ObjC code isn't using GC (stuff internal to the runtime may be) 15 years ago
theraven ad16172625 First pass at implementing Apple-compatible GC using Boehm. Still needs some tidying, but the following work:
- __strong pointers, preventing objects from being freed

_ __weak pointers are automatically freed when the last remaining __strong pointer goes away

- objc_gc_{retain,release}_np() functions, which can be used to implement CFRetain() and CFRelease() (adds an reference count - the object will not be collected until after its last retain is gone.
15 years ago
theraven e198597bd3 Added support for associative references. Modified sync code to use this. 15 years ago
theraven d51500184c More cleanups. Stop using __ identifiers for internal stuff now that it's properly marked private and we don't have to worry about conflicts. 15 years ago
theraven 1ecd07d637 Don't use __attribute__((constructor)) for creating things that are called by
other constructors.
15 years ago
theraven ca2c7d1d9d Stop treating NSObject as magic and do what OS X does with regard to root objects and metaclasses. 15 years ago
qmathe 10cb4f9b5c Corrected doc in few places to refer to @synchronized() and not @synchronize() 15 years ago
theraven a75064866a More tweaks to +load. Now defers +load a little bit more. 16 years ago
theraven bb8cafaa15 Finished rewriting the loader. It's now cleanly separated into logically-separate components, so there's a chance it might actually be maintainable... 16 years ago