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