[ruby-core:113931] [Ruby master Bug#18686] Regexp supporting unexpected age properties in Ruby < 3.2
From:
janosch-x via ruby-core <ruby-core@...>
Date:
2023-06-18 12:38:29 UTC
List:
ruby-core #113931
Issue #18686 has been updated by janosch-x (Janosch M=FCller).
this no longer occurs in ruby 3.2 or 3.3 so IMO this bug can be closed @due=
rst @jeremyevans0
```ruby
RUBY_DESCRIPTION
# =3D> "ruby 3.3.0preview1 (2023-05-12 master a1b01e7701) [arm64-darwin22]"
[*0..1000].product([*0..100]).each_with_object([]) do |(n1, n2), acc|
n =3D "#{n1}.#{n2}"
acc << n if (/\p{age=3D#{n}}/ rescue nil)
end
# =3D>
["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=FCller)
* 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 reprodu=
ce it locally on Darwin/arm64.
It is a weird bug and far from critical, but it might indicate some underly=
ing problem.
I've found that ...
- all Ruby versions below 3.1 allow `/\p{age=3D14.0}/`
- this is unexpected because age 14 was only added in Ruby 3.2
- Ruby seems to parse this as `age=3D10.0`, at least it matches exactly t=
hese codepoints
- all Ruby versions below 3.2 allow *some* unexpected values for age
- allowed values are e.g. `age=3D21.0`, `age=3D41.0`, `age=3D99.0` (depen=
ding on Ruby version)
- on Ruby 3.1, `age=3D99.0` matches exactly the same codepoints as `age=
=3D11.0`
- ruby-head doesn't seem to allow unexpected age values (i've only tested v=
alues 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/21155=
22407
and here:
https://github.com/jaynetics/ruby_age_property_bug_repro/actions/runs/21167=
85501
CC @duerst
--=20
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c=
ore.ml.ruby-lang.org/