[ruby-list:50783] Re: [質問] a=a があると動作が異常

From: Tomoyuki Chikanaga <nagachika00@...>
Date: 2019-06-07 02:35:27 UTC
List: ruby-list #50783
確かに 2.5.3以降 と 2.6.x で再現しますね。

ruby --dump=parsetree の結果は発生前後であまり変化はないですが --dump=insns すると VM
命令列が抜けているようでした。
peephole 最適化の不具合だろうと思って探してみたところ r63870 から発生してそうです。

https://github.com/ruby/ruby/commit/5e7167f8fb954ec46eb12a4a0a1191a8f7d9543d

とり急ぎ報告まで。

もし可能なら ruby の redimen の issue にこの件を登録していただけますか?

https://bugs.ruby-lang.org/projects/ruby-trunk/issues/new


2019年6月7日(金) 10:20 nekomura <mimomakun@gmail.com>:

> 小村と申します。
> どこで聞いていいのかわからないのでここで質問させてください。
>
> 下記スクリプトの結果が期待と違います。なぜでしょうか?
> a = a は不要ですが、なにもしないことを明示するために書いたものです。
> なおOS付属の ruby 2.3.7p456 では期待通りの結果でした。
>
>
> a = "aaa"
> if a == "bbb" || a == "ccc" then
>     a = a
> else
>     puts "OK"
> end
> puts "END"
>
>
>
> 実行結果
> END
>
> 期待する結果
> OK
> END
>
> 動作環境
> MacOS 10.13.6
> ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
> macportsでインストール
>
>

In This Thread