ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:50639] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue.
       [not found] <20180926081105.BDBEE63114@svn.ruby-lang.org>
@ 2018-09-27  1:16 ` Urabe, Shyouhei
  2018-09-28  0:57   ` [ruby-dev:50640] " Koichi Sasada
  0 siblings, 1 reply; 3+ messages in thread
From: Urabe, Shyouhei @ 2018-09-27  1:16 UTC (permalink / raw)
  To: ko1; +Cc: Ruby developers (Japanese)

笹田さん、

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を読まないことにする

といった対策が考えられるかと思います。どうするのがいいですか?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-dev:50640] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue.
  2018-09-27  1:16 ` [ruby-dev:50639] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue Urabe, Shyouhei
@ 2018-09-28  0:57   ` Koichi Sasada
  2018-09-28  1:27     ` [ruby-dev:50641] " Urabe, Shyouhei
  0 siblings, 1 reply; 3+ messages in thread
From: Koichi Sasada @ 2018-09-28  0:57 UTC (permalink / raw)
  To: Ruby developers (Japanese), ko1

ありがとうございます。その通りですね。
この変更の動機は、CI で色々 config 変えて調査しよう、ってところでした。

色々考えたんですが、このファイルを生成するようにしましょうか。

* src/tool/vmconfig-gen.rb
   -> src/vm_opts.h を生成
   * src/tool/vmconfig-gen.rb にはデフォルト値を与える
      * 環境変数によって値を変える
* src/took/生成系は vmconfig-gen.rb を参照(してもよい)
   * vm_opts.h 読むより、ちょっと楽になる可能性がある
   * が、すでに vm_opts.h を読むコードが存在するので、しなくてもよい
   * 環境変数が、生成系利用時と vm_opts.h で違うことを考えないといけない

どうでしょう。

On 2018/09/27 10:16, Urabe, Shyouhei wrote:
> 笹田さん、
> 
> 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を読まないことにする
> 
> といった対策が考えられるかと思います。どうするのがいいですか?
> 

-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-dev:50641] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue.
  2018-09-28  0:57   ` [ruby-dev:50640] " Koichi Sasada
@ 2018-09-28  1:27     ` Urabe, Shyouhei
  0 siblings, 0 replies; 3+ messages in thread
From: Urabe, Shyouhei @ 2018-09-28  1:27 UTC (permalink / raw)
  To: Ruby developers (Japanese)

はい。じゃあそのような方針でいきましょう。
On Fri, Sep 28, 2018 at 9:57 AM Koichi Sasada <ko1@atdot•net> wrote:
>
> ありがとうございます。その通りですね。
> この変更の動機は、CI で色々 config 変えて調査しよう、ってところでした。
>
> 色々考えたんですが、このファイルを生成するようにしましょうか。
>
> * src/tool/vmconfig-gen.rb
>    -> src/vm_opts.h を生成
>    * src/tool/vmconfig-gen.rb にはデフォルト値を与える
>       * 環境変数によって値を変える
> * src/took/生成系は vmconfig-gen.rb を参照(してもよい)
>    * vm_opts.h 読むより、ちょっと楽になる可能性がある
>    * が、すでに vm_opts.h を読むコードが存在するので、しなくてもよい
>    * 環境変数が、生成系利用時と vm_opts.h で違うことを考えないといけない
>
> どうでしょう。
>
> On 2018/09/27 10:16, Urabe, Shyouhei wrote:
> > 笹田さん、
> >
> > 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を読まないことにする
> >
> > といった対策が考えられるかと思います。どうするのがいいですか?
> >
>
> --
> // SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-09-28  1:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20180926081105.BDBEE63114@svn.ruby-lang.org>
2018-09-27  1:16 ` [ruby-dev:50639] Re: [ruby-cvs:71946] ko1:r64854 (trunk): fix OPT_CALL_THREADED_CODE issue Urabe, Shyouhei
2018-09-28  0:57   ` [ruby-dev:50640] " Koichi Sasada
2018-09-28  1:27     ` [ruby-dev:50641] " Urabe, Shyouhei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).