Peter Dolding wrote:
Dwarf2 is stack-based and integrated into gcc on a lot of platforms. It uses a slightly different wording frame based. Basic operation is the same. Note if stack-based processor operations were patented Intel would hold the patent not Borland since they developed the processor features that let it happen.
nopes, Borland were the first to do stack-based exception handling. Everyone else used sensible architectures with native unwinding and exception handling based on function tables (yes, checked. SEH was developed in parallel on Alpha, VAX and x86 - the aforementioned Tru64, VMS and OS/2 implementations. And the tradition started back then). And besides, wonderful. Microsoft moves away from stack-based and GCC adopts it? we're screwed. Also: does it support exception handling in C too, now? or only C++? Because we need it in C. GCC's C++ compiler is too slow to turn e.g. our whole kernel into C++, and we have the impression that it generates gigantic executables. Finally: I see no mention in the DWARF specifications of exception handling standards, is this an abusive appropriation of the name as an obscure reference to some GCC internals?
Its the system of Microsoft/Borland SEH that is patented. Dwarf2 is a completely independently developed using a different system. Same interfaces to processor. Dwarf2 is not locked to x86 processors. Dwarf2 has now been extended to Dwarf3 to do support of pure 64 bit systems.
stack-based SEH doesn't depend on x86, either, and I find it much better on the whole. In fact, if we can piss on non-x86 compatibility (at least temporarily), I'd be very happy to port PSEH (it needs only minimal platform-specific code) - I think our system support for exception handling could easily support both, even. It's just the way it is in the real world
Non issue. KJKHyperion not true. A system exists in gcc for frame based exception handling. Its used. Only recently did mingw catch up. Even djgpp for dos has had it for years. Mingw is the last gcc to get it.
hey, it's not like we didn't pressure them all the time. And to repeat myself, we need this in C. Not C++. Absolutely sure of it. And we'll need it to catch faults, such as memory access violations, not just program exceptions - in fact, that's what using SEH in the kernel is all about