[ruby-core:120443] [Ruby master Bug#20992] `eval(ascii_encoded_code)` raises EncodingError when multibyte local variable exists

Issue #20992 has been reported by tompng (tomoya ishida). ---------------------------------------- Bug #20992: `eval(ascii_encoded_code)` raises EncodingError when multibyte local variable exists https://bugs.ruby-lang.org/issues/20992 * Author: tompng (tomoya ishida) * Status: Open * ruby -v: ruby 3.5.0dev (2024-12-28T09:40:37Z master e4ec2128ae) +YJIT +MN +PRISM [arm64-darwin22] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ~~~ruby #coding: utf-8 α=1 eval '1+2'.encode('ascii') ~~~ ~~~ $ ruby file.rb file.rb:3:in 'Kernel#eval': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from file.rb:3:in '<main>' ~~~ Running the file below with `LANG=C ruby file.rb` will make IRB unresponsive ~~~ruby #coding: utf-8 α=1 binding.irb ~~~ ~~~ $ LANG=C ruby file.rb From: file.rb @ line 3 : 1: #coding: utf-8 2: α=1 => 3: binding.irb irb(main):001> 1 <internal:kernel>:168:in 'Kernel#loop': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from <internal:prelude>:5:in 'Binding#irb' from file.rb:3:in '<main>' irb(main):002> ~~~ -- https://bugs.ruby-lang.org/

Issue #20992 has been updated by nobu (Nobuyoshi Nakada). Assignee set to prism Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: REQUIRED ---------------------------------------- Bug #20992: `eval(ascii_encoded_code)` raises EncodingError when multibyte local variable exists https://bugs.ruby-lang.org/issues/20992#change-111221 * Author: tompng (tomoya ishida) * Status: Open * Assignee: prism * ruby -v: ruby 3.5.0dev (2024-12-28T09:40:37Z master e4ec2128ae) +YJIT +MN +PRISM [arm64-darwin22] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: REQUIRED ---------------------------------------- ~~~ruby #coding: utf-8 α=1 eval '1+2'.encode('ascii') ~~~ ~~~ $ ruby file.rb file.rb:3:in 'Kernel#eval': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from file.rb:3:in '<main>' ~~~ Running the file below with `LANG=C ruby file.rb` will make IRB unresponsive ~~~ruby #coding: utf-8 α=1 binding.irb ~~~ ~~~ $ LANG=C ruby file.rb From: file.rb @ line 3 : 1: #coding: utf-8 2: α=1 => 3: binding.irb irb(main):001> 1 <internal:kernel>:168:in 'Kernel#loop': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from <internal:prelude>:5:in 'Binding#irb' from file.rb:3:in '<main>' irb(main):002> ~~~ -- https://bugs.ruby-lang.org/

Issue #20992 has been updated by k0kubun (Takashi Kokubun). Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: REQUIRED to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: DONE ruby_3_4 commit:698f808cc78b01bc23ff893eaabcc09a454b56ee merged revision(s) commit:5fec9308320e8b377681ef19b0cd46d53f94e8ac, commit:1a06bee027d5c5b65ed0aaee76ee0040554d4efd. ---------------------------------------- Bug #20992: `eval(ascii_encoded_code)` raises EncodingError when multibyte local variable exists https://bugs.ruby-lang.org/issues/20992#change-111916 * Author: tompng (tomoya ishida) * Status: Closed * Assignee: prism * ruby -v: ruby 3.5.0dev (2024-12-28T09:40:37Z master e4ec2128ae) +YJIT +MN +PRISM [arm64-darwin22] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: DONE ---------------------------------------- ~~~ruby #coding: utf-8 α=1 eval '1+2'.encode('ascii') ~~~ ~~~ $ ruby file.rb file.rb:3:in 'Kernel#eval': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from file.rb:3:in '<main>' ~~~ Running the file below with `LANG=C ruby file.rb` will make IRB unresponsive ~~~ruby #coding: utf-8 α=1 binding.irb ~~~ ~~~ $ LANG=C ruby file.rb From: file.rb @ line 3 : 1: #coding: utf-8 2: α=1 => 3: binding.irb irb(main):001> 1 <internal:kernel>:168:in 'Kernel#loop': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError) from <internal:prelude>:5:in 'Binding#irb' from file.rb:3:in '<main>' irb(main):002> ~~~ -- https://bugs.ruby-lang.org/
participants (3)
-
k0kubun (Takashi Kokubun)
-
nobu (Nobuyoshi Nakada)
-
tompng (tomoya ishida)