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