340 Commits (ed9d0f33c9325dcdd47fbb79798a19f2853b3897)
 

Author SHA1 Message Date
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
theraven 2e3b19b735 Ugh, made the same mistake I spent an entire lecture telling my students not to make. Feeling stupid. 15 years ago
theraven 4a3326f2fd Fix class_getMethodImplementation() semantics for Apple compatibility (returns forwarding selector IMP, doesn't actually do the forwarding). 15 years ago
theraven 5574585b0f Don't load the same class twice. 15 years ago
thebeing 39ec489d16 Fix non gnustep-make Makefile. 15 years ago
theraven 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. 15 years ago
theraven 91e9758fda Add lots of checks for NULL-pointer arguments to runtime functions. 15 years ago
theraven caa4a7253c Some memory management fixes to the blocks runtime. 15 years ago
theraven 4e3cacf997 Comment out some unused variables. 15 years ago
theraven cf7d127f66 Fix enumeration mutation function prototype to match what clang expects (id instead of void* argument). 15 years ago
theraven 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... 15 years ago
theraven e0d80861b5 Added some documentation. 15 years ago
theraven dda2e03871 Whitespace cleanup. 15 years ago
theraven 8c966c461b Return the forwarding IMP from get_imp if required. 15 years ago
theraven 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. 15 years ago
theraven 63c2c0ce73 Added NULL checks to class_respondsToSelector() 15 years ago