From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani
With the latest emacs-25 branch, load modules/mod-test/mod-test.so,
then evaluate '(mod-test-sum "1" 2)'.=C2=A0 The backtrace= that pops up is
this:
=C2=A0 Debugger entered--Lisp error: (wrong-type-argument integerp "1&= quot;)
=C2=A0 =C2=A0 #<subr module-call>(#<save-value <pointer 00fdab9= 0> <unused> <unused> <unused>> ("1" 2)) =C2=A0 =C2=A0 mod-test-sum("1" 2)
=C2=A0 =C2=A0 eval((mod-test-sum "1" 2) nil)
=C2=A0 =C2=A0 elisp--eval-last-sexp(nil)
=C2=A0 =C2=A0 eval-last-sexp(nil)
=C2=A0 =C2=A0 funcall-interactively(eval-last-sexp nil)
=C2=A0 =C2=A0 call-interactively(eval-last-sexp nil nil)
=C2=A0 =C2=A0 command-execute(eval-last-sexp)
I believe the line with "<subr module-call>" is suboptimal,= in that it
looks alien and includes all kinds of unneeded and weirdly formatted
data.=C2=A0 AFAIU, the reason is that we deliberately unintern module-call.=
Should we perhaps reconsider that decision, so that the backtrace is
in more familiar form?=C2=A0 What exactly are the dangers of having
module-call exposed as any other primitive?