[#31647] [Backport #3666] Backport of r26311 (Bug #2587) — Luis Lavena <redmine@...>

Backport #3666: Backport of r26311 (Bug #2587)

13 messages 2010/08/07

[#31666] [Bug #3677] unable to run certain gem binaries' in windows 7 — Roger Pack <redmine@...>

Bug #3677: unable to run certain gem binaries' in windows 7

10 messages 2010/08/10

[#31676] [Backport #3680] Splatting calls to_ary instead of to_a in some cases — Tomas Matousek <redmine@...>

Backport #3680: Splatting calls to_ary instead of to_a in some cases

10 messages 2010/08/11

[#31681] [Bug #3683] getgrnam on computer with NIS group (+)? — Rocky Bernstein <redmine@...>

Bug #3683: getgrnam on computer with NIS group (+)?

13 messages 2010/08/11

[#31843] Garbage Collection Question — Asher <asher@...>

This question is no doubt a function of my own lack of understanding, but I think that asking it will at least help some other folks see what's going on with the internals during garbage collection.

17 messages 2010/08/25
[#31861] Re: Garbage Collection Question — Roger Pack <rogerdpack2@...> 2010/08/26

> The question in short: when an object goes out of scope and has no

[#31862] Re: Garbage Collection Question — Asher <asher@...> 2010/08/26

Right - so how does a pointer ever get off the stack?

[#31873] Re: Garbage Collection Question — Kurt Stephens <ks@...> 2010/08/27

On 8/26/10 11:51 AM, Asher wrote:

[#31894] Re: Garbage Collection Question — Asher <asher@...> 2010/08/27

I very much appreciate the response, and this is helpful in describing the narrative, but it's still a few steps behind my question - but it may very well have clarified some points that help us get there.

[#31896] Re: Garbage Collection Question — Evan Phoenix <evan@...> 2010/08/27

You have introduced something called a "root node" without defining it. What do you mean by this?

[#31885] Avoiding $LOAD_PATH pollution — Eric Hodel <drbrain@...7.net>

Last year Nobu asked me to propose an API for adding an object to

21 messages 2010/08/27

[#31947] not use system for default encoding — Roger Pack <rogerdpack2@...>

It strikes me as a bit "scary" to use system locale settings to

19 messages 2010/08/30

[#31971] Change Ruby's License to BSDL + Ruby's dual license — "NARUSE, Yui" <naruse@...>

Ruby's License will change to BSDL + Ruby's dual license

16 messages 2010/08/31

[ruby-core:31900] Re: Garbage Collection Question

From: brabuhr@...
Date: 2010-08-27 17:43:58 UTC
List: ruby-core #31900
On Fri, Aug 27, 2010 at 12:33 PM, Asher <asher@ridiculouspower.com> wrote:
> On Aug 27, 2010, at 12:09 PM, Evan Phoenix wrote:
>> It doesn't happen with every object allocated in a script body, only sometimes.
>
> No, it happens _every_ time. See examples.

Modified original program:

##################################################

weak_hash = Hash::Weak.new

class TestClass
end

1_000.times do |n|
  test_object = TestClass.new

  weak_hash[ n ] = test_object
  valid_key = weak_hash[ n ]
  p valid_key
end

class AnotherClass
end

test_object = nil

1_000.times do |n|
  print "getting test object (#{n}) (should fail with rb_eRangeError): "
  invalid_key = weak_hash[ n ]
  p invalid_key
  # error - returns valid key
end

##################################################

Output:

$ ruby -v gc.rb
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
#<TestClass:0xb73f6d64>
#<TestClass:0xb73f6d3c>
#<TestClass:0xb73f7e80>
[...]
#<TestClass:0xb73f7e30>
#<TestClass:0xb73f7e08>
#<TestClass:0xb73f7e80>
getting test object (0) (should fail with rb_eRangeError):
#<TestClass:0xb73f7e80>
getting test object (1) (should fail with rb_eRangeError):
#<TestClass:0xb73f7e80>
getting test object (2) (should fail with rb_eRangeError):
#<TestClass:0xb73f7e80>
[...]
getting test object (31) (should fail with rb_eRangeError):
#<TestClass:0xb73f7e80>
getting test object (32) (should fail with rb_eRangeError):
#<TestClass:0xb73f7e80>
gc.rb:15:in `_id2ref': 0xdb9fbf04 is recycled object (RangeError)
        from gc.rb:15:in `[]'
        from gc.rb:54
        from gc.rb:52:in `times'
        from gc.rb:52
getting test object (33) (should fail with rb_eRangeError):

In This Thread