782 Commits (7e312ef6807fe222427b04423d0780c23fb5827a)
 

Author SHA1 Message Date
theraven 5e60899d8e Allow tweaking GC info dump on exit from an environment variable. 15 years ago
theraven c6fc399a73 Enable GC support by default. You can still turn it off with boehm_gc=no. 15 years ago
theraven 3508ab6ccf Fixed ABI compatibility test. 15 years ago
theraven 306e10edde Tidy up some of the left-over debugging code for GC mode. 15 years ago
theraven e05c9c2ff5 More GC fixes 15 years ago
theraven 33b7ecb2f8 Don't call -finalize if it doesn't exist. 15 years ago
theraven fcc47bc7ce Fix building without GC support. Still need to make sure that some of the GC functions always work, since they are expected to be no-ops in non-GC mode. 15 years ago
theraven 01237af0fc Add GC-aware property accessors (in GC mode, we don't need all of the atomic juggling, because the GC looks after that stuff for us). 15 years ago
theraven ae4eea1597 Some bug fixes for GC mode. 15 years ago
theraven 22c20eb930 Removed spurious debugging line. Removed left-over check that stopped GC_Optional modules from enabling the GC. 15 years ago
theraven 898707bf94 Added function for getting reference count. 15 years ago
theraven 368bf3bd1d Add reallocate function. 15 years ago
theraven 88c075893f Call ObjC++ destructors when finalising an object.
Add public APIs required to implement [NSGarbageCollector -enable] and [NSGarbageCollector -disable].
15 years ago
theraven 444688895a Updated Makefile to compile correctly again.
Added a really ugly hack so that the ABI versions of the three .m files are not checked.  This will (hopefully!) prevent the GC being enabled when libobjc is loaded after being compiled with -fobjc-gc.
15 years ago
theraven 3385e7a724 Remove dead code. 15 years ago
theraven a4decfa4e3 Add hidden class -dealloc method as -finalize as well. 15 years ago
theraven 9015795dde Use explicitly typed memory for instances. 15 years ago
theraven 9dcc66f7f6 Make sure that associated objects and blocks use GC-scanned memory in GC mode.
Blocks do not yet support __weak bound variables.  This needs fixing before the release.
15 years ago
theraven 2329b7a1ec Change spelling to be consistent with Apple. 15 years ago
theraven 929f8f95b4 Improved a few GC functions.
Added objc-auto.h header, providing (documented) public interfaces to this
functionality.
15 years ago
theraven ef03a4bdb0 Add objc_gc_allocate_collectible() function, which can be used to implement NSAllocateCollectible(). 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 4f31ed8acd Some tweaks to optimisation order. 15 years ago
theraven 2912bae0a7 Ooops, another debugging line left in which caused a pass not to run... 15 years ago
theraven b7986e9efa Ooops. Accidentally left the bit that actually did the optimisation commented out. 15 years ago
theraven 8f423d0e29 Fix non-fragile ivar short-circuiting (i.e. hard-code the CORRECT ivar addresses, don't make foo and foobar have the same offset). 15 years ago
theraven 5705845e98 Fixed some bugs with the optimisation passes and introduced support for automatically running them (requires LLVM 3 + a patch that is not yet in trunk, but should be soon). 15 years ago
theraven dd81cda462 Fix autocompletion bug. 15 years ago
theraven 76d36e88eb Fix bug in selector type hashing algorithm. We can't use the numbers, because people don't always provide them correctly. 15 years ago
theraven b4eefb5cf2 Created 1.4 release announcement. 15 years ago
theraven 84fdd38b98 Some tweaks to the release announcement. 15 years ago
theraven 34aa9f9455 Allowed LLVM optimisations to build against both LLVM 2.9 and LLVM 3.0. 15 years ago
theraven f6697e5f86 Remove spurious &s. 15 years ago
theraven 5b77c3e694 Add +class and -self to Protocol. PyObjC breaks if these don't exist. 15 years ago
theraven d12de81cd6 Remove opts from default build - they must now be explicitly built.
Don't crash if objc_disposeClassPair() is called on a class that is not get
registered with the runtime.
15 years ago
theraven be68d81286 Check that the LLVM source directory exists before changing to it. 15 years ago
theraven 34d4c6b12e Updated release announcement. 15 years ago
theraven 76ef007766 Actually return the correct value in case of races. 15 years ago
theraven 94f72f539b Fixed thread safety for constructing property attributes. 15 years ago
theraven 8ee4d9c38a Added implementation of property_getAttributes(). This is a horrible interface, both to implement and to use. We should add some better interfaces. 15 years ago
theraven c6f0651609 Implemented objc_copyProtocolList(). 15 years ago
theraven 79b67ad044 Added missing ivar access functions. 15 years ago
theraven 12385fcb1e Tidy up low memory profile to use slots directly. 15 years ago
theraven 535ba87a8e Store the selector, not the type encoding, in slots. 15 years ago
qmathe bd48461fb9 Fixed GNUmakefile to ensure legacy symbols are visible 15 years ago
theraven 15ddbdfd71 Added meta-pass that runs all of the LLVM optimisations. 15 years ago
theraven 928e7f3971 Try again... 15 years ago
theraven 6d112bb632 Don't accidentally default to compiling without legacy compat. 15 years ago
theraven 649ce9dd7f Updated release announcement.
Made the LLVM optimisations build by default (if LLVM is installed).
15 years ago
theraven 9d5452b147 Fixed LLVM passes to compile with recent LLVM.
Made class caching pass cache classes in a static variable if the original class is not available.
15 years ago