[ruby-core:113931] [Ruby master Bug#18686] Regexp supporting unexpected age properties in Ruby < 3.2

Issue #18686 has been updated by janosch-x (Janosch Müller). this no longer occurs in ruby 3.2 or 3.3 so IMO this bug can be closed @duerst @jeremyevans0 ```ruby RUBY_DESCRIPTION # => "ruby 3.3.0preview1 (2023-05-12 master a1b01e7701) [arm64-darwin22]" [*0..1000].product([*0..100]).each_with_object([]) do |(n1, n2), acc| n = "#{n1}.#{n2}" acc << n if (/\p{age=#{n}}/ rescue nil) end # => ["1.1", "2.0", "2.1", "3.0", "3.1", "3.2", "4.0", "4.1", "5.0", "5.1", "5.2", "6.0", "6.1", "6.2", "6.3", "7.0", "8.0", "9.0", "10.0", "11.0", "12.0", "12.1", "13.0", "14.0", "15.0"] ---------------------------------------- Bug #18686: Regexp supporting unexpected age properties in Ruby < 3.2 https://bugs.ruby-lang.org/issues/18686#change-103586 * Author: janosch-x (Janosch Müller) * Status: Open * Priority: Normal * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- I've encountered this on GitHub Actions running Ubuntu 20. I cannot reproduce it locally on Darwin/arm64. It is a weird bug and far from critical, but it might indicate some underlying problem. I've found that ... - all Ruby versions below 3.1 allow `/\p{age=14.0}/` - this is unexpected because age 14 was only added in Ruby 3.2 - Ruby seems to parse this as `age=10.0`, at least it matches exactly these codepoints - all Ruby versions below 3.2 allow *some* unexpected values for age - allowed values are e.g. `age=21.0`, `age=41.0`, `age=99.0` (depending on Ruby version) - on Ruby 3.1, `age=99.0` matches exactly the same codepoints as `age=11.0` - ruby-head doesn't seem to allow unexpected age values (i've only tested values ending in `.0`) I've set up a minimal reproduction here: https://github.com/jaynetics/ruby_age_property_bug_repro with the unexpected results visible here: https://github.com/jaynetics/ruby_age_property_bug_repro/actions/runs/211552... and here: https://github.com/jaynetics/ruby_age_property_bug_repro/actions/runs/211678... CC @duerst -- https://bugs.ruby-lang.org/
participants (1)
-
janosch-x