From: Akinori MUSHA Date: 2002-04-16T15:26:40+09:00 Subject: [ruby-dev:16926] Re: Ruby Shim At Thu, 11 Apr 2002 08:18:24 +0900, I wrote: >  さて、互換機能の実装と並行して、 1.7 にしかない標準ライブラリと > 拡張ライブラリを入れる作業も進めたいと思っています。現在、 1.7 に > のみ入っているライブラリの一覧は次の通り。(* 印は rough にあるもの) > > * ext/bigfloat (bigdecimal として落ち着いてから) > ext/iconv > * ext/stringio > ext/strscan > * ext/racc/cparse > * lib/benchmark.rb > * lib/fileutils.rb > * lib/pp.rb > * lib/prettyprint.rb > * lib/tsort.rb > * lib/racc/parser.rb  このうち、 bigfloat, iconv, stringio を除くすべてを shim に 入れさせていただきました。また、 dl がリストから漏れていたので、 立石さんの了解をいただいてこれも収録しました。 P.S. > なかださん  iconv と stringio についてはお願いできますか?Shim に入るものは 1.6 決め打ちでいいです。(って、開発版に入ってるのが 1.7 決め打ち なのでちょっとした手間かもしれない ^^;) * * *  shim のコンセプトについて、以下に改めてまとめました。 《背景》  巷の声を聞くに曰く: 「こんな機能が欲しい、と要望したら、開発版ではこう実現されている、 と教えてもらった。でも、安定版で使えないんじゃ救われない!」 「結局、便利だから開発版の機能を安定版でも実装して使うことにした。 でも、きっとみんな同じようなことをやっているんだろうな。。」 「開発版の追っかけをしていて、自分用のプログラムやライブラリでは 新機能をどんどん使っている。でも安定版じゃ動かないから、人には 使ってもらいにくい。」 「開発版にしかないモジュールをいくつか使いたいが、個別に入手して インストールするのは大変。それに、開発版にしかないこのモジュール、 そのままじゃ安定版で動かないよね。。」 《目的》 1. Ruby 開発版の新機能のうち、安定版でも実現・追加可能なものを 実装する。また新規追加モジュール群も安定版用にアレンジし、 これらをすべて一まとめにして配布する。 2. 1. により、開発版の新機能の早期のテスト・評価・利用を促進し、 来たる次期安定版の品質の向上を図りつつ、ユーザのスムーズな 版の移行をサポートする。 3. 各拡張ごとの独立性を確保し、テスト済みの実装を提供することで、 部分的に切り取っての利用にも対応する。(段階的な移行に役立つ) 《名前》 「Ruby Shim」 shim : 隙間に入れる詰め木の意 《方針》 [互換レイヤについて] 1. 安定版の挙動は極力変えない。追加や拡張にとどめる。名前空間も むやみに汚染しない。これにより、動いていたものが動かなくなる という心配をせずに Shim を使える。 2. Shim で追加・拡張された部分の後方互換性は追わない。開発版の 仕様に追随する。 3. できるだけ、(だいたいクラス・モジュール単位で見て)拡張同士が 依存しないようにして、部分的な利用も可能にしておく。 4. 完璧は目指さない。無理もしない。Shim で実装されないことが我慢 できないほど開発版の機能に浸かってしまった人には、少々の追加 リスクとコストを負って移行してもらえばいい。 [追加モジュールについて] 1. 各モジュールのメンテナに一任。開発版と同期するもよし、安定版 向けリリースということで慎重に保守するもよし。 2. メンテナが、安定版用のものは保守するつもりがないという場合、 Shim の committer が適宜開発版と同期する。(意思の表明がない 場合のデフォルト - 負担は強いません) 《その他》  開発版で廃止・変更された機能を使うと警告を出すようなオプション またはツールを作ると、移行に大いに役立つかもしれない。余力が出て きたら考えよう。  あまりに違いが大きかったり、実装が難しいクラス・モジュールは、 場合によってはまるごと拡張モジュールとして(クラス名の頭に Ruby18 などと付けて)提供する手もあるかも。ただし、需要と余力市大。  ということでぼちぼちやっていきましょう。よろしくお願いします。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Somewhere out of a memory.. of lighted streets on quiet nights.."