theraven
34f7baf8d7
Added a fast path for ARC. Now, if a class implements ARC-compatible retain / release / autorelease methods, we don't call them at all. Instead, we inline them in the ARC accessors. This avoids all of the overhead of the message send (lookup and call) and should make ARC quite a bit faster than manual reference counting.
15 years ago
theraven
9015795dde
Use explicitly typed memory for instances.
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
e198597bd3
Added support for associative references. Modified sync code to use this.
15 years ago
theraven
28e6960441
Make object_getIndexedIvars() more robust against compiler bugs.
15 years ago
qmathe
10cb4f9b5c
Corrected doc in few places to refer to @synchronized() and not @synchronize()
15 years ago
theraven
7be9f34619
Fixed @synchronize() with a class that has had an instance used for @synchronize().
15 years ago
theraven
85c07b836e
Fix some warnings with -Wextra.
16 years ago
theraven
d3122bcfa4
Make sure BOOLs in class tests are always YES or NO.
...
Make self in +load the correct value (the class, not the metaclass).
16 years ago
theraven
779b28abeb
Lots of tidying, removing legacy stuff.
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
theraven
de71ebb6b1
Rewritten class loading.
16 years ago
theraven
0d78186238
Some bug fixes and tidies.
...
I now have an out-of-tree replacement for the dtable stuff, so sarray.{h,c} will be going away soon. The replacement offers similar (slightly worse currently) performance in microbenchmarks, but uses half as much memory (Gorm goes from 95MB to 48MB on my machine). This will be committed once it's been tweaked a little bit.
16 years ago
theraven
7b8b3839df
More refactoring.
16 years ago
theraven
2d84b96a72
Tidied up some bits by creating private headers for private data structures.
...
Imported selector table code frm the Étoilé runtime. We can now make dispatch type dependent with a -D switch. Not enabled yet, but it will be enabled in a warning mode soon - I consider preferable to the existing GNU and Apple solution of corrupting the stack.
16 years ago