-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yukihiro Matsumoto wrote:
> |田中さんは[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する
> 
> のはどうだろうか、という気分です。

これは(3)と同じなんじゃないかという気がします。「(3)でいく。ただしメモリ
消費量が馬鹿にならないから、可能な限りダイエットする」ではありませんか?
(もちろんそれを(4)と呼んでもいいと思いますが)

つまり、1.9.1のrubyは、常にgem探索が有効な状態で動作する、ということです
よね。これについてはこれまで、私、やまだあきらさんから反対が出てますね。
ここまで確認できたら、次の投稿あたりで私の反対理由を書きます。私の反対意
見は空振り率が高いんで、やまだあきらさんもどうぞ。:-)

> これならメモリ消費量の問題
> も、おまじないの問題も回避できそうです。技術的に可能なのか、
> どのくらい大変なのかはわかってませんが。
> 
> どうも、ロードするだけでもgemspec全部読んでるみたいなんで、そ
> のままではSyckやらは必須ですし、gemを見つける仕組みから考え直
> す必要がありそうで、そうなるとかなり大仕事になりそうです。

はやいとこ方向性を決めて、RugyGemsチームに伝える必要があるんじゃないです
か? 今から作って枯れてないものを1.9.1に添付する、というだけで冒険ですか
ら、早いに越したことはない。

まさかcoreチームで独自に実装するわけじゃないですよね?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRw4mvx9L2jg5EEGlAQLIDwf/c9VXLGkbwkZfR31p98AXRU0xHoPCizma
RDRhu1i/WVOnsAB8I1QlGyDAz1SQjp1C3rUlxAeR0do8unCpiGSOQU1QtFizYz7j
odYsnDftUPimQL4iqMFkJkildJQespcebVEXvSB7RlQJ/Q93ADJAFVpjMKnnZb/P
Tb/r2yvzDf1bn9Ka1pSJ5JJtIgO3/cyEcpqCjk8IWj1efxT2KpXjlYbl+FArUYVQ
G4jCLyqxQiAxf0W9WbY0SqcrPl+yT/RAnPho41diX7GOXVXpS5+WJLbxILoSztq1
dE8powFdD2x4/k2Y+YC+rUVM3B6OQO6C/og4xetR5gRN+Pk+H1CJeQ==
=PHTs
-----END PGP SIGNATURE-----