GNU bug report logs -
#79257
31.0.50; flymake's ruby-backend test fails with ruby 3.4.5
Previous Next
Reported by: john muhl <jm <at> pub.pink>
Date: Sat, 16 Aug 2025 20:18:01 UTC
Severity: normal
Found in version 31.0.50
Done: Dmitry Gutov <dmitry <at> gutov.dev>
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
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 79257 <at> debbugs.gnu.org.
--
79257: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79257
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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.
[Message part 3 (message/rfc822, inline)]
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
This bug report was last modified 15 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.