On 09/28/2015 08:25 AM, Philipp Stephani wrote: > > > Stefan Monnier > schrieb am Di., 15. Sep. 2015 um > 02:55 Uhr: > > Just, FWIW we can keep talking about it, but my opinion is quite firmly > made. I want the first API to provide access to the "naked" primitives > with no condition-case wrapping. > > > This is wrong and dangerous. It makes dynamic loading far less useful > than it could be. Essentially modules e.g. written in C++ will have to > consist of a small C shim that makes IPC calls to some out-of-process > server. While I agree that making non-local exits part of the public API is a titanic footgun and a mistake we'll regret for decades, it's not the case that it forces non-C modules to use IPC shims. Emacs non-local unwinding stops at the first matching condition_case on the stack, so as long there's a condition-case frame between a stack frame that can't be unwound with longjmp (say, one with C++ destructors) and the Emacs core, the program will work correctly if Emacs longjmps. Non-local returns are awful, yes, but they do not make it impossible to integrate non-C languages with Emacs.