From: Kazuki Tsujimoto Date: 2011-06-11T21:03:26+09:00 Subject: [ruby-dev:43743] [Ruby 1.9 - Feature #4871][Open] envのコンパクト化 Issue #4871 has been reported by Kazuki Tsujimoto. ---------------------------------------- Feature #4871: envのコンパクト化 http://redmine.ruby-lang.org/issues/4871 Author: Kazuki Tsujimoto Status: Open Priority: Normal Assignee: Category: core Target version: =begin 辻本です。 rb_env_tのenvは以下の構造を持ちますが、env[2](prev env val)は不要ではないでしょうか。 /* env{ env[0] // special (block or prev env) env[1] // env object env[2] // prev env val }; */ 根拠は次の通りです。 * prev env valに無条件にNULLを代入するようにコードを変更してもmake test、make test-allをパスする。 * コードを読む限りこの値が使われるのはcheck_envの中で値をデバッグ用に出力するときのみ。 * check_envはPROC_DEBUGが真でない限り呼ばれない。通常は偽。 * そもそもcheck_envはYARVがマージされて以来変更されておらず、現在のenvの構造に対応できていない。 prev env valを持たないようにした上でcheck_envをこの変更に対応させたパッチを添付します。 なお、check_envはstdout/stderr両方にデバッグメッセージを出力するため flushのタイミングによっては出力が混在して見づらいので 出力先をstderrに統一するためのパッチもあわせて用意しました。 =end -- http://redmine.ruby-lang.org