On 22 Feb 2009, at 12:42, David Chisnall wrote:
It sounds like a good thing to have the option of resuming, even
though it's generally not advisable.
Do you have a patch for gcc/libobjc which would allow that?
It won't require patching gcc, just libobjc. I don't have a patch
currently, but I can probably create one fairly easily. It just
requires adding an optional trampoline in the throw function that
will bounce the exception out before unwinding the stack.
Yes please ... I'd love to try that out.
The current code in Étoilé allows exceptions to be either resumed or
restarted. Restarting jumps back to the start of the exception-
handling block and lets the code try again. This is currently done
in a really messy way. Ideally I'd want to make sure that the
compiler inserts an entry into the DWARF table pointing to the start
of this block and then let the unwind library walk back up the stack
to find it. This is a much bigger change, and one I won't have time
to do for a little while.
I'm not sure about that ... it's certainly not needed by GNUstep and,
while I can see the appeal, I can't think of any systems that actually
allow re-execution of the 'try' block, so this would not fit into
normal coding paradigms.
What I'm really concerned about at the moment is trying to get code
into the gcc distribution before the next release which would let me
properly implement the Openstep/MacOS-X exception handling API when
using objc native exceptions. It looks like that's just a function to
set an uncaught exception handler.
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev