Implementing Exception Propagation (N2179)
Sebastian Redl
sebastian.redl@getdesigned.at
Sun May 25 16:57:00 GMT 2008
Hi once more,
So I've implemented this as I said in my last mail: by splitting out the
actual exception object and adding reference counting to that. Attached
is a patch for this. It should be applied to the trunk. It's built
against a tree that's about a week old.
GCC passes the test suite with this patch, except for a few tests. I've
yet to run the test suite for the unmodified version to have a baseline
to compare to, but I think none of the failures - except obviously the
libstdc++ abi_check failure - have anything to do with my patch.
I've not written any tests yet, or even tried exception_ptr out. But
normal throwing works.
This makes the questions I can't answer myself all the more pressing:
1) I've broken the C++ Base ABI. I believe that this ABI is not capable
of supporting exception_ptr, and that breaking it is unavoidable.
However, it seems that I should propose my changes to the base ABI group
instead of just changing the GCC code. Who should I contact? Should I
just send a mail to the base ABI group?
2) What should I change the exception class to? I may get an answer to
this as a result of #1, but then, maybe not.
3) Should I change the G++ ABI namespace? It's currently __cxxabiv1.
Should I change it to __cxxabiv2? It seems appropriate. And it would
turn the crashes I saw when I accidentally linked against the old
libstdc++ into load time failures.
Anyway, have fun trying out the patch. It contains an implementation of
exception_ptr and nested_exception.
Sebastian
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: n2197,n2559.patch
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20080525/9cbf1c0d/attachment.ksh>
More information about the Libstdc++
mailing list