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
7b49755964
Dtable cleanup cleanups.
2011-04-19 10:55:10 +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
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.
2011-04-17 17:31:37 +00:00
theraven
d51500184c
More cleanups. Stop using __ identifiers for internal stuff now that it's properly marked private and we don't have to worry about conflicts.
2011-04-14 16:44:34 +00:00
theraven
6c7cf4a5a6
Add visibility attributes on all internal functions so that we aren't ever exporting them outside of libobjc.
2011-04-14 12:25:17 +00:00
theraven
a2db6f58be
Made the selector name field into a union of the name (unregistered selectors) and the selector id / index (registered selectors), to more accurately reflect how it is used in the code.
2011-03-15 17:27:26 +00:00
theraven
e11e8dee46
Tweak ordering when creating dtables to fix an irritating corner case in +initialize calls.
2011-03-09 14:43:24 +00:00
theraven
7be9f34619
Fixed @synchronize() with a class that has had an instance used for @synchronize().
2010-10-04 17:44:17 +00:00
theraven
e9b129d878
Added low memory profile to libobjc2. This uses a more NeXT-style dtable design, which gives better memory usage at the cost of (significantly) worse worst-case performance. The memory savings seem to be only about 10% in the apps I've tested (Gorm, edlc), so it's probably not worthwhile, but it might be useful for someone finding stuff is just starting to swap...
2010-08-15 22:30:32 +00:00
theraven
121e14a3b8
Small cleanup of dtable code.
2010-06-30 11:49:19 +00:00
theraven
0e374db1db
Added support for type-dependent dispatch to libobjc2.
2010-06-29 12:42:20 +00:00
theraven
779b28abeb
Lots of tidying, removing legacy stuff.
2010-06-06 21:11:25 +00:00
theraven
b1b9baf382
Finished rewrite of message sending. Deleted lots of legacy stuff.
2010-06-03 15:17:12 +00:00
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...
2010-06-02 22:25:12 +00:00
qmathe
55a62b527f
Removed unused variable that prevents compilation by being treated as an error
2010-05-22 14:01:17 +00:00
theraven
8a451d212c
More dtable fixes - now the EtoileFoundation tests work when compiled with GCC too. Hopefully that's all of the irritating corner cases in category loading dealt with...
2010-05-21 19:00:02 +00:00
theraven
e482b6986f
More fixes for the new dtable. Now passing all of the EtoileFoundation tests, which do lots of things involving categories, so make a good stress test.
...
No longer installs headers by default. This is because GNUstep Make notices when the objc headers have changed (because GNUstep includes them) and so reinstalling libobjc2 was requiring a complete recompile of anything that you tried to build, even if you only changed one line. A better fix for this would be for install to use cmp or diff to check if the header has been modified before installing it, but I'm too lazy to do that right now.
2010-05-21 13:49:19 +00:00
theraven
7a9b105817
Fixed missing ! in dtable construction code, which meant that class methods were being preferred to category methods.
2010-05-19 14:33:55 +00:00
theraven
c40f9e84f2
Return NULL instead of "" from sel_getTypes_np() - matches behaviour of sel_get_types() and makes more sense.
2010-05-19 12:56:46 +00:00
theraven
1a60fabf96
More 64-bit fixes.
2010-05-17 15:22:19 +00:00
theraven
d36b939232
Actually commit the new dtable implementation this time...
2010-05-16 21:32:43 +00:00