[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:334

From: HIDAKA Takahiro <cv8t-hdk asahi-net.or.jp>
Date: Thu, 25 Nov 2004 02:30:31 +0900
Subject: [yarv-dev:334] yarv(Ruby) のブロックローカル変数

 ひだかです。こっそりVMについて妄想中です。

 ささださんの日記とかみていて、
yarv というか Ruby VM についての疑問がひとつでてきました。

 yarv では dfp というのがたぶんブロックごとのフレームを
指すポインタで、ブロックローカル変数はそれぞれのフレームに
変数の実体があって、VM命令(getdynamicかな?)のオペランドは
そのなかのインデックスで表されているんだと思ったのですが合ってますか?

 これを、ブロックローカル変数を全部メソッドごとの
フレームに展開して保持して、登場順にインデックスを割り当てて
参照するようにするとなにか問題がおきるのでしょうか。

 def method(a)
    b = 2 
	a.collect do | c |
	  d = 3
	  b + c + d
    end
  end

こんなソースなら、a,b,c, d をそれぞれローカル変数の1,2,3,4番として
アクセスすれば問題ないんじゃないかと思ったのですが。

 なんか単純なことを見落としているような気もするのですが
教えてもらえればうれしいです。
-- 
ひだかたかひろ cv8t-hdk asahi-net.or.jp

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

->     334 2004-11-25 02:30 [cv8t-hdk asahi-net.o] yarv(Ruby) のブロックローカル変数       
       335 2004-11-25 02:39 ┗[nobu.nokada softhome]                                       
       336 2004-11-25 02:46  ┗[cv8t-hdk asahi-net.o]                                     
       338 2004-11-26 14:38   ┗[nobu.nokada softhome]                                   
       339 2004-11-26 15:34    ┗[ko1 atdot.net       ]                                 
       340 2004-11-29 15:43     ┗[nobu.nokada softhome]                               
       341 2004-11-29 20:46      ┗[ko1 atdot.net       ]                             
       342 2004-11-30 00:06       ┗[nobu.nokada softhome]