seh_try_macros2-00

Gregory M. Turner gmturner007 at ameritech.net
Sun May 18 23:22:22 CDT 2003


On Sunday 18 May 2003 12:04 pm, Steven Edwards wrote:
> There is some discussion on mingw-developer about merging Capsers SEH
> patches but there are patent issues as borland owns the patent on C++
> Style EH in C. The patent is BS as it even sights prior art but still I
> dont know who wants to take the risk on going to court for this. Now
> that M$ owns a large chunck of borland this might happen.

Regarding this, I think we all know where Borland can stick this patent to get 
the best ROI ;)

I mean, it would be suicidal for them to take some poor schmuck like me to 
court over this... their shareholders (including me) would probably fire the 
board before they'd tolerate the fallout from such an act.  And what damages 
are they going to recover?  The best they could hope for would be a crapload 
of bad press and some kind of cease-and-decist order... they sure ain't gonna 
get much out of me, I'm broke ;)  Anyhow, this is a discussion for another 
forum, to which I do not subscribe.
  
> Well, I don't think I have the time for this. It was quite a battle to
> get the fastcall patch into gcc, and this was only a (IIRC) ~10 or ~20 KB
> patch. Compare that to the SEH patch which is ~370 KB (and not even
> complete yet) and which may even violate Borland's patent. The patch is
> also written by me when I was a gcc newbie and I have probably made some
> mistakes. It would be nice if an experienced gcc hacker would review and
> improve the patch.
>
> I will however help in any way I can integrating the patch into gcc 3.4
> if needed.
>
> Finally, a gcc with only __try/__finally is only marginally better than
> a gcc without
> any SEH at all.

Well, it is the lower-hanging fruit.  With __except, you are looking at 
interactions with C++ exceptions, which could get interesting, and hard.  
Asking for __finally is just to say "hey, can't we run some code if the 
bloody stack is going to unwind so we don't have memory leaks?"  So it'd be 
better than nothing, perhaps there is even a good way to create __except 
macros once you have language support for __finally, I've never thought about 
that.

What concerns me more is that judging from what I see floating around out 
there, the gcc devs just plain aren't interested.  Some of them are saying 
"let's be flexible" but the majority seem to be saying "Do it in C++, C 
should not absorb any new fancy features unless they are standardized by 
ANSI" or some other discouraging thing.

> Alexandre Julliard wrote:
>
> >For Winelib apps, the solution is to add support to the compiler. For
> >IDL-generated code, the solution is to make our IDL compiler generate
> >code that uses the existing __TRY macros (or even generates the C code
> >directly without using the macros if this allows more optimizations).

I'm not sure I'm sold on this... I mean, I realize maybe I should be the one 
selling you if I want to get a patch in, but could you elaborate on the "why" 
of this a little bit?  I like the idea of generating __TRY from widl instead 
of RpcTryExcept, that's a consistiency issue basically... but expecting 
compiler support to materialize for seh seems a bit optimistic, frankly.

Why /not/ a pre-pre-processor?  It would allow us to implement this properly 
and portably... I'm sure the performance impact at compile time could be 
managed, perhaps by only running it against the code that needs it... such 
files could be marked or discovered at build-time in any number of ways.

Also, I was hoping to hear how everbody feels about -fexceptions?  It would 
seem that without it, g++ exceptions are going to break in winelib... or can 
those somehow route themselves through the CxxExcept stuff (I presume no, 
since those rely on compiler-generated unwind-tables that AFAIK gcc doesn't 
support).

-- 
"A just security to property is not afforded by that government,
under which unequal taxes oppress one species of property and
reward another species." --James Madison

gmt



More information about the wine-devel mailing list