[ruby-core:108200] [Ruby master Bug#18686] Regexp supporting unexpected age properties in Ruby < 3.2
From:
janosch-x <noreply@...>
Date:
2022-04-08 18:53:11 UTC
List:
ruby-core #108200
Issue #18686 has been reported by janosch-x (Janosch M端ller).
----------------------------------------
Bug #18686: Regexp supporting unexpected age properties in Ruby < 3.2
https://bugs.ruby-lang.org/issues/18686
* 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/2115522407
and here:
https://github.com/jaynetics/ruby_age_property_bug_repro/actions/runs/2116785501
CC @duerst
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>