Bug #19260
closedruby/spec is failed with Ruby 3.3
Description
After bumping version, we got the some fails with ruby/spec.
https://github.com/ruby/ruby/actions/runs/3778576412/jobs/6423166914
  1)
  Literal Regexps handles a lookbehind with ss characters ERROR
  RegexpError: invalid pattern in look-behind: /(?<!dss)/i
  /home/runner/work/ruby/ruby/src/spec/ruby/language/regexp_spec.rb:120:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/language/regexp_spec.rb:4:in `<top (required)>'
  
  2)
  Float#round does not lose precision during the rounding process FAILED
  Expected 767573.18758 to have same value and type as 767573.18759
  /home/runner/work/ruby/ruby/src/spec/ruby/core/float/round_spec.rb:148:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/float/round_spec.rb:3:in `<top (required)>'
  
  3)
  Encoding#replicate has been removed FAILED
  Expected #<Encoding:US-ASCII>.respond_to? :replicate, true
  to be falsy but was true
  /home/runner/work/ruby/ruby/src/spec/ruby/core/encoding/replicate_spec.rb:72:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/encoding/replicate_spec.rb:4:in `<top (required)>'
        
           Updated by ko1 (Koichi Sasada) almost 3 years ago
          Updated by ko1 (Koichi Sasada) almost 3 years ago
          
          
        
        
      
      https://github.com/ruby/ruby/actions/runs/3778576415/jobs/6423165914
ruby 3.3.0dev (2022-12-25T23:46:59Z master 2a6dbf03a2) [i686-linux-gnu]
  1)
  Literal Regexps handles a lookbehind with ss characters ERROR
  RegexpError: invalid pattern in look-behind: /(?<!dss)/i
  /home/runner/work/ruby/ruby/src/spec/ruby/language/regexp_spec.rb:120:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/language/regexp_spec.rb:4:in `<top (required)>'
  
  2)
  Integer#<< (with n << m) when m is a bignum or larger than int raises NoMemoryError when m > 0 and n != 0 ERROR
  Expected NoMemoryError
  but got: RangeError (shift width too big)
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:203:in `<<'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:203:in `block (6 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:203:in `block (5 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:202:in `each'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:202:in `block (4 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/left_shift_spec.rb:3:in `<top (required)>'
  
  3)
  Encoding#replicate has been removed FAILED
  Expected #<Encoding:US-ASCII>.respond_to? :replicate, true
  to be falsy but was true
  /home/runner/work/ruby/ruby/src/spec/ruby/core/encoding/replicate_spec.rb:72:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/encoding/replicate_spec.rb:4:in `<top (required)>'
  
  4)
  Float#round does not lose precision during the rounding process FAILED
  Expected 767573.18758 to have same value and type as 767573.18759
  /home/runner/work/ruby/ruby/src/spec/ruby/core/float/round_spec.rb:148:in `block (3 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/float/round_spec.rb:3:in `<top (required)>'
  
  5)
  Integer#>> (with n >> m) when m is a bignum or larger than int raises NoMemoryError when m < 0 and n != 0 ERROR
  Expected NoMemoryError
  but got: RangeError (shift width too big)
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:225:in `>>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:225:in `block (6 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:225:in `block (5 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:224:in `each'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:224:in `block (4 levels) in <top (required)>'
  /home/runner/work/ruby/ruby/src/spec/ruby/core/integer/right_shift_spec.rb:3:in `<top (required)>'
        
           Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          
          
        
        
      
      I postponed enabling them at Ruby 3.3 because CI is always failed.
https://github.com/ruby/ruby/commit/a236661a62dc89173dcdd9e071365929db1201a7
We should track them in this ticket.
        
           Updated by Eregon (Benoit Daloze) almost 3 years ago
          Updated by Eregon (Benoit Daloze) almost 3 years ago
          
          
        
        
      
      Going in the order of https://github.com/ruby/ruby/commit/a236661a62dc89173dcdd9e071365929db1201a7
- 
Encoding#replicate has been removed FAILEDI'll remove it and adjust guard, it's #18949: https://github.com/ruby/ruby/pull/7079
- 
does not lose precision during the rounding processis fixed by https://github.com/ruby/ruby/pull/7023, thanks @mrkn (Kenta Murata)! #19318
- 
aises NoMemoryError when m > 0 and n != 0: we need to decide if we fix #18518 or not, I'll add to dev meeting.
- 
handles a lookbehind with ss characters: #13671 not fixed yet, I posted a ping there, so can remain asruby_bug "#13671", ""..."3.4"in the commit.
There were also some new specs for #19150 in ruby/spec, I switched to ArgumentError and adjusted the specs so that's done.
BTW, this is probably useful to track remaining items:
git grep -P 'ruby_bug.+"3.4"'
git grep -P 'ruby_version_is.+"3.4"'
git grep -P '\b3\.3\b'
        
           Updated by Eregon (Benoit Daloze) almost 3 years ago
          Updated by Eregon (Benoit Daloze) almost 3 years ago
          
          
        
        
      
      - Status changed from Open to Closed
All good now, thanks for creating this ticket.
        
           Updated by Eregon (Benoit Daloze) almost 3 years ago
          Updated by Eregon (Benoit Daloze) almost 3 years ago
          
          
        
        
      
      With git grep -P '\b3\.3\b', I found:
lib/did_you_mean.rb:116:  # TODO: Remove on 3.3:
lib/did_you_mean.rb:135:  # TODO: Remove on 3.3:
re.c:3851:        rb_warn_deprecated_to_remove("3.3", "3rd argument to Regexp.new", "2nd argument");
handled by https://bugs.ruby-lang.org/issues/18797 and https://github.com/ruby/ruby/pull/7039