49 Commits (2e2856ce7375cce97871ba7ebc008d4640629373)

Author SHA1 Message Date
theraven 7be9f34619 Fixed @synchronize() with a class that has had an instance used for @synchronize(). 15 years ago
theraven ee32f78b0a Tweaked the GNUmakefile to (more or less) work with gcc.
Fixed block introspection for the new (Apple-compatible) ABI.
16 years ago
theraven 025688a2d5 Added property_getName(). Added non-portable API documentation. 16 years ago
theraven d70523947b Implement some missing runtime functions. 16 years ago
theraven 9c077368a8 Make sel_copyTypes_np() return the number of types in all cases. 16 years ago
theraven a029fb2af3 Expose sel_copyTypes_np(). 16 years ago
ericwa 7ce5a0ab11 libobjc2: make Object.h include runtime.h 16 years ago
ericwa c604289023 libobjc2: define SEL as const for GCC 16 years ago
theraven b1aa77e450 Commit some missing files. 16 years ago
theraven eb48fda62b Expose a function needed by GNUstep. 16 years ago
theraven e2d848467c Another try... 16 years ago
theraven 00004fe5f3 More tweaks to the GNU-compatibility encoding stuff. This API is too broken to use, but GNUstep seems to want it. 16 years ago
theraven 0177ef56e1 Tweak the type encoding stuff a bit. 16 years ago
theraven 5885fd196a Add defines for ObjC types (GNUstep apparently uses them, even though they are not part of the language spec, but the things that they define are, so they only serve to obfuscate code where they are used). 16 years ago
theraven bd58a33b84 Prevent accidental mixing of GNU runtime headers with GNUstep runtime.h. 16 years ago
theraven f43e7f6845 Fix typo. 16 years ago
theraven ab59ce1d33 Add feature test APIs to libobjc2. 16 years ago
theraven 77d02d075b Add some missing protocol introspection functions. 16 years ago
ericwa 52bdf1484f libobjc2: add dummy objc.h and objc-api.h headers which simply include runtime.h 16 years ago
theraven 0284155f2d Added a hook that defines the behaviour when you call a method with the wrong signature. 16 years ago
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... 16 years ago
theraven 2cc96a6f7e Fix message forwarding by, for example, actually calling the public forwarding hook, instead of one that isn't exposed to GNUstep... 16 years ago
theraven fb474dd7f9 Removed hooks from runtime.h that are in hooks.h 16 years ago
theraven f375d20d7a Add support for catching C++ (and Java / Ada) exceptions in Objective-C. 16 years ago
theraven 07758fe521 Removed last bits of legacy code from libobjc2. Added new exception handling implementation. 16 years ago
theraven b1b9baf382 Finished rewrite of message sending. Deleted lots of 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 7f6f798074 Rewrote some of the class table code to be slightly cleaner. 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 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 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 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
theraven 289d412dac Fixed lookup of superclass when superclass is nil. 16 years ago
rfm bc0ad88a82 complete backport 16 years ago
rfm e2f4f38e45 backport bugfixes from ObjectiveC2 code 16 years ago
rfm 607bc433c9 Fix instance variable lookup to match OSX 16 years ago
theraven ae11414b4d Handle case where @synchronized is used with a class. 16 years ago
theraven d3c4703b46 Removed bits of Object that depended on the horrible stuff in archive.c. 16 years ago
theraven da9aafd3ed More fixes for bugs found by Mizuki. 16 years ago
theraven 2a5ba9f18a Fixed class_get_super_class() so that it actually works and simplified class_getSuperclass() to call it directly. This fixes numerous other corner cases, for example you can now throw a constant string as an exception and have it work correctly even if no constant string objects have been sent messages.
Hopefully this will fix a few other Heisenbugs and reduce the strength of the Mottola Effect.
16 years ago
theraven 16c3ec8f46 Correctly declare the runtime hooks as extern. Was causing copies of them to show up in the uninitialised data section of libraries that included runtime.h, clobbering the default version and causing a crash when the runtime tried to call them. 16 years ago
qmathe 8b9c723905 Added object_setClass 16 years ago
theraven 4771cd4e43 Added selector lookup functions. Implementations by Eric Wasylishen. 16 years ago
theraven baed61c3e6 Added property support functions, NSBlock base classes and uncaught exception handler. 16 years ago
theraven bba507bf70 Removed incorrect comment from blocks runtime. Tweaked runtime.h to make it show the new functions even in GNU-compat mode and made sure the object-substitution hook is called even when object substitution can't be used, so GNUstep can use it for the 10.5 NSObject runtime functions. 17 years ago
theraven 252447c95f Updated block interface to more closely match Apple's one. Added support for introspectable blocks. 17 years ago
theraven 3038121d27 Flagged non-Apple-compatible parts of the API as non-portable. 17 years ago
theraven 323e3dfaeb Added new runtime library, based on GCC 4.4 libobjc, libobjc_tr and Objective2.framework. 17 years ago