[Rubygems-developers] Updates to RubyGems
jim at weirichhouse.org
Mon Sep 18 14:22:57 EDT 2006
Several people at Euro RailsConf talked to me about a couple patches to
RubyGem. I've incorporated the following two:
* Memory reduction.
Steve Longdo did some research into an issue where multiple
Gem::GemSearchPath objects were being created, possibly in different
threads. He suggested turning the class into a singleton (to avoid
multiples), but I tend to avoid singleton. My alternative solution was
to put a Mutex around the creation of the search path object to avoid
race conditions from multiple threads.
* Specification comparison errors.
This is an issue that is really impacting the JRuby team. It seems that
Gem::Specification equals operator is poorly written in that it blows up
if compared to a non-specification object. I don't think the RubyGems
code ever explicity does this, but the JRuby folk think that it might be
related to Marsh activity (we do store our cache in marshal format).
Also, if the == operator is defined, a compatible hash should be defined
as well. I have fixed the Specification, Version and Requirements
classes, and have updated the unit tests to cover those issue.
You can update to this beta version with:
sudo gem update --system --source http://onestepback.org/betagems
The second issue is rather hot for the JRuby team and I would like to
make a new minor release soon. I know there are several patches I
haven't gotten around to yet, but if there are other hot issues for
RubyGems that should be addressed, give a hollar now.
-- Jim Weirich
More information about the Rubygems-developers