[#7500] Re: how to introduce reference objects into ruby — "Geert Fannes" <Geert.Fannes@...>

The problem with the code you sent is that you have to go through ALL

16 messages 2006/03/10

[#7553] "not" operator used in expression that is a method parameter can generate syntax error — noreply@...

Bugs item #3843, was opened at 2006-03-15 22:09

27 messages 2006/03/16
[#7554] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — nobu@... 2006/03/16

Hi,

[#7557] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — 卜部昌平 <shyouhei@...> 2006/03/16

Nobu, you are not answering to the question.... You have to unveil why

[#7559] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — Yukihiro Matsumoto <matz@...> 2006/03/16

Hi,

[#7560] Rant about keyword logical operators was : (Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error) — "Zev Blut" <rubyzbibd@...> 2006/03/16

Hello,

[#7565] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — mathew <meta@...> 2006/03/16

Yukihiro Matsumoto wrote:

[#7566] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — "Brian Mitchell" <binary42@...> 2006/03/16

On 3/16/06, mathew <meta@pobox.com> wrote:

[#7567] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — mathew <meta@...> 2006/03/16

Brian Mitchell wrote:

[#7568] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — "Brian Mitchell" <binary42@...> 2006/03/16

On 3/16/06, mathew <meta@pobox.com> wrote:

[#7614] PATCH: A subclassable Pathname — "Evan Phoenix" <evanwebb@...>

A simply change (changing all references of "Pathname.new" to

19 messages 2006/03/27
[#7618] Re: PATCH: A subclassable Pathname — Tanaka Akira <akr@...17n.org> 2006/03/27

In article <92f5f81d0603262350k796fe48fp2224b9f2108ac507@mail.gmail.com>,

[#7619] Re: PATCH: A subclassable Pathname — "Evan Phoenix" <evan@...> 2006/03/27

Quite right on the .glob and .getwd. I guess the tests don't test hit

[#7620] Re: PATCH: A subclassable Pathname — Tanaka Akira <akr@...17n.org> 2006/03/27

In article <92f5f81d0603270903g2fb02244i6a395be708dfffa3@mail.gmail.com>,

[ ruby-Bugs-3698 ] In a highly dynamic ObjectSpace (loads of created and collected objects) YAML creates erroneous anchors/references

From: noreply@...
Date: 2006-03-01 18:23:22 UTC
List: ruby-core #7470
Bugs item #3698, was opened at 2006-03-01 19:10
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=3698&group_id=426

Category: Standard Library
Group: v1.0 (example)
Status: Open
Resolution: None
Priority: 3
Submitted By: Hannes Wyss (hwyss)
Assigned to: Nobody (None)
Summary: In a highly dynamic ObjectSpace (loads of created and collected objects) YAML creates erroneous anchors/references

Initial Comment:
Here is a script that demonstrates the problem:

#!/usr/bin/env ruby

require 'yaml'

class Foo
  def collection
    ## simulate a cached environment where Object are loaded on demand
    @collection ||= [Object.new]
  end
  def to_yaml(opts={})
    res = YAML::quick_emit( self.object_id, opts ) { |out|
      out.map( taguri ) { |map|
        ## create a temporary Array with relevant data - in the real-world
        ## case this is not a dup, but I can reproduce the problem much faster this way
        map.add('collection', collection.collect { |o| o.dup })
      }
    }
    GC.start
    res
  end
end

foos = []
dump = ''
until(/id/.match(dump = foos.to_yaml))
  foos.push(Foo.new)
end
puts "Id-Collision in YAML after #{foos.size} attempts"
#puts dump


On a PowerBook with 1G ram:
hwyss@lapdog ~ $ ruby -v
ruby 1.8.4 (2006-02-24) [powerpc-linux]
hwyss@lapdog ~ $ ruby collision.rb
Id-Collision in YAML after 3 attempts
---
- !ruby/object:Foo
  collection:
  - &id001 !ruby/object {}

- !ruby/object:Foo
  collection:
  - !ruby/object {}

- !ruby/object:Foo
  collection:
  - *id001


On a i686 with 2 G ram:
ywesee@HotPower ~ $ ruby -v
ruby 1.8.4 (2006-02-24) [i686-linux]
ywesee@HotPower ~ $ ruby collision.rb
Id-Collision in YAML after 74 attempts


An attempt at working around the Problem using ObjectSpace#define_finalizer is attached. However I am not sure
a) whether this really is unexpected Behavior
b) if the suggested workaround is the best available
c) whether referencing the emitter in the finalizer-proc will prevent it from being garbage collected 

TIA for your help

Hannes

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=3698&group_id=426

In This Thread

Prev Next