all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
@ 2018-01-14  6:36 Jean Louis
  2018-01-14 16:08 ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-14  6:36 UTC (permalink / raw)
  To: 30106

Hello,

I cannot compile the development version so that
dynamic modules work.

When making: make test, I can see this error:

  GEN      src/editfns-tests.log
  ELC      src/emacs-module-tests.elc

In toplevel form:
src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 1
make[3]: Target 'src/emacs-module-tests.log' not
remade because of errors.

And if try to load module pq (new one from
Github), I get errors like:

Debugger entered--Lisp error: (error "Loading file /package/text/emacs-27.0.50/share/emacs/27.0.50/lisp/vc/vc-git.elc failed to provide feature ‘pq’")
  require(pq)
  eval((require 'pq) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

If anybody can help me to make loading dynamic
modules with development version, let me know.

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-14  6:36 bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test' Jean Louis
@ 2018-01-14 16:08 ` Eli Zaretskii
  2018-01-14 17:47   ` Jean Louis
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-14 16:08 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Sun, 14 Jan 2018 09:36:03 +0300
> From: Jean Louis <bugs@gnu.support>
> 
> I cannot compile the development version so that
> dynamic modules work.
> 
> When making: make test, I can see this error:
> 
>   GEN      src/editfns-tests.log
>   ELC      src/emacs-module-tests.elc
> 
> In toplevel form:
> src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
> make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 1
> make[3]: Target 'src/emacs-module-tests.log' not
> remade because of errors.

How did you configure and build Emacs?  What were the commands you
used for that?

(FWIW, the emacs-module-tests test works for me with today's master
branch.)





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-14 16:08 ` Eli Zaretskii
@ 2018-01-14 17:47   ` Jean Louis
  2018-01-14 19:44     ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-14 17:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

Dear Eli,

I appreciate your efforts.


On Sun, Jan 14, 2018 at 06:08:48PM +0200, Eli Zaretskii wrote:
> > Date: Sun, 14 Jan 2018 09:36:03 +0300
> > From: Jean Louis <bugs@gnu.support>
> > 
> > I cannot compile the development version so that
> > dynamic modules work.
> > 
> > When making: make test, I can see this error:
> > 
> >   GEN      src/editfns-tests.log
> >   ELC      src/emacs-module-tests.elc
> > 
> > In toplevel form:
> > src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
> > make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 1
> > make[3]: Target 'src/emacs-module-tests.log' not
> > remade because of errors.
> 
> How did you configure and build Emacs?  What were the commands you
> used for that?
> 
> (FWIW, the emacs-module-tests test works for me with today's master
> branch.)

Here is how I did it:

./configure --prefix=/package/text/emacs-27.0.50/ --with-mailutils --without-imagemagick --without-pop --with-x-toolkit=lucid --with-modules

I really hope to find out what is wrong.


Jean
I 





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-14 17:47   ` Jean Louis
@ 2018-01-14 19:44     ` Eli Zaretskii
  2018-01-14 22:12       ` Jean Louis
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-14 19:44 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Sun, 14 Jan 2018 20:47:48 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 30106@debbugs.gnu.org
> 
> ./configure --prefix=/package/text/emacs-27.0.50/ --with-mailutils --without-imagemagick --without-pop --with-x-toolkit=lucid --with-modules

Does src/config.h have this line:

  #define HAVE_MODULES 1

And does src/Makefile have this line:

  MODULES_OBJ = dynlib.o emacs-module.o






^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-14 19:44     ` Eli Zaretskii
@ 2018-01-14 22:12       ` Jean Louis
  2018-01-15 13:14         ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-14 22:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106, Jean Louis

On Sun, Jan 14, 2018 at 09:44:40PM +0200, Eli Zaretskii wrote:
> > Date: Sun, 14 Jan 2018 20:47:48 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 30106@debbugs.gnu.org
> > 
> > ./configure --prefix=/package/text/emacs-27.0.50/ --with-mailutils --without-imagemagick --without-pop --with-x-toolkit=lucid --with-modules
> 
> Does src/config.h have this line:
> 
>   #define HAVE_MODULES 1

Output of grep MODULES src/config.h:

#define EMACS_CONFIG_FEATURES "XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES LCMS2"
#define HAVE_MODULES 1
#define MODULES_SUFFIX ".so"

> And does src/Makefile have this line:
> 
>   MODULES_OBJ = dynlib.o emacs-module.o

Output of grep MODULES Makefile:

LIBMODULES = -ldl
MODULES_OBJ = dynlib.o emacs-module.o
	eval.o floatfns.o fns.o font.o print.o lread.o $(MODULES_OBJ) \
   $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS) \



Jean






^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-14 22:12       ` Jean Louis
@ 2018-01-15 13:14         ` Eli Zaretskii
  2018-01-15 17:56           ` Glenn Morris
                             ` (2 more replies)
  0 siblings, 3 replies; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-15 13:14 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Mon, 15 Jan 2018 01:12:28 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: Jean Louis <bugs@gnu.support>, 30106@debbugs.gnu.org
> 
> Output of grep MODULES src/config.h:
> 
> #define EMACS_CONFIG_FEATURES "XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES LCMS2"
> #define HAVE_MODULES 1
> #define MODULES_SUFFIX ".so"
> 
> > And does src/Makefile have this line:
> > 
> >   MODULES_OBJ = dynlib.o emacs-module.o
> 
> Output of grep MODULES Makefile:
> 
> LIBMODULES = -ldl
> MODULES_OBJ = dynlib.o emacs-module.o
> 	eval.o floatfns.o fns.o font.o print.o lread.o $(MODULES_OBJ) \
>    $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS) \

This means your build does have support for modules.

Returning to the original error:

    ELC      src/emacs-module-tests.elc

  In toplevel form:
  src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'

line 32 of emacs-module-test.el is this:

  (require 'mod-test mod-test-file)

So one problem could be that mod-test-file is somehow not calculated
correctly:

  (eval-and-compile
    (defconst mod-test-file
      (substitute-in-file-name
       "$EMACS_TEST_DIRECTORY/data/emacs-module/mod-test")
      "File name of the module test file."))

So maybe EMACS_TEST_DIRECTORY is incorrect, you your Emacs tree
doesn't have the test/data/emacs-module/mod-test directory, or there's
no mod-test.so file in that directory?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 13:14         ` Eli Zaretskii
@ 2018-01-15 17:56           ` Glenn Morris
  2018-01-18 19:35             ` Philipp Stephani
  2018-01-15 18:09           ` Jean Louis
  2018-01-15 18:55           ` Jean Louis
  2 siblings, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-15 17:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106, Jean Louis

Eli Zaretskii wrote:

>   src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
>
> line 32 of emacs-module-test.el is this:
>
>   (require 'mod-test mod-test-file)
>
> So one problem could be that mod-test-file is somehow not calculated
> correctly:
>
>   (eval-and-compile
>     (defconst mod-test-file
>       (substitute-in-file-name
>        "$EMACS_TEST_DIRECTORY/data/emacs-module/mod-test")
>       "File name of the module test file."))
>
> So maybe EMACS_TEST_DIRECTORY is incorrect, you your Emacs tree
> doesn't have the test/data/emacs-module/mod-test directory, or there's
> no mod-test.so file in that directory?

But that would give a different error message.

It seems that Fmodule_load does not update load-history.
This is causing Frequire to report the wrong file names in its error
message, which is making it hard to diagnose the real problem.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 13:14         ` Eli Zaretskii
  2018-01-15 17:56           ` Glenn Morris
@ 2018-01-15 18:09           ` Jean Louis
  2018-01-15 18:55           ` Jean Louis
  2 siblings, 0 replies; 45+ messages in thread
From: Jean Louis @ 2018-01-15 18:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

Dear Eli,

See below:

On Mon, Jan 15, 2018 at 03:14:57PM +0200, Eli Zaretskii wrote:
> > Output of grep MODULES src/config.h:
> > 
> > #define EMACS_CONFIG_FEATURES "XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES LCMS2"
> > #define HAVE_MODULES 1
> > #define MODULES_SUFFIX ".so"
> > 
> > > And does src/Makefile have this line:
> > > 
> > >   MODULES_OBJ = dynlib.o emacs-module.o
> > 
> > Output of grep MODULES Makefile:
> > 
> > LIBMODULES = -ldl
> > MODULES_OBJ = dynlib.o emacs-module.o
> > 	eval.o floatfns.o fns.o font.o print.o lread.o $(MODULES_OBJ) \
> >    $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS) \
> 
> This means your build does have support for modules.
> 
> Returning to the original error:
> 
>     ELC      src/emacs-module-tests.elc

On my side that file is located in:

/sources/emacs/test/src

>   In toplevel form:
>   src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
> 
> line 32 of emacs-module-test.el is this:
> 
>   (require 'mod-test mod-test-file)

That is same so here.

> So one problem could be that mod-test-file is somehow not calculated
> correctly:
> 
>   (eval-and-compile
>     (defconst mod-test-file
>       (substitute-in-file-name
>        "$EMACS_TEST_DIRECTORY/data/emacs-module/mod-test")
>       "File name of the module test file."))
> 
> So maybe EMACS_TEST_DIRECTORY is incorrect, you your Emacs tree
> doesn't have the test/data/emacs-module/mod-test directory, or there's
> no mod-test.so file in that directory?

There exist no directory:
test/data/emacs-module/mod-test/

There is directory:
test/data/emacs-module/

inside of which are following files:

total 76
-rw-r--r-- 1 root root  9915 Jan  3 08:19 mod-test.c
-rwxr-xr-x 1 root root 62008 Jan 14 20:56 mod-test.so

Let me know if I can help anything more.

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 13:14         ` Eli Zaretskii
  2018-01-15 17:56           ` Glenn Morris
  2018-01-15 18:09           ` Jean Louis
@ 2018-01-15 18:55           ` Jean Louis
  2018-01-15 20:15             ` Eli Zaretskii
  2018-01-16 18:10             ` Eli Zaretskii
  2 siblings, 2 replies; 45+ messages in thread
From: Jean Louis @ 2018-01-15 18:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

On Mon, Jan 15, 2018 at 03:14:57PM +0200, Eli Zaretskii wrote:
> > Date: Mon, 15 Jan 2018 01:12:28 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: Jean Louis <bugs@gnu.support>, 30106@debbugs.gnu.org
> > 
> > Output of grep MODULES src/config.h:
> > 
> > #define EMACS_CONFIG_FEATURES "XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES LCMS2"
> > #define HAVE_MODULES 1
> > #define MODULES_SUFFIX ".so"
> > 
> > > And does src/Makefile have this line:
> > > 
> > >   MODULES_OBJ = dynlib.o emacs-module.o
> > 
> > Output of grep MODULES Makefile:
> > 
> > LIBMODULES = -ldl
> > MODULES_OBJ = dynlib.o emacs-module.o
> > 	eval.o floatfns.o fns.o font.o print.o lread.o $(MODULES_OBJ) \
> >    $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS) \
> 
> This means your build does have support for modules.
> 
> Returning to the original error:
> 
>     ELC      src/emacs-module-tests.elc
> 
>   In toplevel form:
>   src/emacs-module-tests.el:32:1:Error: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
> 
> line 32 of emacs-module-test.el is this:
> 
>   (require 'mod-test mod-test-file)
> 
> So one problem could be that mod-test-file is somehow not calculated
> correctly:
> 
>   (eval-and-compile
>     (defconst mod-test-file
>       (substitute-in-file-name
>        "$EMACS_TEST_DIRECTORY/data/emacs-module/mod-test")
>       "File name of the module test file."))
> 
> So maybe EMACS_TEST_DIRECTORY is incorrect, you your Emacs tree
> doesn't have the test/data/emacs-module/mod-test directory, or there's
> no mod-test.so file in that directory?

I can see that 'make check' fails so:

  ELC      src/emacs-module-tests.elc
Emacs module assertion: Module function called from outside the current Lisp thread
/bin/sh: line 1:  6214 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el
make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 134
make[3]: Target 'src/emacs-module-tests.log' not remade because of errors.
  GEN      src/eval-tests.log





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 18:55           ` Jean Louis
@ 2018-01-15 20:15             ` Eli Zaretskii
  2018-01-16  5:17               ` Jean Louis
  2018-01-16 18:10             ` Eli Zaretskii
  1 sibling, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-15 20:15 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Mon, 15 Jan 2018 21:55:33 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 30106@debbugs.gnu.org
> 
> I can see that 'make check' fails so:
> 
>   ELC      src/emacs-module-tests.elc
> Emacs module assertion: Module function called from outside the current Lisp thread
> /bin/sh: line 1:  6214 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el
> make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 134
> make[3]: Target 'src/emacs-module-tests.log' not remade because of errors.
>   GEN      src/eval-tests.log

Was your Emacs built with threads?  What OS is that?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 20:15             ` Eli Zaretskii
@ 2018-01-16  5:17               ` Jean Louis
  2018-01-16 18:06                 ` Glenn Morris
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-16  5:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

Hello,

On Mon, Jan 15, 2018 at 10:15:55PM +0200, Eli Zaretskii wrote:
> > Date: Mon, 15 Jan 2018 21:55:33 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 30106@debbugs.gnu.org
> > 
> > I can see that 'make check' fails so:
> > 
> >   ELC      src/emacs-module-tests.elc
> > Emacs module assertion: Module function called from outside the current Lisp thread
> > /bin/sh: line 1:  6214 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el
> > make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 134
> > make[3]: Target 'src/emacs-module-tests.log' not remade because of errors.
> >   GEN      src/eval-tests.log
> 
> Was your Emacs built with threads?  What OS is that?

I tried building with this configuration:

./configure --prefix=/package/text/emacs
--with-modules --without-all --without-pop
--with-mailutils

and OS is just GNU with kernel Linux, I do not use
distributions, I am compiling from source.

I have tried --without-threads and it is not
working as well.

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-16  5:17               ` Jean Louis
@ 2018-01-16 18:06                 ` Glenn Morris
  2018-01-16 19:17                   ` Jean Louis
  0 siblings, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-16 18:06 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

Jean Louis wrote:

>>  ELC      src/emacs-module-tests.elc
>> 
>> In toplevel form:
>> src/emacs-module-tests.el:32:1:Error: Loading file
>> /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature
>> `mod-test'
>> make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 1
[...]
>> >   ELC      src/emacs-module-tests.elc
>> > Emacs module assertion: Module function called from outside the
>> > current Lisp thread
>> > /bin/sh: line 1: 6214 Aborted EMACSLOADPATH= LC_ALL=C
>> > EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs"
>> > --module-assertions -batch --no-site-file --no-site-lisp -L ":."
>> > -f batch-byte-compile src/emacs-module-tests.el

So what's changed such that you now get a different error to the one
that is the subject of this report?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 18:55           ` Jean Louis
  2018-01-15 20:15             ` Eli Zaretskii
@ 2018-01-16 18:10             ` Eli Zaretskii
  2018-01-16 19:18               ` Jean Louis
  1 sibling, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-16 18:10 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Mon, 15 Jan 2018 21:55:33 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 30106@debbugs.gnu.org
> 
> I can see that 'make check' fails so:
> 
>   ELC      src/emacs-module-tests.elc
> Emacs module assertion: Module function called from outside the current Lisp thread
> /bin/sh: line 1:  6214 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el

Ah, that changes almost everything.  The test fails here:

  static void
  module_assert_thread (void)
  {
    if (!module_assertions)
      return;
    if (!in_current_thread ())
      module_abort ("Module function called from outside "  <<<<<<<<<<<<<<<
		    "the current Lisp thread");
    if (gc_in_progress)
      module_abort ("Module function called during garbage collection");
  }

And in_current_thread does this:

  static bool
  in_current_thread (void)
  {
    if (current_thread == NULL)
      return false;
  #ifdef HAVE_PTHREAD
    return pthread_equal (pthread_self (), current_thread->thread_id);
  #elif defined WINDOWSNT
    return GetCurrentThreadId () == current_thread->thread_id;
  #endif
  }

So either current_thread is NULL in your case, or pthread_equal
returns false.  Can you tell which one of these happens?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-16 18:06                 ` Glenn Morris
@ 2018-01-16 19:17                   ` Jean Louis
  0 siblings, 0 replies; 45+ messages in thread
From: Jean Louis @ 2018-01-16 19:17 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106

On Tue, Jan 16, 2018 at 01:06:32PM -0500, Glenn Morris wrote:
> Jean Louis wrote:
> 
> >>  ELC      src/emacs-module-tests.elc
> >> 
> >> In toplevel form:
> >> src/emacs-module-tests.el:32:1:Error: Loading file
> >> /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature
> >> `mod-test'
> >> make[3]: *** [Makefile:146: src/emacs-module-tests.elc] Error 1
> [...]
> >> >   ELC      src/emacs-module-tests.elc
> >> > Emacs module assertion: Module function called from outside the
> >> > current Lisp thread
> >> > /bin/sh: line 1: 6214 Aborted EMACSLOADPATH= LC_ALL=C
> >> > EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs"
> >> > --module-assertions -batch --no-site-file --no-site-lisp -L ":."
> >> > -f batch-byte-compile src/emacs-module-tests.el
> 
> So what's changed such that you now get a different error to the one
> that is the subject of this report?

The original report relates to the fact that I
cannot do (require 'pq) for dynamic module in
question.

I have tried to "make check", and the message
above is the result of it.

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-16 18:10             ` Eli Zaretskii
@ 2018-01-16 19:18               ` Jean Louis
  2018-01-17 15:36                 ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-16 19:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

On Tue, Jan 16, 2018 at 08:10:49PM +0200, Eli Zaretskii wrote:
> > Date: Mon, 15 Jan 2018 21:55:33 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 30106@debbugs.gnu.org
> > 
> > I can see that 'make check' fails so:
> > 
> >   ELC      src/emacs-module-tests.elc
> > Emacs module assertion: Module function called from outside the current Lisp thread
> > /bin/sh: line 1:  6214 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el
> 
> Ah, that changes almost everything.  The test fails here:
> 
>   static void
>   module_assert_thread (void)
>   {
>     if (!module_assertions)
>       return;
>     if (!in_current_thread ())
>       module_abort ("Module function called from outside "  <<<<<<<<<<<<<<<
> 		    "the current Lisp thread");
>     if (gc_in_progress)
>       module_abort ("Module function called during garbage collection");
>   }
> 
> And in_current_thread does this:
> 
>   static bool
>   in_current_thread (void)
>   {
>     if (current_thread == NULL)
>       return false;
>   #ifdef HAVE_PTHREAD
>     return pthread_equal (pthread_self (), current_thread->thread_id);
>   #elif defined WINDOWSNT
>     return GetCurrentThreadId () == current_thread->thread_id;
>   #endif
>   }
> 
> So either current_thread is NULL in your case, or pthread_equal
> returns false.  Can you tell which one of these happens?

I cannot test it myself on my own. You may tell me
what to do, to test it.

Do I miss some software package?

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-16 19:18               ` Jean Louis
@ 2018-01-17 15:36                 ` Eli Zaretskii
  2018-01-17 17:03                   ` Jean Louis
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-17 15:36 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Tue, 16 Jan 2018 22:18:55 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 30106@debbugs.gnu.org
> 
> >   in_current_thread (void)
> >   {
> >     if (current_thread == NULL)
> >       return false;
> >   #ifdef HAVE_PTHREAD
> >     return pthread_equal (pthread_self (), current_thread->thread_id);
> >   #elif defined WINDOWSNT
> >     return GetCurrentThreadId () == current_thread->thread_id;
> >   #endif
> >   }
> > 
> > So either current_thread is NULL in your case, or pthread_equal
> > returns false.  Can you tell which one of these happens?
> 
> I cannot test it myself on my own. You may tell me
> what to do, to test it.

Apply the patch below, rebuild Emacs, rerun the test, and see if
there's the telltale "current_thread is NULL" message in the log.

> Do I miss some software package?

Not sure yet.

diff --git a/src/emacs-module.c b/src/emacs-module.c
index 00f0e86..333c583 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -804,7 +804,10 @@ static bool
 in_current_thread (void)
 {
   if (current_thread == NULL)
+    {
+      fprintf (stderr, "current_thread is NULL\n");
     return false;
+    }
 #ifdef HAVE_PTHREAD
   return pthread_equal (pthread_self (), current_thread->thread_id);
 #elif defined WINDOWSNT





^ permalink raw reply related	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 15:36                 ` Eli Zaretskii
@ 2018-01-17 17:03                   ` Jean Louis
  2018-01-17 18:25                     ` Eli Zaretskii
  2018-01-17 18:32                     ` Andy Moreton
  0 siblings, 2 replies; 45+ messages in thread
From: Jean Louis @ 2018-01-17 17:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

[-- Attachment #1: Type: text/plain, Size: 1550 bytes --]

On Wed, Jan 17, 2018 at 05:36:45PM +0200, Eli Zaretskii wrote:
> > Date: Tue, 16 Jan 2018 22:18:55 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 30106@debbugs.gnu.org
> > 
> > >   in_current_thread (void)
> > >   {
> > >     if (current_thread == NULL)
> > >       return false;
> > >   #ifdef HAVE_PTHREAD
> > >     return pthread_equal (pthread_self (), current_thread->thread_id);
> > >   #elif defined WINDOWSNT
> > >     return GetCurrentThreadId () == current_thread->thread_id;
> > >   #endif
> > >   }
> > > 
> > > So either current_thread is NULL in your case, or pthread_equal
> > > returns false.  Can you tell which one of these happens?
> > 
> > I cannot test it myself on my own. You may tell me
> > what to do, to test it.
> 
> Apply the patch below, rebuild Emacs, rerun the test, and see if
> there's the telltale "current_thread is NULL"
> message in the log.

I have done that, I did not see during "make
check" the line "current_thread is NULL", and I am
attaching the output from "make check".

Jean

> 
> > Do I miss some software package?
> 
> Not sure yet.
> 
> diff --git a/src/emacs-module.c b/src/emacs-module.c
> index 00f0e86..333c583 100644
> --- a/src/emacs-module.c
> +++ b/src/emacs-module.c
> @@ -804,7 +804,10 @@ static bool
>  in_current_thread (void)
>  {
>    if (current_thread == NULL)
> +    {
> +      fprintf (stderr, "current_thread is NULL\n");
>      return false;
> +    }
>  #ifdef HAVE_PTHREAD
>    return pthread_equal (pthread_self (), current_thread->thread_id);
>  #elif defined WINDOWSNT

[-- Attachment #2: check.log --]
[-- Type: text/plain, Size: 68524 bytes --]

nohup: ignoring input
make -C lib all
make[1]: Entering directory '/sources/emacs/lib'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/sources/emacs/lib'
make -C lib-src all
make[1]: Entering directory '/sources/emacs/lib-src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/sources/emacs/lib-src'
make -C src VCSWITNESS='$(srcdir)/../.git/logs/HEAD' all
make[1]: Entering directory '/sources/emacs/src'
make -C ../admin/charsets all
make[2]: Entering directory '/sources/emacs/admin/charsets'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/sources/emacs/admin/charsets'
make -C ../admin/unidata charscript.el
make[2]: Entering directory '/sources/emacs/admin/unidata'
make[2]: Nothing to be done for 'charscript.el'.
make[2]: Leaving directory '/sources/emacs/admin/unidata'
make -C ../admin/unidata all EMACS="../../src/bootstrap-emacs"
make[2]: Entering directory '/sources/emacs/admin/unidata'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/sources/emacs/admin/unidata'
make -C ../admin/charsets cp51932.el
make[2]: Entering directory '/sources/emacs/admin/charsets'
make[2]: Nothing to be done for 'cp51932.el'.
make[2]: Leaving directory '/sources/emacs/admin/charsets'
make -C ../admin/charsets eucjp-ms.el
make[2]: Entering directory '/sources/emacs/admin/charsets'
make[2]: Nothing to be done for 'eucjp-ms.el'.
make[2]: Leaving directory '/sources/emacs/admin/charsets'
make[1]: Leaving directory '/sources/emacs/src'
make -C lisp all
make[1]: Entering directory '/sources/emacs/lisp'
make -C ../leim all EMACS="../src/emacs"
make[2]: Entering directory '/sources/emacs/leim'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/sources/emacs/leim'
make -C ../admin/grammars all EMACS="../../src/emacs"
make[2]: Entering directory '/sources/emacs/admin/grammars'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/sources/emacs/admin/grammars'
make[2]: Entering directory '/sources/emacs/lisp'
make[2]: Nothing to be done for 'compile-targets'.
make[2]: Leaving directory '/sources/emacs/lisp'
make[1]: Leaving directory '/sources/emacs/lisp'
make info-real info-dir
make[1]: Entering directory '/sources/emacs'
make -C doc/lispref info
make[2]: Entering directory '/sources/emacs/doc/lispref'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/sources/emacs/doc/lispref'
make -C doc/lispintro info
make[2]: Entering directory '/sources/emacs/doc/lispintro'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/sources/emacs/doc/lispintro'
make -C doc/emacs info
make[2]: Entering directory '/sources/emacs/doc/emacs'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/sources/emacs/doc/emacs'
make -C doc/misc info
make[2]: Entering directory '/sources/emacs/doc/misc'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/sources/emacs/doc/misc'
make[1]: Nothing to be done for 'info-dir'.
make[1]: Leaving directory '/sources/emacs'
make -C test check
make[1]: Entering directory '/sources/emacs/test'
rm -f *.tmp
make[2]: Entering directory '/sources/emacs/test'
make[3]: Entering directory '/sources/emacs/test'
  GEN      lib-src/emacsclient-tests.log
  GEN      lisp/abbrev-tests.log
  GEN      lisp/arc-mode-tests.log
  GEN      lisp/auth-source-pass-tests.log
  GEN      lisp/auth-source-tests.log
  GEN      lisp/autorevert-tests.log
  GEN      lisp/buff-menu-tests.log
  GEN      lisp/calc/calc-tests.log
  GEN      lisp/calendar/icalendar-tests.log
  GEN      lisp/calendar/parse-time-tests.log
  GEN      lisp/calendar/todo-mode-tests.log
  GEN      lisp/char-fold-tests.log
  GEN      lisp/color-tests.log
  ELC      lisp/comint-tests.elc
  GEN      lisp/comint-tests.log
  GEN      lisp/dabbrev-tests.log
  GEN      lisp/descr-text-tests.log
  GEN      lisp/dired-aux-tests.log
  GEN      lisp/dired-tests.log
  GEN      lisp/dired-x-tests.log
  GEN      lisp/dom-tests.log
  GEN      lisp/electric-tests.log
  GEN      lisp/emacs-lisp/benchmark-tests.log
  ELC      lisp/emacs-lisp/bytecomp-tests.elc
  GEN      lisp/emacs-lisp/bytecomp-tests.log
  GEN      lisp/emacs-lisp/checkdoc-tests.log
  GEN      lisp/emacs-lisp/cl-extra-tests.log
  GEN      lisp/emacs-lisp/cl-generic-tests.log
  GEN      lisp/emacs-lisp/cl-lib-tests.log
  GEN      lisp/emacs-lisp/cl-macs-tests.log
  GEN      lisp/emacs-lisp/cl-print-tests.log
  GEN      lisp/emacs-lisp/cl-seq-tests.log
  GEN      lisp/emacs-lisp/derived-tests.log
  GEN      lisp/emacs-lisp/edebug-tests.log
  ELC      lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.elc
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.

In toplevel form:
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:97:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:101:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:105:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:106:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:179:8:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:179:24:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:184:8:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:184:24:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:219:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:231:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:236:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:237:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:261:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:271:4:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:275:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:276:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:299:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:300:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:310:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:311:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:323:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:324:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:328:14:Warning:
    Obsolete name arg "test" to constructor eitest-Jd
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:349:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:350:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:356:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:357:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:363:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:364:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:369:10:Warning:
    `next-method-p' is an obsolete function (as of 25.1); use
    `cl-next-method-p' instead.
lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:370:6:Warning:
    `call-next-method' is an obsolete function (as of 25.1); use
    `cl-call-next-method' instead.
Obsolete name arg "" to constructor CNM-2
  GEN      lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.log
  GEN      lisp/emacs-lisp/eieio-tests/eieio-test-persist.log
  ELC      lisp/emacs-lisp/eieio-tests/eieio-tests.elc
Class allocated slots do not need :initarg
Class allocated slots do not need :initarg
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.

In toplevel form:
lisp/emacs-lisp/eieio-tests/eieio-tests.el:169:18:Warning: `defgeneric' is an
    obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:246:4:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:291:4:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:300:4:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:355:6:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:353:36:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:376:12:Warning: Unknown slot
    `ooga-booga'
lisp/emacs-lisp/eieio-tests/eieio-tests.el:376:44:Warning: Unknown slot
    `ooga-booga'
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:404:8:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:418:12:Warning: Unknown slot
    `:derived-value'
lisp/emacs-lisp/eieio-tests/eieio-tests.el:424:20:Warning: Unknown slot
    `:derived-value'
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:455:6:Warning: `call-next-method'
    is an obsolete function (as of 25.1); use `cl-call-next-method' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
Obsolete name arg "II Test." to constructor II
Class allocated slots do not need :initarg
lisp/emacs-lisp/eieio-tests/eieio-tests.el:875:40:Warning: Unknown slot
    `missing-slot'
`defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead.
`defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead.
lisp/emacs-lisp/eieio-tests/eieio-tests.el:916:16:Warning: Obsolete name arg
    "toto" to constructor eieio--testing

In end of data:
lisp/emacs-lisp/eieio-tests/eieio-tests.el:928:1:Warning: the following
    functions are not known to be defined: class-alloc-initarg--eieio-childp,
    static-method-class-2--eieio-childp, static-method-class-2,
    eitest-subordinate--eieio-childp, eitest-superior--eieio-childp,
    eitest-superior
  GEN      lisp/emacs-lisp/eieio-tests/eieio-tests.log
  GEN      lisp/emacs-lisp/ert-tests.log
  GEN      lisp/emacs-lisp/ert-x-tests.log
  GEN      lisp/emacs-lisp/faceup-tests/faceup-test-basics.log
  GEN      lisp/emacs-lisp/faceup-tests/faceup-test-files.log
  GEN      lisp/emacs-lisp/generator-tests.log
  ELC      lisp/emacs-lisp/gv-tests.elc
  GEN      lisp/emacs-lisp/gv-tests.log
  GEN      lisp/emacs-lisp/let-alist-tests.log
  GEN      lisp/emacs-lisp/lisp-mode-tests.log
  GEN      lisp/emacs-lisp/lisp-tests.log
  GEN      lisp/emacs-lisp/map-tests.log
  ELC      lisp/emacs-lisp/nadvice-tests.elc
  GEN      lisp/emacs-lisp/nadvice-tests.log
  GEN      lisp/emacs-lisp/package-tests.log
  ELC      lisp/emacs-lisp/pcase-tests.elc
  GEN      lisp/emacs-lisp/pcase-tests.log
  GEN      lisp/emacs-lisp/pp-tests.log
  GEN      lisp/emacs-lisp/regexp-opt-tests.log
  GEN      lisp/emacs-lisp/ring-tests.log
  GEN      lisp/emacs-lisp/rmc-tests.log
  GEN      lisp/emacs-lisp/rx-tests.log
  GEN      lisp/emacs-lisp/seq-tests.log
  GEN      lisp/emacs-lisp/subr-x-tests.log
  GEN      lisp/emacs-lisp/tabulated-list-test.log
  GEN      lisp/emacs-lisp/testcover-tests.log
  GEN      lisp/emacs-lisp/thunk-tests.log
  GEN      lisp/emacs-lisp/timer-tests.log
  GEN      lisp/emulation/viper-tests.log
  GEN      lisp/epg-tests.log
  GEN      lisp/erc/erc-track-tests.log
  GEN      lisp/eshell/em-hist-tests.log
  GEN      lisp/eshell/em-ls-tests.log
  GEN      lisp/eshell/eshell-tests.log
  GEN      lisp/faces-tests.log
  GEN      lisp/ffap-tests.log
  ELC      lisp/filenotify-tests.elc
  GEN      lisp/filenotify-tests.log
  GEN      lisp/files-tests.log
  GEN      lisp/files-x-tests.log
  GEN      lisp/gnus/gnus-tests.log
  GEN      lisp/gnus/message-tests.log
  GEN      lisp/help-fns-tests.log
  GEN      lisp/hi-lock-tests.log
  GEN      lisp/htmlfontify-tests.log
  GEN      lisp/ibuffer-tests.log
  GEN      lisp/ido-tests.log
  GEN      lisp/imenu-tests.log
  GEN      lisp/info-xref-tests.log
  GEN      lisp/international/mule-tests.log
  GEN      lisp/international/mule-util-tests.log
  GEN      lisp/international/ucs-normalize-tests.log
  GEN      lisp/isearch-tests.log
  GEN      lisp/jit-lock-tests.log
  GEN      lisp/json-tests.log
  GEN      lisp/kmacro-tests.log
  GEN      lisp/ls-lisp-tests.log
  GEN      lisp/mail/rmail-tests.log
  GEN      lisp/man-tests.log
  GEN      lisp/md4-tests.log
  GEN      lisp/minibuffer-tests.log
  GEN      lisp/mouse-tests.log
  GEN      lisp/net/dbus-tests.log
  GEN      lisp/net/gnutls-tests.log
  GEN      lisp/net/mailcap-tests.log
  GEN      lisp/net/network-stream-tests.log
  GEN      lisp/net/newsticker-tests.log
  GEN      lisp/net/puny-tests.log
  GEN      lisp/net/sasl-scram-rfc-tests.log
  GEN      lisp/net/shr-tests.log
  GEN      lisp/net/tramp-archive-tests.log
  GEN      lisp/net/tramp-tests.log
  GEN      lisp/obarray-tests.log
  GEN      lisp/progmodes/bat-mode-tests.log
  GEN      lisp/progmodes/cc-mode-tests.log
  GEN      lisp/progmodes/compile-tests.log
  GEN      lisp/progmodes/elisp-mode-tests.log
  GEN      lisp/progmodes/etags-tests.log
  GEN      lisp/progmodes/f90-tests.log
  GEN      lisp/progmodes/flymake-tests.log
  GEN      lisp/progmodes/js-tests.log
  GEN      lisp/progmodes/python-tests.log
  GEN      lisp/progmodes/ruby-mode-tests.log
  GEN      lisp/progmodes/sql-tests.log
  GEN      lisp/progmodes/subword-tests.log
  GEN      lisp/progmodes/xref-tests.log
  GEN      lisp/ps-print-tests.log
  GEN      lisp/register-tests.log
  GEN      lisp/replace-tests.log
  GEN      lisp/rot13-tests.log
  GEN      lisp/ses-tests.log
  GEN      lisp/shell-tests.log
  GEN      lisp/simple-tests.log
  GEN      lisp/sort-tests.log
  GEN      lisp/soundex-tests.log
  GEN      lisp/subr-tests.log
  GEN      lisp/tar-mode-tests.log
  GEN      lisp/textmodes/css-mode-tests.log
  GEN      lisp/textmodes/dns-mode-tests.log
  GEN      lisp/textmodes/mhtml-mode-tests.log
  GEN      lisp/textmodes/reftex-tests.log
  GEN      lisp/textmodes/sgml-mode-tests.log
  GEN      lisp/textmodes/tildify-tests.log
  GEN      lisp/thingatpt-tests.log
  GEN      lisp/url/url-auth-tests.log
  GEN      lisp/url/url-expand-tests.log
  GEN      lisp/url/url-future-tests.log
  GEN      lisp/url/url-parse-tests.log
  GEN      lisp/url/url-tramp-tests.log
  GEN      lisp/url/url-util-tests.log
  GEN      lisp/vc/add-log-tests.log
  GEN      lisp/vc/diff-mode-tests.log
  GEN      lisp/vc/ediff-diff-tests.log
  GEN      lisp/vc/ediff-ptch-tests.log
  GEN      lisp/vc/smerge-mode-tests.log
  GEN      lisp/vc/vc-bzr-tests.log
Running 3 tests (2018-01-17 17:54:54+0100)
Test vc-bzr-test-bug9726 backtrace:
  signal(error ("No VC backend is responsible for /tmp/vc-bzr-testvLXk
  error("No VC backend is responsible for %s" "/tmp/vc-bzr-testvLXkL6/
  vc-responsible-backend("/tmp/vc-bzr-testvLXkL6/bzr/ignored-dir")
  vc-dir("/tmp/vc-bzr-testvLXkL6/bzr/ignored-dir")
  (progn (make-directory ignored-dir) (let ((temp-buffer (generate-new
  (unwind-protect (progn (make-directory ignored-dir) (let ((temp-buff
  (let* ((homedir (make-temp-file "vc-bzr-test" t)) (bzrdir (expand-fi
  (lambda nil (let* ((fn-0 (function executable-find)) (args-1 (condit
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name vc-bzr-test-bug9726 :documentation "T
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/vc/vc-bzr-tests.el" 
  command-line()
  normal-top-level()
Test vc-bzr-test-bug9726 condition:
    (error "No VC backend is responsible for /tmp/vc-bzr-testvLXkL6/bzr/ignored-dir")
   FAILED  1/3  vc-bzr-test-bug9726
Test vc-bzr-test-bug9781 backtrace:
  signal(error ("No VC backend is responsible for /tmp/vc-bzr-testp9QA
  error("No VC backend is responsible for %s" "/tmp/vc-bzr-testp9QA97/
  vc-responsible-backend("/tmp/vc-bzr-testp9QA97/bzr")
  vc-dir("/tmp/vc-bzr-testp9QA97/bzr")
  (progn (call-process vc-bzr-program nil nil nil "init") (make-direct
  (unwind-protect (progn (call-process vc-bzr-program nil nil nil "ini
  (let* ((homedir (make-temp-file "vc-bzr-test" t)) (bzrdir (expand-fi
  (lambda nil (let* ((fn-10 (function executable-find)) (args-11 (cond
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name vc-bzr-test-bug9781 :documentation "T
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/vc/vc-bzr-tests.el" 
  command-line()
  normal-top-level()
Test vc-bzr-test-bug9781 condition:
    (error "No VC backend is responsible for /tmp/vc-bzr-testp9QA97/bzr")
   FAILED  2/3  vc-bzr-test-bug9781
   passed  3/3  vc-bzr-test-faulty-bzr-autoloads

Ran 3 tests, 1 results as expected, 2 unexpected (2018-01-17 17:54:55+0100)

2 unexpected results:
   FAILED  vc-bzr-test-bug9726
   FAILED  vc-bzr-test-bug9781

make[3]: *** [Makefile:166: lisp/vc/vc-bzr-tests.log] Error 1
  GEN      lisp/vc/vc-hg-tests.log
  GEN      lisp/vc/vc-tests.log
Running 20 tests (2018-01-17 17:54:55+0100)
Test vc-test-bzr00-create-repo backtrace:
  signal(error ("Running bzr init ....FAILED (status 1)"))
  error("Running %s...FAILED (%s)" "bzr init ." "status 1")
  vc-do-command("*vc*" 0 "bzr" nil "init")
  apply(vc-do-command "*vc*" 0 "bzr" nil "init" nil)
  vc-bzr-command("init" nil 0 nil)
  vc-bzr-create-repo()
  apply(vc-bzr-create-repo nil)
  vc-call-backend(Bzr create-repo)
  vc-create-repo(Bzr)
  (cond ((eq backend 'CVS) (let ((tmp-dir (expand-file-name (make-temp
  vc-test--create-repo-function(Bzr)
  (progn (add-hook 'vc-test--cleanup-hook (list 'lambda nil (cons 'del
  (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (list 'lambd
  (let ((vc-handled-backends (list backend)) (default-directory (file-
  vc-test--create-repo(Bzr)
  (lambda nil (vc-test--create-repo 'Bzr))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name vc-test-bzr00-create-repo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/vc/vc-tests.el" "--e
  command-line()
  normal-top-level()
Test vc-test-bzr00-create-repo condition:
    (error "Running bzr init ....FAILED (status 1)")
   FAILED   1/20  vc-test-bzr00-create-repo
  skipped   2/20  vc-test-bzr01-register
  skipped   3/20  vc-test-bzr02-state
  skipped   4/20  vc-test-bzr03-working-revision
  skipped   5/20  vc-test-bzr04-checkout-model
Test vc-test-cvs00-create-repo backtrace:
  rename-file("module/CVS" "/tmp/vc-testR6RH3f/")
  (let ((tmp-dir (expand-file-name (make-temp-name "vc-test") temporar
  (cond ((eq backend 'CVS) (let ((tmp-dir (expand-file-name (make-temp
  vc-test--create-repo-function(CVS)
  (progn (add-hook 'vc-test--cleanup-hook (list 'lambda nil (cons 'del
  (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (list 'lambd
  (let ((vc-handled-backends (list backend)) (default-directory (file-
  vc-test--create-repo(CVS)
  (lambda nil (vc-test--create-repo 'CVS))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name vc-test-cvs00-create-repo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/vc/vc-tests.el" "--e
  command-line()
  normal-top-level()
Test vc-test-cvs00-create-repo condition:
    (file-missing "Renaming" "No such file or directory" "/tmp/vc-testR6RH3f/module/CVS" "/tmp/vc-testR6RH3f/CVS")
   FAILED   6/20  vc-test-cvs00-create-repo
  skipped   7/20  vc-test-cvs01-register
  skipped   8/20  vc-test-cvs02-state
  skipped   9/20  vc-test-cvs03-working-revision
  skipped  10/20  vc-test-cvs04-checkout-model
   passed  11/20  vc-test-git00-create-repo
Registering (/tmp/vc-testYZB7BT/foo bla)... 
Registering (/tmp/vc-testYZB7BT/foo bla)... done
   passed  12/20  vc-test-git01-register
vc-state2 nil
vc-state3 Git unregistered
Registering (foo)... 
Registering (foo)... done
vc-state4 added
vc-state5 Git unregistered
   passed  13/20  vc-test-git02-state
vc-working-revision1 nil
vc-working-revision2 nil
vc-working-revision3 nil
Registering (foo)... 
Registering (foo)... done
vc-working-revision4 nil
vc-working-revision5 nil
   passed  14/20  vc-test-git03-working-revision
vc-checkout-model1 implicit
vc-checkout-model2 implicit
vc-checkout-model3 implicit
Registering (foo)... 
Registering (foo)... done
vc-checkout-model4 implicit
vc-checkout-model5 implicit
   passed  15/20  vc-test-git04-checkout-model
   passed  16/20  vc-test-hg00-create-repo
Registering (/tmp/vc-testbjakLV/foo bla)... 
Registering (/tmp/vc-testbjakLV/foo bla)... done
   passed  17/20  vc-test-hg01-register
vc-state2 nil
vc-state3 Hg unregistered
Registering (foo)... 
Registering (foo)... done
vc-state4 added
vc-state5 Hg unregistered
   passed  18/20  vc-test-hg02-state
vc-working-revision1 nil
vc-working-revision2 nil
vc-working-revision3 nil
Registering (foo)... 
Registering (foo)... done
vc-working-revision4 0
vc-working-revision5 nil
   passed  19/20  vc-test-hg03-working-revision
vc-checkout-model1 implicit
vc-checkout-model2 implicit
vc-checkout-model3 implicit
Registering (foo)... 
Registering (foo)... done
vc-checkout-model4 implicit
vc-checkout-model5 implicit
   passed  20/20  vc-test-hg04-checkout-model

Ran 20 tests, 10 results as expected, 2 unexpected, 8 skipped (2018-01-17 17:54:58+0100)

2 unexpected results:
   FAILED  vc-test-bzr00-create-repo
   FAILED  vc-test-cvs00-create-repo

8 skipped results:
  SKIPPED  vc-test-bzr01-register
  SKIPPED  vc-test-bzr02-state
  SKIPPED  vc-test-bzr03-working-revision
  SKIPPED  vc-test-bzr04-checkout-model
  SKIPPED  vc-test-cvs01-register
  SKIPPED  vc-test-cvs02-state
  SKIPPED  vc-test-cvs03-working-revision
  SKIPPED  vc-test-cvs04-checkout-model

make[3]: *** [Makefile:166: lisp/vc/vc-tests.log] Error 1
  GEN      lisp/whitespace-tests.log
  GEN      lisp/xdg-tests.log
  ELC      lisp/xml-tests.elc
  GEN      lisp/xml-tests.log
  GEN      lisp/xt-mouse-tests.log
  GEN      src/alloc-tests.log
  GEN      src/buffer-tests.log
  GEN      src/callproc-tests.log
  GEN      src/casefiddle-tests.log
  GEN      src/charset-tests.log
  GEN      src/chartab-tests.log
  GEN      src/cmds-tests.log
  GEN      src/coding-tests.log
  GEN      src/data-tests.log
  GEN      src/decompress-tests.log
  GEN      src/doc-tests.log
  GEN      src/editfns-tests.log
  CCLD     data/emacs-module/mod-test.so
  ELC      src/emacs-module-tests.elc
Emacs module assertion: Module function called from outside the current Lisp thread
/bin/sh: line 1: 24340 Aborted                 EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=/sources/emacs/test "../src/emacs" --module-assertions -batch --no-site-file --no-site-lisp -L ":." -f batch-byte-compile src/emacs-module-tests.el
make[3]: *** [Makefile:147: src/emacs-module-tests.elc] Error 134
make[3]: Target 'src/emacs-module-tests.log' not remade because of errors.
  GEN      src/eval-tests.log
  GEN      src/fileio-tests.log
  GEN      src/floatfns-tests.log
  GEN      src/fns-tests.log
  ELC      src/font-tests.elc
  GEN      src/font-tests.log
  GEN      src/inotify-tests.log
  GEN      src/json-tests.log
  GEN      src/keyboard-tests.log
Running 1 tests (2018-01-17 17:55:00+0100)
make[3]: *** [Makefile:166: src/keyboard-tests.log] Error 1
  GEN      src/keymap-tests.log
  GEN      src/lcms-tests.log
  GEN      src/lread-tests.log
  GEN      src/marker-tests.log
  GEN      src/minibuf-tests.log
  GEN      src/print-tests.log
  ELC      src/process-tests.elc
  GEN      src/process-tests.log
  GEN      src/regex-tests.log
  GEN      src/syntax-tests.log
  GEN      src/textprop-tests.log
  GEN      src/thread-tests.log
Running 28 tests (2018-01-17 17:55:02+0100)
Test thread-errors backtrace:
  (make-thread (function call-error) "call-error")
  (setq th1 (make-thread (function call-error) "call-error"))
  (let (th1 th2) (setq th1 (make-thread (function call-error) "call-er
  (lambda nil (let (th1 th2) (setq th1 (make-thread (function call-err
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name thread-errors :documentation "Test wh
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test thread-errors condition:
    (void-function make-thread)
   FAILED   1/28  thread-errors
Test thread-signal-early backtrace:
  (make-thread (function (lambda nil (while t (thread-yield)))))
  (let ((thread (make-thread (function (lambda nil (while t (thread-yi
  (lambda nil (let ((thread (make-thread (function (lambda nil (while 
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name thread-signal-early :documentation "T
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test thread-signal-early condition:
    (void-function make-thread)
   FAILED   2/28  thread-signal-early
   passed   3/28  thread-sticky-point
Test threads-alive backtrace:
  signal(void-function (make-thread))
  apply(signal (void-function (make-thread)))
  (setq value-22 (apply fn-20 args-21))
  (unwind-protect (setq value-22 (apply fn-20 args-21)) (setq form-des
  (if (unwind-protect (setq value-22 (apply fn-20 args-21)) (setq form
  (let (form-description-24) (if (unwind-protect (setq value-22 (apply
  (let ((value-22 'ert-form-evaluation-aborted-23)) (let (form-descrip
  (let* ((fn-20 (function thread-alive-p)) (args-21 (condition-case er
  (lambda nil (let* ((fn-20 (function thread-alive-p)) (args-21 (condi
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-alive :documentation "test fo
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-alive condition:
    (void-function make-thread)
   FAILED   4/28  threads-alive
Test threads-all-threads backtrace:
  signal(void-function (all-threads))
  apply(signal (void-function (all-threads)))
  (setq value-27 (apply fn-25 args-26))
  (unwind-protect (setq value-27 (apply fn-25 args-26)) (setq form-des
  (if (unwind-protect (setq value-27 (apply fn-25 args-26)) (setq form
  (let (form-description-29) (if (unwind-protect (setq value-27 (apply
  (let ((value-27 'ert-form-evaluation-aborted-28)) (let (form-descrip
  (let* ((fn-25 (function listp)) (args-26 (condition-case err (let ((
  (lambda nil (let* ((fn-25 (function listp)) (args-26 (condition-case
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-all-threads :documentation "s
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-all-threads condition:
    (void-function all-threads)
   FAILED   5/28  threads-all-threads
Test threads-basic backtrace:
  (make-thread (function threads-test-thread1))
  (progn (setq threads-test-global nil) (make-thread (function threads
  (setq value-30 (progn (setq threads-test-global nil) (make-thread (f
  (unwind-protect (setq value-30 (progn (setq threads-test-global nil)
  (if (unwind-protect (setq value-30 (progn (setq threads-test-global 
  (let (form-description-31) (if (unwind-protect (setq value-30 (progn
  (let ((value-30 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-30 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-basic :documentation "basic t
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-basic condition:
    (void-function make-thread)
   FAILED   6/28  threads-basic
Test threads-condvar-mutex backtrace:
  (make-mutex)
  (let ((m (make-mutex))) (eq m (condition-mutex (make-condition-varia
  (setq value-83 (let ((m (make-mutex))) (eq m (condition-mutex (make-
  (unwind-protect (setq value-83 (let ((m (make-mutex))) (eq m (condit
  (if (unwind-protect (setq value-83 (let ((m (make-mutex))) (eq m (co
  (let (form-description-84) (if (unwind-protect (setq value-83 (let (
  (let ((value-83 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-83 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvar-mutex :documentation 
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvar-mutex condition:
    (void-function make-mutex)
   FAILED   7/28  threads-condvar-mutex
Test threads-condvar-name backtrace:
  signal(void-function (condition-name))
  apply(signal (void-function (condition-name)))
  (setq value-87 (apply fn-85 args-86))
  (unwind-protect (setq value-87 (apply fn-85 args-86)) (setq form-des
  (if (unwind-protect (setq value-87 (apply fn-85 args-86)) (setq form
  (let (form-description-89) (if (unwind-protect (setq value-87 (apply
  (let ((value-87 'ert-form-evaluation-aborted-88)) (let (form-descrip
  (let* ((fn-85 (function eq)) (args-86 (condition-case err (let ((sig
  (lambda nil (let* ((fn-85 (function eq)) (args-86 (condition-case er
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvar-name :documentation "
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvar-name condition:
    (void-function condition-name)
   FAILED   8/28  threads-condvar-name
Test threads-condvar-name-2 backtrace:
  signal(void-function (condition-name))
  apply(signal (void-function (condition-name)))
  (setq value-92 (apply fn-90 args-91))
  (unwind-protect (setq value-92 (apply fn-90 args-91)) (setq form-des
  (if (unwind-protect (setq value-92 (apply fn-90 args-91)) (setq form
  (let (form-description-94) (if (unwind-protect (setq value-92 (apply
  (let ((value-92 'ert-form-evaluation-aborted-93)) (let (form-descrip
  (let* ((fn-90 (function string=)) (args-91 (condition-case err (let 
  (lambda nil (let* ((fn-90 (function string=)) (args-91 (condition-ca
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvar-name-2 :documentation
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvar-name-2 condition:
    (void-function condition-name)
   FAILED   9/28  threads-condvar-name-2
Test threads-condvar-type backtrace:
  signal(void-function (make-condition-variable))
  apply(signal (void-function (make-condition-variable)))
  (setq value-80 (apply fn-78 args-79))
  (unwind-protect (setq value-80 (apply fn-78 args-79)) (setq form-des
  (if (unwind-protect (setq value-80 (apply fn-78 args-79)) (setq form
  (let (form-description-82) (if (unwind-protect (setq value-80 (apply
  (let ((value-80 'ert-form-evaluation-aborted-81)) (let (form-descrip
  (let* ((fn-78 (function eq)) (args-79 (condition-case err (let ((sig
  (lambda nil (let* ((fn-78 (function eq)) (args-79 (condition-case er
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvar-type :documentation "
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvar-type condition:
    (void-function make-condition-variable)
   FAILED  10/28  threads-condvar-type
Test threads-condvar-wait backtrace:
  (make-mutex)
  (let ((cv-mutex (make-mutex)) new-thread) (while (> (length (all-thr
  (lambda nil (let ((cv-mutex (make-mutex)) new-thread) (while (> (len
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvar-wait :documentation "
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvar-wait condition:
    (void-function make-mutex)
   FAILED  11/28  threads-condvar-wait
   passed  12/28  threads-condvarp
Test threads-condvarp-2 backtrace:
  signal(void-function (make-condition-variable))
  apply(signal (void-function (make-condition-variable)))
  (setq value-75 (apply fn-73 args-74))
  (unwind-protect (setq value-75 (apply fn-73 args-74)) (setq form-des
  (if (unwind-protect (setq value-75 (apply fn-73 args-74)) (setq form
  (let (form-description-77) (if (unwind-protect (setq value-75 (apply
  (let ((value-75 'ert-form-evaluation-aborted-76)) (let (form-descrip
  (let* ((fn-73 (function condition-variable-p)) (args-74 (condition-c
  (lambda nil (let* ((fn-73 (function condition-variable-p)) (args-74 
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-condvarp-2 :documentation "an
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-condvarp-2 condition:
    (void-function make-condition-variable)
   FAILED  13/28  threads-condvarp-2
Test threads-io-switch backtrace:
  (make-thread (function threads-test-io-switch))
  (progn (setq threads-test-global nil) (make-thread (function threads
  (setq value-66 (progn (setq threads-test-global nil) (make-thread (f
  (unwind-protect (setq value-66 (progn (setq threads-test-global nil)
  (if (unwind-protect (setq value-66 (progn (setq threads-test-global 
  (let (form-description-67) (if (unwind-protect (setq value-66 (progn
  (let ((value-66 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-66 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-io-switch :documentation "tes
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-io-switch condition:
    (void-function make-thread)
   FAILED  14/28  threads-io-switch
Test threads-is-one backtrace:
  current-thread()
  apply(current-thread nil)
  (setq value-2 (apply fn-0 args-1))
  (unwind-protect (setq value-2 (apply fn-0 args-1)) (setq form-descri
  (if (unwind-protect (setq value-2 (apply fn-0 args-1)) (setq form-de
  (let (form-description-4) (if (unwind-protect (setq value-2 (apply f
  (let ((value-2 'ert-form-evaluation-aborted-3)) (let (form-descripti
  (let* ((fn-0 (function current-thread)) (args-1 (condition-case err 
  (lambda nil (let* ((fn-0 (function current-thread)) (args-1 (conditi
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-is-one :documentation "test f
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-is-one condition:
    (void-function current-thread)
   FAILED  15/28  threads-is-one
Test threads-join backtrace:
  (make-thread (function threads-test-thread1))
  (let ((thread (make-thread (function threads-test-thread1)))) (threa
  (progn (setq threads-test-global nil) (let ((thread (make-thread (fu
  (setq value-32 (progn (setq threads-test-global nil) (let ((thread (
  (unwind-protect (setq value-32 (progn (setq threads-test-global nil)
  (if (unwind-protect (setq value-32 (progn (setq threads-test-global 
  (let (form-description-33) (if (unwind-protect (setq value-32 (progn
  (let ((value-32 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-32 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-join :documentation "test of 
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-join condition:
    (void-function make-thread)
   FAILED  16/28  threads-join
   passed  17/28  threads-join-self
Test threads-let-binding backtrace:
  (make-thread (function threads-test-thread2))
  (progn (setq threads-test-global nil) (make-thread (function threads
  (setq value-41 (progn (setq threads-test-global nil) (make-thread (f
  (unwind-protect (setq value-41 (progn (setq threads-test-global nil)
  (if (unwind-protect (setq value-41 (progn (setq threads-test-global 
  (let (form-description-42) (if (unwind-protect (setq value-41 (progn
  (let ((value-41 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-41 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-let-binding :documentation "s
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-let-binding condition:
    (void-function make-thread)
   FAILED  18/28  threads-let-binding
Test threads-mutex-contention backtrace:
  (make-mutex)
  (setq threads-mutex (make-mutex))
  (progn (setq threads-mutex (make-mutex)) (setq threads-mutex-key nil
  (setq value-62 (progn (setq threads-mutex (make-mutex)) (setq thread
  (unwind-protect (setq value-62 (progn (setq threads-mutex (make-mute
  (if (unwind-protect (setq value-62 (progn (setq threads-mutex (make-
  (let (form-description-63) (if (unwind-protect (setq value-62 (progn
  (let ((value-62 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-62 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutex-contention :documentati
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutex-contention condition:
    (void-function make-mutex)
   FAILED  19/28  threads-mutex-contention
Test threads-mutex-lock-unlock backtrace:
  (make-mutex)
  (let ((mx (make-mutex))) (mutex-lock mx) (mutex-unlock mx) t)
  (setq value-58 (let ((mx (make-mutex))) (mutex-lock mx) (mutex-unloc
  (unwind-protect (setq value-58 (let ((mx (make-mutex))) (mutex-lock 
  (if (unwind-protect (setq value-58 (let ((mx (make-mutex))) (mutex-l
  (let (form-description-59) (if (unwind-protect (setq value-58 (let (
  (let ((value-58 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-58 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutex-lock-unlock :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutex-lock-unlock condition:
    (void-function make-mutex)
   FAILED  20/28  threads-mutex-lock-unlock
Test threads-mutex-recursive backtrace:
  (make-mutex)
  (let ((mx (make-mutex))) (mutex-lock mx) (mutex-lock mx) (mutex-unlo
  (setq value-60 (let ((mx (make-mutex))) (mutex-lock mx) (mutex-lock 
  (unwind-protect (setq value-60 (let ((mx (make-mutex))) (mutex-lock 
  (if (unwind-protect (setq value-60 (let ((mx (make-mutex))) (mutex-l
  (let (form-description-61) (if (unwind-protect (setq value-60 (let (
  (let ((value-60 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-60 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutex-recursive :documentatio
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutex-recursive condition:
    (void-function make-mutex)
   FAILED  21/28  threads-mutex-recursive
Test threads-mutex-signal backtrace:
  (make-mutex)
  (setq threads-mutex (make-mutex))
  (progn (setq threads-mutex (make-mutex)) (setq threads-mutex-key nil
  (setq value-64 (progn (setq threads-mutex (make-mutex)) (setq thread
  (unwind-protect (setq value-64 (progn (setq threads-mutex (make-mute
  (if (unwind-protect (setq value-64 (progn (setq threads-mutex (make-
  (let (form-description-65) (if (unwind-protect (setq value-64 (progn
  (let ((value-64 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (lambda nil (let ((value-64 (gensym "ert-form-evaluation-aborted-"))
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutex-signal :documentation "
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutex-signal condition:
    (void-function make-mutex)
   FAILED  22/28  threads-mutex-signal
Test threads-mutex-type backtrace:
  signal(void-function (make-mutex))
  apply(signal (void-function (make-mutex)))
  (setq value-55 (apply fn-53 args-54))
  (unwind-protect (setq value-55 (apply fn-53 args-54)) (setq form-des
  (if (unwind-protect (setq value-55 (apply fn-53 args-54)) (setq form
  (let (form-description-57) (if (unwind-protect (setq value-55 (apply
  (let ((value-55 'ert-form-evaluation-aborted-56)) (let (form-descrip
  (let* ((fn-53 (function eq)) (args-54 (condition-case err (let ((sig
  (lambda nil (let* ((fn-53 (function eq)) (args-54 (condition-case er
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutex-type :documentation "ty
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutex-type condition:
    (void-function make-mutex)
   FAILED  23/28  threads-mutex-type
   passed  24/28  threads-mutexp
Test threads-mutexp-2 backtrace:
  signal(void-function (make-mutex))
  apply(signal (void-function (make-mutex)))
  (setq value-50 (apply fn-48 args-49))
  (unwind-protect (setq value-50 (apply fn-48 args-49)) (setq form-des
  (if (unwind-protect (setq value-50 (apply fn-48 args-49)) (setq form
  (let (form-description-52) (if (unwind-protect (setq value-50 (apply
  (let ((value-50 'ert-form-evaluation-aborted-51)) (let (form-descrip
  (let* ((fn-48 (function mutexp)) (args-49 (condition-case err (let (
  (lambda nil (let* ((fn-48 (function mutexp)) (args-49 (condition-cas
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-mutexp-2 :documentation "anot
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-mutexp-2 condition:
    (void-function make-mutex)
   FAILED  25/28  threads-mutexp-2
Test threads-name backtrace:
  signal(void-function (thread-name))
  apply(signal (void-function (thread-name)))
  (setq value-17 (apply fn-15 args-16))
  (unwind-protect (setq value-17 (apply fn-15 args-16)) (setq form-des
  (if (unwind-protect (setq value-17 (apply fn-15 args-16)) (setq form
  (let (form-description-19) (if (unwind-protect (setq value-17 (apply
  (let ((value-17 'ert-form-evaluation-aborted-18)) (let (form-descrip
  (let* ((fn-15 (function string=)) (args-16 (condition-case err (let 
  (lambda nil (let* ((fn-15 (function string=)) (args-16 (condition-ca
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-name :documentation "test for
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-name condition:
    (void-function thread-name)
   FAILED  26/28  threads-name
Test threads-threadp backtrace:
  signal(void-function (current-thread))
  apply(signal (void-function (current-thread)))
  (setq value-7 (apply fn-5 args-6))
  (unwind-protect (setq value-7 (apply fn-5 args-6)) (setq form-descri
  (if (unwind-protect (setq value-7 (apply fn-5 args-6)) (setq form-de
  (let (form-description-9) (if (unwind-protect (setq value-7 (apply f
  (let ((value-7 'ert-form-evaluation-aborted-8)) (let (form-descripti
  (let* ((fn-5 (function threadp)) (args-6 (condition-case err (let ((
  (lambda nil (let* ((fn-5 (function threadp)) (args-6 (condition-case
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-threadp :documentation "test 
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-threadp condition:
    (void-function current-thread)
   FAILED  27/28  threads-threadp
Test threads-type backtrace:
  signal(void-function (current-thread))
  apply(signal (void-function (current-thread)))
  (setq value-12 (apply fn-10 args-11))
  (unwind-protect (setq value-12 (apply fn-10 args-11)) (setq form-des
  (if (unwind-protect (setq value-12 (apply fn-10 args-11)) (setq form
  (let (form-description-14) (if (unwind-protect (setq value-12 (apply
  (let ((value-12 'ert-form-evaluation-aborted-13)) (let (form-descrip
  (let* ((fn-10 (function eq)) (args-11 (condition-case err (let ((sig
  (lambda nil (let* ((fn-10 (function eq)) (args-11 (condition-case er
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name threads-type :documentation "test of 
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or (tag :expensi
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "src/thread-tests.el" "--e
  command-line()
  normal-top-level()
Test threads-type condition:
    (void-function current-thread)
   FAILED  28/28  threads-type

Ran 28 tests, 4 results as expected, 24 unexpected (2018-01-17 17:55:26+0100)

24 unexpected results:
   FAILED  thread-errors
   FAILED  thread-signal-early
   FAILED  threads-alive
   FAILED  threads-all-threads
   FAILED  threads-basic
   FAILED  threads-condvar-mutex
   FAILED  threads-condvar-name
   FAILED  threads-condvar-name-2
   FAILED  threads-condvar-type
   FAILED  threads-condvar-wait
   FAILED  threads-condvarp-2
   FAILED  threads-io-switch
   FAILED  threads-is-one
   FAILED  threads-join
   FAILED  threads-let-binding
   FAILED  threads-mutex-contention
   FAILED  threads-mutex-lock-unlock
   FAILED  threads-mutex-recursive
   FAILED  threads-mutex-signal
   FAILED  threads-mutex-type
   FAILED  threads-mutexp-2
   FAILED  threads-name
   FAILED  threads-threadp
   FAILED  threads-type

make[3]: *** [Makefile:166: src/thread-tests.log] Error 1
  GEN      src/undo-tests.log
  GEN      src/xml-tests.log
make[3]: Leaving directory '/sources/emacs/test'
make[2]: [Makefile:268: check-doit] Error 2 (ignored)

SUMMARY OF TEST RESULTS
-----------------------
Files examined: 186
Ran 2658 tests, 1 failed to run, 2549 results as expected, 28 unexpected, 81 skipped
1 files did not contain any tests:
  src/emacs-module-tests.log
1 files did not finish:
  src/keyboard-tests.log
3 files contained unexpected results:
  src/thread-tests.log
  lisp/vc/vc-tests.log
  lisp/vc/vc-bzr-tests.log
make[2]: *** [Makefile:269: check-doit] Error 2
make[2]: Leaving directory '/sources/emacs/test'
make[1]: *** [Makefile:244: check] Error 2
make[1]: Leaving directory '/sources/emacs/test'
make: *** [Makefile:945: check] Error 2

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 17:03                   ` Jean Louis
@ 2018-01-17 18:25                     ` Eli Zaretskii
  2018-01-17 18:51                       ` Glenn Morris
  2018-01-17 19:20                       ` Jean Louis
  2018-01-17 18:32                     ` Andy Moreton
  1 sibling, 2 replies; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-17 18:25 UTC (permalink / raw)
  To: Jean Louis; +Cc: 30106

> Date: Wed, 17 Jan 2018 20:03:10 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 30106@debbugs.gnu.org
> 
> > Apply the patch below, rebuild Emacs, rerun the test, and see if
> > there's the telltale "current_thread is NULL"
> > message in the log.
> 
> I have done that, I did not see during "make
> check" the line "current_thread is NULL", and I am
> attaching the output from "make check".

Then I'm not sure what's going on there.  Is HAVE_PTHREAD defined in
src/config.h?

Does anyone else on this list see anything similar?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 17:03                   ` Jean Louis
  2018-01-17 18:25                     ` Eli Zaretskii
@ 2018-01-17 18:32                     ` Andy Moreton
  1 sibling, 0 replies; 45+ messages in thread
From: Andy Moreton @ 2018-01-17 18:32 UTC (permalink / raw)
  To: 30106

On Wed 17 Jan 2018, Jean Louis wrote:

> On Wed, Jan 17, 2018 at 05:36:45PM +0200, Eli Zaretskii wrote:
>> > Date: Tue, 16 Jan 2018 22:18:55 +0300
>> > From: Jean Louis <bugs@gnu.support>
>> > Cc: 30106@debbugs.gnu.org
>> > 
>> > >   in_current_thread (void)
>> > >   {
>> > >     if (current_thread == NULL)
>> > >       return false;
>> > >   #ifdef HAVE_PTHREAD
>> > >     return pthread_equal (pthread_self (), current_thread->thread_id);
>> > >   #elif defined WINDOWSNT
>> > >     return GetCurrentThreadId () == current_thread->thread_id;
>> > >   #endif
>> > >   }
>> > > 
>> > > So either current_thread is NULL in your case, or pthread_equal
>> > > returns false.  Can you tell which one of these happens?
>> > 
>> > I cannot test it myself on my own. You may tell me
>> > what to do, to test it.
>> 
>> Apply the patch below, rebuild Emacs, rerun the test, and see if
>> there's the telltale "current_thread is NULL"
>> message in the log.
>
> I have done that, I did not see during "make
> check" the line "current_thread is NULL", and I am
> attaching the output from "make check".

Looking at the log you supplied:

  CCLD     data/emacs-module/mod-test.so
  ELC      src/emacs-module-tests.elc
Emacs module assertion: Module function called from outside the current Lisp thread

That would seem to be the cause of your problem.

    AndyM






^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 18:25                     ` Eli Zaretskii
@ 2018-01-17 18:51                       ` Glenn Morris
  2018-01-17 18:58                         ` Glenn Morris
  2018-01-17 20:05                         ` Eli Zaretskii
  2018-01-17 19:20                       ` Jean Louis
  1 sibling, 2 replies; 45+ messages in thread
From: Glenn Morris @ 2018-01-17 18:51 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106, Jean Louis

Eli Zaretskii wrote:

> Does anyone else on this list see anything similar?

Same error on rhel 7.4 if configure with --without-threads --with-modules.

  Emacs module assertion: Module function called from outside the current
  Lisp thread





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 18:51                       ` Glenn Morris
@ 2018-01-17 18:58                         ` Glenn Morris
  2018-01-17 19:37                           ` Jean Louis
  2018-01-17 20:05                         ` Eli Zaretskii
  1 sibling, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-17 18:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106, Jean Louis

Glenn Morris wrote:

> Same error on rhel 7.4 if configure with --without-threads --with-modules.
>
>   Emacs module assertion: Module function called from outside the current
>   Lisp thread

PS --without-all implies --without-threads, ref.

  https://debbugs.gnu.org/30106#37

Note that the OP has switched to using --without-all from the initial
report, and is now having a different problem. Compare

https://debbugs.gnu.org/30106#11
https://debbugs.gnu.org/30106#37





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 18:25                     ` Eli Zaretskii
  2018-01-17 18:51                       ` Glenn Morris
@ 2018-01-17 19:20                       ` Jean Louis
  1 sibling, 0 replies; 45+ messages in thread
From: Jean Louis @ 2018-01-17 19:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106

On Wed, Jan 17, 2018 at 08:25:51PM +0200, Eli Zaretskii wrote:
> > Date: Wed, 17 Jan 2018 20:03:10 +0300
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 30106@debbugs.gnu.org
> > 
> > > Apply the patch below, rebuild Emacs, rerun the test, and see if
> > > there's the telltale "current_thread is NULL"
> > > message in the log.
> > 
> > I have done that, I did not see during "make
> > check" the line "current_thread is NULL", and I am
> > attaching the output from "make check".
> 
> Then I'm not sure what's going on there.  Is HAVE_PTHREAD defined in
> src/config.h?
> 
> Does anyone else on this list see anything similar?

src/config.h:

admin-> grep HAVE_PTHREAD src/config.h
#define HAVE_PTHREAD 1
#define HAVE_PTHREAD_H 1
#define HAVE_PTHREAD_SIGMASK 1





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 18:58                         ` Glenn Morris
@ 2018-01-17 19:37                           ` Jean Louis
  2018-01-18 23:01                             ` Glenn Morris
  0 siblings, 1 reply; 45+ messages in thread
From: Jean Louis @ 2018-01-17 19:37 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106

On Wed, Jan 17, 2018 at 01:58:17PM -0500, Glenn Morris wrote:
> Glenn Morris wrote:
> 
> > Same error on rhel 7.4 if configure with --without-threads --with-modules.
> >
> >   Emacs module assertion: Module function called from outside the current
> >   Lisp thread
> 
> PS --without-all implies --without-threads, ref.
> 
>   https://debbugs.gnu.org/30106#37
> 
> Note that the OP has switched to using --without-all from the initial
> report, and is now having a different problem. Compare
> 
> https://debbugs.gnu.org/30106#11
> https://debbugs.gnu.org/30106#37

In beginning I did not use without-all, then I
changed, overlooked it.

However, now at this point, but maybe after
patching, I could compile it so that it works. I
can load the dynamic module with (require 'pq)

Earlier, even though I did not use --without-all,
but I did use --with-modules I could not compile
it to work.

Jean





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 18:51                       ` Glenn Morris
  2018-01-17 18:58                         ` Glenn Morris
@ 2018-01-17 20:05                         ` Eli Zaretskii
  2018-01-17 20:29                           ` Glenn Morris
  1 sibling, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-17 20:05 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106, bugs

> From: Glenn Morris <rgm@gnu.org>
> Cc: Jean Louis <bugs@gnu.support>,  30106@debbugs.gnu.org
> Date: Wed, 17 Jan 2018 13:51:05 -0500
> 
> Eli Zaretskii wrote:
> 
> > Does anyone else on this list see anything similar?
> 
> Same error on rhel 7.4 if configure with --without-threads --with-modules.
> 
>   Emacs module assertion: Module function called from outside the current
>   Lisp thread

Does this go away if you put

  return true;

at the end of in_current_thread, outside of all the #ifdef's?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 20:05                         ` Eli Zaretskii
@ 2018-01-17 20:29                           ` Glenn Morris
  2018-01-17 22:16                             ` Philipp Stephani
  0 siblings, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-17 20:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 30106, bugs

Eli Zaretskii wrote:

>> Same error on rhel 7.4 if configure with --without-threads --with-modules.
>> 
>>   Emacs module assertion: Module function called from outside the current
>>   Lisp thread
>
> Does this go away if you put
>
>   return true;
>
> at the end of in_current_thread, outside of all the #ifdef's?

No.






^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 20:29                           ` Glenn Morris
@ 2018-01-17 22:16                             ` Philipp Stephani
  2018-01-17 22:18                               ` Philipp Stephani
                                                 ` (2 more replies)
  0 siblings, 3 replies; 45+ messages in thread
From: Philipp Stephani @ 2018-01-17 22:16 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106, bugs

[-- Attachment #1: Type: text/plain, Size: 1456 bytes --]

Glenn Morris <rgm@gnu.org> schrieb am Mi., 17. Jan. 2018 um 21:31 Uhr:

> Eli Zaretskii wrote:
>
> >> Same error on rhel 7.4 if configure with --without-threads
> --with-modules.
> >>
> >>   Emacs module assertion: Module function called from outside the
> current
> >>   Lisp thread
> >
> > Does this go away if you put
> >
> >   return true;
> >
> > at the end of in_current_thread, outside of all the #ifdef's?
>
> No.
>
>
>
>
>
The current implementation of in_current_thread is definitely bogus if
threads are disabled; I can't even compile temacs with --without-threads
--with-modules:

*emacs-module.c:814:42: **error: **incompatible integer to pointer
conversion passing 'sys_thread_t' (aka 'int') to parameter of type
'pthread_t _Nullable'*

*      (aka 'struct _opaque_pthread_t *') [-Werror,-Wint-conversion]*

  return pthread_equal (pthread_self (), current_thread->thread_id);

*                                         ^~~~~~~~~~~~~~~~~~~~~~~~~*

*/usr/include/pthread.h:340:59: note: *passing argument to parameter here

int pthread_equal(pthread_t _Nullable, pthread_t _Nullable);


because if threads are disabled, the thread ID is an int.

The function also doesn't handle the case where neither HAVE_PTHREAD nor
WINDOWSNT are defined (but maybe we don't have such platforms).

Maybe systhread.h should have a function

extern sys_thread_t sys_thread_self ();

so emacs-module.c doesn't have to care about the threading implementations.

[-- Attachment #2: Type: text/html, Size: 2881 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 22:16                             ` Philipp Stephani
@ 2018-01-17 22:18                               ` Philipp Stephani
  2018-01-17 22:28                                 ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
  2018-01-18 13:59                               ` bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test' Eli Zaretskii
  2018-01-18 17:40                               ` Glenn Morris
  2 siblings, 1 reply; 45+ messages in thread
From: Philipp Stephani @ 2018-01-17 22:18 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106, bugs

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am Mi., 17. Jan. 2018 um
23:16 Uhr:

> Maybe systhread.h should have a function
>
> extern sys_thread_t sys_thread_self ();
>
>
> Uh, it already has that :)

[-- Attachment #2: Type: text/html, Size: 691 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 1/2] Use recommended long options syntax in man page
  2018-01-17 22:18                               ` Philipp Stephani
@ 2018-01-17 22:28                                 ` Philipp Stephani
  2018-01-17 22:28                                   ` bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106) Philipp Stephani
  2018-01-17 22:35                                   ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
  0 siblings, 2 replies; 45+ messages in thread
From: Philipp Stephani @ 2018-01-17 22:28 UTC (permalink / raw)
  To: Glenn Morris, Eli Zaretskii, 30106; +Cc: Philipp Stephani

* doc/man/emacs.1.in: Specify equals sign for long options, as
recommended in the manual.
---
 doc/man/emacs.1.in | 50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/doc/man/emacs.1.in b/doc/man/emacs.1.in
index 7654c9610d..5116953041 100644
--- a/doc/man/emacs.1.in
+++ b/doc/man/emacs.1.in
@@ -61,7 +61,7 @@ The following options are of general interest:
 Edit
 .IR file .
 .TP
-.BI \-\-file " file\fR,\fP " \-\-find-file " file\fR,\fP " \-\-visit " file"
+.BI \-\-file= "file\fR,\fP " \-\-find-file= "file\fR,\fP " \-\-visit= "file"
 The same as specifying
 .I file
 directly as an argument.
@@ -79,7 +79,7 @@ Go to the specified
 and
 .IR column .
 .TP
-.BI \-\-chdir " directory"
+.BI \-\-chdir= "directory"
 Change to
 .IR directory .
 .TP
@@ -112,12 +112,12 @@ Lisp debugger during the processing of the user init file
 .BR ~/.emacs .
 This is useful for debugging problems in the init file.
 .TP
-.BI \-u " user\fR,\fP " \-\-user " user"
+.BI \-u " user\fR,\fP " \-\-user= "user"
 Load
 .IR user 's
 init file.
 .TP
-.BI \-t " file\fR,\fP " \-\-terminal " file"
+.BI \-t " file\fR,\fP " \-\-terminal= "file"
 Use specified
 .I file
 as the terminal instead of using stdin/stdout.
@@ -144,15 +144,15 @@ The following options are Lisp-oriented
 (these options are processed in the order encountered):
 .RS
 .TP 8
-.BI \-f " function\fR,\fP " \-\-funcall " function"
+.BI \-f " function\fR,\fP " \-\-funcall= "function"
 Execute the lisp function
 .IR function .
 .TP
-.BI \-l " file\fR,\fP " \-\-load " file"
+.BI \-l " file\fR,\fP " \-\-load= "file"
 Load the lisp code in the file
 .IR file .
 .TP
-.BI \-\-eval " expr\fR,\fP " \-\-execute " expr"
+.BI \-\-eval= "expr\fR,\fP " \-\-execute= "expr"
 Evaluate the Lisp expression
 .IR expr .
 .RE
@@ -168,12 +168,12 @@ The editor will send messages to stderr.
 You must use \-l and \-f options to specify files to execute
 and functions to call.
 .TP
-.BI \-\-script " file"
+.BI \-\-script= "file"
 Run
 .I file
 as an Emacs Lisp script.
 .TP
-.BI \-\-insert " file"
+.BI \-\-insert= "file"
 Insert contents of
 .I file
 into the current buffer.
@@ -183,7 +183,7 @@ Exit
 .I Emacs
 while in batch mode.
 .TP
-.BI \-L " dir\fR,\fP " \-\-directory " dir"
+.BI \-L " dir\fR,\fP " \-\-directory= "dir"
 Add
 .I dir
 to the list of directories
@@ -206,13 +206,13 @@ process so that you can continue using your original window.
 can be started with the following X switches:
 .RS
 .TP 8
-.BI \-\-name " name"
+.BI \-\-name= "name"
 Specify the name which should be assigned to the initial
 .I Emacs
 window.
 This controls looking up X resources as well as the window title.
 .TP
-.BI \-T " name\fR,\fP " \-\-title " name"
+.BI \-T " name\fR,\fP " \-\-title= "name"
 Specify the title for the initial X window.
 .TP
 .BR \-r ", " \-rv ", " \-\-reverse\-video
@@ -220,7 +220,7 @@ Display the
 .I Emacs
 window in reverse video.
 .TP
-.BI \-fn " font\fR,\fP " \-\-font " font"
+.BI \-fn " font\fR,\fP " \-\-font= "font"
 Set the
 .I Emacs
 window's font to that specified by
@@ -247,7 +247,7 @@ for more information.
 When you specify a font, be sure to put a space between the
 switch and the font name.
 .TP
-.BI \-\-xrm " resources"
+.BI \-\-xrm= "resources"
 Set additional X resources.
 .TP
 .BI "\-\-color\fR,\fP \-\-color=" mode
@@ -256,20 +256,20 @@ Override color mode for character terminals;
 defaults to "auto", and can also be "never", "auto", "always",
 or a mode name like "ansi8".
 .TP
-.BI \-bw " pixels\fR,\fP " \-\-border\-width " pixels"
+.BI \-bw " pixels\fR,\fP " \-\-border\-width= "pixels"
 Set the
 .I Emacs
 window's border width to the number of pixels specified by
 .IR pixels .
 Defaults to one pixel on each side of the window.
 .TP
-.BI \-ib " pixels\fR,\fP " \-\-internal\-border " pixels"
+.BI \-ib " pixels\fR,\fP " \-\-internal\-border= "pixels"
 Set the window's internal border width to the number of pixels specified
 by
 .IR pixels .
 Defaults to one pixel of padding on each side of the window.
 .TP
-.BI \-g " geometry\fR,\fP " \-\-geometry " geometry"
+.BI \-g " geometry\fR,\fP " \-\-geometry= "geometry"
 Set the
 .I Emacs
 window's width, height, and position as specified.
@@ -282,7 +282,7 @@ See the Emacs manual, section "Options for Window Size and Position",
 for information on how window sizes interact
 with selecting or deselecting the tool bar and menu bar.
 .TP
-.BI \-lsp " pixels\fR,\fP " \-\-line\-spacing " pixels"
+.BI \-lsp " pixels\fR,\fP " \-\-line\-spacing= "pixels"
 Additional space to put between lines.
 .TP
 .BR \-vb ", " \-\-vertical\-scroll\-bars
@@ -300,26 +300,26 @@ Make the first frame as wide as the screen.
 .BR \-mm ", " \-\-maximized
 Maximize the first frame, like "\-fw \-fh".
 .TP
-.BI \-fg " color\fR,\fP " \-\-foreground\-color " color"
+.BI \-fg " color\fR,\fP " \-\-foreground\-color= "color"
 On color displays, set the color of the text.
 
 Use the command
 .I M\-x list\-colors\-display
 for a list of valid color names.
 .TP
-.BI \-bg " color\fR,\fP " \-\-background\-color " color"
+.BI \-bg " color\fR,\fP " \-\-background\-color= "color"
 On color displays, set the color of the window's background.
 .TP
-.BI \-bd " color\fR,\fP " \-\-border\-color " color"
+.BI \-bd " color\fR,\fP " \-\-border\-color= "color"
 On color displays, set the color of the window's border.
 .TP
-.BI \-cr " color\fR,\fP " \-\-cursor\-color " color"
+.BI \-cr " color\fR,\fP " \-\-cursor\-color= "color"
 On color displays, set the color of the window's text cursor.
 .TP
-.BI \-ms " color\fR,\fP " \-\-mouse\-color " color"
+.BI \-ms " color\fR,\fP " \-\-mouse\-color= "color"
 On color displays, set the color of the window's mouse cursor.
 .TP
-.BI \-d " displayname\fR,\fP " \-\-display " displayname"
+.BI \-d " displayname\fR,\fP " \-\-display= "displayname"
 Create the
 .I Emacs
 window on the display specified by
@@ -337,7 +337,7 @@ in iconified state.
 .BR \-nbc ", " \-\-no\-blinking\-cursor
 Disable blinking cursor.
 .TP
-.BI \-\-parent-id " xid"
+.BI \-\-parent-id= "xid"
 Set parent window.
 .TP
 .BR \-nw ", " \-\-no\-window\-system
-- 
2.15.1






^ permalink raw reply related	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-17 22:28                                 ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
@ 2018-01-17 22:28                                   ` Philipp Stephani
  2018-01-18 14:04                                     ` Eli Zaretskii
  2018-01-17 22:35                                   ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
  1 sibling, 1 reply; 45+ messages in thread
From: Philipp Stephani @ 2018-01-17 22:28 UTC (permalink / raw)
  To: Glenn Morris, Eli Zaretskii, 30106; +Cc: Philipp Stephani

* src/systhread.c (sys_thread_equal): New function.
* src/emacs-module.c (in_current_thread): Use it.
---
 src/emacs-module.c |  7 ++-----
 src/systhread.c    | 18 ++++++++++++++++++
 src/systhread.h    |  1 +
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/emacs-module.c b/src/emacs-module.c
index 00f0e86d7d..298080e646 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -31,6 +31,7 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include "coding.h"
 #include "keyboard.h"
 #include "syssignal.h"
+#include "systhread.h"
 #include "thread.h"
 
 #include <intprops.h>
@@ -805,11 +806,7 @@ in_current_thread (void)
 {
   if (current_thread == NULL)
     return false;
-#ifdef HAVE_PTHREAD
-  return pthread_equal (pthread_self (), current_thread->thread_id);
-#elif defined WINDOWSNT
-  return GetCurrentThreadId () == current_thread->thread_id;
-#endif
+  return sys_thread_equal (sys_thread_self (), current_thread->thread_id);
 }
 
 static void
diff --git a/src/systhread.c b/src/systhread.c
index 4ffb7db143..3f162a2bcb 100644
--- a/src/systhread.c
+++ b/src/systhread.c
@@ -74,6 +74,12 @@ sys_thread_self (void)
   return 0;
 }
 
+bool
+sys_thread_equal (sys_thread_t t, sys_thread_t u)
+{
+  return t == u;
+}
+
 int
 sys_thread_create (sys_thread_t *t, const char *name,
 		   thread_creation_function *func, void *datum)
@@ -155,6 +161,12 @@ sys_thread_self (void)
   return pthread_self ();
 }
 
+bool
+sys_thread_equal (sys_thread_t t, sys_thread_t u)
+{
+  return pthread_equal (t, u);
+}
+
 int
 sys_thread_create (sys_thread_t *thread_ptr, const char *name,
 		   thread_creation_function *func, void *arg)
@@ -323,6 +335,12 @@ sys_thread_self (void)
   return (sys_thread_t) GetCurrentThreadId ();
 }
 
+bool
+sys_thread_equal (sys_thread_t t, sys_thread_t u)
+{
+  return t == u;
+}
+
 static thread_creation_function *thread_start_address;
 
 /* _beginthread wants a void function, while we are passed a function
diff --git a/src/systhread.h b/src/systhread.h
index 4745d22065..5dbb12dffb 100644
--- a/src/systhread.h
+++ b/src/systhread.h
@@ -100,6 +100,7 @@ extern void sys_cond_broadcast (sys_cond_t *);
 extern void sys_cond_destroy (sys_cond_t *);
 
 extern sys_thread_t sys_thread_self (void);
+extern bool sys_thread_equal (sys_thread_t, sys_thread_t);
 
 extern int sys_thread_create (sys_thread_t *, const char *,
 			      thread_creation_function *,
-- 
2.15.1






^ permalink raw reply related	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 1/2] Use recommended long options syntax in man page
  2018-01-17 22:28                                 ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
  2018-01-17 22:28                                   ` bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106) Philipp Stephani
@ 2018-01-17 22:35                                   ` Philipp Stephani
  1 sibling, 0 replies; 45+ messages in thread
From: Philipp Stephani @ 2018-01-17 22:35 UTC (permalink / raw)
  To: Glenn Morris, Eli Zaretskii, 30106; +Cc: Philipp Stephani

[-- Attachment #1: Type: text/plain, Size: 359 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am Mi., 17. Jan. 2018 um
23:30 Uhr:

> * doc/man/emacs.1.in: Specify equals sign for long options, as
> recommended in the manual.
>

Please ignore this, it obviously has nothing to do with this bug. I've
started off from the wrong branch and then didn't pay close attention to
the output of `git send-email'.

[-- Attachment #2: Type: text/html, Size: 716 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 22:16                             ` Philipp Stephani
  2018-01-17 22:18                               ` Philipp Stephani
@ 2018-01-18 13:59                               ` Eli Zaretskii
  2018-01-18 17:40                               ` Glenn Morris
  2 siblings, 0 replies; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-18 13:59 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 30106, bugs

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Wed, 17 Jan 2018 22:16:58 +0000
> Cc: Eli Zaretskii <eliz@gnu.org>, 30106@debbugs.gnu.org, bugs@gnu.support
> 
> The function also doesn't handle the case where neither HAVE_PTHREAD nor WINDOWSNT are defined
> (but maybe we don't have such platforms).

We don't, see sys_thread.c.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-17 22:28                                   ` bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106) Philipp Stephani
@ 2018-01-18 14:04                                     ` Eli Zaretskii
  2018-01-18 14:23                                       ` Philipp Stephani
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-18 14:04 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: phst, 30106

> From: Philipp Stephani <p.stephani2@gmail.com>
> Cc: Philipp Stephani <phst@google.com>
> Date: Wed, 17 Jan 2018 23:28:46 +0100
> 
> * src/systhread.c (sys_thread_equal): New function.
> * src/emacs-module.c (in_current_thread): Use it.

I'd prefer that the only file that calls systhread.c functions is
thread.c; systhread.c is supposed to be low-level code concealed from
application levels.  So this would call for another level of
indirection: add a new function to thread.c, and call that from
emacs-module.c.

Otherwise, LGTM for master; thanks.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 14:04                                     ` Eli Zaretskii
@ 2018-01-18 14:23                                       ` Philipp Stephani
  2018-01-18 15:23                                         ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Philipp Stephani @ 2018-01-18 14:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, 30106

[-- Attachment #1: Type: text/plain, Size: 889 bytes --]

Eli Zaretskii <eliz@gnu.org> schrieb am Do., 18. Jan. 2018 um 15:05 Uhr:

> > From: Philipp Stephani <p.stephani2@gmail.com>
> > Cc: Philipp Stephani <phst@google.com>
> > Date: Wed, 17 Jan 2018 23:28:46 +0100
> >
> > * src/systhread.c (sys_thread_equal): New function.
> > * src/emacs-module.c (in_current_thread): Use it.
>
> I'd prefer that the only file that calls systhread.c functions is
> thread.c; systhread.c is supposed to be low-level code concealed from
> application levels.  So this would call for another level of
> indirection: add a new function to thread.c, and call that from
> emacs-module.c.
>

Makes sense, I've moved in_current_thread to thread.c because it's
unrelated to modules.


>
> Otherwise, LGTM for master; thanks.
>
>
Can we push this to emacs-26? Right now emacs-26 can't even be compiled
with --without-threads --with-modules (on some systems at least).

[-- Attachment #2: Type: text/html, Size: 1510 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 14:23                                       ` Philipp Stephani
@ 2018-01-18 15:23                                         ` Eli Zaretskii
  2018-01-18 17:41                                           ` Glenn Morris
  2018-01-18 19:25                                           ` Philipp Stephani
  0 siblings, 2 replies; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-18 15:23 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: phst, 30106

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Thu, 18 Jan 2018 14:23:03 +0000
> Cc: phst@google.com, 30106@debbugs.gnu.org
> 
>  I'd prefer that the only file that calls systhread.c functions is
>  thread.c; systhread.c is supposed to be low-level code concealed from
>  application levels.  So this would call for another level of
>  indirection: add a new function to thread.c, and call that from
>  emacs-module.c.
> 
> Makes sense, I've moved in_current_thread to thread.c because it's unrelated to modules.

Thanks.

>  Otherwise, LGTM for master; thanks.
> 
> Can we push this to emacs-26? Right now emacs-26 can't even be compiled with --without-threads
> --with-modules (on some systems at least). 

How important is this?  --with-modules is an opt-in switch, and the
default is to build with threads.  So this sounds not very important
to me, and the change, although simple, is not really trivial, and
will affect any module.  So I'm uneasy putting this on emacs-26,
especially since the Emacs 26.0.91 tarball is already ready and is
awaiting upload, so this will only go into the next pretest, which I
hoped could be a release candidate...

Do you think leaving this for the next release will be so bad?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 22:16                             ` Philipp Stephani
  2018-01-17 22:18                               ` Philipp Stephani
  2018-01-18 13:59                               ` bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test' Eli Zaretskii
@ 2018-01-18 17:40                               ` Glenn Morris
  2 siblings, 0 replies; 45+ messages in thread
From: Glenn Morris @ 2018-01-18 17:40 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 30106, bugs

Philipp Stephani wrote:

> The function also doesn't handle the case where neither HAVE_PTHREAD nor
> WINDOWSNT are defined (but maybe we don't have such platforms).

I don't know, but if not then IMO configure should explicitly reject
that situation.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 15:23                                         ` Eli Zaretskii
@ 2018-01-18 17:41                                           ` Glenn Morris
  2018-01-18 18:53                                             ` Eli Zaretskii
  2018-01-18 19:25                                           ` Philipp Stephani
  1 sibling, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-18 17:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, Philipp Stephani, 30106


If it's not to be fixed then IMO in the meantime configure should
explicitly reject --with-modules if threads are disabled.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 17:41                                           ` Glenn Morris
@ 2018-01-18 18:53                                             ` Eli Zaretskii
  2018-01-18 22:55                                               ` Glenn Morris
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-18 18:53 UTC (permalink / raw)
  To: Glenn Morris; +Cc: phst, p.stephani2, 30106

> From: Glenn Morris <rgm@gnu.org>
> Cc: Philipp Stephani <p.stephani2@gmail.com>,  phst@google.com,  30106@debbugs.gnu.org
> Date: Thu, 18 Jan 2018 12:41:37 -0500
> 
> 
> If it's not to be fixed then IMO in the meantime configure should
> explicitly reject --with-modules if threads are disabled.

That'd replace one non-trivial change with another, so I think it's
worse than fixing the problem.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 15:23                                         ` Eli Zaretskii
  2018-01-18 17:41                                           ` Glenn Morris
@ 2018-01-18 19:25                                           ` Philipp Stephani
  1 sibling, 0 replies; 45+ messages in thread
From: Philipp Stephani @ 2018-01-18 19:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, 30106

[-- Attachment #1: Type: text/plain, Size: 1843 bytes --]

Eli Zaretskii <eliz@gnu.org> schrieb am Do., 18. Jan. 2018 um 16:23 Uhr:

> > From: Philipp Stephani <p.stephani2@gmail.com>
> > Date: Thu, 18 Jan 2018 14:23:03 +0000
> > Cc: phst@google.com, 30106@debbugs.gnu.org
> >
> >  I'd prefer that the only file that calls systhread.c functions is
> >  thread.c; systhread.c is supposed to be low-level code concealed from
> >  application levels.  So this would call for another level of
> >  indirection: add a new function to thread.c, and call that from
> >  emacs-module.c.
> >
> > Makes sense, I've moved in_current_thread to thread.c because it's
> unrelated to modules.
>
> Thanks.
>
> >  Otherwise, LGTM for master; thanks.
> >
> > Can we push this to emacs-26? Right now emacs-26 can't even be compiled
> with --without-threads
> > --with-modules (on some systems at least).
>
> How important is this?  --with-modules is an opt-in switch, and the
> default is to build with threads.  So this sounds not very important
> to me, and the change, although simple, is not really trivial, and
> will affect any module.  So I'm uneasy putting this on emacs-26,
> especially since the Emacs 26.0.91 tarball is already ready and is
> awaiting upload, so this will only go into the next pretest, which I
> hoped could be a release candidate...
>
> Do you think leaving this for the next release will be so bad?
>

OK, pushed to master as  694ee38f8b.

I don't expect this bug to cause correctness problems, even with the
combination --without-threads --with-modules. The test is buggy, but it
will only cause false positives with --module-assertions. That's annoying,
but users can ignore these assertions. However, in the correct
implementation, in_current_thread is effectively always true if threads are
unavailable, so occasionally returning false is not a problem as far as
modules are concerned.

[-- Attachment #2: Type: text/html, Size: 2474 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-15 17:56           ` Glenn Morris
@ 2018-01-18 19:35             ` Philipp Stephani
  2018-01-18 23:00               ` Glenn Morris
  0 siblings, 1 reply; 45+ messages in thread
From: Philipp Stephani @ 2018-01-18 19:35 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 30106, Jean Louis

[-- Attachment #1: Type: text/plain, Size: 740 bytes --]

Glenn Morris <rgm@gnu.org> schrieb am Mo., 15. Jan. 2018 um 18:57 Uhr:

>
> It seems that Fmodule_load does not update load-history.
> This is causing Frequire to report the wrong file names in its error
> message, which is making it hard to diagnose the real problem.
>
>
>
>
Sigh, Fmodule_load has many other bugs, now that I look at it:
- It doesn't protect against recursive loads
- It doesn't print load messages even if force-load-messages is t
- It doesn't update loads-in-progress
- It doesn't do any of the other things that Fload does for .el and .elc
files
I think we should get rid of Fmodule_load entirely and add the
module-specific parts to Fload (the module initialization step itself
should stay in emacs-module.c though).

[-- Attachment #2: Type: text/html, Size: 1096 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 18:53                                             ` Eli Zaretskii
@ 2018-01-18 22:55                                               ` Glenn Morris
  2018-01-19  7:58                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-18 22:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, p.stephani2, 30106

Eli Zaretskii wrote:

>> If it's not to be fixed then IMO in the meantime configure should
>> explicitly reject --with-modules if threads are disabled.
>
> That'd replace one non-trivial change with another, so I think it's
> worse than fixing the problem.

You think the following is non-trivial?

--- a/configure.ac
+++ b/configure.ac
@@ -3513,6 +3513,8 @@ case $opsys in
   *) MODULES_SUFFIX=".so" ;;
 esac
 if test "${with_modules}" != "no"; then
+  test "${threads_enabled}" = "no" && \
+    AC_MSG_ERROR([modules currently require threads])
   case $opsys in
     gnu|gnu-linux)
       LIBMODULES="-ldl"





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-18 19:35             ` Philipp Stephani
@ 2018-01-18 23:00               ` Glenn Morris
  0 siblings, 0 replies; 45+ messages in thread
From: Glenn Morris @ 2018-01-18 23:00 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 30106, Jean Louis

Philipp Stephani wrote:

>> It seems that Fmodule_load does not update load-history.
>> This is causing Frequire to report the wrong file names in its error
>> message, which is making it hard to diagnose the real problem.

Sorry, I made a separate report for this before seeing your reply.
bug#30164





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'
  2018-01-17 19:37                           ` Jean Louis
@ 2018-01-18 23:01                             ` Glenn Morris
  0 siblings, 0 replies; 45+ messages in thread
From: Glenn Morris @ 2018-01-18 23:01 UTC (permalink / raw)
  To: 30106-done

Jean Louis wrote:

> However, now at this point, but maybe after patching, I could compile
> it so that it works. I can load the dynamic module with (require 'pq)

Based on this comment I am closing this report.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-18 22:55                                               ` Glenn Morris
@ 2018-01-19  7:58                                                 ` Eli Zaretskii
  2018-01-20 18:07                                                   ` Glenn Morris
  0 siblings, 1 reply; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-19  7:58 UTC (permalink / raw)
  To: Glenn Morris; +Cc: phst, p.stephani2, 30106

> From: Glenn Morris <rgm@gnu.org>
> Cc: p.stephani2@gmail.com,  phst@google.com,  30106@debbugs.gnu.org
> Date: Thu, 18 Jan 2018 17:55:22 -0500
> 
> Eli Zaretskii wrote:
> 
> >> If it's not to be fixed then IMO in the meantime configure should
> >> explicitly reject --with-modules if threads are disabled.
> >
> > That'd replace one non-trivial change with another, so I think it's
> > worse than fixing the problem.
> 
> You think the following is non-trivial?

Yes, because it changes the configure script.  How do we know it won't
fail builds on some obscure platforms?





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-19  7:58                                                 ` Eli Zaretskii
@ 2018-01-20 18:07                                                   ` Glenn Morris
  2018-01-20 19:01                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 45+ messages in thread
From: Glenn Morris @ 2018-01-20 18:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, p.stephani2, 30106

Eli Zaretskii wrote:

>> You think the following is non-trivial?
>
> Yes, because it changes the configure script.  How do we know it won't
> fail builds on some obscure platforms?

Basic common sense.

But don't worry, I've learnt that expressing my opinion is a waste of time.





^ permalink raw reply	[flat|nested] 45+ messages in thread

* bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106)
  2018-01-20 18:07                                                   ` Glenn Morris
@ 2018-01-20 19:01                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 45+ messages in thread
From: Eli Zaretskii @ 2018-01-20 19:01 UTC (permalink / raw)
  To: Glenn Morris; +Cc: phst, p.stephani2, 30106

> From: Glenn Morris <rgm@gnu.org>
> Cc: p.stephani2@gmail.com,  phst@google.com,  30106@debbugs.gnu.org
> Date: Sat, 20 Jan 2018 13:07:47 -0500
> 
> Eli Zaretskii wrote:
> 
> >> You think the following is non-trivial?
> >
> > Yes, because it changes the configure script.  How do we know it won't
> > fail builds on some obscure platforms?
> 
> Basic common sense.

I'm afraid that has failed us more than once in the past.

> But don't worry, I've learnt that expressing my opinion is a waste of time.

I value your opinions very much, I just don't always agree with them
(as you don't with mine).  I very much hope you don't decide to stop
voicing your opinions here.





^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2018-01-20 19:01 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-14  6:36 bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test' Jean Louis
2018-01-14 16:08 ` Eli Zaretskii
2018-01-14 17:47   ` Jean Louis
2018-01-14 19:44     ` Eli Zaretskii
2018-01-14 22:12       ` Jean Louis
2018-01-15 13:14         ` Eli Zaretskii
2018-01-15 17:56           ` Glenn Morris
2018-01-18 19:35             ` Philipp Stephani
2018-01-18 23:00               ` Glenn Morris
2018-01-15 18:09           ` Jean Louis
2018-01-15 18:55           ` Jean Louis
2018-01-15 20:15             ` Eli Zaretskii
2018-01-16  5:17               ` Jean Louis
2018-01-16 18:06                 ` Glenn Morris
2018-01-16 19:17                   ` Jean Louis
2018-01-16 18:10             ` Eli Zaretskii
2018-01-16 19:18               ` Jean Louis
2018-01-17 15:36                 ` Eli Zaretskii
2018-01-17 17:03                   ` Jean Louis
2018-01-17 18:25                     ` Eli Zaretskii
2018-01-17 18:51                       ` Glenn Morris
2018-01-17 18:58                         ` Glenn Morris
2018-01-17 19:37                           ` Jean Louis
2018-01-18 23:01                             ` Glenn Morris
2018-01-17 20:05                         ` Eli Zaretskii
2018-01-17 20:29                           ` Glenn Morris
2018-01-17 22:16                             ` Philipp Stephani
2018-01-17 22:18                               ` Philipp Stephani
2018-01-17 22:28                                 ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
2018-01-17 22:28                                   ` bug#30106: [PATCH 2/2] Fix module support if threads are disabled (Bug#30106) Philipp Stephani
2018-01-18 14:04                                     ` Eli Zaretskii
2018-01-18 14:23                                       ` Philipp Stephani
2018-01-18 15:23                                         ` Eli Zaretskii
2018-01-18 17:41                                           ` Glenn Morris
2018-01-18 18:53                                             ` Eli Zaretskii
2018-01-18 22:55                                               ` Glenn Morris
2018-01-19  7:58                                                 ` Eli Zaretskii
2018-01-20 18:07                                                   ` Glenn Morris
2018-01-20 19:01                                                     ` Eli Zaretskii
2018-01-18 19:25                                           ` Philipp Stephani
2018-01-17 22:35                                   ` bug#30106: [PATCH 1/2] Use recommended long options syntax in man page Philipp Stephani
2018-01-18 13:59                               ` bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test' Eli Zaretskii
2018-01-18 17:40                               ` Glenn Morris
2018-01-17 19:20                       ` Jean Louis
2018-01-17 18:32                     ` Andy Moreton

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.