-----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-----