Bug #3112: require "yaml" doesn't use psych as default http://redmine.ruby-lang.org/issues/show/3112 Author: Usaku NAKAMURA Status: Open, Priority: Normal Category: lib, Target version: 1.9.2 ruby -v: ruby 1.9.2dev (2010-04-08 trunk 27255) why?
on 2010-04-08 04:17
on 2010-04-08 07:07
Issue #3112 has been updated by Yui NARUSE. = Before require 'yaml' and you can use YAML by syck. = History #2340 Removing YAML/Syck. http://redmine.ruby-lang.org/issues/show/2340 After imported psych, it is found that test-all conflicts. To avoid this, yamler is introduced. By yamler people can switch syck or psych (default is syck). = Current There is 3 element: * lib/yaml.rb * ext/syck * ext/psych = Q&A Why psych is bundled: * To review psych Why psych is not default: * it is not confirmed that it can be default in 1.9.2 * it has some incompatibilities showed following. Why syck is still bundled: * for machines which libyaml is not installed * for Windows Incompatibilities are following, can you explain why it can't compatible, Aaron? ext/syck/lib/syck.rb: YAML.generic_parser is deprecated, switch to psych" ext/syck/lib/syck.rb: YAML.resolver is deprecated ext/syck/lib/syck.rb: YAML.emitter is deprecated ext/syck/lib/syck.rb: YAML.each_document is deprecated ext/syck/lib/syck.rb: YAML.each_node is deprecated ext/syck/lib/syck.rb: YAML.parse_documents is deprecated, use load_stream ext/syck/lib/syck.rb: YAML.add_ruby_type is deprecated, use add_domain_ty ext/syck/lib/syck.rb: YAML.add_private_type is deprecated, use add_domain ext/syck/lib/syck.rb: YAML.detect_implicit is deprecated ext/syck/lib/syck.rb: YAML.tagurize is deprecated ext/syck/lib/syck.rb: YAML.transfer is deprecated ext/syck/lib/syck.rb: YAML.try_implicit is deprecated ext/syck/lib/syck.rb: YAML.read_type_class is deprecated ext/syck/lib/syck.rb: YAML.object_maker is deprecated ext/syck/lib/syck.rb: YAML.quick_emit is deprecated ext/syck/lib/syck/basenode.rb: select is deprecated ext/syck/lib/syck/basenode.rb: select!() is deprecated ext/syck/lib/syck/basenode.rb: search() is deprecated ext/syck/lib/syck/basenode.rb: at() is deprecated ext/syck/lib/syck/basenode.rb: match_path is deprecated ext/syck/lib/syck/basenode.rb: match_segment is deprecated ext/syck/lib/syck/basenode.rb: children_with_index is deprecated, use ext/syck/lib/syck/encoding.rb: YAML.escape is deprecated ext/syck/lib/syck/encoding.rb: YAML.unescape is deprecated ext/syck/lib/syck/stream.rb: edit is deprecated ext/syck/lib/syck/stringio.rb: yaml/stringio is deprecated ext/syck/lib/syck/ypath.rb: YAML::YPath is deprecated ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3112
on 2010-04-08 07:35
Issue #3112 has been updated by Usaku NAKAMURA. > Why psych is not default: > * it is not confirmed that it can be default in 1.9.2 You wrote that "It's decided by Yugui." at [ruby-core:28828]. Didn't it mean to make psych the default YAML engine? ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3112
on 2010-04-08 17:41
On Thu, Apr 08, 2010 at 02:06:55PM +0900, Yui NARUSE wrote: > > = Q&A > > Incompatibilities are following, can you explain why it can't compatible, Aaron? Yes! Many of these methods are exposing implementation specific details for syck. For example, the "detect_implicit" method detects whether a YAML string is an implicit or explicit string. "try_implicit" which attempts to use "detect_implicit". "object_maker" calls allocate on a class and sets instance variables based on a hash. These are clearly methods which should never be exposed as a public API. Other methods are deprecated because they are simply duplicates. For example, YAML.load_documents and YAML.each_document do _exactly_ the same thing. YAML.each_node and YAML.parse_documents do _exactly_ the same thing. On top of that, most of these methods are untested, which makes writing 100% compatible software impossible. All of these methods could be added to Psych, but it wouldn't be guaranteed that they work the same way as Syck. I understood from [ruby-core:28749], that Psych didn't need to have full compatibility. The best way I could think to warn users and maintain compatibility is to default to the old parser and let users choose to use the new one. > ext/syck/lib/syck.rb: YAML.transfer is deprecated > ext/syck/lib/syck/basenode.rb: children_with_index is deprecated, use > ext/syck/lib/syck/encoding.rb: YAML.escape is deprecated > ext/syck/lib/syck/encoding.rb: YAML.unescape is deprecated > ext/syck/lib/syck/stream.rb: edit is deprecated > ext/syck/lib/syck/stringio.rb: yaml/stringio is deprecated > ext/syck/lib/syck/ypath.rb: YAML::YPath is deprecated I am happy to add most of these to Psych, *if* Psych is going to be the default parser. I do not want to support these methods long term though. Please give me a clear direction, and I will make it happen.
on 2010-04-08 20:25
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote: > Other methods are deprecated because they are simply duplicates. For > example, YAML.load_documents and YAML.each_document do _exactly_ the same > thing. > YAML.each_node and YAML.parse_documents do _exactly_ the same thing. In these 2 cases, all that's needed are aliases. What's wrong with that? We have aliases other places in the ruby's stdlib, and no one is crying out to retire collect! in favor of map!, for instance. (Besides, I like the each_* names somewhat better; they're more familiar to your average rubyist. Not that I've ever actually used either method....)
on 2010-04-08 21:32
On Fri, Apr 09, 2010 at 03:24:49AM +0900, Caleb Clausen wrote: > familiar to your average rubyist. Not that I've ever actually used > either method....) Does "load_documents" sound like it does the same thing as "each_document"? Does "each_node" sound like it does the same thing as "parse_documents"? I would buy your argument if they were synonyms.
on 2010-04-08 22:43
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote: > Does "load_documents" sound like it does the same thing as > "each_document"? Does "each_node" sound like it does the same thing as > "parse_documents"? I would buy your argument if they were synonyms. Good point, but do load_documents and parse_documents sound like they can take a block? They don't to me, whereas the each_* forms clearly do. I don't think you can get to perfection here.
on 2010-04-09 07:42
First of all, people want compatibility. Although Ruby sometimes breaks compatibility, it is important. We should keep compability until it has enough reason. > Yes! Many of these methods are exposing implementation specific details > for syck. For example, the "detect_implicit" method detects whether a > YAML string is an implicit or explicit string. "try_implicit" which > attempts to use "detect_implicit". "object_maker" calls allocate on > a class and sets instance variables based on a hash. These are clearly > methods which should never be exposed as a public API. An API is implementation specific is not enough reason. Implementation can return some value as if it works. YAML.detect_implicit seems such one. If an API is depend on syck implementation and hard to emulate, such API can be removed. It will trouble some users and it is sorry, but it is unavoidable. > Other methods are deprecated because they are simply duplicates. For > example, YAML.load_documents and YAML.each_document do _exactly_ the same thing. > YAML.each_node and YAML.parse_documents do _exactly_ the same thing. Duplication is not enough reason to break compatibility. Yes, your preference should be respect. You can remove them with some migrating process. Usual Ruby's process of removing API is: * mark the API as deprecated * release some versions * remove it > On top of that, most of these methods are untested, which makes writing > 100% compatible software impossible. All of these methods could > be added to Psych, but it wouldn't be guaranteed that they work the same > way as Syck. Of course 100% is impossible. What we need is almost compatible. "almost" means what people use. > I understood from [ruby-core:28749], that Psych didn't need to have full > compatibility. The best way I could think to warn users and maintain > compatibility is to default to the old parser and let users choose to > use the new one. If psych doesn't have enough compatibility to replace in 1.9.2, we need some migration path. > I am happy to add most of these to Psych, *if* Psych is going to be the > default parser. I do not want to support these methods long term > though. Please give me a clear direction, and I will make it happen. If psych has enough compatibility, it can be a default parser in 1.9.2. As far as I know, YAML.quick_emit breaks some applications like RubyGems. Yeah, what is "enough compatibility" is the problem. I think, Rails and its dependency can run can be a test.
on 2010-04-09 07:43
2010/4/8 Usaku NAKAMURA <redmine@ruby-lang.org>: > Issue #3112 has been updated by Usaku NAKAMURA. >> Why psych is not default: >> * it is not confirmed that it can be default in 1.9.2 > > You wrote that "It's decided by Yugui." at [ruby-core:28828]. > Didn't it mean to make psych the default YAML engine? What I wanted to say is the direction replacing syck with psych is already decided. When it will be done is not intended; 1.9.2 or 1.9.3 or later. Sorry for misleading.
on 2010-04-10 12:12
I found Aaron added YAML.quick_emit to Psych, thank.
So I tried test-all with setting psych as default yaml impl as
following:
diff --git a/lib/yaml.rb b/lib/yaml.rb
index 9b5a9b2..0151973 100644
--- a/lib/yaml.rb
+++ b/lib/yaml.rb
@@ -40,4 +40,4 @@ module Psych
ENGINE = YAML::ENGINE
end
-YAML::ENGINE.yamler = engine
+YAML::ENGINE.yamler = 'psych'
diff --git a/test/psych/helper.rb b/test/psych/helper.rb
index 61049d6..256fe60 100644
--- a/test/psych/helper.rb
+++ b/test/psych/helper.rb
@@ -55,9 +55,3 @@ module Psych
end
require 'psych'
-
-# FIXME: remove this when syck is removed
-o = Object.new
-a = o.method(:psych_to_yaml)
-b = o.method(:to_yaml)
-raise "psych should define to_yaml" unless a == b
And I ran this and following result:
make RUBYOPT=-w TESTS='-v -x test/psych' test-all
2) Failure:
test_to_yaml(Psych::TestArray)
[/home/naruse/ruby/test/yaml/test_array.rb:11]:
<[{:a=>"b"}, "foo"]> expected but was
<[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>.
3) Failure:
test_to_yaml(Psych::TestHash)
[/home/naruse/ruby/test/yaml/test_hash.rb:11]:
<{:a=>"b"}> expected but was
<{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>.
4) Failure:
test_to_yaml(Psych::TestOmap)
[/home/naruse/ruby/test/yaml/test_omap.rb:30]:
Expected /!omap/ to match "--- !ruby/object:Psych::Omap\ntaguri: !
'!ruby/object:Psych::Omap'\nto_yaml_style: 1\n".
5) Failure:
test_to_yaml(Psych::TestSet)
[/home/naruse/ruby/test/yaml/test_set.rb:13]:
Expected /!set/ to match "--- !ruby/object:Psych::Set\ntaguri: !
'!ruby/object:Psych::Set'\nto_yaml_style: 1\n".
6) Error:
test_load(Psych::TestStruct):
Psych::SyntaxError: couldn't parse YAML at line 2 column 0
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_struct.rb:23:in `test_load'
7) Error:
test_to_yaml(Psych::TestSymbol):
TypeError: can't define singleton
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend_object'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`quick_emit'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:199:in
`to_yaml'
/home/naruse/ruby/test/yaml/test_symbol.rb:7:in `test_to_yaml'
11) Failure:
test_execute_field(TestGemCommandsSpecificationCommand)
[/home/naruse/ruby/test/rubygems/test_gem_commands_specification_command.rb:83]:
Expected "foo", not "".
12) Failure:
test_write(TestGemConfigFile)
[/home/naruse/ruby/test/rubygems/test_gem_config_file.rb:224]:
install.
Expected "--wrappers", not nil.
13) Failure:
test_write_from_hash(TestGemConfigFile)
[/home/naruse/ruby/test/rubygems/test_gem_config_file.rb:257
]:
backtrace.
Expected true, not false.
14) Failure:
test_sign_in_with_other_credentials_doesnt_overwrite_other_keys(TestGemGemcutterUtilities)
[/home/naruse/ruby/test/rubygems/test_gem_gemcutter_utilities.rb:64]:
Expected "a5fdbb6ba150cbb83aad2bb2fede64cf040453903", not nil.
15) Failure:
test_sign_in_with_host(TestGemGemcutterUtilities)
[/home/naruse/ruby/test/rubygems/test_gem_gemcutter_utilities.rb:38]:
Expected "a5fdbb6ba150cbb83aad2bb2fede64cf040453903", not nil.
16) Failure:
test_sign_in(TestGemGemcutterUtilities)
[/home/naruse/ruby/test/rubygems/test_gem_gemcutter_utilities.rb:26]:
Expected "a5fdbb6ba150cbb83aad2bb2fede64cf040453903", not nil.
17) Error:
test_to_yaml_platform_legacy(TestGemSpecification):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
/home/naruse/ruby/test/rubygems/test_gem_specification.rb:886:in
`test_to_yaml_platform_legacy'
18) Error:
test_to_yaml_fancy(TestGemSpecification):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
/home/naruse/ruby/test/rubygems/test_gem_specification.rb:867:in
`test_to_yaml_fancy'
19) Error:
test_to_yaml(TestGemSpecification):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
/home/naruse/ruby/test/rubygems/test_gem_specification.rb:858:in
`test_to_yaml'
20) Error:
test_path_ok_eh_user(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
21) Error:
test_uninstall(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
22) Error:
test_path_ok_eh(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
23) Error:
test_remove_executables_force_keep(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
24) Error:
test_initialize_expand_path(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
25) Error:
test_remove_executables_force_remove(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
26) Error:
test_remove_executables_user(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
27) Error:
test_uninstall_user(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
28) Error:
test_path_ok_eh_legacy(TestGemUninstaller):
TypeError: allocator undefined for NilClass
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`allocate'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`block in revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`map'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in
`revive'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in
`visit_Psych_Nodes_Mapping'
/home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in
`accept'
/home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in
`to_ruby'
/home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load'
29) Error:
test_get(TestNetHTTPS):
Errno::ECONNRESET: Connection reset by peer
/home/naruse/obj/ruby/.ext/common/openssl/buffering.rb:336:in
`close'
/home/naruse/obj/ruby/.ext/common/openssl/buffering.rb:336:in
`sysclose'
/home/naruse/obj/ruby/.ext/common/openssl/buffering.rb:336:in
`close'
30) Error:
test_changes_after_commit_are_discarded(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
31) Error:
test_changes_are_not_written_on_abort(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
32) Error:
test_data_should_be_loaded_correctly_when_in_readonly_mode(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
33) Error:
test_data_should_be_loaded_correctly_when_in_readwrite_mode(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
34) Error:
test_opening_new_file_in_readonly_mode_should_result_in_empty_values(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
35) Error:
test_opening_new_file_in_readwrite_mode_should_result_in_empty_values(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
36) Error:
test_writing_inside_readonly_transaction_raises_error(YAMLStoreTest):
NameError: uninitialized constant Psych::Store
/home/naruse/ruby/test/yaml/test_yamlstore.rb:7:in `setup'
37) Failure:
test_akira(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1180]:
<{"A"=>"A,", "B"=>"B"}> expected but was
<{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>.
38) Failure:
test_ambiguous_comments(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:204]:
<"Call the method #dave"> expected but was
<"">.
39) Failure:
test_basic_strings(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:79]:
<"x"> expected but was
<"">.
40) Failure:
test_circular_references(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1252]:
<"[[...], [...]]"> expected but was
<"[[\"taguri\", \"!ruby/object:Array\"], [\"to_yaml_style\", 1]]">.
41) Error:
test_document(YAML_Unit_Tests):
NameError: uninitialized constant Psych::Stream
/home/naruse/ruby/test/yaml/test_yaml.rb:1146:in `test_document'
42) Failure:
test_emitting_indicators(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1136]:
<"Hi, from Object 1. You passed: please, pretty please"> expected but
was
<"">.
43) Failure:
test_empty_map_key(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1291]:
<[[]]> expected but was
<["taguri", "to_yaml_style"]>.
44) Error:
test_numeric_cycle(YAML_Unit_Tests):
TypeError: can't define singleton
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend_object'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`quick_emit'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:370:in
`to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:38:in `assert_cycle'
/home/naruse/ruby/test/yaml/test_yaml.rb:1277:in
`test_numeric_cycle'
45) Failure:
test_range_cycle(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1231]:
<"a".."z"> expected but was
<nil..nil>.
46) Failure:
test_ranges(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1061]:
<1..3> expected but was
<nil..nil>.
47) Error:
test_ruby_complex(YAML_Unit_Tests):
TypeError: can't define singleton method "encode_with" for Complex
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`singleton_method_added'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`define_method'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`quick_emit'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:425:in
`to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:22:in `assert_to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:1124:in
`test_ruby_complex'
48) Error:
test_ruby_rational(YAML_Unit_Tests):
TypeError: can't define singleton method "encode_with" for Rational
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`singleton_method_added'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`define_method'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:12:in
`quick_emit'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:405:in
`to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:22:in `assert_to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:1112:in
`test_ruby_rational'
49) Failure:
test_ruby_regexp(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1047]:
<{"simple"=>/a.b/,
"complex"=>/\A"((?:[^"]|\")+)"/,
"case-insensitive"=>/George McFly/i}> expected but was
<{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>.
50) Failure:
test_ruby_struct(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1084]:
<[#<struct Struct::BookStruct
author="Yukihiro Matsumoto",
title="Ruby in a Nutshell",
year=2002,
isbn="0-596-00214-9">,
#<struct Struct::BookStruct
author=["Dave Thomas", "Andy Hunt"],
title="The Pickaxe",
year=2002,
isbn=
#<struct Struct::BookStruct
author="This should be the ISBN",
title="but I have another struct here",
year=2002,
isbn="None">>]> expected but was
<[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>.
51) Failure:
test_spec_anchors_and_aliases(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:244]:
<[{"arrival"=>"EDI", "departure"=>"LAX", "fareref"=>"DOGMA",
"currency"=>"GBP"},
{"arrival"=>"MEL", "departure"=>"SYD", "fareref"=>"MADF",
"currency"=>"AUD"},
{"arrival"=>"MCO", "departure"=>"JFK", "fareref"=>"DFSF",
"currency"=>"USD"}]> expected but was
<[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>.
52) Error:
test_spec_application_family(YAML_Unit_Tests):
Psych::SyntaxError: couldn't parse YAML at line 0 column 29
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_yaml.rb:33:in `assert_parse_only'
/home/naruse/ruby/test/yaml/test_yaml.rb:792:in
`test_spec_application_family'
53) Failure:
test_spec_builtin_literal_blocks(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:910]:
<{"both are equal to"=>" This has no newline.",
"is equal to"=>
"The \\ ' \" characters may be\nfreely used. Leading white\n space
is significant.\n\nLine breaks are significant.\nThus this value
contains one\nempty line and ends with a\nsingle line break, but
does\nnot start with one.\n",
"also written as"=>" This has no newline.",
"indented and chomped"=>" This has no newline.",
"empty"=>"",
"literal"=>
"The \\ ' \" characters may be\nfreely used. Leading white\n space
is significant.\n\nLine breaks are significant.\nThus this value
contains one\nempty line and ends with a\nsingle line break, but
does\nnot start with one.\n"}> expected but was
<{"empty"=>"",
"literal"=>
"The \\ ' \" characters may be\nfreely used. Leading white\n space
is significant.\n\nLine breaks are significant.\nThus this value
contains one\nempty line and ends with a\nsingle line break, but
does\nnot start with one.\n",
"is equal to"=>
"The ' \" characters may be\nfreely used. Leading white\n space is
significant.\n\nLine breaks are significant.\nThus this value contains
one\nempty line and ends with a\nsingle line break, but does\nnot start
with one.\n",
"indented and chomped"=>" This has no newline.",
"also written as"=>" This has no newline.",
"both are equal to"=>" This has no newline."}>.
54) Error:
test_spec_domain_prefix(YAML_Unit_Tests):
Psych::SyntaxError: couldn't parse YAML at line 1 column 26
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_yaml.rb:33:in `assert_parse_only'
/home/naruse/ruby/test/yaml/test_yaml.rb:647:in
`test_spec_domain_prefix'
55) Error:
test_spec_float_explicit(YAML_Unit_Tests):
Psych::SyntaxError: couldn't parse YAML at line 4 column 17
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_yaml.rb:33:in `assert_parse_only'
/home/naruse/ruby/test/yaml/test_yaml.rb:810:in
`test_spec_float_explicit'
56) Error:
test_spec_private_types(YAML_Unit_Tests):
NoMethodError: undefined method `parse_documents' for Psych:Module
/home/naruse/ruby/test/yaml/test_yaml.rb:693:in
`test_spec_private_types'
57) Error:
test_spec_root_fold(YAML_Unit_Tests):
Psych::SyntaxError: couldn't parse YAML at line 5 column 0
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_yaml.rb:589:in
`test_spec_root_fold'
58) Failure:
test_spec_simple_implicit_map(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:126]:
<{"hr"=>65, "avg"=>0.278, "rbi"=>147}> expected but was
<{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>.
59) Failure:
test_spec_simple_implicit_sequence(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:115]:
<["Mark McGwire", "Sammy Sosa", "Ken Griffey"]> expected but was
<[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>.
60) Failure:
test_spec_simple_map_with_nested_sequences(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:140]:
<{"american"=>["Boston Red Sox", "Detroit Tigers", "New York Yankees"],
"national"=>["New York Mets", "Chicago Cubs", "Atlanta Braves"]}>
expected but was
<{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>.
61) Failure:
test_spec_simple_sequence_with_nested_map(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:159]:
<[{"name"=>"Mark McGwire", "hr"=>65, "avg"=>0.278},
{"name"=>"Sammy Sosa", "hr"=>63, "avg"=>0.288}]> expected but was
<[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>.
62) Error:
test_spec_url_escaping(YAML_Unit_Tests):
Psych::SyntaxError: couldn't parse YAML at line 1 column 25
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse_stream'
/home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse'
/home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load'
/home/naruse/ruby/test/yaml/test_yaml.rb:33:in `assert_parse_only'
/home/naruse/ruby/test/yaml/test_yaml.rb:725:in
`test_spec_url_escaping'
63) Error:
test_symbol_cycle(YAML_Unit_Tests):
TypeError: can't define singleton
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend_object'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`extend'
/home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in
`quick_emit'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml'
/home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:199:in
`to_yaml'
/home/naruse/ruby/test/yaml/test_yaml.rb:38:in `assert_cycle'
/home/naruse/ruby/test/yaml/test_yaml.rb:1262:in
`test_symbol_cycle'
64) Failure:
test_time_now_cycle(YAML_Unit_Tests)
[/home/naruse/ruby/test/yaml/test_yaml.rb:1220]:
<2010-04-10 07:02:05 +0900> expected but was
<1970-01-01 09:00:00 +0900>.
65) Error:
test_ypath_parsing(YAML_Unit_Tests):
NameError: uninitialized constant Psych::YPath
/home/naruse/ruby/test/yaml/test_yaml.rb:42:in
`assert_path_segments'
/home/naruse/ruby/test/yaml/test_yaml.rb:1165:in
`test_ypath_parsing'
on 2010-04-11 01:48
On Sat, Apr 10, 2010 at 07:11:28PM +0900, NARUSE, Yui wrote: > > - > > 4) Failure: > /home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse' > /home/naruse/obj/ruby/.ext/common/psych/deprecated.rb:10:in `quick_emit' > install. > test_sign_in_with_other_credentials_doesnt_overwrite_other_keys(TestGemGemcutterUtilities) [/home/naruse/ruby/test/rubygems/test_gem_gemcutter_utilities.rb:64]: > 17) Error: > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in `visit_Psych_Nodes_Mapping' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in `revive' > /home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in `block in revive' > test_path_ok_eh_user(TestGemUninstaller): > /home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in `accept' > /home/naruse/obj/ruby/.ext/common/psych/visitors/visitor.rb:7:in `accept' > 22) Error: > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in `visit_Psych_Nodes_Mapping' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:175:in `visit_Psych_Nodes_Mapping' > > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in `revive' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in `revive' > /home/naruse/obj/ruby/.ext/common/psych.rb:106:in `load' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:217:in `map' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:216:in `allocate' > /home/naruse/obj/ruby/.ext/common/psych/nodes/node.rb:25:in `to_ruby' > /home/naruse/obj/ruby/.ext/common/psych/visitors/to_ruby.rb:16:in `accept' > test_get(TestNetHTTPS): > 31) Error: > test_data_should_be_loaded_correctly_when_in_readwrite_mode(YAMLStoreTest): > NameError: uninitialized constant Psych::Store > <{"taguri"=>"!ruby/object:Hash", "to_yaml_style"=>1}>. > > 42) Failure: > test_numeric_cycle(YAML_Unit_Tests): > test_range_cycle(YAML_Unit_Tests) [/home/naruse/ruby/test/yaml/test_yaml.rb:1231]: > TypeError: can't define singleton method "encode_with" for Complex > TypeError: can't define singleton method "encode_with" for Rational > <{"simple"=>/a.b/, > isbn="0-596-00214-9">, > <[["taguri", "!ruby/object:Array"], ["to_yaml_style", 1]]>. > Psych::SyntaxError: couldn't parse YAML at line 0 column 29 > "is equal to"=> > "The ' \" characters may be\nfreely used. Leading white\n space is significant.\n\nLine breaks are significant.\nThus this value contains one\nempty line and ends with a\nsingle line break, but does\nnot start with one.\n", > /home/naruse/obj/ruby/.ext/common/psych.rb:105:in `load' > /home/naruse/ruby/test/yaml/test_yaml.rb:33:in `assert_parse_only' > /home/naruse/obj/ruby/.ext/common/psych.rb:147:in `parse' > 59) Failure: > 61) Failure: > /home/naruse/obj/ruby/.ext/common/psych.rb:118:in `parse' > /home/naruse/obj/ruby/.ext/common/syck/rubytypes.rb:15:in `to_yaml' > test_ypath_parsing(YAML_Unit_Tests): > NameError: uninitialized constant Psych::YPath > /home/naruse/ruby/test/yaml/test_yaml.rb:42:in `assert_path_segments' > /home/naruse/ruby/test/yaml/test_yaml.rb:1165:in `test_ypath_parsing' I am surprised about the rubygems failures. With the following patch, I am able to run the rubygems tests, like this: $ GEM_HOME=/tmp GEM_PATH=/tmp make test-all TESTS=rubygems diff --git a/lib/yaml.rb b/lib/yaml.rb index 9b5a9b2..0151973 100644 --- a/lib/yaml.rb +++ b/lib/yaml.rb @@ -40,4 +40,4 @@ module Psych ENGINE = YAML::ENGINE end -YAML::ENGINE.yamler = engine +YAML::ENGINE.yamler = 'psych' diff --git a/test/rubygems/gemutilities.rb b/test/rubygems/gemutilities.rb index bb94750..cea1dbe 100644 --- a/test/rubygems/gemutilities.rb +++ b/test/rubygems/gemutilities.rb @@ -8,13 +8,7 @@ else require 'rubygems' end require 'fileutils' -begin - gem 'minitest', '>= 1.3.1' - require 'minitest/unit' -rescue Gem::LoadError - warn "Install minitest gem >= 1.3.1" - raise -end +require 'minitest/unit' require 'tmpdir' require 'uri' require 'rubygems/package' diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index 5979890..337073f 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -1,5 +1,6 @@ require_relative 'gemutilities' require 'stringio' +require 'date' require 'rubygems/specification' class TestGemSpecification < RubyGemTestCase Some of the Syck YAML tests (like test_spec_application_family and test_spec_url_escaping) contain invalid YAML, so Psych will raise an exception. Do `diff test/yaml/test_yaml.rb test/psych/test_yaml.rb` to see the differences. I will make test/yaml/* use the syck engine. I can't run make test-all on Snow Leopard because of the problem I mentioned in [ruby-core:29087]. I will try on linux.
on 2010-04-11 02:21
(2010/04/11 8:48), Aaron Patterson wrote: > ENGINE = YAML::ENGINE > end > require 'uri' > require 'rubygems/package' Bundled minitest is 1.6.0(-dev?) after r27076, so why this is needed... > class TestGemSpecification< RubyGemTestCase > > > Some of the Syck YAML tests (like test_spec_application_family and > test_spec_url_escaping) contain invalid YAML, so Psych will raise an > exception. Do `diff test/yaml/test_yaml.rb test/psych/test_yaml.rb` to > see the differences. Yeah, I know some of them are intended. I want to confirm taht all of them are from invalid YAML. > I will make test/yaml/* use the syck engine. OK, it may have to move to test/syck. > I can't run make test-all on Snow Leopard because of the problem I > mentioned in [ruby-core:29087]. I will try on linux. Can you make a ticket in Redmine for [ruby-core:29087]? For workaround you can run test-all like following: make RUBYOPT=-w TESTS='-v -x "test/drb|test/socket"' test-all
on 2010-04-11 02:58
On Sun, Apr 11, 2010 at 09:20:15AM +0900, NARUSE, Yui wrote: > > @@ -40,4 +40,4 @@ module Psych > > require 'rubygems' > > require 'tmpdir' > > require 'uri' > > require 'rubygems/package' > > Bundled minitest is 1.6.0(-dev?) after r27076, so why this is needed... I'm not sure. I've applied this to trunk with Eric's permission. > > class TestGemSpecification< RubyGemTestCase > > I will make test/yaml/* use the syck engine. > > OK, it may have to move to test/syck. Yes. I've moved test/yaml to test/syck. > > I can't run make test-all on Snow Leopard because of the problem I > > mentioned in [ruby-core:29087]. I will try on linux. > > Can you make a ticket in Redmine for [ruby-core:29087]? Done: http://redmine.ruby-lang.org/issues/show/3124 > For workaround you can run test-all like following: > make RUBYOPT=-w TESTS='-v -x "test/drb|test/socket"' test-all I will use this. Thank you!
on 2010-04-11 03:24
On Apr 10, 2010, at 17:58, Aaron Patterson wrote: diff --git a/test/rubygems/gemutilities.rb b/test/rubygems/gemutilities.rb >>> -rescue Gem::LoadError > I'm not sure. I've applied this to trunk with Eric's permission. Won't the bundled minitest will only be available after install?
on 2010-04-11 06:59
(2010/04/11 10:23), Eric Hodel wrote: >>>> - gem 'minitest', '>= 1.3.1' >>> Bundled minitest is 1.6.0(-dev?) after r27076, so why this is needed... >> >> I'm not sure. I've applied this to trunk with Eric's permission. > > Won't the bundled minitest will only be available after install? Ah, yes, so this can be a bug of Gem's load path. Also note that this can be avoided by install before test-all.
on 2010-04-11 07:04
(2010/04/11 8:48), Aaron Patterson wrote:
> class TestGemSpecification< RubyGemTestCase
This is from the difference of loaded libraries between syck and psych.
So this is considered as compatibility problem and this is fixed by
psych.
Example is following but where "require 'date' is is upon you.
diff --git a/ext/psych/lib/psych/deprecated.rb
b/ext/psych/lib/psych/deprecated.rb
index 5a96e91..c0c9abe 100644
--- a/ext/psych/lib/psych/deprecated.rb
+++ b/ext/psych/lib/psych/deprecated.rb
@@ -1,3 +1,5 @@
+require 'date'
+
module Psych
module DeprecatedMethods # :nodoc:
attr_accessor :taguri
on 2010-04-11 21:08
On Sun, Apr 11, 2010 at 02:04:06PM +0900, NARUSE, Yui wrote: > > > +++ b/ext/psych/lib/psych/deprecated.rb > @@ -1,3 +1,5 @@ > +require 'date' > + > module Psych > module DeprecatedMethods # :nodoc: > attr_accessor :taguri Yes. I will apply this patch, though not requiring 'date' did lead me to find strange code. From lib/rubygems/specification.rb (around line 12): require 'rubygems/version' require 'rubygems/requirement' require 'rubygems/platform' # :stopdoc: class Date; end # for ruby_code if date.rb wasn't required # :startdoc: It seems to be a bug of rubygems to not require 'date'. I will add the require to psych for backwards compatibility, but relying on the YAML parser to require date doesn't seem good.
on 2010-04-14 03:23
Issue #3112 has been updated by Yui NARUSE. Current syck is mixed old YAML and YAML::Syck. This breaks compatibility like following: http://pc12.2ch.net/test/read.cgi/tech/1265467681/871 It also says require 'yaml/syck' should work. People may require'yaml' and use YAML::Syck, but we should give up such case. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3112
on 2010-05-06 08:46
On Thu, Apr 08, 2010 at 11:14:59AM +0900, Usaku NAKAMURA wrote: > Bug #3112: require "yaml" doesn't use psych as default > http://redmine.ruby-lang.org/issues/show/3112 > > Author: Usaku NAKAMURA > Status: Open, Priority: Normal > Category: lib, Target version: 1.9.2 > ruby -v: ruby 1.9.2dev (2010-04-08 trunk 27255) > > why? Rails runs with Psych as default. Our applications at work run well with Psych as default. I would like to make Psych default YAML parser for 1.9.2. What do you think?
on 2010-05-06 10:00
Hello,
In message "[ruby-core:30044] Re: [Bug #3112] require "yaml" doesn't use
psych as default"
on May.06,2010 15:46:00, <aaron@tenderlovemaking.com> wrote:
> Rails runs with Psych as default. Our applications at work run well
> with Psych as default.
>
> I would like to make Psych default YAML parser for 1.9.2. What do you
> think?
IMO, if Psych is enough compatible with Syck, Psych should be
the default YAML parser, like the way of the decision performed
about ext/fiddle and ext/dl recently.
However, naruse has already explained the intention of yugui at
[ruby-core:29377].
I don't want to disobey the branch/release manager about this
matter :)
Regards,
on 2010-05-06 17:41
On Thu, May 06, 2010 at 05:00:24PM +0900, U.Nakamura wrote: > > > ruby -v: ruby 1.9.2dev (2010-04-08 trunk 27255) > the default YAML parser, like the way of the decision performed > about ext/fiddle and ext/dl recently. > > However, naruse has already explained the intention of yugui at > [ruby-core:29377]. > I don't want to disobey the branch/release manager about this > matter :) I agree. So we await Yugui's decision. :-)
on 2010-05-18 13:30
Issue #3112 has been updated by Yuki Sonoda. Target version changed from 1.9.2 to 1.9.x I think syck works more or less correctly unlike dl2. So I want to decide it conservatively. I don't want to switch the default yaml engine to psych. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3112
on 2010-05-18 20:22
Yugui, I am worried about possible encoding issues that can come in Syck that will be hard to fix. For instance, Aaron was able to fix Psych to honor default_internal in just a few days, and there is no real maintainer for Syck. Since Aaron is the maintainer for Psych, and there is no maintainer for Syck, I think it makes sense to make Psych the default, with the yamler= option for backward compatibility. Yehuda Katz Architect | Engine Yard (ph) 718.877.1325
on 2010-05-18 20:32
On Tue, May 18, 2010 at 08:30:14PM +0900, Yuki Sonoda wrote: > Issue #3112 has been updated by Yuki Sonoda. > > Target version changed from 1.9.2 to 1.9.x > > I think syck works more or less correctly unlike dl2. So I want to decide it conservatively. I don't want to switch the default yaml engine to psych. I'm afraid that if we use Syck as default, no one will see errors from invalid YAML files. If we make Psych as default, people will see errors with their YAML files but *have the option* to move back to Syck. Are we going to remove Syck in 1.9.3? If we don't make Psych default in 1.9.2, it seems to me that we have to wait until 1.9.4 to remove Syck. Since Syck has no active maintainer, it seems bad to wait so long to remove it.
on 2010-05-24 01:29
Bump. I think the lack of a Syck maintainer, yet making Syck the default in 1.9.2 needs to be addressed. 1.9.2 is probably going to be the de-facto release for some time. What's the rationale for keeping an unmaintained major component when a maintained version is available in the standard library? Yehuda Katz Architect | Engine Yard (ph) 718.877.1325 On Tue, May 18, 2010 at 11:31 AM, Aaron Patterson <
on 2010-08-27 14:14
Issue #3112 has been updated by Anshul Khandelwal. Any updates on this? Is there some way I can ensure that my code is using the bundled psych? Anshul ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3112
on 2010-08-29 00:24
On Fri, Aug 27, 2010 at 09:09:27PM +0900, Anshul Khandelwal wrote: > Issue #3112 has been updated by Anshul Khandelwal. > > > Any updates on this? Is there some way I can ensure that my code is using the bundled psych? Psych is an "opt-in" experience for 1.9.2. I'm not sure when we'll make it the default YAML object. There are two ways you can use Psych. The first way is to just require psych and reference the Psych constant: require 'psych' Psych.load '--- hello world!' Psych.dump { :goodbye => 'cruel world' } The second way is to change the YAML engine: require 'yaml' YAML::ENGINE.yamler = 'psych' YAML.load '--- hello world!' YAML.dump { :goodbye => 'cruel world' } Setting the engine will replace the YAML constant with the Psych constant. Using the first example will absolutely guarantee using Psych. The second example cannot guarantee usage because other libraries could possibly set the engine back to "syck" without your knowledge.
on 2010-08-29 09:11
(10/08/29 7:24), Aaron Patterson wrote: > > require 'yaml' > > YAML::ENGINE.yamler = 'psych' > YAML.load '--- hello world!' > YAML.dump { :goodbye => 'cruel world' } And the third way is to require psych before yaml: require 'psych' require 'yaml' # p YAML::ENGINE.yamler # => 'psych' YAML.load '--- hello world!' YAML.dump { :goodbye => 'cruel world' }
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.