GNU bug report logs - #79257
31.0.50; flymake's ruby-backend test fails with ruby 3.4.5

Previous Next

Package: emacs;

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: john muhl <jm <at> pub.pink>
Cc: dmitry <at> gutov.dev, 79257 <at> debbugs.gnu.org
Subject: bug#79257: 31.0.50; flymake's ruby-backend test fails with ruby 3.4.5
Date: Tue, 26 Aug 2025 05:31:18 +0300
> Cc: 79257 <at> debbugs.gnu.org
> From: john muhl <jm <at> pub.pink>
> Date: Mon, 25 Aug 2025 16:23:16 -0500
> 
> Dmitry Gutov <dmitry <at> gutov.dev> writes:
> 
> > Hi!
> >
> > On 24/08/2025 19:35, john muhl wrote:
> >> The cause is a change in the check output of new Ruby versions
> >> which include the location of the executable; e.g.
> >>    # Ruby 3.3.8
> >>    -:3: warning: statement not reached
> >>    -:6: syntax error, unexpected end-of-input, expecting `end' or dummy end
> >>    # Ruby 3.4.5
> >>    -:3: warning: statement not reached
> >>    /usr/bin/ruby: -:5: syntax errors found (SyntaxError)
> >> Here’s a patch that updates the regex to account for it. Tests
> >> pass with both Ruby 3.3 and 3.4.
> >
> > Thanks, that works, I've pushed the change to master.
> >
> > Curiously, in my testing with ruby 3.4.5 the executable name is not
> > absolute, just 'ruby: '. That still works with your change.
> 
> It seems to output however ruby gets invoked; e.g.
> 
>   $ /usr/bin/ruby -wc o.rb
>   vs.
>   $ ruby -wc o.rb
> 
> > I wonder if you've managed to find the specific commit in Ruby that
> > did that (or bugs.ruby-lang.org entry).
> > This change log mentions some other changes in the output, but not
> > this:
> > https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/
> 
> No. At first I thought it was something to do with the switch to
> the prism parser but using --parser=parse.y doesn’t change that
> part of the output.
> 
> >> -             "^\\(?:.*\\.rb\\|-\\):\\([0-9]+\\): \\(.*\\)$"
> >> +             "^\\(?:.*ruby: \\)?\\(?:.*\\.rb\\|-\\):\\([0-9]+\\):
> >   \\(.*\\)$"
> >
> > We could also make the first wildcard non-greedy (.*?).
> >
> > Perhaps put an initial slash before it too, for faster matching, but
> > I'm not sure how your variant of the output will look on Windows
> > (perhaps it starts with 'c:/').
> 
> Unfortunately I have no way to test Windows stuff.

If an absolute file name is expected there, we should allow it to
begin with a drive letter on Windows.




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.