Subject: bug#79257: closed (Re: bug#79257: 31.0.50; flymake's ruby-backend test fails with ruby 3.4.5)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 26 Aug 2025 21:12:02 +0000

Your bug report

#79257: 31.0.50; flymake's ruby-backend test fails with ruby 3.4.5

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
79257: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79257
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#79257: 31.0.50; flymake's ruby-backend test fails with ruby 3.4.5
From: Dmitry Gutov <[email-masked]>
To: john muhl <[email-masked]>, Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Wed, 27 Aug 2025 00:10:58 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On 26/08/2025 17:08, john muhl wrote:
> That output is from running ruby directly from the command line
> not from ruby-flymake-simple. I had different ruby versions
> installed to compare output and it was easier to do that from
> outside Emacs and using the full path to the executable rather
> than fiddling with PATH or messing with symlinks.
> 
>    $ cat test/lisp/progmodes/flymake-resources/test.rb | ruby -w -c
>    -:3: warning: statement not reached
>    ruby: -:5: syntax errors found (SyntaxError)
> 
>    $ cat test/lisp/progmodes/flymake-resources/test.rb | /usr/bin/ruby -w -c
>    -:3: warning: statement not reached
>    /usr/bin/ruby: -:5: syntax errors found (SyntaxError)
> 
> r-f-s always does “ruby -w -c” like the first example so it
> doesn’t get an absolute path in the output.

Great! Thanks, I've shortened it.

Subject: 31.0.50; flymake's ruby-backend test fails with ruby 3.4.5
From: john muhl <[email-masked]>
To: [email-masked]
Date: Sat, 16 Aug 2025 15:17:28 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

The test passes with Ruby 3.3.8:

$ ruby --version
ruby 3.3.8 (2025-04-09 revision b200bad6cd) [x86_64-linux-gnu]

$ make -C test lisp/progmodes/flymake-tests.log
make: Entering directory '/root/emacs/test'
  GEN      lisp/progmodes/flymake-tests.log
make: Leaving directory '/root/emacs/test'

$ cat test/lisp/progmodes/flymake-tests.log
Running 10 tests (2025-08-16 20:14:31+0000, selector `(not (or (tag :unstable) (tag :nativecomp)))')
   passed   1/10  different-diagnostic-types (1.064348 sec)
   passed   2/10  dummy-backends (1.001868 sec)
   passed   3/10  eob-region-and-trailing-newline (0.000263 sec)
   passed   4/10  foreign-diagnostics (2.039984 sec)
   passed   5/10  included-c-header-files (2.038547 sec)
   passed   6/10  perl-backend (1.013309 sec)
   passed   7/10  recurrent-backend (1.002002 sec)
   passed   8/10  ruby-backend (1.015112 sec)
   passed   9/10  warning-predicate-function-gcc (1.017387 sec)
   passed  10/10  warning-predicate-rx-gcc (1.019503 sec)

Ran 10 tests, 10 results as expected, 0 unexpected (2025-08-16 20:14:42+0000, 11.213646 sec)

Then fails with 3.4.5:

$ ruby --version
ruby 3.4.5 (2025-07-16 revision 20cda200d3) +PRISM [x86_64-linux]

$ make -C test lisp/progmodes/flymake-tests.log
make[1]: Entering directory '/root/emacs/test'
  GEN      lisp/progmodes/flymake-tests.log
Running 10 tests (2025-08-16 20:09:51+0000, selector `(not (or (tag :unstable) (tag :nativecomp)))')
   passed   1/10  different-diagnostic-types (1.066408 sec)
   passed   2/10  dummy-backends (1.001843 sec)
   passed   3/10  eob-region-and-trailing-newline (0.000216 sec)
   passed   4/10  foreign-diagnostics (2.041202 sec)
   passed   5/10  included-c-header-files (2.038718 sec)
   passed   6/10  perl-backend (1.014080 sec)
   passed   7/10  recurrent-backend (1.002050 sec)
Test ruby-backend backtrace:
  signal(ert-test-failed (((should (eq 'flymake-error (face-at-point))
  ert-fail(((should (eq 'flymake-error (face-at-point))) :form (eq fly
  (if (unwind-protect (setq value-41 (apply fn-39 args-40)) (setq form
  (let (form-description-43) (if (unwind-protect (setq value-41 (apply
  (let ((value-41 'ert-form-evaluation-aborted-42)) (let (form-descrip
  (let* ((fn-39 #'eq) (args-40 (condition-case err (list 'flymake-erro
  #f(lambda () [t] (flymake-goto-next-error) (let* ((fn-34 #'eq) (args
  funcall(#f(lambda () [t] (flymake-goto-next-error) (let* ((fn-34 #'e
  (save-excursion (if sev-pred-supplied-p (progn (setq flymake-proc-di
  (save-current-buffer (set-buffer buffer) (save-excursion (if sev-pre
  (unwind-protect (save-current-buffer (set-buffer buffer) (save-excur
  (let* ((file (expand-file-name file flymake-tests-data-directory)) (
  (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((m
  (let* ((sev-pred-supplied-p (plist-member --cl-rest-- ':severity-pre
  flymake-tests--call-with-fixture(#f(lambda () [t] (flymake-goto-next
  (let* ((process-environment (cons (format "HOME=%s" tempdir) process
  (progn (let* ((process-environment (cons (format "HOME=%s" tempdir) 
  (unwind-protect (progn (let* ((process-environment (cons (format "HO
  (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
  #f(lambda () [ruby-mode-hook t] (let* ((fn-29 #'executable-find) (ar
  #f(compiled-function () #<bytecode 0xf2de8ace0c80c71>)()
  handler-bind-1(#f(compiled-function () #<bytecode 0xf2de8ace0c80c71>
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name ruby-backend :documentation "Test the
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l
  command-line()
  normal-top-level()
Test ruby-backend condition:
    (ert-test-failed
     ((should (eq 'flymake-error (face-at-point))) :form
      (eq flymake-error flymake-warning) :value nil))
   FAILED   8/10  ruby-backend (1.013506 sec) at lisp/progmodes/flymake-tests.el:123
   passed   9/10  warning-predicate-function-gcc (1.017136 sec)
   passed  10/10  warning-predicate-rx-gcc (1.019550 sec)

Ran 10 tests, 9 results as expected, 1 unexpected (2025-08-16 20:10:02+0000, 11.275721 sec)

1 unexpected results:
   FAILED  ruby-backend