yarv-dev:923
From: SASADA Koichi <ko1 atdot.net>
Date: Sat, 18 Feb 2006 02:50:33 +0900
Subject: [yarv-dev:923] fixed> Re: open> super in define_method when called twice
ささだです。 SASADA Koichi wrote: >> memoize がまだうまく動きません。 >> define_method を2回呼んだ時の動作が変です。 > > 色々考えてみたんですが、今の構造だと不可能だということがわかりました。 > 別なアプローチを考えますので、すぐには直らないかも知れません。どれくらい > 優先度が高い感じですかね。 > と言いながら、直しました。意地ですね、これは。 問題は、メソッド呼出し毎に積むスタックフレームに、呼び出すときのIDと、 そのときのclassが積まれていないからです。ただし、define_methodで定義され たメソッド(つまり、NODE_BMETHOD)から super を呼び出すとき *だけ*、つま り今回のケースのためだけ必要になります。このためだけに、毎回スタックフ レームに余分なものを積むコストをかけるのは馬鹿らしいので、なんとかなんな いかなぁ、と考えて、考えて、とても汚いhackで済ますことにしました。 -- // SASADA Koichi at atdot dot net -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
859 2006-02-13 21:53 [sheepman sheepman.sa] open> super in define_method 861 2006-02-13 23:08 ┗[ko1 atdot.net ] fixed> Re: open> super in define_method 914 2006-02-17 19:24 ┗[sheepman sheepman.sa] open> super in define_method when called twice 922 2006-02-18 01:29 ┗[ko1 atdot.net ] -> 923 2006-02-18 02:50 ┗[ko1 atdot.net ] fixed> Re: open> super in define_method when called twice