On Oct 29, 2008, at 07:39 AM, Yukihiro Matsumoto wrote:
> By recent change, gem_prelude always requires rubygems/defaults.rb and
> other rubygems related files.  It's not my intention.  I don't want
> the bare interpreter to rely on other libraries, until it's really
> needed.  Plain execution should be done without loading any other
> libraries.  That's the very reason behind pre-loaded prelude.rb and
> gem_prelude.rb.  It already made my testing difficult.

These files:

require 'rubygems/defaults/operating_system'
require "rubygems/defaults/#{RUBY_ENGINE}"

do not exist by default, but are used by packagers to customize  
RubyGems behavior.  For example, debian-packaged ruby installs ruby  
into /usr/lib, but wants to install gems into /var/lib.  If a packager  
creates rubygems/defaults/operating_system.rb, it should not require  
any other files except lazily.

I would like to make it easier for users to upgrade RubyGems and have  
it work the same as their default install.

> So, Eric, could you avoid mandatory requiring rubygems from
> gem_prelude, please?  It should be done lazily.

I can duplicate the code from:

require 'rubygems/defaults'

into gem_prelude, but it would be a direct cut and paste.  rubygems/ 
defaults.rb does not require any other files.