https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2008-12-05T21:13:54Z
Ruby Issue Tracking System
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=1867
2008-12-05T21:13:54Z
ko1 (Koichi Sasada)
<ul><li><strong>Assignee</strong> set to <i>ko1 (Koichi Sasada)</i></li></ul><p>=begin</p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=1953
2008-12-11T11:38:02Z
yugui (Yuki Sonoda)
yugui@yugui.jp
<ul><li><strong>Priority</strong> changed from <i>3</i> to <i>5</i></li><li><strong>Target version</strong> set to <i>1.9.1 Release Candidate</i></li></ul><p>=begin<br>
@ Ruby開発会議</p>
<ul>
<li>その1は頑張る</li>
<li>その2は重要度低い。KNOWN BUG扱い。<br>
=end</li>
</ul>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=1962
2008-12-11T12:01:45Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>Yuki Sonoda wrote::</p>
<blockquote>
<ul>
<li>その2は重要度低い。KNOWN BUG扱い。</li>
</ul>
</blockquote>
<p> KNOWN BUG というか,許されるのなら仕様変更にしたい.<br>
(重要度は低そう,実装は大変)</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2183
2008-12-21T00:07:42Z
yugui (Yuki Sonoda)
yugui@yugui.jp
<ul><li><strong>Due date</strong> set to <i>12/24/2008</i></li></ul><p>=begin</p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2304
2008-12-25T00:29:47Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>U.Nakamura wrote::</p>
<blockquote>
<blockquote>
<a name="その1"></a>
<h1 >その1<a href="#その1" class="wiki-anchor">¶</a></h1>
<p>x = 0<br>
eval("p x", TOPLEVEL_BINDING)</p>
<a name="18-gt-0"></a>
<h1 >1.8 => 0<a href="#18-gt-0" class="wiki-anchor">¶</a></h1>
<a name="trunk-gt-NameError"></a>
<h1 >trunk => NameError<a href="#trunk-gt-NameError" class="wiki-anchor">¶</a></h1>
</blockquote>
</blockquote>
<a name="Index-vmc"></a>
<h1 >Index: vm.c<a href="#Index-vmc" class="wiki-anchor">¶</a></h1>
<p>--- vm.c (リビジョン 20969)<br>
+++ vm.c (作業コピー)<br>
@@ -1240,7 +1240,10 @@ rb_iseq_eval(VALUE iseqval)<br>
vm_set_top_stack(th, iseqval);</p>
<pre><code> if (!rb_const_defined(rb_cObject, rb_intern("TOPLEVEL_BINDING"))) {
</code></pre>
<ul>
<li>rb_define_global_const("TOPLEVEL_BINDING", rb_binding_new());</li>
</ul>
<ul>
<li>VALUE bind;</li>
<li>rb_vm_set_finish_env(th); /* push dummy frame */</li>
<li>rb_define_global_const("TOPLEVEL_BINDING", bind);</li>
<li>vm_pop_frame(th); /* pop dummy frame <em>/<br>
}<br>
val = vm_exec(th);<br>
tmp = iseqval; /</em> prohibit tail call optimization */</li>
</ul>
<p> これで直るのではないかと思います.ご確認いただけませんか.</p>
<blockquote>
<blockquote>
<a name="その2"></a>
<h1 >その2<a href="#その2" class="wiki-anchor">¶</a></h1>
<p>BEGIN{$b = binding}<br>
x = 0<br>
eval("p x", $b)</p>
<a name="18-gt-NameError"></a>
<h1 >1.8 => NameError<a href="#18-gt-NameError" class="wiki-anchor">¶</a></h1>
<a name="trunk-gt-0"></a>
<h1 >trunk => 0<a href="#trunk-gt-0" class="wiki-anchor">¶</a></h1>
</blockquote>
</blockquote>
<p> こちらは,前から書いていたとおり,仕様としていただけると.「こういう場<br>
合に嫌だ」とか,そういう話ってありますかね.</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2317
2008-12-25T14:14:24Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul></ul><p>=begin<br>
こんにちは、なかむら(う)です。</p>
<p>In message "<a href="https://blade.ruby-lang.org/ruby-dev/37585">[ruby-dev:37585]</a> Re: [Bug:trunk] eval with binding"<br>
on Dec.25,2008 00:20:48, <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> wrote:</p>
<blockquote>
<p> これで直るのではないかと思います.ご確認いただけませんか.</p>
</blockquote>
<p>変数bindに一度も値を代入したことがないのに直ることはありえな<br>
いと思うんですが。</p>
<p>それはともかく、どこでも通用する再現ケースを示しても、報告者<br>
が確認しないとダメですか。いや言われればやりますけどね。</p>
<blockquote>
<blockquote>
<blockquote>
<a name="その2"></a>
<h1 >その2<a href="#その2" class="wiki-anchor">¶</a></h1>
</blockquote>
</blockquote>
<p> こちらは,前から書いていたとおり,仕様としていただけると.「こういう場<br>
合に嫌だ」とか,そういう話ってありますかね.</p>
</blockquote>
<p>そもそも「バグだ」と指摘しているわけではなくて、1.8と違うのは<br>
なぜですか、と聞いているだけなので、理由さえ説明されていれば<br>
違っていてもかまわないとは思います。</p>
<a name="それでは"></a>
<h2 >それでは。<a href="#それでは" class="wiki-anchor">¶</a></h2>
<p>U.Nakamura <a href="mailto:usa@garbagecollect.jp" class="email">usa@garbagecollect.jp</a></p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2324
2008-12-26T07:59:14Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>U.Nakamura wrote::</p>
<blockquote>
<p>変数bindに一度も値を代入したことがないのに直ることはありえな<br>
いと思うんですが。</p>
</blockquote>
<p> これに関してはコピペミスでした.で,投稿したパッチだと直らないことがわ<br>
かったので,方針を変えて修正中です.かなりの大改修になりそうです.</p>
<blockquote>
<p>それはともかく、どこでも通用する再現ケースを示しても、報告者<br>
が確認しないとダメですか。いや言われればやりますけどね。</p>
</blockquote>
<p> 手元ではそのケースと make test に限り確認していたんですが,それ以外の<br>
テストを行っていないので確認をお願いしたつもりでした.</p>
<p>(で,手元で小さいプログラムで確認したと思ったんだけど,直ってなかった.<br>
おかしいなあ)</p>
<p> つまり,困ったプログラムがあったんだろう,そういうプログラムでもきちん<br>
と動作するのか,エンバグをしていないか等,そちらの持っているプログラムで<br>
確認してもらうようにお願いしたつもりでした.</p>
<p>(で,そもそも直ってなかった)</p>
<p> 今回は,何を思ったか先にメールで確認しましたが,とりあえず,今後は気に<br>
せずコミットしようと思います.</p>
<p>(テスト付きで)</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<a name="その2"></a>
<h1 >その2<a href="#その2" class="wiki-anchor">¶</a></h1>
</blockquote>
</blockquote>
<p> こちらは,前から書いていたとおり,仕様としていただけると.「こういう場<br>
合に嫌だ」とか,そういう話ってありますかね.</p>
</blockquote>
<p>そもそも「バグだ」と指摘しているわけではなくて、1.8と違うのは<br>
なぜですか、と聞いているだけなので、理由さえ説明されていれば<br>
違っていてもかまわないとは思います。</p>
</blockquote>
<p> 理由は <a href="https://blade.ruby-lang.org/ruby-dev/37376">[ruby-dev:37376]</a> で書いたとおり,「実装が大変」だからです.</p>
<p> まつもとさんに聞いたら,とくに問題ない(実装と1.8互換性の天秤にかけ<br>
て,この互換性欠如が問題になることはないのではないか)という回答を得てい<br>
ます.が,うささんには困った事情があったのではないかと推察します.その事<br>
情がどれくらい問題であるか聞きたかった,ということです.</p>
<p> もし,その問題がまつもとさんに「これは直さないといかん」ということにな<br>
れば,私は直すことになるかと思います.</p>
<p> この挙動自体は,BEGIN{} のスコープに関する私の勘違いからこのようになっ<br>
ています.具体的には,BEGIN{} を iseq の先頭にくっつけるような実装にして<br>
いる.</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2326
2008-12-26T12:20:26Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul></ul><p>=begin<br>
こんにちは、なかむら(う)です。</p>
<p>In message "<a href="https://blade.ruby-lang.org/ruby-dev/37600">[ruby-dev:37600]</a> Re: [Bug:trunk] eval with binding"<br>
on Dec.26,2008 07:58:59, <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> wrote:</p>
<blockquote>
<p> つまり,困ったプログラムがあったんだろう,そういうプログラムでもきちん<br>
と動作するのか,エンバグをしていないか等,そちらの持っているプログラムで<br>
確認してもらうようにお願いしたつもりでした.</p>
</blockquote>
<p>話の元はIRCでの遠藤さんとの雑談(「rubyで〜〜なことができるか」<br>
というクイズ)だったので、他の何の前提もなく、問題ケースその1<br>
のコードが書かれています。<br>
なので、私の手元で特にこれが原因で困ったプログラムがあるわけ<br>
ではありません。</p>
<p>ただし、この挙動を前提としたコードをどこかで見た記憶はあるの<br>
で(私が書いたものじゃないですが)、世界のどこかにはこれで困る<br>
ことになる人はいるだろうと思われます。</p>
<blockquote>
<blockquote>
<p>そもそも「バグだ」と指摘しているわけではなくて、1.8と違うのは<br>
なぜですか、と聞いているだけなので、理由さえ説明されていれば<br>
違っていてもかまわないとは思います。</p>
</blockquote>
<p> 理由は <a href="https://blade.ruby-lang.org/ruby-dev/37376">[ruby-dev:37376]</a> で書いたとおり,「実装が大変」だからです.</p>
<p> まつもとさんに聞いたら,とくに問題ない(実装と1.8互換性の天秤にかけ<br>
て,この互換性欠如が問題になることはないのではないか)という回答を得てい<br>
ます.が,うささんには困った事情があったのではないかと推察します.その事<br>
情がどれくらい問題であるか聞きたかった,ということです.</p>
</blockquote>
<p>その2については、その1の元となったクイズをいかに1.9で解くか、<br>
という点からひねり出したものなので、正直挙動自体はどうでもい<br>
いです。</p>
<p>私に関してはruby_1_8ブランチが切られてからずっとtrunk使ってる<br>
ので今更1.8と互換性がない部分があったのに気づいた、とかいうこ<br>
とがあっても何も困りません。</p>
<a name="昨日までのtrunkと今日のtrunkで違うよとかいうことがあった"></a>
<h1 >昨日までのtrunkと今日のtrunkで違うよ、とかいうことがあった<a href="#昨日までのtrunkと今日のtrunkで違うよとかいうことがあった" class="wiki-anchor">¶</a></h1>
<a name="らさすがに困りますが-"></a>
<h1 >らさすがに困りますが :)<a href="#らさすがに困りますが-" class="wiki-anchor">¶</a></h1>
<p>ただ、説明されていない非互換性はバグとしか考えようがありませ<br>
んから、バグじゃないなら説明をしてね、と言ってるだけです。<br>
本件については、非互換であること自体は当初から一度も問題には<br>
していないつもりです。</p>
<a name="それでは"></a>
<h2 >それでは。<a href="#それでは" class="wiki-anchor">¶</a></h2>
<p>U.Nakamura <a href="mailto:usa@garbagecollect.jp" class="email">usa@garbagecollect.jp</a></p>
<p>=end</p>
Ruby master - Bug #803: eval with binding
https://redmine.ruby-lang.org/issues/803?journal_id=2359
2008-12-27T10:17:05Z
ko1 (Koichi Sasada)
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>=begin<br>
Applied in changeset r21079.<br>
=end</p>