Slowness problem due to sjlj-exceptions for Octave

Anthony Heading
Sat Sep 8 06:48:00 GMT 2007

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.



Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list