[ruby-dev:52045] [Ruby master Bug#19902] strftimeの返り値のascii_only?が間違っていることがある

Issue #19902 has been reported by znz (Kazuhiro NISHIYAMA). ---------------------------------------- Bug #19902: strftimeの返り値のascii_only?が間違っていることがある https://bugs.ruby-lang.org/issues/19902 * Author: znz (Kazuhiro NISHIYAMA) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- ruby-jp slack で tompng さんの調査によると以下のように `Regexp.esacpe` が変になる原因は `t.ascii_only? #=> true` になっていることでした。 ``` irb(main):053> t = Time.now.strftime(u='あ') => "あ" irb(main):054> t==u => true irb(main):055> t.encoding==u.encoding => true irb(main):056> Regexp.escape(t) => "\xE3\x81\x82" irb(main):057> Regexp.escape(u) => "あ" ``` git bisect で `make miniruby && ./miniruby -ve "p Time.now.strftime('%Y年').ascii_only?"` をしつつ調べてみると、https://github.com/ruby/ruby/commit/f34280ec6b684eeb21ef3336c7002e1a83dcfd2c から `true` になってしまっているようです。 -- https://bugs.ruby-lang.org/

Issue #19902 has been updated by nobu (Nobuyoshi Nakada). https://github.com/ruby/ruby/pull/8511 ---------------------------------------- Bug #19902: strftimeの返り値のascii_only?が間違っていることがある https://bugs.ruby-lang.org/issues/19902#change-104756 * Author: znz (Kazuhiro NISHIYAMA) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- ruby-jp slack で tompng さんの調査によると以下のように `Regexp.esacpe` が変になる原因は `t.ascii_only? #=> true` になっていることでした。 ``` irb(main):053> t = Time.now.strftime(u='あ') => "あ" irb(main):054> t==u => true irb(main):055> t.encoding==u.encoding => true irb(main):056> Regexp.escape(t) => "\xE3\x81\x82" irb(main):057> Regexp.escape(u) => "あ" ``` git bisect で `make miniruby && ./miniruby -ve "p Time.now.strftime('%Y年').ascii_only?"` をしつつ調べてみると、https://github.com/ruby/ruby/commit/f34280ec6b684eeb21ef3336c7002e1a83dcfd2c から `true` になってしまっているようです。 -- https://bugs.ruby-lang.org/

Issue #19902 has been updated by ima1zumi (Mari Imaizumi). 3.2にバックポートが必要そうです。 ---------------------------------------- Bug #19902: strftimeの返り値のascii_only?が間違っていることがある https://bugs.ruby-lang.org/issues/19902#change-104768 * Author: znz (Kazuhiro NISHIYAMA) * Status: Closed * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- ruby-jp slack で tompng さんの調査によると以下のように `Regexp.esacpe` が変になる原因は `t.ascii_only? #=> true` になっていることでした。 ``` irb(main):053> t = Time.now.strftime(u='あ') => "あ" irb(main):054> t==u => true irb(main):055> t.encoding==u.encoding => true irb(main):056> Regexp.escape(t) => "\xE3\x81\x82" irb(main):057> Regexp.escape(u) => "あ" ``` git bisect で `make miniruby && ./miniruby -ve "p Time.now.strftime('%Y年').ascii_only?"` をしつつ調べてみると、https://github.com/ruby/ruby/commit/f34280ec6b684eeb21ef3336c7002e1a83dcfd2c から `true` になってしまっているようです。 -- https://bugs.ruby-lang.org/

Issue #19902 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: REQUIRED to 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: DONE ruby_3_2 ddbab4f837460f070942e8127de9a9f1b9868fff merged revision(s) 6b66b5fdedb2c9a9ee48e290d57ca7f8d55e01a2. ---------------------------------------- Bug #19902: strftimeの返り値のascii_only?が間違っていることがある https://bugs.ruby-lang.org/issues/19902#change-104794 * Author: znz (Kazuhiro NISHIYAMA) * Status: Closed * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: DONE ---------------------------------------- ruby-jp slack で tompng さんの調査によると以下のように `Regexp.esacpe` が変になる原因は `t.ascii_only? #=> true` になっていることでした。 ``` irb(main):053> t = Time.now.strftime(u='あ') => "あ" irb(main):054> t==u => true irb(main):055> t.encoding==u.encoding => true irb(main):056> Regexp.escape(t) => "\xE3\x81\x82" irb(main):057> Regexp.escape(u) => "あ" ``` git bisect で `make miniruby && ./miniruby -ve "p Time.now.strftime('%Y年').ascii_only?"` をしつつ調べてみると、https://github.com/ruby/ruby/commit/f34280ec6b684eeb21ef3336c7002e1a83dcfd2c から `true` になってしまっているようです。 -- https://bugs.ruby-lang.org/
participants (4)
-
ima1zumi (Mari Imaizumi)
-
nagachika (Tomoyuki Chikanaga)
-
nobu (Nobuyoshi Nakada)
-
znz (Kazuhiro NISHIYAMA)