Commit Graph

  • 6c7cf4a5a6 Add visibility attributes on all internal functions so that we aren't ever exporting them outside of libobjc. theraven 2011-04-14 12:25:17 +0000
  • c2f572f9a1 Set the makefiles in trunk back to non-release mode. theraven 2011-04-14 09:51:49 +0000
  • c83f585bd3 Added note about aliases to release announcement. theraven 2011-04-14 08:42:00 +0000
  • 442e2e0a07 1.3 release announcement. theraven 2011-04-14 08:39:45 +0000
  • b76b4be925 Disable selector type mismatch warnings, for the release. theraven 2011-04-14 08:38:55 +0000
  • 901c3b6a1c Fix linking libobjcxx when libobjc has not yet been installed. thebeing 2011-04-08 14:48:43 +0000
  • 95ef5a93f9 Always use the first version of a class that's loaded twice until the merging code is a bit better tested. theraven 2011-04-08 09:11:21 +0000
  • 23b26820f5 Make it easier to suppress mismatched selector warnings. It's useful for the runtime to tell you when your code is bad. Not so useful for it to tell you when someone else's code is bad... theraven 2011-04-06 18:17:18 +0000
  • 95404fc7ba Tidied up Makefile. theraven 2011-04-05 18:02:47 +0000
  • 600e970dea Separate ObjC++ support out into libobjcxx. Now code that doesn't need ObjCXX support can safely ignore it again. theraven 2011-04-05 17:21:30 +0000
  • 7e71ffe24d Use correct pthread flag on OpenBSD. theraven 2011-04-04 22:21:13 +0000
  • 7a7fce3c97 Link with $(CXX) instead of ld, so that C++ linking is done properly. theraven 2011-04-04 14:49:59 +0000
  • 3eb0ecb96b Ensure that the superclass is registered when testing for protocol conformance. theraven 2011-04-04 13:43:21 +0000
  • 28b1db6f6e Make sure that -fPIC is specified for C++ files too. theraven 2011-04-04 13:24:53 +0000
  • 06ff4be6a9 More build system tidies. theraven 2011-04-04 12:01:58 +0000
  • 1d071bf4c1 Create the lib dir if it doesn't exist (never required in normal usage, but useful when installing to a temporary directory). theraven 2011-04-04 11:55:56 +0000
  • 01558d3c4e Brought Makefile up to compatibility with GNUmakefile. theraven 2011-04-04 11:52:16 +0000
  • 496c66bd0b Fix linker errors. theraven 2011-04-04 10:32:00 +0000
  • 1ecd07d637 Don't use __attribute__((constructor)) for creating things that are called by other constructors. theraven 2011-03-29 10:01:34 +0000
  • f330ba0f36 Remove thread-local variable that isn't actually used... theraven 2011-03-26 13:36:25 +0000
  • 62afedcbaf Add a small test for alias registration. thebeing 2011-03-25 21:35:33 +0000
  • ee7817cf57 Implement a hook that allows the compiler to register the aliases used with the @compatibility_alias directive so that they can be resolved at runtime. thebeing 2011-03-25 20:01:43 +0000
  • ed9d0f33c9 Actually install the header that's referenced. theraven 2011-03-22 20:53:16 +0000
  • 4ee1b1f4ac Test first, then commit... theraven 2011-03-22 12:36:47 +0000
  • 98c43c06b3 Some tweaks to ANNOUNCE. theraven 2011-03-22 00:17:17 +0000
  • 62536ce247 Added more header comments. theraven 2011-03-22 00:08:45 +0000
  • faa741b133 Added some header documentation for runtime functions. theraven 2011-03-21 23:54:42 +0000
  • ff21fcc43d Added C++ include guards to capabilities.h theraven 2011-03-21 18:32:28 +0000
  • 7336df75bc Added some more comments, C++ include guards around runtime.h. theraven 2011-03-21 18:31:25 +0000
  • 2c21235cc2 Fix multiple include guard in capabilities.h. theraven 2011-03-21 18:26:23 +0000
  • 7e465eb325 Tweak building without ObjC++ support a bit. theraven 2011-03-21 17:44:51 +0000
  • 73e1e2934b It turns out that Apple chose some confusing and non-intuitive semantics for catching Objective-C objects in C++ catch statements (i.e. they follow Objective-C semantics, not C++ semantics, irrespective of whether you use C++ or ObjC syntax). We now default to Apple-compatible behaviour, but provide a function that allows users to select the sane semantics if they prefer. theraven 2011-03-21 17:39:06 +0000
  • fc19309f1b Added documentation on the new EH stuff. theraven 2011-03-21 12:42:38 +0000
  • 6a2657ff6c Comment out a function that's only used for debugging. Not removed, because I'll probably break things and need it again... theraven 2011-03-20 22:29:08 +0000
  • d3b1038a8d Updated ANNOUNCE for (not yet released) 1.3 release. theraven 2011-03-20 21:42:49 +0000
  • 5a75ca53ff Eliminate some redundant copying. theraven 2011-03-20 21:36:46 +0000
  • 3ccb4240cc Fix getting Objective-C objects out of C++ exceptions. theraven 2011-03-20 21:20:42 +0000
  • e0719a9c62 Added Objective-C++ exception handling support. Allows throwing Objective-C objects with throw or @throw and catching them with catch() or @catch. theraven 2011-03-20 20:38:12 +0000
  • f9abfb022a Added some documentation regarding the foreign exception support in libobjc2. theraven 2011-03-16 16:42:56 +0000
  • fc28010846 ...but don't catch foreign exceptions in catch statements for the boxing class's superclass. theraven 2011-03-16 16:35:24 +0000
  • 4e5578b0be Allow boxed foreign exceptions to be caught in explicit catch statements. theraven 2011-03-16 16:22:30 +0000
  • df4570b90e Change language dialect to gnu99 from c99 - earlier commit required this, but I forgot to commit the GNUmakefile change. Note: the anonymous structure field extension that requires this is part of C1X, so we can probably change this to --std=c11 once C1X is actually finalised. theraven 2011-03-16 16:22:08 +0000
  • d6455e2a65 More EH tweaks. New ABI now uses "@id" for id catches and NULL for catchalls. Code compiled with GCC and clang with the old ABI will continue to use NULL for catchalls and id catches, which means that C++ exceptions will be caught in their boxed form here and must be explicitly rethrown. theraven 2011-03-16 15:48:06 +0000
  • 45c428f9a3 Allow the boxed exception object to rethrow itself, if it knows how. This means that a C++ function can throw a C++ object, we can box it in an ObjC object for passing through Objective-C stack frames, and then unbox it to catch it in C++ code. theraven 2011-03-16 15:04:26 +0000
  • a2db6f58be Made the selector name field into a union of the name (unregistered selectors) and the selector id / index (registered selectors), to more accurately reflect how it is used in the code. theraven 2011-03-15 17:27:26 +0000
  • 5df6a42107 Log a warning when loading the same class twice. theraven 2011-03-09 14:43:45 +0000
  • e11e8dee46 Tweak ordering when creating dtables to fix an irritating corner case in +initialize calls. theraven 2011-03-09 14:43:24 +0000
  • db53012509 Disabled loaded class test. theraven 2011-02-25 09:13:37 +0000
  • b416b31957 Property sizes should be specified in ptrdiff_t sizes. theraven 2011-02-23 13:58:24 +0000
  • ca2c7d1d9d Stop treating NSObject as magic and do what OS X does with regard to root objects and metaclasses. theraven 2011-02-23 12:00:11 +0000
  • 395c5fe220 Revert changes to sync.m, now that the function that it was calling is more robust. theraven 2011-02-22 00:34:23 +0000
  • 28e6960441 Make object_getIndexedIvars() more robust against compiler bugs. theraven 2011-02-22 00:31:43 +0000
  • e22f66bfae And, it seems, clang is really insistent that Class is an opaque type... theraven 2011-02-22 00:14:22 +0000
  • fa2e7a9d95 Note to self: type svn commit in the correct window. theraven 2011-02-22 00:02:40 +0000
  • 5c925929b4 Work around a bug in clang that incorrectly reports the size of a class. theraven 2011-02-22 00:00:51 +0000
  • 0ec21b99bf Added 1.2 release announcement. theraven 2011-02-21 13:49:19 +0000
  • 94e5f7b344 Return "nil" instead of nil from class_getName with a nil argument. This is stupid (what happens if you have a class called nil?) but it is what OS X does. theraven 2011-02-21 13:47:12 +0000
  • 2e3b19b735 Ugh, made the same mistake I spent an entire lecture telling my students not to make. Feeling stupid. theraven 2011-02-20 19:12:39 +0000
  • 4a3326f2fd Fix class_getMethodImplementation() semantics for Apple compatibility (returns forwarding selector IMP, doesn't actually do the forwarding). theraven 2011-02-20 00:00:12 +0000
  • 5574585b0f Don't load the same class twice. theraven 2011-02-19 23:58:03 +0000
  • 39ec489d16 Fix non gnustep-make Makefile. thebeing 2011-02-19 12:49:26 +0000
  • ff915fc373 Added a really ugly hack to work around the painfully broken register allocator in GCC that caused the compiler to crash when attempting to compile blocks_runtime.m. theraven 2011-02-13 11:18:30 +0000
  • 91e9758fda Add lots of checks for NULL-pointer arguments to runtime functions. theraven 2011-02-13 11:06:25 +0000
  • caa4a7253c Some memory management fixes to the blocks runtime. theraven 2011-02-12 22:39:01 +0000
  • 4e3cacf997 Comment out some unused variables. theraven 2011-02-12 21:05:41 +0000
  • cf7d127f66 Fix enumeration mutation function prototype to match what clang expects (id instead of void* argument). theraven 2011-02-12 21:05:06 +0000
  • 618003649d Made sync enter / exit functions return int (0). This is how their prototypes are declared on OS X, although neither clang nor gcc actually generates code that tests the return value... theraven 2011-02-12 20:51:24 +0000
  • e0d80861b5 Added some documentation. theraven 2011-02-12 20:01:50 +0000
  • dda2e03871 Whitespace cleanup. theraven 2011-02-12 19:18:22 +0000
  • 8c966c461b Return the forwarding IMP from get_imp if required. theraven 2011-02-12 18:19:19 +0000
  • 61a9379c9c Encodings of structures in ivars include the encoding of the field names (this is actually really nice: we could - in theory - expose structure field members via KVC, as an extension). This case was not correctly handled by libobjc2. theraven 2011-02-12 11:18:11 +0000
  • 63c2c0ce73 Added NULL checks to class_respondsToSelector() theraven 2011-02-12 11:03:41 +0000
  • e76143d006 And, for symmetry, remove an UNLOCK() that wasn't needed... theraven 2011-02-02 22:41:58 +0000
  • af90153d7f And fix the same bug in the other place. theraven 2011-02-02 17:19:24 +0000
  • b9f9ce3bba Fix missing UNLOCK() in hash table. theraven 2011-02-02 17:08:47 +0000
  • 8db63b976f Initial work on developer mode (allows classes to be replaced at run time with new versions, by cooperating IDEs). This support is part of ongoing work to provide fix-and-continue functionality with Clang / Cling and LanguageKit. theraven 2011-01-15 12:37:02 +0000
  • 39c9d21867 Remove use of macro that doesn't exist anymore... theraven 2011-01-15 12:35:22 +0000
  • bde6bf0e14 Fix truncated comment in header and 'worse than useless' macro. theraven 2011-01-13 21:29:24 +0000
  • ff3f7be5fc Added 1.1 announcement. Committed some work-in-progress clang-specific build stuff (don't use this, it doesn't work correctly yet). theraven 2011-01-10 15:11:50 +0000
  • 4ab4b4033b Bumped version to 1.1 theraven 2011-01-10 15:08:52 +0000
  • 661d406a8c Added property structure copy functions. theraven 2010-12-26 21:34:23 +0000
  • a7ea477400 libobjc2: put libobjc compatibility functions in runtime.h marked __attribute__((deprecated)) ericwa 2010-11-23 20:03:57 +0000
  • 14ccd9b0d3 Don't rely on constructor attribute - depending on undefined orderings is bad. theraven 2010-11-02 16:27:00 +0000
  • e70d00a76d Restore accidentally deleted toydispatch.h. theraven 2010-10-26 15:49:24 +0000
  • a83428b883 Move toydispatch into libobjc2. theraven 2010-10-26 15:44:43 +0000
  • b5f4782dbf Tidy up the block code slightly. theraven 2010-10-10 21:42:03 +0000
  • 786b34875e Removed line that should not have been committed. theraven 2010-10-10 21:38:28 +0000
  • 5519421c57 Apparently the BLOCK_HAS_DESCRIPTOR flag now means something else... theraven 2010-10-10 21:35:37 +0000
  • 37606d1936 Improvements to the Makefile. Patch by Pete French. theraven 2010-10-07 14:18:03 +0000
  • 2e2856ce73 Build a static library from the Makefile. theraven 2010-10-05 21:49:40 +0000
  • 299e6806b5 Fix build with the Makefile. theraven 2010-10-05 16:09:24 +0000
  • 9dbf872f33 Fixed crash when resolving user-allocated classes (e.g. KVO) revealed by r31482. qmathe 2010-10-05 14:57:07 +0000
  • f66a69561a Fix metametaclass setup. theraven 2010-10-05 12:37:05 +0000
  • 76bb7762ff Properly resolve the metaclass's isa pointer. theraven 2010-10-04 22:33:30 +0000
  • c4cc8f4734 Added another @synchronized() test that results in a segfault qmathe 2010-10-04 19:34:36 +0000
  • 10cb4f9b5c Corrected doc in few places to refer to @synchronized() and not @synchronize() qmathe 2010-10-04 19:01:16 +0000
  • 775021effa Don't leak dtables. theraven 2010-10-04 17:49:44 +0000
  • 7be9f34619 Fixed @synchronize() with a class that has had an instance used for @synchronize(). theraven 2010-10-04 17:44:17 +0000
  • e1a756110f Tweaked libobjc2 test suite to compile once again on Mac OS X (all tests pass) qmathe 2010-10-04 15:57:14 +0000
  • 0328c5cca9 Added tarball location to libobjc2 ANNOUNCE. theraven 2010-10-04 15:44:08 +0000