theraven
a4decfa4e3
Add hidden class -dealloc method as -finalize as well.
2011-05-23 17:38:31 +00:00
theraven
9015795dde
Use explicitly typed memory for instances.
2011-05-23 17:26:44 +00:00
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.
2011-05-23 16:24:45 +00:00
theraven
2329b7a1ec
Change spelling to be consistent with Apple.
2011-05-23 12:08:45 +00:00
theraven
929f8f95b4
Improved a few GC functions.
...
Added objc-auto.h header, providing (documented) public interfaces to this
functionality.
2011-05-23 11:11:51 +00:00
theraven
ef03a4bdb0
Add objc_gc_allocate_collectible() function, which can be used to implement NSAllocateCollectible().
2011-05-23 09:46:37 +00:00
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.
2011-05-22 23:02:04 +00:00
theraven
4f31ed8acd
Some tweaks to optimisation order.
2011-05-15 13:06:05 +00:00
theraven
2912bae0a7
Ooops, another debugging line left in which caused a pass not to run...
2011-05-14 18:01:38 +00:00
theraven
b7986e9efa
Ooops. Accidentally left the bit that actually did the optimisation commented out.
2011-05-14 17:21:39 +00:00
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).
2011-05-14 16:12:46 +00:00
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).
2011-05-14 15:32:26 +00:00
theraven
dd81cda462
Fix autocompletion bug.
2011-05-11 10:44:34 +00:00
theraven
76d36e88eb
Fix bug in selector type hashing algorithm. We can't use the numbers, because people don't always provide them correctly.
2011-05-07 09:40:33 +00:00
theraven
b4eefb5cf2
Created 1.4 release announcement.
2011-05-06 12:32:36 +00:00
theraven
84fdd38b98
Some tweaks to the release announcement.
2011-05-05 21:01:36 +00:00
theraven
34aa9f9455
Allowed LLVM optimisations to build against both LLVM 2.9 and LLVM 3.0.
2011-05-05 20:49:47 +00:00
theraven
f6697e5f86
Remove spurious &s.
2011-05-05 11:24:45 +00:00
theraven
5b77c3e694
Add +class and -self to Protocol. PyObjC breaks if these don't exist.
2011-05-04 17:27:17 +00:00
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.
2011-05-04 12:53:04 +00:00
theraven
be68d81286
Check that the LLVM source directory exists before changing to it.
2011-04-30 12:38:34 +00:00
theraven
34d4c6b12e
Updated release announcement.
2011-04-29 14:46:37 +00:00
theraven
76ef007766
Actually return the correct value in case of races.
2011-04-29 11:21:59 +00:00
theraven
94f72f539b
Fixed thread safety for constructing property attributes.
2011-04-29 11:19:42 +00:00
theraven
8ee4d9c38a
Added implementation of property_getAttributes(). This is a horrible interface, both to implement and to use. We should add some better interfaces.
2011-04-28 20:36:36 +00:00
theraven
c6f0651609
Implemented objc_copyProtocolList().
2011-04-28 18:53:11 +00:00
theraven
79b67ad044
Added missing ivar access functions.
2011-04-28 18:39:48 +00:00
theraven
12385fcb1e
Tidy up low memory profile to use slots directly.
2011-04-28 11:59:18 +00:00
theraven
535ba87a8e
Store the selector, not the type encoding, in slots.
2011-04-22 12:13:28 +00:00
qmathe
bd48461fb9
Fixed GNUmakefile to ensure legacy symbols are visible
2011-04-22 12:02:56 +00:00
theraven
15ddbdfd71
Added meta-pass that runs all of the LLVM optimisations.
2011-04-22 12:01:28 +00:00
theraven
928e7f3971
Try again...
2011-04-22 11:51:15 +00:00
theraven
6d112bb632
Don't accidentally default to compiling without legacy compat.
2011-04-22 11:45:44 +00:00
theraven
649ce9dd7f
Updated release announcement.
...
Made the LLVM optimisations build by default (if LLVM is installed).
2011-04-22 11:38:16 +00:00
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.
2011-04-22 11:06:33 +00:00
theraven
52381f163b
Make sure locks are initialised before using them and destroyed afterwards.
2011-04-20 12:45:15 +00:00
theraven
975596f764
Updated documentation.
2011-04-20 09:59:41 +00:00
theraven
709f238364
Sync on the metaclass, not the class, since that's what we're actually testing...
2011-04-20 09:40:48 +00:00
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.
2011-04-19 16:27:58 +00:00
theraven
f0974cb415
Cosmetic fix - use the correct union field, not an explicit cast.
2011-04-19 14:58:44 +00:00
theraven
789219a2cb
Expose the low memory profile as an option in the dtable.
2011-04-19 10:55:59 +00:00
theraven
4fc7030973
Remove some obsolete FIXMEs.
2011-04-19 10:55:35 +00:00
theraven
7b49755964
Dtable cleanup cleanups.
2011-04-19 10:55:10 +00:00
theraven
f5f0816777
Make the selector hash depend on the types as well as the name - should reduce
...
hash collisions between typed and untyped versions.
2011-04-19 10:54:00 +00:00
theraven
c6556fd230
Remove FIXME that was fixed in last commit.
2011-04-19 09:57:52 +00:00
theraven
bad36445e3
Improve efficiency of dtable updates from categories.
...
Make +initialize sending exception safe.
2011-04-19 09:50:41 +00:00
theraven
9fd1d26c00
Removed debugging statement that should not have been added in the first place...
2011-04-19 09:29:50 +00:00
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.)
2011-04-18 17:30:24 +00:00
theraven
d7056f6de2
Simplify @synchronize() and improve efficiency (space and time).
2011-04-17 18:04:58 +00:00
theraven
5ea9367f3d
Tweak alignment.
2011-04-17 17:31:56 +00:00