1321 Commits (71e38a048fc06fea0c2015662540d46a33b5c45d)
 

Author SHA1 Message Date
theraven cbf41a1fec Fixed build with clang. 16 years ago
theraven baed61c3e6 Added property support functions, NSBlock base classes and uncaught exception handler. 16 years ago
theraven 40da5b6b50 Fixed build warning on *BSD. 16 years ago
theraven bd73cc4e57 Added run-time abort if the first ivar of a newly-loaded class does not immediately follow on from the previous one. This (hopefully, modulo some potential weirdness related to bitfields) means that we should now get programs refusing to start in most cases where they depend on frameworks that had their ABI change but didn't bump the library version. This seems preferable to the previous behaviour of corrupting memory (note that this won't catch the case where the superclass has its ivars rearranged, but remains exactly the same size and the subclass references the ivars). 16 years ago
theraven 3ffec0a4fb Added missing declarations of exception-handling functions (from ABI spec). 16 years ago
theraven f8b98a73a2 Bug fixes in libobjc2:
- nil_method now returns 0, not receiver.

- Metaclasses actually get their dtables installed with the new ABI.  For some reason this wasn't being done, so class messages didn't work with the new ABI.  Now they do and (at least some) nontrivial programs work.

- Undid commenting out of the code setting the fast ivar access pointers.  I can't remember why this was commented out, but it seems not to break anything.  I have an LLVM pass that makes compiled code access these pointers, but it's not committed yet.
16 years ago
theraven 29790da51c Fixed bug in loading categories. 16 years ago
theraven b2bc15c64e Removed assertion. I'm not entirely sure why it was there, but it was preventing Gorm running (along with anything else that provided categories on subclassed classes). I need some more testing to make sure that this didn't break anything else, but Gorm now runs correctly with the new runtime, so it seems like an improvement... 16 years ago
theraven 5bb7c43244 Fixed accidental insertion of methods into the uninitialized dtable. 16 years ago
theraven 546f31df69 Fixed a load of ->dtable references up to dtable_for_class() calls. Now no longer does the Wrong Thing™ if you do silly things like modifying a class's dtable in +initialize (which, sadly, GNUstep does for NSConstantString). 16 years ago
theraven b69b7c05d8 Removed unwind.h dependency. Tidied up a few warnings generated by clang. 17 years ago
theraven 2800dee1f4 Changed "unwind.h" to <unwind.h> 17 years ago
theraven 1e1e23827c Fixed new ABI method lookup function for +initialize safety. 17 years ago
theraven d010cc60ea Fix for threading bug with +initialize. Some limitations:
- Now only one thread may be in any +initialize method at once.
- Not yet implemented for the new ABI lookup function.

The first I don't see as a limitation; if anything having +initialize methods
be guaranteed not to run concurrently may be convenient.  The second I will fix
soon.
17 years ago
rfm 3c43365991 Use _XOPEN_SOURCE rather than _XOPEN_VERSION 17 years ago
theraven 9c65b1c84c Added types support to blocks runtime, tidied up UNIX98 stuff. 17 years ago
rfm 102084ab7c Changes to compile on CentOS-5.3 17 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