Commit Graph

  • 64bedddcb3 Ugly hack to fixup NXConstantString references to NSConstantString if linked against Foundation. Now, if you forget to specify -fconstant-string-class=NSConstantString when compiling, stuff will still work and GNUstep won't get confused. theraven 2010-01-25 15:53:09 +0000
  • e1feabad27 Restored stub version of objc_get_stream_class_version to prevent linking with -base failing. theraven 2010-01-25 15:49:15 +0000
  • d3c4703b46 Removed bits of Object that depended on the horrible stuff in archive.c. theraven 2010-01-25 15:41:35 +0000
  • dfa14d5d34 Made Object less magic. For now, because there are some weird people who want to use Objective-C without Foundation, Object is still included. If you compile without defining GNUSTEP (which GNUstep Make does automatically) then you get the old behaviour. If you build with GNUSTEP defined: theraven 2010-01-25 15:35:08 +0000
  • 0698e968ee Added license for toydispatch. theraven 2010-01-25 13:14:04 +0000
  • c7bff27827 Removed typed stream support; it's no longer used. theraven 2010-01-25 13:09:17 +0000
  • c3a6b866bb Added toydispatch to libobjc. This is an implementation of a tiny subset of libdispatch, requiring no kernel support beyond a standard pthread implementation. It is intended to be used for running asynchronous book-keeping tasks for libobjc, but might also be useful for other things so it's compiled as a separate library. theraven 2010-01-25 13:07:16 +0000
  • 9df65418f7 make inline internal functions static. rfm 2010-01-23 10:14:40 +0000
  • d58dad7e32 Fixed a bug with category loading. Previously, a method in a category that overrode a method in the superclass would only be picked up by subclasses that were not yet initialized. theraven 2010-01-21 20:27:02 +0000
  • a2dbc582de Made objc_getProtocol() return a protocol from the protocol table, rather than creating a new one. theraven 2010-01-21 17:35:25 +0000
  • 8310615a7c Bug fixes in hash_table.h theraven 2010-01-21 17:34:13 +0000
  • 5b4974f259 Made debug warning just a warning. theraven 2010-01-21 17:33:23 +0000
  • 38bad343d3 Removed some (non-functional) experimental code from exception.c that was breaking 64-bit compile. theraven 2010-01-20 00:12:46 +0000
  • 4e06c2a9f0 Removed NSObject.h dependency from NSBlocks.m theraven 2010-01-19 16:52:54 +0000
  • e92f753091 Restored objc_getProtocol() which seems to have been accidentally removed. qmathe 2010-01-08 23:59:24 +0000
  • 4a9187b1cc Made allocateClassPair() set the name of the metaclass. theraven 2010-01-08 20:59:46 +0000
  • e1ae8df5af Initial work on protocol uniquing. Protocols are now added to a table and can be looked up at run time. theraven 2010-01-07 19:12:09 +0000
  • bdf97cf64e Added hopscotch table implementation and rewrote the class table to use it. This is done so that the class table and protocol tables can share the same code (currently there is no protocol table). theraven 2010-01-07 18:22:13 +0000
  • 9f602c083c Fixed class_getInstanceSize(); theraven 2010-01-07 14:41:38 +0000
  • bd8626e692 Fix warning in last commit. theraven 2010-01-07 14:11:22 +0000
  • 752b7ec9d8 Another fix for allocating runtime classes. theraven 2010-01-07 13:31:18 +0000
  • da9aafd3ed More fixes for bugs found by Mizuki. theraven 2010-01-06 22:28:59 +0000
  • 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. theraven 2010-01-06 18:11:39 +0000
  • 202006f6b8 Removed some dead variables. theraven 2010-01-06 15:34:28 +0000
  • 51ab4a935a Fixed class_getSuperclass() implementation. theraven 2010-01-05 16:47:28 +0000
  • 604efa7077 Add new classes to the class table when they are registered. theraven 2010-01-05 14:39:14 +0000
  • 81de407358 Fixed method_getNumberOfArguments(), report by Mizuki. theraven 2010-01-05 14:26:02 +0000
  • 028a312ecd Fixed bugs found by Mizuki. theraven 2010-01-05 13:52:35 +0000
  • 9dc0343c21 Fixed ivar offset checking to take account for alignment. theraven 2010-01-05 13:52:02 +0000
  • 6a94efd4cf Removed debugging lines from GNUmakefile that were breaking the build. Thanks to RFM for spotting this... theraven 2010-01-05 13:51:35 +0000
  • 6e29945894 Fix missing return rfm 2010-01-04 18:00:34 +0000
  • 41f9e12f53 Added a bit more debugging info to the overlapping class error. theraven 2010-01-04 15:01:59 +0000
  • 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. theraven 2010-01-02 17:45:10 +0000
  • bf2521da40 Fixed undefined pthread references when gnustep-base configure tests whether 'objc really works' qmathe 2009-12-30 16:01:38 +0000
  • 8b9c723905 Added object_setClass qmathe 2009-12-27 22:00:44 +0000
  • 7ba27bd183 Fixed license for NSBlocks.m theraven 2009-12-20 19:38:07 +0000
  • 93ac6e7f2f Fixed block class creation so libobjc2 no longer has a static dependency on NSObject. This lets blocks work without Foundation, just as on OS X. This requires GNUstep to call a runtime function when NSObject is loaded. theraven 2009-12-20 16:49:27 +0000
  • 4771cd4e43 Added selector lookup functions. Implementations by Eric Wasylishen. theraven 2009-11-25 14:42:52 +0000
  • 7af08f5a82 Tweaked the +initialize order to work around some of the insanity in NSObject and NSAutoreleasePool's interaction in GNUstep. This code is incredibly fragile, and on the old runtime sometimes completely fails and crashes during startup, depending on the order in which the files were linked in -base and how the platform linker works. Hopefully now it should work in all cases. theraven 2009-11-24 13:23:47 +0000
  • 5f48260c6a Made sure the ObjC mutex is created before it might first be used. theraven 2009-11-24 13:21:29 +0000
  • 8efbf98e55 Fixed potential load-order conflict in NSBlocks. theraven 2009-11-24 13:20:48 +0000
  • cbf41a1fec Fixed build with clang. theraven 2009-11-17 23:28:58 +0000
  • baed61c3e6 Added property support functions, NSBlock base classes and uncaught exception handler. theraven 2009-11-17 21:13:41 +0000
  • 40da5b6b50 Fixed build warning on *BSD. theraven 2009-11-17 21:12:42 +0000
  • 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). theraven 2009-11-15 02:28:45 +0000
  • 3ffec0a4fb Added missing declarations of exception-handling functions (from ABI spec). theraven 2009-11-15 02:25:28 +0000
  • f8b98a73a2 Bug fixes in libobjc2: theraven 2009-11-14 18:09:51 +0000
  • 29790da51c Fixed bug in loading categories. theraven 2009-11-13 18:28:01 +0000
  • 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... theraven 2009-10-25 15:47:57 +0000
  • 5bb7c43244 Fixed accidental insertion of methods into the uninitialized dtable. theraven 2009-10-24 15:56:42 +0000
  • 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). theraven 2009-10-24 15:16:14 +0000
  • b69b7c05d8 Removed unwind.h dependency. Tidied up a few warnings generated by clang. theraven 2009-10-04 15:41:32 +0000
  • 2800dee1f4 Changed "unwind.h" to <unwind.h> theraven 2009-10-04 14:55:57 +0000
  • 1e1e23827c Fixed new ABI method lookup function for +initialize safety. theraven 2009-09-20 15:48:57 +0000
  • d010cc60ea Fix for threading bug with +initialize. Some limitations: theraven 2009-09-20 12:46:45 +0000
  • 3c43365991 Use _XOPEN_SOURCE rather than _XOPEN_VERSION rfm 2009-09-13 11:51:27 +0000
  • 9c65b1c84c Added types support to blocks runtime, tidied up UNIX98 stuff. theraven 2009-09-11 10:28:49 +0000
  • 102084ab7c Changes to compile on CentOS-5.3 rfm 2009-09-11 08:21:58 +0000
  • 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. theraven 2009-09-10 22:09:03 +0000
  • 252447c95f Updated block interface to more closely match Apple's one. Added support for introspectable blocks. theraven 2009-09-10 01:24:25 +0000
  • 3038121d27 Flagged non-Apple-compatible parts of the API as non-portable. theraven 2009-09-08 21:56:31 +0000
  • 323e3dfaeb Added new runtime library, based on GCC 4.4 libobjc, libobjc_tr and Objective2.framework. theraven 2009-09-08 16:18:59 +0000