From: SASADA Koichi Date: 2006-11-04T00:44:55+09:00 Subject: [ruby-dev:29765] merge with YARV  ささだです。  RubyConf 2006 の最終日にさっさと YARV をマージしろ、といわれてしまった ので、11月中に YARV が本家リポジトリにマージできるように、今作業を進めて います。具体的には、この連休中に形にできればと思っています。  まつもとさんたちと相談した結果、具体的なプランは以下のとおりです。 1. 現在の Ruby HEAD (*a) の仕様(のほとんど)に YARV をあわせる この作業は、YARV のリポジトリで行います <-- いまここ 2. Subversion リポジトリを (*a) から cvs2svn で作る (*b) 3. (*b) に YARV をマージしたものをコミットする (*c) 4. 3 の作業中に (*a) に新たにコミットしたものを (*c) にコミットする (*d) (ここまでは、作業を全部なかったことにできる) 5. (*d) を Ruby の公式リポジトリとする ... 2007/12 YARV つきの 1.9.1 リリース 担当:  1, 2, 3: ささだ  4: まつもとさん  5: ?  5 を行う最終的な判断:まつもとさん  5 の完了を今月 (2006/11) 中に行えればと思っております。  これにともない、Rubyの開発について以下のように変更になります。 a) Ruby 評価器が YARV になる・Ruby の仕様に YARV の制限が入る  ・ネイティブスレッドの利用、Thread.critical の廃止  ・eval の binding に関する挙動変更  ・などなど b) リポジトリは CVS から Subversion になる  本件につきまして、Ruby 開発者の方々にお願いがあります。 ・eval.c / parse.y の挙動の差異の調査  YARV の目的は eval.c を無くすこと(評価器の書き換え)であったため、 eval.c、つまり評価器に対する変更には十分に追従できていません。たとえば funcall メソッドの導入(今は違うんでしたっけ?)。なんとなく、中途半端に 追従しているので、余計わかりづらくなっています。  また、parse.y についてもコンパイラ開発との兼ね合いから最新の文法に追従 できていません。  そこで、YARV と 1.9.0最新版と比較して「ここが違う」というご指摘(のリ スト)、パッチなどを頂ければと思います。CVS の変更履歴から変更点を追って いく作業が必要になるかもしれません。  わかりやすい仕様以上に、エラーメッセージ・警告の追加・セキュリティに関 する挙動などがとくに追従できていません。それらに関するご指摘をお願いいた します。この類に関する網羅的なテストは Ruby には存在しないので、これを機 に開発するのもいいかもしれません(Ruby の品質改善に興味がある人が居れば)。 ・YARV のソースレビュー  YARV はの C のコードは、ほぼ、ささだ一人で作っていたため全然人の目が 入っていないため、ちょっとあんまりだろ、というところも多いかと思います。 なので、読んでもらってそのあたりご指摘頂ければと思います。  この辺がわからない、などありましたらご質問頂ければ回答させていただけれ ばと思っております。 ・その他  本件について、その他のご指摘も歓迎します。この変更自体は大変大きなもの になるため、いろいろな意見があるかと思います。前述のフェーズ「5」までは いくらでも後戻り可能なので、ご意見頂ければと思います。 YARV: Yet Another Ruby VM http://www.atdot.net/yarv/ YARV Subversion repository http://www.atdot.net/svn/yarv/trunk YARV on ViewCVS http://www.atdot.net/viewcvs/yarv/trunk/ -- // SASADA Koichi at atdot dot net