Opened 15 years ago

Last modified 15 years ago

#22361 closed defect

Ruby 1.87 Hash equivalence fails on large Fixnums — at Version 4

Reported by: ben@… Owned by: kimuraw@…
Priority: Normal Milestone:
Component: ports Version: 1.8.1
Keywords: Cc:
Port: ruby

Description (last modified by mf2k (Frank Schima))

On MacOS Leopard 10.5.8 with Ruby 1.87 (all patchlevels <= 174) and all compatible versions of MacPorts (<= 1.8.1)

Hash equivalence fails when a value is a Fixnum > 536870911.

>> {:a => 536870911}.hash == {:a => 536870911}.hash
=> true
>> {:a => 536870912}.hash == {:a => 536870912}.hash
=> false

Change History (4)

comment:1 Changed 15 years ago by visnupx@…

btw, 229 == 536870912. also, works on snow leopard:

>> {:a => 2**29-1}.hash
=> 2146753031
>> {:a => 2**29-1}.hash
=> 2146753031
>> {:a => 2**29}.hash
=> -2146753029
>> {:a => 2**29}.hash
=> -2146753029

comment:2 Changed 15 years ago by visnupx@…

apple's /usr/bin/ruby in snow leopard 10.6.1

comment:3 Changed 15 years ago by mf2k (Frank Schima)

Keywords: ruby hash removed
Owner: changed from macports-tickets@… to kimuraw@…
Port: ruby added

comment:4 Changed 15 years ago by mf2k (Frank Schima)

Description: modified (diff)
Note: See TracTickets for help on using tickets.