> 1) Drop exception handling around scm_boot_guile > Doing this at the end of main() is pointless.
Agreed. (It should have been caught by reference anyway.) > 2) Disable exception handling code > We don't throw in LilyPond and it's only bloating the executable: > before: 192,586,512B > after: 166,845,952B (-13.3%) A. Do we care that much about about 30 MB? Is someone complaining? B. The standard library may throw for various reasons. > This might also have a positive effect on the build time I have no experience with this. > as well as performance during runtime Not likely. The cost is about zero until one is thrown. I've worked on high-availability, high-performance network packet processing products where we used exceptions to good effect. I don't have a better reason to oppose disabling exceptions than that I've found them useful in other projects, so I'll say LGTM; but I think we could offer posterity a better justification than 30 MB and maybe build time. To me, the most convincing argument for disabling exceptions (which in g++ turns them into abort(), IIUC; I'm not sure about clang) would be that you don't want LilyPond contributors to have to write exception-safe code. It's not natural for C programmers coming into C++. Also, I'm sure you've already got some. https://codereview.appspot.com/571430048/