[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03236] Re: BUG or something?

From: Mathieu Bouchard <matju@...>
Date: 2000-06-10 01:31:18 UTC
List: ruby-talk #3236
> I tested following code.
[...]
> nil
> {"a"=>1, "a"=>10, "b"=>2}
> 10
> {"a"=>20, "a"=>10, "b"=>2}
> Is this BUG or feature?

This is called a compromise.

setting $= to true changes the hash code calculation so that "foo"'s
hashcode will actually be the usual "FOO" hashcode. this means, although
keys are stored in their original form, all hash codes are computed after
a conversion to uppercase. 

this is why a key containing lowercase cannot be found after turning $=
on, although it exists. this is also why non-unique keys are, strangely
enough, allowed. 

It would not be practical to recalculate all hash codes and rearrange all
key/value pairs in memory every time you flip the switch.

as a ruby newbie, i am impressed $= doesn't break the rest of the
interpreter. 

the bottom line: if you are to *ever* use $=, do it at the very beginning
of the program, or don't do it. my guess for $= is that it's going to
become deprecated in Ruby version 2 or 3; it's one of that kind of
features. 


Mathieu Bouchard


In This Thread