From: "H.Yamamoto" Date: 2006-01-15T23:43:27+09:00 Subject: Re: YAML.load({[]=>""}.to_yaml) Hi. >>> After changing test script a bit, ("self.send m" => "self.funcall m") looks working. >> >>with GC.stress = true ? >>-- >>Tanaka Akira > >No, I didn't try it. But anway, 100 times was not enough. After increased it to million times, >error was reported. This is because YAML is not handling CR and LF properly. By following change, test script passed 100_000 times. def random_string len = rand(4) chars = [] (0...len).each {|i| ## don't check bytes with MSB. #chars << rand(256) c = rand(128) chars << c if c != ?\r && c != ?\n # << workaround >> } chars.pack("C*") end 1.8.1 treats escape seaquence as string, but 1.8.4 treats it as binary? E:\ruby-cvs\win32>ruby -ryaml -e 'puts YAML.dump("\n")' --- | E:\ruby-cvs\win32>ruby -ryaml -e 'puts YAML.dump("\t")' --- !binary | CQ== And I tried GC.stress, there seems not to be GC problem. Umm, there is still problem, but I think empty seq/map problem was solved by my patch. If there is no objection, I want to commit it tommorow or later.