Project

General

Profile

Actions

Bug #18686

closed

Regexp supporting unexpected age properties in Ruby < 3.2

Added by janosch-x (Janosch Müller) about 2 years ago. Updated 11 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:108200]

Description

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 (Martin Dürst)

Actions

Also available in: Atom PDF

Like0
Like0Like0