[Ironruby-core] Code Review: HashFixes

Jimmy Schementi Jimmy.Schementi at microsoft.com
Wed Jul 1 03:08:34 EDT 2009


No takers? I've documented this at  http://ironruby.net/Documentation/Ruby_Standard_Library/Modifications so if anyone wants to bite the info is there.

~js

> -----Original Message-----
> From: Jimmy Schementi
> Sent: Tuesday, June 23, 2009 2:45 PM
> To: Tomas Matousek; IronRuby External Code Reviewers
> Cc: ironruby-core at rubyforge.org
> Subject: RE: Code Review: HashFixes
>
> How are we going to make sure this gets back into REXML and RubyGems?
> We shouldn't ship significantly different versions of the Ruby stdlib, as
> people will expect to switch to any version of the stdlib without issues.
>
> My first thought is to have someone in the community step up to propose
> these changes to RubyGems and REXML for us, and get them checked in.
> Anyone interested?
>
> ~js
>
> > -----Original Message-----
> > From: Tomas Matousek
> > Sent: Tuesday, June 23, 2009 1:37 PM
> > To: IronRuby External Code Reviewers
> > Cc: ironruby-core at rubyforge.org
> > Subject: Code Review: HashFixes
> >
> >   tfpt review "/shelveset:HashFixes;REDMOND\tomat"
> >
> >   Fixes implementation of hash methods in REXML and RubyGems. The
> > current implementation is incorrect since it sums hash codes of
> > subcomponents potentially overflowing to Bignum. This issue is mainly
> > exposed when calculating hash of an array. Array#hash calculates its
> > hash code by calling hash on each item and converting the result of
> > the hash method into Fixnum. So if the result if the hash method is a
> > Bignum an error is reported:
> >
> >   class C
> >     def hash
> >       100000000000000000000
> >     end
> >   end
> >
> >   [C.new].hash  # => in `hash': bignum too big to convert into `long'
> > (RangeError)
> >
> > Tomas


More information about the Ironruby-core mailing list