Subject: bug#47318: 26.3; Modules on Emacs 26.3 broken?

From: Philipp Stephani <[email-masked]>
Date: Sun, 28 Mar 2021 18:36:32 +0200

Am Sa., 27. März 2021 um 18:53 Uhr schrieb Sanel Zukan <[email-masked]>:
>
>
> Philipp <[email-masked]> writes:
> > Could you please explain precisely what you're trying to do, starting from 'emacs -Q'?  Thanks.
>
> Sure! I'm going to use that mymod example.
>
>  1. Start emacs 26.3 with:
>     "~/programs/emacs/emacs-26.3/src/emacs -Q"
>
>  2. Run in *scratch* (or minibuffer):
>     (load "/home/sanel/programs/emacs/module-test/mymod.so")
>
>  Loading without ".so" extesions also works.
>
>  3. This will return 't'.
>
>  4. After mymod.so is loaded, 'mymod-test' function should be defined.
>
>  5. In *scratch* or minibuffer, running: (fboundp 'mymod-test) => nil.
>
> Also, evaliuating '(mymod-test)' will throw this error:
>
>   Debugger entered--Lisp error: (void-function mymod-test)
>     (mymod-test)
>     eval((mymod-test) nil)
>     elisp--eval-last-sexp(t)
>     eval-last-sexp(t)
>     eval-print-last-sexp(nil)
>     funcall-interactively(eval-print-last-sexp nil)
>     call-interactively(eval-print-last-sexp nil nil)
>     command-execute(eval-print-last-sexp)
>

I can't reproduce that, sorry. Both the fboundp check and calling the
function work as expected for me. I've compiled the module as
described in http://diobla.info/blog-archive/modules-tut.html.

>
> Replicating the same steps in emacs 27.2, in the step 4. it will
> return 't' and when '(mymod-test)' is called, it will return 42.
>
> Best regards,
> Sanel
>
> >>
> >> Any idea what could go wrong?
> >>
> >> Best regards,
> >> Sanel
> >>
> >> Philipp Stephani <[email-masked]> writes:
> >>> Am Mo., 22. März 2021 um 14:14 Uhr schrieb Sanel Zukan <[email-masked]>:
> >>>>
> >>>> Hi guys,
> >>>>
> >>>> I'm getting this [1] error from freshly compiled Emacs 26.3 and
> >>>> vterm-module.
> >>>>
> >>>> Also, emacs-eject [2] and very simple module [3] fails on 26.3 with the
> >>>> similar error. However, they are working fine on 27.1.
> >>>>
> >>>> Any idea what could go wrong? I also tried to run bare Emacs with
> >>>> 'emacs -Q'. In the all cases, Emacs is compiled with modules support.
> >>>>
> >>>> [1] https://github.com/akermu/emacs-libvterm/issues/181
> >>>> [2] https://github.com/syohex/emacs-eject
> >>>> [3] http://diobla.info/blog-archive/modules-tut.html
> >>>>
> >>>
> >>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30164 is probably at
> >>> least part of the answer.
> >>> However, loading modules in general should still work, even in Emacs
> >>> 26. Do you also get errors when loading the module file directly with
> >>> `load' instead of `require'?