Subject: Re: bug#50975: 28.0.60; mh-utils-tests fail with native compilation

From: Robert Pluim <[email-masked]>
Date: Mon, 04 Oct 2021 15:59:03 +0200

>>>>> On Sat, 02 Oct 2021 22:11:55 +0300, Eli Zaretskii <[email-masked]> said:

    >> From: Ken Brown <[email-masked]>
    >> Date: Sat, 2 Oct 2021 14:49:04 -0400
    >> 
    >> Most of the tests in mh-utils-tests fail if I build the emacs-28 branch on 
    >> Cygwin with native compilation:
    >> 
    >> $ make -C test mh-utils-tests
    >> make: Entering directory '/home/kbrown/src/emacs/x86_64-emacs-28-native-lisp/test'
    >> make[1]: Entering directory 
    >> '/home/kbrown/src/emacs/x86_64-emacs-28-native-lisp/test'
    >> GEN      lisp/mh-e/mh-utils-tests.log
    >> Running 16 tests (2021-10-02 14:13:13-0400, selector ‘(not (tag :unstable))’)
    >> No MH variant found on the system
    >> call-process mock unexpected arglist (emacs --batch -l 
    >> /tmp/emacs-int-comp-subr--trampoline-66696c652d6469726563746f72792d70_file_directory_p_0-rg5Ucy.el)
    >> call-process mock unexpected arglist (emacs --batch -l 
    >> /tmp/emacs-int-comp-subr--trampoline-66696c652d6469726563746f72792d70_file_directory_p_0-f6P2ZU.el)
    >> Test mh-folder-completion-function-02-empty backtrace:

    Eli> Andrea, please look into this when you have time.

FWIW this bug is not specific to cywgin, it happens on GNU/Linux as
well:

Test mh-folder-completion-function-02-empty backtrace:
  signal(native-compiler-error ((lambda (arg3 &optional) (let ((f #'fi
  comp--native-compile((lambda (arg3 &optional) (let ((f #'file-direct
  comp-trampoline-compile(file-directory-p)
  comp-subr-trampoline-install(file-directory-p)
  #f(compiled-function () #<bytecode 0x1da46465110900b6>)()
  #f(compiled-function () #<bytecode -0x3f8e279c3d4286b>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name mh-folder-completion-function-02-empt
  ert-run-or-rerun-test(#s(ert--stats :selector (not ...) :tests [...
  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
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/mh-e/mh-utils-tests"
  command-line()
  normal-top-level()
Test mh-folder-completion-function-02-empty condition:
    (native-compiler-error
     (lambda
       (arg3 &optional)
       (let
           ((f ...))
         (funcall f arg3)))
     "")
   FAILED   1/16  mh-folder-completion-function-02-empty (0.320526 sec)

(Iʼm assuming the native compiler doesnʼt like the (arg3 &optional)
bit. Didnʼt we make the byte-compiler signal an error for that
recently?)

Robert
--