yarv-dev:115
From: SASADA Koichi <ko1 atdot.net>
Date: Sat, 24 Jul 2004 05:27:28 +0900
Subject: [yarv-dev:115] another project
ささだです。 暑くて眠れないので投稿します。 2004年度未踏ソフトウェア創造事業 「未踏ユース」 公募結果 http://www.ipa.go.jp/jinzai/esp/2004youth/koubokekka.html が公開されていました。 「9. 淺川 浩紀さん Ruby.NET コンパイラの開発 管理会社:三菱マテリアル(株) 」 というプロジェクトも採択されたそうです。いやーん、ガチ対決? どなたか、どんなプロジェクトかご存知のかたいらっしゃいませんか? いずれ、ミーティングとかで会うことになるとは思うんですが (管理組織いっしょだし) この方法の是非なんですが、前IRCで首藤さんとちょっとお話した ことがありました。 仮定として、「Ruby .NETコンパイラ」とは、「RubyAST を .Net CIL(*1) に落とすもの」であると考えます。 (JRuby のようなものかもしれませんが、私はこっちじゃないかなぁ、 と思うんですが、どうでしょう。まさか、パーサレベルからやるとは 思えないんだけど) CIL: Common Intermediate Language http://download.microsoft.com/download/6/8/8/68863d89-d35d-4bc5-8a1c-7e0a02e1881e/Partition_III_CIL.zip この CIL にあたるものが、YARVの命令語にあたるものだと思います。 ・YARVの利点、.NET Compilerの欠点: 1. IL(中間言語)の仕様がyarvのはRuby的に有利 yarv は rubyべったりに作りますので、その中間語はRubyの実行 に適したものが作られます。Rubyを CIL に載せるためには、CIL の モデルと Ruby の実行モデルとの齟齬がある(だろう)から、その 隙間を埋めるコードが必須となる。たとえばクロージャを実現したい と思ったとき、それをオブジェクトスペースですべてを管理するよう になると、オーバヘッドがでかいような気がします。 となると、CILのメソッド呼び出し機構使わないのかなぁ? スタック を取れるだけでかく取って、自分でスタックマネージメントするような 形に・・・。駄目か、ローカル変数への変数インデックスでのアクセス はサポートしてないような気がした。 また、YARVでは、それを実行するための最適化で細かいことを Cで色 々書けます、というか、書きます。 2. 既存のライブラリとの互換性を考慮可能 考慮可能っていうだけで、互換性が保たれることが保証できるわけじゃ ないんですが・・・。 できるだけ互換性があるように作るつもりではあります。 ここでのライブラリはC拡張ライブラリを指しています。 ・YARVの欠点、.NET Compilerの欠点: 3. .NET CLR(Common Language Runtime)の最適化器の品質が段違いにイイ - code optimizer - JITコンパイラ などの品質はどんなに頑張っても勝てません。多分(時間、人材的に)。 orz 4. 豊富なライブラリへのアクセスが約束される どちらかというと副次的なメリットですが、利用者的には超でかい ですよね。 ・不明 - C の今までのライブラリとの互換性がとれるのかな? - GC とかどうなるんだろう - 例外機構はすんなり乗るんだろうか - eval とか動くのかなぁ(環境管理的に) - 何が彼をこれに向けさせたんだろう ・まとめ 1 と 3 のトレードオフですよねぇ。多分。首藤さんには 3 によって .NET の勝ち〜って一刀両断されちゃったんだけど、 Groovy の処理速度とか見ると、やっぱりそんな簡単じゃない んじゃないかと思います。(と思わせて orz) (議論で抜けている点などあれば、ご指摘ください) -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
-> 115 2004-07-24 05:27 [ko1 atdot.net ] another project 116 2004-07-24 12:05 ┗[matz ruby-lang.org ] 117 2004-07-24 16:33 ┗[ko1 atdot.net ] 118 2004-07-24 17:26 ┗[matz ruby-lang.org ] 119 2004-07-24 17:31 ┗[ko1 atdot.net ] 120 2004-07-24 17:34 ┗[ko1 atdot.net ] 121 2004-07-25 02:08 ┗[shudo computer.org ]