355 Commits (23b26820f54d6127bf09e83133a49d254a3a851d)
 

Author SHA1 Message Date
theraven 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... 15 years ago
theraven 95404fc7ba Tidied up Makefile. 15 years ago
theraven 600e970dea Separate ObjC++ support out into libobjcxx. Now code that doesn't need ObjCXX support can safely ignore it again. 15 years ago
theraven 7e71ffe24d Use correct pthread flag on OpenBSD.
Patch by Sebastian Reitenbach!
15 years ago
theraven 7a7fce3c97 Link with $(CXX) instead of ld, so that C++ linking is done properly. 15 years ago
theraven 3eb0ecb96b Ensure that the superclass is registered when testing for protocol conformance. 15 years ago
theraven 28b1db6f6e Make sure that -fPIC is specified for C++ files too. 15 years ago
theraven 06ff4be6a9 More build system tidies. 15 years ago
theraven 1d071bf4c1 Create the lib dir if it doesn't exist (never required in normal usage, but useful when installing to a temporary directory). 15 years ago
theraven 01558d3c4e Brought Makefile up to compatibility with GNUmakefile. 15 years ago
theraven 496c66bd0b Fix linker errors. 15 years ago
theraven 1ecd07d637 Don't use __attribute__((constructor)) for creating things that are called by
other constructors.
15 years ago
theraven f330ba0f36 Remove thread-local variable that isn't actually used... 15 years ago
thebeing 62afedcbaf Add a small test for alias registration. 15 years ago
thebeing 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.
15 years ago
theraven ed9d0f33c9 Actually install the header that's referenced. 15 years ago
theraven 4ee1b1f4ac Test first, then commit... 15 years ago
theraven 98c43c06b3 Some tweaks to ANNOUNCE. 15 years ago
theraven 62536ce247 Added more header comments. 15 years ago
theraven faa741b133 Added some header documentation for runtime functions. 15 years ago
theraven ff21fcc43d Added C++ include guards to capabilities.h 15 years ago
theraven 7336df75bc Added some more comments, C++ include guards around runtime.h. 15 years ago
theraven 2c21235cc2 Fix multiple include guard in capabilities.h. 15 years ago
theraven 7e465eb325 Tweak building without ObjC++ support a bit. 15 years ago
theraven 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.

Added a capability bit for the unified exception model, so code can require it.
This is not really required, since any code using it will link against the
ObjC++ personality function and will get a linker failure if it isn't supported.

Also enabled Objective-C++ stuff by default.  This adds a dependency on the C++
standard library (actually on libsupc++, but GNUstep Make wants to link against
libstd++ anyway), which is not ideal.  It can be disabled with:

$ gmake objectiver-cxx=no

I suggest that this is only done by people who know that they will never want
Objective-C++ support.
15 years ago
theraven fc19309f1b Added documentation on the new EH stuff. 15 years ago
theraven 6a2657ff6c Comment out a function that's only used for debugging. Not removed, because I'll probably break things and need it again... 15 years ago
theraven d3b1038a8d Updated ANNOUNCE for (not yet released) 1.3 release. 15 years ago
theraven 5a75ca53ff Eliminate some redundant copying. 15 years ago
theraven 3ccb4240cc Fix getting Objective-C objects out of C++ exceptions. 15 years ago
theraven e0719a9c62 Added Objective-C++ exception handling support. Allows throwing Objective-C objects with throw or @throw and catching them with catch() or @catch. 15 years ago
theraven f9abfb022a Added some documentation regarding the foreign exception support in libobjc2. 15 years ago
theraven fc28010846 ...but don't catch foreign exceptions in catch statements for the boxing class's superclass. 15 years ago
theraven 4e5578b0be Allow boxed foreign exceptions to be caught in explicit catch statements. 15 years ago
theraven 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.
15 years ago
theraven 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. 15 years ago
theraven 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. 15 years ago
theraven 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. 15 years ago
theraven 5df6a42107 Log a warning when loading the same class twice. 15 years ago
theraven e11e8dee46 Tweak ordering when creating dtables to fix an irritating corner case in +initialize calls. 15 years ago
theraven db53012509 Disabled loaded class test. 15 years ago
theraven b416b31957 Property sizes should be specified in ptrdiff_t sizes. 15 years ago
theraven ca2c7d1d9d Stop treating NSObject as magic and do what OS X does with regard to root objects and metaclasses. 15 years ago
theraven 395c5fe220 Revert changes to sync.m, now that the function that it was calling is more robust. 15 years ago
theraven 28e6960441 Make object_getIndexedIvars() more robust against compiler bugs. 15 years ago
theraven e22f66bfae And, it seems, clang is really insistent that Class is an opaque type... 15 years ago
theraven fa2e7a9d95 Note to self: type svn commit in the correct window. 15 years ago
theraven 5c925929b4 Work around a bug in clang that incorrectly reports the size of a class. 15 years ago
theraven 0ec21b99bf Added 1.2 release announcement. 15 years ago
theraven 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. 15 years ago