Project

General

Profile

Misc #21110

Updated by Eregon (Benoit Daloze) 2 days ago

I've noticed (during the downstreaming ruby/spec in https://github.com/ruby/ruby/pull/12679) that a repeated Float value may be dumped "directly"/"immediately" without an object objct link on x86 architecture, and with a link in other cases. It seems it depends on whether Float is `Flonum` or not. 

 amd64: 
 ```ruby 
 Marshal.dump([0.0, 0.0]) # => "\x04\b[\af\x060@\x06", where @\x06 is an object link 
 ``` 

 i686: 
 ```ruby 
 Marshal.dump([0.0, 0.0]) # => "\x04\b[\af\x060f\x060", so f\x060 is dumped twice 
 ``` 

 Both dumps are loaded correctly, so it seems there is no any compatibility issue. 

 Should dumping be consistent and don't depend on architecture? 

 From https://github.com/ruby/ruby/pull/12679#discussion_r1937116017

Back