183 Commits (07758fe521b0a095983d23455152b85a554f4e4a)
 

Author SHA1 Message Date
theraven 07758fe521 Removed last bits of legacy code from libobjc2. Added new exception handling implementation. 16 years ago
theraven 0e374db1db Added support for type-dependent dispatch to libobjc2. 16 years ago
qmathe 79899f8a46 Fixed unresolved class list loss when the root class gets resolved.
Hence not all classes were previously resolved at load time.

Was breaking +forwardInvocation: because unresolved classes such as 
GSFFInvocation were not receiving +load right when gnustep-base was loaded.
16 years ago
thebeing e36200bb8b Fix division by zero bug triggered by pointers to opaque structs. 16 years ago
theraven f54132293b Remove debugging line from encoding2.c 16 years ago
theraven 8158ff0a7a Tweak fragile ABI test to account for alignment padding. 16 years ago
thebeing 673ae40779 64bit fixes. 16 years ago
theraven 77ed3977bc Added missing file. 16 years ago
theraven 627e8cb0dc Remove debugging lines left in by mistake in last commit. 16 years ago
theraven 779b28abeb Lots of tidying, removing legacy stuff. 16 years ago
theraven 1f7f5cbfab Added file missing in last commit. 16 years ago
theraven 4ee07676cc Added rewritten encoding parser. The functions that function pointers as arguments and parse compound types should be exposed via the public interfaces, or possibly moved to a separate library - they are generally useful. 16 years ago
ericwa cc260222da protocol.c: don't call init_protocols() with NULL 16 years ago
ericwa 9697c01c33 Remove remaining uses of class_get_class_method and class_get_instance_method, which were causing link errors. David: can you check that I didn't do anthing silly? Thanks. 16 years ago
theraven 75712d61a3 Made Object use sensible functions instead of ones that don't exist. 16 years ago
theraven b1b9baf382 Finished rewrite of message sending. Deleted lots of legacy stuff. 16 years ago
theraven 9dcfe43e69 Removed DLL entry point. The Win32 API docs say that this function is optional, and the implementation was doing exactly the same thing as if it was absent. High quality coding at its finest. 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 7c72069fd9 Rewrote ABI compatibility testing. Makes it easier to define new, incompatible ABIs in future without breaking everything. 16 years ago
theraven 4ea82e14da Fixed hash functions.
Tweaked class resolve function to make sure that it keeps scanning the list as long as one or more classes is resolved while scanning it.
16 years ago
thebeing 13964517ef Small 64bit fix. 16 years ago
theraven fdc1f1e916 Removed more unused code. 16 years ago
theraven 67741f3f68 Removed hash.c - no longer used. 16 years ago
theraven de71ebb6b1 Rewritten class loading. 16 years ago
theraven a1329e22de A bit more class table tidying. 16 years ago
theraven 7f6f798074 Rewrote some of the class table code to be slightly cleaner. 16 years ago
theraven 3672f04ea3 Default to installing libobjc2 headers 16 years ago
qmathe 55a62b527f Removed unused variable that prevents compilation by being treated as an error 16 years ago
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... 16 years ago
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.
16 years ago
theraven a692cbd4dd Fix some GCC warnings. Patch by TOM. 16 years ago
theraven a9bdab1f44 Reverted last commit - breaks the build with clang.
Fixed the definition of objc_msgSendSuper().

Tweaked the -dealloc implementation for hidden classes used for locking so that @synchronize(self) will work in a -dealloc method.
16 years ago
theraven 2efec09e39 Silence some warnings when compiling with GCC. Patch by TOM. 16 years ago
theraven 7a9b105817 Fixed missing ! in dtable construction code, which meant that class methods were being preferred to category methods. 16 years ago
theraven 0c8d2bd7b8 Added missing files. 16 years ago
theraven c40f9e84f2 Return NULL instead of "" from sel_getTypes_np() - matches behaviour of sel_get_types() and makes more sense. 16 years ago
theraven ded142ebff Add empty sarray.h - for some reason GNUstep is trying to #include this file (no idea why, as nothing in GNUstep actually uses anything from it). Adding an empty version should prevent breakage for now. 16 years ago
theraven 1a60fabf96 More 64-bit fixes. 16 years ago
theraven 060ddf89be Another 64-bit fix. 16 years ago
theraven bfbc15e4f7 Fix 64-bit warning. 16 years ago
theraven cc41e05598 Revert accidental changes to make file. 16 years ago
theraven d36b939232 Actually commit the new dtable implementation this time... 16 years ago
theraven b04cccf46b Fixed some issues in runtime.c when looking up methods. This fixes some issues with DO.
Removed GNU dtable and sparse array implementations, replaced entirely now with versions based on the Étoilé runtime.  Performance is roughly equivalent in microbenchmarks, memory usage is significantly lower (Gorm goes from 95MB to 50MB on my machine - this will be even more pronounced on 64-bit systems), which should improve cache usage considerably.  Still room for some performance tuning, however.
16 years ago
theraven 4be9799259 Unrolled the SparseArrayLookup loop. This means we only need one jump, instead of 2, which gives the same performance as the old GNU code and about half the memory usage. It's really, really, ugly code though - I need to teach the compiler to do this optimisation so I don't have to. 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 0957cbe425 Factored out dtable stuff into dtable_legacy.c so that it can be replaced and so that we can do some profiling of the replacement to make sure it doesn't introduce performance regressions. 16 years ago
theraven 0045ce0cbd Install slot.h. 16 years ago
theraven 96de597b3c Mark string functions unused, in case the header is included in files that only use one of them. 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