[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>

Hi.

18 messages 2012/01/05

[#41941] [ruby-trunk - Bug #5851][Open] make check fails when compiling with GCC 4.7 - *** longjmp causes uninitialized stack frame *** — Vit Ondruch <v.ondruch@...>

12 messages 2012/01/06

[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>

10 messages 2012/01/08

[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>

14 messages 2012/01/09

[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>

15 messages 2012/01/10

[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>

12 messages 2012/01/16

[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>

18 messages 2012/01/17

[ruby-core:42217] [ruby-trunk - Bug #5923][Closed] YAML serialization of binary string broken with psych engine

From: Marc-Andre Lafortune <ruby-core@...>
Date: 2012-01-22 17:19:17 UTC
List: ruby-core #42217
Issue #5923 has been updated by Marc-Andre Lafortune.

Status changed from Open to Closed


----------------------------------------
Bug #5923: YAML serialization of binary string broken with psych engine
https://bugs.ruby-lang.org/issues/5923

Author: Nathan Witmer
Status: Closed
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0] 


Using the psych engine in 1.9.3, some binary strings cannot be serialized. Instead, they result in a runtime error:

    /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:24:in `scalar': expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS (RuntimeError)

To reproduce:

$ cat a.rb
# encoding: UTF-8

require "yaml"

binary = "\xC37\xA2\xC0=[\"\xE7\x06\x19\xAA1\x95\x12\xA1z"
binary.force_encoding "ascii-8bit" if binary.respond_to? :force_encoding

puts "\n*** ruby #{RUBY_VERSION}"

# test for ruby 1.9, both yaml engines:
if YAML.const_defined?(:ENGINE)
  
  puts "syck engine:"
  YAML::ENGINE.yamler = "syck"
  puts binary.to_yaml

  puts "psych engine:"
  YAML::ENGINE.yamler = "psych"
  puts binary.to_yaml

else

  # otherwise, just dump it:
  puts binary.to_yaml

end

$ rvm 1.9.3-p0,1.8.7-p352 do ruby a.rb

*** ruby 1.9.3
syck engine:
--- "\xC37\xA2\xC0=[\"\xE7\x06\x19\xAA1\x95\x12\xA1z"
psych engine:
/Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:24:in `scalar': expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS (RuntimeError)
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:24:in `visit_Psych_Nodes_Scalar'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:19:in `block in visit_Psych_Nodes_Document'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:19:in `each'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:19:in `visit_Psych_Nodes_Document'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:13:in `block in visit_Psych_Nodes_Stream'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:13:in `each'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/emitter.rb:13:in `visit_Psych_Nodes_Stream'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/nodes/node.rb:46:in `to_yaml'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych.rb:190:in `dump'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/core_ext.rb:14:in `psych_to_yaml'
	from /Users/nathan/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/syck/rubytypes.rb:170:in `to_yaml'
	from a.rb:19:in `<main>'

*** ruby 1.8.7
--- !binary |
wzeiwD1bIucGGaoxlRKheg==



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next