現在判明している Ring 本体の不具合 #001
2021-11-25 16:54 (by megumi_engines)

eval と see の不具合について

報告するにも公式側では Issue Tracker は使えないので、こちらへ。だいぶ前からある eval のバグですが、以下のコードを実行するとエラーは発生せずにクラッシュします。

再現用のコード

  1. val = "1+2"
  2. ? eval(val)

または

  1. ? eval("1+2")

これは ? 演算子に限らず see コマンドでも発生します。

対策方法

修正待ちです。それまで eval に与える文字列は必ず検査してください (数値が入りそうなところは number でキャストして弾くのもありだと思います)。また、こういうのは PWCT 1.9 や既存のテストでは検出できません。見つけたら遠慮なさらず報告をしたほうがいいでしょう。

検証環境

  • Ring 1.16
  • Windows 10 日本語版 (20H2)
【移転予定】🍩プログラミング言語 Ring 日本語版(移転先: https://thundervox.github.io/081/ring-lang/) 專案新聞存檔