This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Slowness problem due to sjlj-exceptions for Octave
Brian Dessent wrote:
> All of the actual processing of all window events happens through
> messages passed to WndProc, but WndProc is never directly called
> by user code. So if you want to communicate information between the
> window procedure and the main function (such as: bad error happened,
> we need to bail!) you wrap the message pump with a try/catch and
> throw from the WndProc.
Fair enough. I'd never expected that to work safely; instead I caught
the exception inside WndProc, set a flag, returned normally, and checked
the flag inside the pump. Given it's valid, your contingent arguments
follow perfectly.
> [...] And we can't offer a DW2 Cygwin gcc that uses SJLJ for
> -mno-cygwin as they are really both the same back-end just with
> different headers and runtimes.
You raised the obvious point in a subsequent posting: back in February
there seemed to be broad support to kill -mno-cygwin; if there were two
backends, it might be possible to satisfy most people.
Indeed in that very message, you wrote:
> Here I meant to add that of course we have discussed deprecating
> -mno-cygwin and offering a real MinGW cross in its place, which would
> have its own back-end, and thus could have a different exception
> handling model. But by the time you've done all that, you might as
> well just package a separate gcc named "gcc-dw2" or whatever and have
> them both installable in parallel, to please everybody. This is what
> Danny did with his 4.2 MinGW releases.
Agreed very largely. The only point I might highlight is one that
Matsuoka-san mentioned with regard to Octave: using anything but a
"default" compiler is confusing for e.g. application users creating
plugin dlls. I think there's value in getting the packaging right,
so that the bulk of the populace might be spared the joys of
enlightenment about stack frame formats.
Regards
Anthony
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/