theraven
2d9f41aa94
If we're linking against Boehm GC, then we may as well allow it to collect the runtime's hash tables, rather than doing that manually.
15 years ago
theraven
7deef6854a
Tweaked release announcement to reflect the fact that GC is built by default unless explicitly disabled.
15 years ago
theraven
3b96938128
Removed GCKit.
15 years ago
theraven
3769a48cd7
Add an ugly hack to prevent a clever optimiser from realising that it can completely optimise objc_clear_stack() away.
15 years ago
theraven
5b2c24bed3
If LIBOBJC_DUMP_GC_STATUS_ON_SIGNAL is set, dump the GC state in response to kill -$(LIBOBJC_DUMP_GC_STATUS_ON_SIGNAL) {pid}.
15 years ago
theraven
cd9ac97fb8
Refine typed allocations slightly.
15 years ago
theraven
0cb2ea01bc
Simplify the finalization code slightly.
15 years ago
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