Commit Graph

22 Commits

Author SHA1 Message Date
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