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


Message #14 received at 79257 <at> debbugs.gnu.org (full text, mbox):

From: john muhl <jm <at> pub.pink>
To: Dmitry Gutov <dmitry <at> gutov.dev>
Cc: 79257 <at> debbugs.gnu.org
Subject: Re: bug#79257: 31.0.50; flymake's ruby-backend test fails with ruby
 3.4.5
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.




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.