まつもと ゆきひろです
In message "Re: [ruby-dev:31970] Re: Import RubyGems to Ruby 1.9"
on Mon, 8 Oct 2007 11:47:18 +0900, "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> writes:
|嫌な匂いがしたのでIRCへ行き、田中さんの意図を確認してきました。で、以前
|のruby-devの議論の中で結論が出ておらず、今回の議論でもカバーされていない
|点がある、ということに気付きました。
|
|■田中さんの意見のサマリ
|
|田中さんは[ruby-dev:27378]で、RubyGemsのrubyへの統合の状態として以下の3
|つを挙げています。
|
|(1) RubyGems が添付されていない ruby
|(2) RubyGems が添付されているが自動的には require しない ruby
|(3) RubyGems は添付されていて自動的に require する ruby
|
|そして、
|
| A. アプリケーション作者、ライブラリ作者の中には、ユーザがRubyGemsを使い
| たい場合でもそうでない場合でもよいように、以下のようなおまじないを
| 入れる人が出てくるだろう。
| require "rubygems" rescue LoadError
|
| B. RUBYOPT=rubygemsにしろ、require "rubygems" rescue LoadErrorにしろ、
| おまじないは不幸である。
|
| C. 最終的に(3)の状態に到達するのであれば、おまじないは不要。
|
|と指摘しています。田中さんとしては、(1) or (3)であり、(2)には反対、とい
|うことだと思います。この議論は[ruby-dev:27378]で打ち切られ、残念ながら煮
|詰まらなかったようです。
私もakrさんと話をして、以下のように思いました。
* RubyGemsは私の想像以上に大きい
* その上たくさんのライブラリをrequireする
* 結果、メモリ消費量が馬鹿にならない
* ので、むやみにrequire 'rubygems'するのは考えもの
* 少なくとも必ずrequireはできない
ですから、3には賛成しません。で、Bには賛成するので2もあまり
嬉しくなさそうです。
で、どうするかですが、
(4) RubyGemsを添付した上で、gemをロードする機能だけをもった小
さなライブラリをコアに追加する。具体的にはprelude.rbで
requireする
のはどうだろうか、という気分です。これならメモリ消費量の問題
も、おまじないの問題も回避できそうです。技術的に可能なのか、
どのくらい大変なのかはわかってませんが。
どうも、ロードするだけでもgemspec全部読んでるみたいなんで、そ
のままではSyckやらは必須ですし、gemを見つける仕組みから考え直
す必要がありそうで、そうなるとかなり大仕事になりそうです。
まつもと ゆきひろ /:|)