Aurélien Aptel <address@hidden
> schrieb am Do., 24. Sep. 2015 um 14:45 Uhr:
I haven't made any progress on errors. I was reading on
condition-case, setjmp/longjmp and how it's used for
signaling/throwing. I actually knew very little about it. I shouldnt
be the one writing this stuff I think... Anyway I was looking into how
I would set up a "catch-all" wrapping code so that we can implement a
funcall that always returns and I still haven't figured it out.
Note that code is only a suggestion how it could be implemented. It deviates from Daniel's design by using return parameters instead of TLS, but that's only a minor difference. The important part is the addition of protected_call_n to eval.c.
And realisticly if we
want this in emacs 25 it's the only way (I don't feel confident enough
to do that bit properly and I'm the only one working on this).
I feel relatively strongly about this, so I'd work on implementing this if you'd like.
always fix it afterwards or simply have a "safe" and an "unsafe"
version of funcall in the API.
Going from the safe to the unsafe direction is easy if it's really required, but going the other direction is hard. I'd suggest to only implement the safe version for now and only add the unsafe version if there's some data that shows it's required.
I think changing the API in the early stage is fine and I don't worry
too much about binary API changes because it's only going to be used
with GPL plugins (i.e. modules can be fixed and recompiled, most of
True, however once there's an API it's a good idea to keep it stable. I expect people to start writing modules relatively soon once the interface is available, so it's better to put a bit more effort into the interface.