On Jul 7, 2010, at 08:27, James Tucker wrote:
> The main 'cheat' in the branch so far is to move plugin loads into the 
> command manager, but I'm not entirely satisfied with this, and so I'm polling 
> for interest in what features plugin authors actually need / want, and where 
> those can be injected. Most specifically, I want to see if they can be done 
> so more lightly.
> 
> Initially, probably the most commonly used plugin is the gemcutter plugin, 
> which provides commands. At present it deliberately loads the CommandManager, 
> which results in loading in about 37 files and the spec cache into memory 
> whenever rubygems.rb is loaded. The difference in startup performance is 
> significantly over an order of magnitude on common developer systems (with 
> largish numbers of gems installed).
> 
> A solution for command plugins would be to have plugins simply register a 
> list of files that should be loaded when commands are going to be invoked. A 
> continuation of this idea leads to an API something along the lines of:
> 
> Gem.register_plugin(:install, 'some_plugin/gem/installer')
> Gem.register_plugin(:command, 'some_plugin/gem/command')

I like this idea.

> Such that rubygems could contain simple internal hooks to load these on 
> demand, rather than ahead of time, avoiding pre-activation of plugins and the 
> current increased cost of loading rubygems.

Yes.
_______________________________________________
Rubygems-developers mailing list
http://rubyforge.org/projects/rubygems
Rubygems-developers@rubyforge.org
http://rubyforge.org/mailman/listinfo/rubygems-developers

Reply via email to