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
theraven
52381f163b
Make sure locks are initialised before using them and destroyed afterwards.
15 years ago
theraven
975596f764
Updated documentation.
15 years ago
theraven
709f238364
Sync on the metaclass, not the class, since that's what we're actually testing...
15 years ago
theraven
f9d1b5f356
Clean up the low memory profile. Now passes all GNUstep-base and EtoileFoundation tests, just like the default profileand uses 5-10% less (total) RAM in GORM. Worth benchmarking to see how much performance this costs.
...
Updated the release announcement.
15 years ago
theraven
f0974cb415
Cosmetic fix - use the correct union field, not an explicit cast.
15 years ago
theraven
789219a2cb
Expose the low memory profile as an option in the dtable.
15 years ago
theraven
4fc7030973
Remove some obsolete FIXMEs.
15 years ago
theraven
7b49755964
Dtable cleanup cleanups.
15 years ago
theraven
f5f0816777
Make the selector hash depend on the types as well as the name - should reduce
...
hash collisions between typed and untyped versions.
15 years ago
theraven
c6556fd230
Remove FIXME that was fixed in last commit.
15 years ago
theraven
bad36445e3
Improve efficiency of dtable updates from categories.
...
Make +initialize sending exception safe.
15 years ago
theraven
9fd1d26c00
Removed debugging statement that should not have been added in the first place...
15 years ago
theraven
af85d8496d
Actually wait for +initialize to finish before allowing any thread to send a message to a class (I broke this when I rewrote the dtable code to use a per-class lock - the lookup forgot to acquire the correct mutex.)
15 years ago
theraven
d7056f6de2
Simplify @synchronize() and improve efficiency (space and time).
15 years ago
theraven
5ea9367f3d
Tweak alignment.
15 years ago
theraven
987ab88a94
Don't do hidden-class transforms for classes, just dangle the look-aside data off the class structure.
...
Individually lock classes so that +initialize can be sent concurrently to two different classes in two different threads.
15 years ago
theraven
24de067017
Default to building without the legacy APIs, now GNUstep doesn't require them.
15 years ago