[ruby-core:111010] [Ruby master Bug#19150] pack/unpack silently ignores unknown directives

Issue #19150 has been reported by Eregon (Benoit Daloze). ---------------------------------------- Bug #19150: pack/unpack silently ignores unknown directives https://bugs.ruby-lang.org/issues/19150 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- But I believe it should be an error instead. Typically when a parser sees a syntax error it should fail not continue silently. For instance `[1].pack('<L')` succeeds and only emits a warning if `$VERBOSE` is true. This behavior caused confusion in https://github.com/oracle/truffleruby/issues/2791 I think it should fail with an `ArgumentError` instead. Extracted from https://bugs.ruby-lang.org/issues/19108#note-3 -- https://bugs.ruby-lang.org/

Issue #19150 has been updated by matz (Yukihiro Matsumoto). For 3.2 unknown directives always warn; for 3.3 they raise exceptions. Matz. ---------------------------------------- Bug #19150: pack/unpack silently ignores unknown directives https://bugs.ruby-lang.org/issues/19150#change-100392 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- But I believe it should be an error instead. Typically when a parser sees a syntax error it should fail not continue silently. For instance `[1].pack('<L')` succeeds and only emits a warning if `$VERBOSE` is true. This behavior caused confusion in https://github.com/oracle/truffleruby/issues/2791 I think it should fail with an `ArgumentError` instead. Extracted from https://bugs.ruby-lang.org/issues/19108#note-3 -- https://bugs.ruby-lang.org/

Issue #19150 has been updated by mame (Yusuke Endoh). https://github.com/ruby/ruby/pull/6948 ---------------------------------------- Bug #19150: pack/unpack silently ignores unknown directives https://bugs.ruby-lang.org/issues/19150#change-100696 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- But I believe it should be an error instead. Typically when a parser sees a syntax error it should fail not continue silently. For instance `[1].pack('<L')` succeeds and only emits a warning if `$VERBOSE` is true. This behavior caused confusion in https://github.com/oracle/truffleruby/issues/2791 I think it should fail with an `ArgumentError` instead. Extracted from https://bugs.ruby-lang.org/issues/19108#note-3 -- https://bugs.ruby-lang.org/

Issue #19150 has been updated by byroot (Jean Boussier). Status changed from Closed to Open Reopening so we remember to make it raise in 3.3 ---------------------------------------- Bug #19150: pack/unpack silently ignores unknown directives https://bugs.ruby-lang.org/issues/19150#change-100711 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- But I believe it should be an error instead. Typically when a parser sees a syntax error it should fail not continue silently. For instance `[1].pack('<L')` succeeds and only emits a warning if `$VERBOSE` is true. This behavior caused confusion in https://github.com/oracle/truffleruby/issues/2791 I think it should fail with an `ArgumentError` instead. Extracted from https://bugs.ruby-lang.org/issues/19108#note-3 -- https://bugs.ruby-lang.org/

Issue #19150 has been updated by Eregon (Benoit Daloze). Status changed from Open to Closed Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED Done in https://github.com/ruby/ruby/commit/03dd37775afb40eef392ae2920d728235af302c8, also needed changes in specs: https://github.com/ruby/spec/commit/9d69b95a7bbac3d89e7218a98bd50ecf173d9c6f ---------------------------------------- Bug #19150: pack/unpack silently ignores unknown directives https://bugs.ruby-lang.org/issues/19150#change-101046 * Author: Eregon (Benoit Daloze) * Status: Closed * Priority: Normal * Target version: 3.3 * Backport: 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED ---------------------------------------- But I believe it should be an error instead. Typically when a parser sees a syntax error it should fail not continue silently. For instance `[1].pack('<L')` succeeds and only emits a warning if `$VERBOSE` is true. This behavior caused confusion in https://github.com/oracle/truffleruby/issues/2791 I think it should fail with an `ArgumentError` instead. Extracted from https://bugs.ruby-lang.org/issues/19108#note-3 -- https://bugs.ruby-lang.org/
participants (4)
-
byroot (Jean Boussier)
-
Eregon (Benoit Daloze)
-
mame (Yusuke Endoh)
-
matz (Yukihiro Matsumoto)