Commit Graph

  • 2e73765ffa Added some experimental stuff. theraven 2011-10-22 20:24:34 +0000
  • 62269b017d Fix arm asm syntax. theraven 2011-10-18 20:40:55 +0000
  • 36bba25348 Shorter versions of ARM trampolines. theraven 2011-10-18 14:51:00 +0000
  • 5718e5428d Add block trampolines for ARM (need a bit more testing...) theraven 2011-10-18 14:28:56 +0000
  • 85f1cd713e Tweak cleanup code. theraven 2011-10-14 10:18:07 +0000
  • f9f2e4e313 Added a function for getting the type encoding for a block returned by imp_implementationFromBlock(). theraven 2011-10-13 10:28:31 +0000
  • 767b0f0820 Add define that exposes asprintf on OpenBSD. theraven 2011-10-12 10:20:52 +0000
  • fe3f84fed5 Allow showing all compilation steps. theraven 2011-10-12 10:18:58 +0000
  • ec5046f8ca Work around GCC bug. theraven 2011-10-12 10:17:17 +0000
  • 4796a41e4e Finished implementing the new runtime APIs. theraven 2011-10-11 18:42:34 +0000
  • 084bbdd877 Makefile cleanup to make life easier for packagers. theraven 2011-10-11 09:51:19 +0000
  • eeaa8f7b32 Add a warning when compiling on a platform where imp_implementationWithBlock() won't work. theraven 2011-10-10 11:25:22 +0000
  • 82dd92351d Actually commit the files I thought I committed in the last commit theraven 2011-10-09 21:38:44 +0000
  • a40f9a6e2c Fix the x86-64 non-sret trampoline, implement the sret one. theraven 2011-10-09 21:21:17 +0000
  • 0a7fdcb69e Add x86 (32-bit) sret trampoline. theraven 2011-10-09 20:53:02 +0000
  • 43ee8b9819 Add initial support for imp_implementationWithBlock() and friends. Currently only works on x86 and x86-64 and doesn't work with sret functions. theraven 2011-10-09 19:51:54 +0000
  • db1c9052de Remove the GNUmakefile. It can't be used for bootstrapping and maintaining two parallel build systems is just asking for trouble. theraven 2011-10-09 19:22:18 +0000
  • 26d86e101c Inherit +initialize methods. theraven 2011-09-15 18:43:27 +0000
  • daf9976eab Fix type encoding of blocks. theraven 2011-08-22 13:11:43 +0000
  • 6d50cdee99 Return the correct small int class in 32-bit mode theraven 2011-08-17 17:09:35 +0000
  • ee3961f38e Register LLVM passes with the new API. theraven 2011-08-16 14:00:26 +0000
  • b68a5dda6d Get the libobjc2 optimisations building again with LLVM trunk. theraven 2011-08-16 12:58:44 +0000
  • 3e4b528ea4 Don't link libobjcxx to libobjc (for some reason, doing so causes it to be loaded twice). theraven 2011-08-16 12:05:09 +0000
  • be3f8ddf0f Fix bug spotted by Justin Hibbits. theraven 2011-08-16 09:13:43 +0000
  • 4e3e71c750 Tweak 64-bit support for small objects. theraven 2011-08-14 18:04:51 +0000
  • a7d4cfd640 Make the version of libobjc generated by the makefile the one Etoile expects theraven 2011-08-13 18:54:28 +0000
  • bb283464cd It's a good idea, it turns out, if it's possible to propagate exceptions through the code responsible for... propagating exceptions. theraven 2011-08-13 16:07:24 +0000
  • c6a409bb3a Some fixes to the Makefile theraven 2011-08-13 12:59:29 +0000
  • e35b0a09e1 windows.h defines its own BOOL, just to be special. Redefine this as WINBOOL to work around the incompatibility with ObjC. theraven 2011-08-09 12:57:20 +0000
  • f133fa7eb8 Better ObjC++ support in runtime.h theraven 2011-08-08 17:07:46 +0000
  • 99761c2877 More fixes to Makefile.clang. theraven 2011-08-08 15:53:36 +0000
  • 1d16930450 Fix missing semicolon. theraven 2011-08-08 13:19:52 +0000
  • 38568fca57 Remove some dead code. Fix a bug when cloning objects with no associated references. theraven 2011-08-07 20:39:33 +0000
  • 5d3c047fa2 Finished implementing JavaScript-style prototypes. theraven 2011-08-07 19:50:32 +0000
  • b54719abf1 Basic support for prototype-style object orientation (you can now add methods to an individual object). theraven 2011-08-07 17:04:44 +0000
  • 55d86bba6c Blocks cleanups. theraven 2011-08-07 15:41:46 +0000
  • 6a27408e9e Fix malloc() / free() imbalance. theraven 2011-07-31 16:30:33 +0000
  • 908374672d Make OBJC_SMALL_OBJECT_SHIFT / OBJC_SMALL_OBJECT_MASK constants. theraven 2011-07-31 16:25:38 +0000
  • 8e34dccda9 Deprecate access to the isa pointer. This will become a hard error in future. theraven 2011-07-27 10:39:48 +0000
  • 22e5aaf7b0 Add OBJC_SMALL_OBJECT_SHIFT macro. theraven 2011-07-26 19:13:06 +0000
  • f3d2b7034c Small object + ARC tweaks. theraven 2011-07-26 17:56:37 +0000
  • 2288ff54e3 Don't try to enable GC in ARC mode. theraven 2011-07-26 17:42:22 +0000
  • 8af52846b7 Small object (hidden in a pointer) support. theraven 2011-07-26 17:39:13 +0000
  • f6d9318619 s/fifth/sixth theraven 2011-07-23 16:48:23 +0000
  • 1fd4fe5854 Bump subminor version number theraven 2011-07-23 15:44:06 +0000
  • fceec26cb7 Fix bug assigning weak references. theraven 2011-07-23 15:34:00 +0000
  • 0c6c31acec Fix file locations for 1.5 release. theraven 2011-07-20 14:06:08 +0000
  • ae7cefe382 Disable GC by default (lots of people moan that it doesn't compile) theraven 2011-07-20 14:02:35 +0000
  • ffc661fe5c Export capabilities for associated references and GC. theraven 2011-07-19 12:34:20 +0000
  • 2d493697a6 Work around PyObjC's stupid abuse of the message-send-to-super mechanism. theraven 2011-07-19 11:47:36 +0000
  • 3219a530d6 Don't call byref keep / dispose when they don't exist. theraven 2011-07-17 12:35:50 +0000
  • dfbf18cc67 Fixed <= bug in weak references. We're storing the EXTRA retain count, not the refcount. theraven 2011-07-16 17:00:23 +0000
  • 61a7c53a08 Handle NULL arguments to block copy / release. theraven 2011-07-14 21:10:59 +0000
  • 83db079968 Fix bug in fast path for class_getInstanceMethod() theraven 2011-07-14 17:41:36 +0000
  • 65d6a8dfb5 When changing the size of structures, it's a good idea to make sure that you change everything that depends on those sizes too... theraven 2011-07-14 17:23:48 +0000
  • 4e7b476aa6 Change [1] to [] for variable length structure elements (C99 - silences array out of bounds errors). theraven 2011-07-12 15:48:40 +0000
  • 219f921bc3 Fix some bugs in class_getInstanceMethod() theraven 2011-07-11 22:51:18 +0000
  • e69ed0696d Better recovery when things are done in the wrong order. theraven 2011-07-11 13:55:16 +0000
  • 3754c9fdbe Accidentally deleted class declaration for Protocol2. Add it back. theraven 2011-07-11 11:28:36 +0000
  • 5448596ace Update Makefile. theraven 2011-07-10 17:20:10 +0000
  • 3a27521f57 Add flag for identifying modules that use ARC. theraven 2011-07-07 09:45:34 +0000
  • e0ae8ce474 Another 64-bit issue. theraven 2011-07-07 09:29:00 +0000
  • 33864e9676 Fix int -> size_t, causing breakage on 64-bit big-endian platforms. theraven 2011-07-07 08:59:54 +0000
  • 52fb301a45 Move return statement into the conditional, where it belongs. theraven 2011-07-06 16:40:46 +0000
  • e8583bf4ae Updated README to give some more information about ARC. theraven 2011-07-06 11:06:39 +0000
  • 0b9e0fd295 Added fast implementation of autorelease pools for ARC. theraven 2011-07-06 11:00:00 +0000
  • a255dcd2d1 ...and fix dereferencing of NULL pointer introduced with last commit. theraven 2011-07-05 09:05:54 +0000
  • e7a6be5584 Tighten up loading of __weak variables slightly. theraven 2011-07-05 09:03:37 +0000
  • 69e53c4cdb Better test for presence of __sync_swap(). theraven 2011-07-05 08:59:58 +0000
  • 893b9bf958 Add guard if __has_feature is not defined. theraven 2011-07-05 08:53:34 +0000
  • d61e9b3209 Fix __weak references to blocks. theraven 2011-07-04 23:27:29 +0000
  • 126aa409cb op_and_fetch, not fetch_and_op! theraven 2011-07-04 21:26:11 +0000
  • 663995f08c Small cleanup. Use the ARC functions for retain / release / autorelease messages everywhere. This will make properties faster if we're using an ARC-compatible NSObject. theraven 2011-07-04 20:58:46 +0000
  • 61bc10ad4c Remove debugging line accidentally committed. theraven 2011-07-04 16:43:38 +0000
  • 73891aaecc Two small ARC fixes: theraven 2011-07-04 15:04:56 +0000
  • fce7c776b6 Tweak build to only enable optimisation in non-debug builds. theraven 2011-07-04 14:44:04 +0000
  • 9b9c801805 Fix off-by-one error in buffer.h theraven 2011-07-04 14:43:32 +0000
  • 9d6154041c Make sure that autoreleased returned objects are destroyed when the autorelease pool is destroyed. They were previously being destroyed on thread termination, this ensures that their lifespan is predictable. theraven 2011-07-04 12:22:23 +0000
  • 7155f174b7 Don't enable incremental collection. It seems to cause crashing. theraven 2011-07-04 12:21:23 +0000
  • aaeb22d682 Updated README to briefly describe ARC. theraven 2011-07-04 12:17:31 +0000
  • 79e29ba48f Copied ANNOUNCE to ANNOUNCE.1.5 in preparation for 1.5 release. theraven 2011-07-04 12:11:14 +0000
  • f6923d7472 Improve objc_moveWeak() implementation. theraven 2011-07-04 11:57:13 +0000
  • 7b6ba21ce5 Small bug fixes: theraven 2011-07-04 11:28:33 +0000
  • e34be81404 Fix fast-path test to work with subclasses correctly. theraven 2011-07-03 15:29:52 +0000
  • 81131acfbc Fix LLVM trunk compatibility. theraven 2011-07-03 12:52:49 +0000
  • 34f7baf8d7 Added a fast path for ARC. Now, if a class implements ARC-compatible retain / release / autorelease methods, we don't call them at all. Instead, we inline them in the ARC accessors. This avoids all of the overhead of the message send (lookup and call) and should make ARC quite a bit faster than manual reference counting. theraven 2011-07-03 11:14:29 +0000
  • 6a37a8c3bc More ARC tweaks. theraven 2011-06-30 14:16:52 +0000
  • 55191e34ae Fix the fast path. It should fall back to doing what the slow path does if the other half is not using it. theraven 2011-06-30 12:56:59 +0000
  • 3e88293f74 Added mention of ARC to ANNOUNCE. theraven 2011-06-30 09:40:24 +0000
  • e3c836b090 Added fast path for objc_autoreleaseReturnValue() and objc_retainAutoreleasedReturnValue(). theraven 2011-06-30 09:24:14 +0000
  • 36d21882ec Documented objc-arc.h theraven 2011-06-29 14:36:20 +0000
  • bc87ed22e1 Implemented support for __weak with ARC. theraven 2011-06-29 13:12:02 +0000
  • 065531b12e Remove accidentally-committed WIP ARC code. theraven 2011-06-29 12:04:47 +0000
  • b633338a7a Remove indirection from alias table. theraven 2011-06-29 12:03:41 +0000
  • 9967d85d60 Fixes to be blocks runtime. Make sure that objects are not prematurely deallocated if referenced by multiple blocks. theraven 2011-06-29 10:41:26 +0000
  • 9b70b22eee Use __unsafe_unretained instead of const for returning protocol arrays. Let's not break everyone's code, even if we really want to. theraven 2011-06-29 10:12:29 +0000
  • b5380d50d3 Added support for ARC. theraven 2011-06-28 16:29:42 +0000
  • 6412c7a4e7 And another one... theraven 2011-06-24 14:36:54 +0000
  • 9ef84a982c Remove redundant include. theraven 2011-06-24 14:32:15 +0000
  • fbdfc0b9eb Allow packagers to more easily rename the library. theraven 2011-06-23 10:30:56 +0000