From: Yukihiro Matsumoto Date: 2007-10-11T11:28:24+09:00 Subject: [ruby-dev:32023] Re: Import RubyGems to Ruby 1.9 まつもと ゆきひろです In message "Re: [ruby-dev:31970] Re: Import RubyGems to Ruby 1.9" on Mon, 8 Oct 2007 11:47:18 +0900, "NAKAMURA, Hiroshi" 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を見つける仕組みから考え直 す必要がありそうで、そうなるとかなり大仕事になりそうです。 まつもと ゆきひろ /:|)