From: janosch-x Date: 2022-04-08T18:53:11+00:00 Subject: [ruby-core:108200] [Ruby master Bug#18686] Regexp supporting unexpected age properties in Ruby < 3.2 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: