-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 あ。ささださんがメール書いたから俺も書こう。 RubyConfの最終日にYARVをマージしろといいましたが俺自身は何も作業してな くてごめんなさい、卜部です。このメールはYARVではなくて1.8についての話 題を扱います。また、議論のベースがRubyConf時点のものなので、わりと状況 変わってる部分もあると思います。御了承ください。 [ruby-dev:29755]で神戸さんも御指摘のように、いまの1.8ブランチは*BSD文 化圏でいうところのいわゆるSTABLEに相当する状態だとわたしも認識していま す。これをRELEASEに相当する状態(か、それに類似するもの)に変更しようと いうのがこのメールの提案の趣旨です。これは - - trunk : CURRENT - - 1.8.5 : STABLE から - - trunk : CURRENT - - 1.8.6 : RELEASE - - 1.8.6-p1 : RELEASE + patchlevel 1 にしようという提案であり - - trunk : CURRENT - - 1.8.6 : STABLE - - 1.8.6-p1 : RELEASE ではない、という点には御注意ください。 さて上記をどのように実現するかという話ですが。 (1)1.8メンテナをまつもとさん以外の人にする まずご自身で仰っているようにまつもとさんは「Designer」です。そのこと自 体は得がたい能力だと思いますし、卜部にはできないことをやっておられるわ けで実際かなり尊敬していますが、デザインが得意だからといってメンテナン スが得意かというと、それは違うとしか。 以下は卜部がブランチメンテナになった場合の話で、 (2) API変更停止 以下に述べるPATCHLEVELの修正をのぞくすべての変更を凍結します。具体的には - - Cヘッダファイルの記述全て - - RubyレベルAPIの全て - - test/以下の全てのファイル ただし、RubyレベルAPIに関しては明確なものがない(今まさにJRubyのCharles が書いてるはず)ため、最初の段階では「動いてるコードが仕様です」となる 可能性はかなり高いと思います。 (3) RUBY_PATCHLEVELの新設 Rubyのバージョン番号にはこれまで「MAJOR.MINOR.TEENY、各フィールドは十 進一桁以下」という制限がありました(制限は主にversion.hとCプリプロセッ サの制約から来ています)が、新たにパッチレベルを示すPATCHLEVELという数 字を導入します。PATCHLEVELは十進でFixnumに収まる範囲の非負整数です。こ の数字は0から始まり、なんらかのパッチセットが投入されるたびに1づつ増え ていきます。基本的にバグフィックスしか行われないはずなので、パッチセッ トは取捨選択の必要はないと思います(入れるなら全部入れるべき)。 #define RUBY_VERSION "1.8.6" #define RUBY_RELEASE_DATE "2008-12-20" #define RUBY_VERSION_CODE 186 #define RUBY_RELEASE_CODE 20081220 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 #define RUBY_VERSION_TEENY 6 #define RUBY_PATCHLEVEL 65535 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 12 #define RUBY_RELEASE_DAY 20 こんな感じにしようかと。 以上いろいろ書きましたが、みなさまどうでしょう? 問題ないようならとりあえずアカウントください>まつもとさん -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFS+FRuTXPUnA5eMIRAjRUAJ9TqYhuz3ErgZ2UBRhSLGj0+BeJRgCfULiq xigZMoOrMZb6l/z1hCq1mL8= =ckTP -----END PGP SIGNATURE-----