![](https://secure.gravatar.com/avatar/e5c196cf025ba9b94647b70e3af171c0.jpg?s=120&d=mm&r=g)
However, it requires changing the compiler. To build Inkscape and all other C++ libraries, I used TDM-GCC (a patched build of MinGW) version 4.4.1 with SJLJ unwinding. We don't use exceptions in performance critical code, so bothering with Dwarf2 to get a minimal perf gain while substantially increasing code size doesn't seem worth it. (SJLJ gtkmm is 3x smaller than the Dwarf2 one!) http://www.tdragon.net/recentgcc/
We didn't move to Dwarf2 to for the performance gains. We moved to it because of it superior Debug handling and to bring all our major platform into alignment. It has help us debug issues we would not have been able to figure out when using SJLJ .
http://sourceforge.net/mailarchive/forum.php?thread_name=3c78ff030710310739n... devel
Reasons SJLJ specifically is bad: -SJLJ is much worse in terms of performance efficiency, unusably so in some cases -Other modern targets are using Dwarf, and SJLJ implementation quality will decrease over time.
Dwarf is good: - Unlike SJLJ, a quality implementations are able to unwind SEH (Structured Exception Handling on Windows) frames properly. - Up to a 3x speed up in EH
Did you ask any developers why we did things the way we did them?
Joshua L. Blocher verbalshadow