[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01098] Re: Infinite loop

From: matz@... (Yukihiro Matsumoto)
Date: 2000-01-11 15:18:49 UTC
List: ruby-talk #1098
Hi,

In message "[ruby-talk:01092] Re: Infinite loop"
    on 00/01/11, Clemens Hintze <clemens.hintze@alcatel.de> writes:

|> Exactly - it just seems inconsistent, but as I mentioned originally, I 
|> don't think it's necessarily a bug ;-)
|
|But here we differ in opinion! In my eyes, this *is* necessarily a
|bug!

I agree.  This is a bug.

Here's two option to solve this.  Which do you prefer?

  (a) like Array#inspect, Array#hash can use rb_protect_inspect() and
      rb_inspecting_p() to detect cycles.

  (b) change the behavior of Array#hash not to traverse items
      recursively. e.g.

         def hash
           h = self.id
           for item in self
             h ^= item.id
           end
           h
         end

Both are real eacy to implement.  I prefer latter.

							matz.

In This Thread