[ruby-dev:50639] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue.
From:
"Urabe, Shyouhei" <shyouhei@...>
Date:
2018-09-27 01:16:56 UTC
List:
ruby-dev #50639
笹田さん、 On Wed, Sep 26, 2018 at 5:11 PM <ko1@ruby-lang.org> wrote: > > ko1 2018-09-26 17:11:05 +0900 (Wed, 26 Sep 2018) > > New Revision: 64854 > > https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64854 > > Log: > fix OPT_CALL_THREADED_CODE issue. > > * insns.def (opt_send_without_block): reorder insn position because > `opt_str_freeze` insn refer this insn (function) when > OPT_CALL_THREADED_CODE is true. > > * vm_opts.h (OPT_THREADED_CODE): introduce new macro to select > threaded code implementation with a compile option (-D...). このコミットでvm_opts.hに新たなディレクティブ(つまり#ifndef)が導入されてしまったのですが。 vm_opts.hはVM生成系が読むファイルだから、VM生成時とコンパイル時でマクロの値が違ってくると色々と前提が壊れませんか? 今回に限って言うと、たまたま齟齬は発生しないようですが… - VM生成時とコンパイル時でマクロが同じかどうかを検証する仕組みを入れる - VM生成系はvm_opts.hを読まないことにする といった対策が考えられるかと思います。どうするのがいいですか?