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

yarv-dev:471

From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 25 Apr 2005 16:49:57 +0900
Subject: [yarv-dev:471] Re: Multi-VM instance

  Shiro Kawai <shiro lava.net> wrote :
    [ [yarv-dev:469] Re: Multi-VM instance ]
    at Sun, 24 Apr 2005 21:33:12 -1000 (HST)

 ささだです.

> Schemeの規格レベルでは何もありません。例えば次の式の評価値は
> 実装依存で、1になる処理系もあれば「xなんてscheme-report-environment
> にはないよ」というエラーにする処理系もあるでしょう。
> 
>  (begin
>   (eval '(define x 1) (scheme-report-environment 5))
>   (eval 'x (scheme-report-environment 5)))

 なるほど.たしかに詳細には規定されていなかったですね.


> 複数のVMを持たせる場合、考慮するポイントがいくつかあると思います

 はい.まさにご指摘いただいたポイントを考えていました.だけ
ど,B は考えていなかったなぁ.スレッドと VM の関係は,あんま
り考えていなかったので再考します.

 VM というもののきちんとした定義が,まず必要なのかなぁ.

 とりあえず,目標として考えているのは mod_ruby が複数アプリ
ケーションを扱えるようにするための機構です.

 現在は,1 Ruby プロセスを共有するようになっているため,
mod_ruby で複数アプリケーションを動かすと,グローバルな何か
は全部共有されてしまいます.たとえば,String クラスを再定義
すると,どのアプリケーションでもそうなってしまう.これをな
んとかしたい.

 そのため,

> 確かTclは共有してませんよね。

 というモデルを考えていました.

 で,

> あるVMで作成したデータへの参照を別のVMにそのまま渡せるかどうか

 という点で,渡せちゃったら面白いことになりそうな気がする,
と考えておりました.



 ところで,

> C関数の中でもScm_VM()で一意に現在のVMが取れる(thread local storageを使っています)

 のプリミティブって何を使ってますか? gcc 拡張の tls?
それとも,pthread_getspecific()?

 私は tls を使おうと思ってたんですが,その辺のオーバヘッド
(x86 なら,セグメント指定が入るため)が気になっています.

-- 
// SASADA Koichi at atdot dot net
//

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

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

       466 2005-04-25 16:10 [ko1 atdot.net       ] Multi-VM instance                       
       467 2005-04-25 15:47 ┣[shudo computer.org  ]                                       
       468 2005-04-25 15:49 ┃┗[shudo computer.org  ]                                     
       470 2005-04-25 16:39 ┃ ┗[ko1 atdot.net       ]                                   
       469 2005-04-25 16:33 ┣[shiro lava.net      ]                                       
->     471 2005-04-25 16:49 ┃┗[ko1 atdot.net       ]                                     
       473 2005-04-25 17:27 ┃ ┗[shiro lava.net      ]                                   
       476 2005-04-25 17:38 ┃  ┗[ko1 atdot.net       ]                                 
       477 2005-04-25 17:51 ┃   ┗[shiro lava.net      ]                               
       481 2005-04-25 19:13 ┃    ┗[ko1 atdot.net       ]                             
       472 2005-04-25 17:02 ┗[ko1 atdot.net       ]