From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani
Some updates.
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 impleme= nt a
funcall that always returns and I still haven't figured it out.I have implemented this in a private fork:=C2=A0https://github.com/phst/emacs-dynamic-module/co= mmit/b14073ef8a522bdb90a8d7f0edc575edfd75da26Note that code = is only a suggestion how it could be implemented. It deviates from Daniel= 39;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.=C2=A0And realist= icly if we
want this in emacs 25 it's the only way (I don't feel confident eno= ugh
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.=C2=A0We can
always fix it afterwards or simply have a "safe" and an "uns= afe"
version of funcall in the API.Going from t= he safe to the unsafe direction is easy if it's really required, but go= ing 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 t= hat shows it's required.=C2=A0I 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
the time).
True, however once there's an API = it's a good idea to keep it stable. I expect people to start writing mo= dules relatively soon once the interface is available, so it's better t= o put a bit more effort into the interface.=C2=A0