From: nobu@... Date: 2016-05-28T23:19:07+00:00 Subject: [ruby-core:75764] [Ruby trunk Bug#12434][Rejected] Marshal.dump does not dump some numbers as Fixnum Issue #12434 has been updated by Nobuyoshi Nakada. Status changed from Open to Rejected It is intentionally dumped as a Bignum for marshal data compatibility across architectures. Current behavior: ``` $ arch -x86_64 ruby -e 'Marshal.dump(1073741824, STDOUT)' | arch -i386 ruby -e 'p Marshal.load(STDIN)' 1073741824 ``` With your patch: ``` $ .x86_64-darwin/miniruby -e 'Marshal.dump(1073741824, STDOUT)' | .i386-darwin/miniruby -e 'p Marshal.load(STDIN)' -1073741824 ``` ---------------------------------------- Bug #12434: Marshal.dump does not dump some numbers as Fixnum https://bugs.ruby-lang.org/issues/12434#change-58892 * Author: Eito Katagiri * Status: Rejected * Priority: Normal * Assignee: * ruby -v: ruby 2.4.0dev (2016-05-28 trunk 55197) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- `Marshal.dump` dumps numbers between 1073741824 and 4294967295 and between -4294967296 and -1073741825 as `Bignum`, but I think that those numbers should be dumped as `Fixnum`. ~~~ $ ./ruby --disable-gems -e'p Marshal.load("\x04\bi\x04\x00\x00\x00\x40")' 1073741824 $ ./ruby --disable-gems -e'p Marshal.dump(1073741824)' "\x04\bl+\a\x00\x00\x00@" $ ./ruby --disable-gems -e'p Marshal.load("\x04\bi\xfc\x00\x00\x00\x00")' -4294967296 $ ./ruby --disable-gems -e'p Marshal.dump(-4294967296)' "\x04\bl-\b\x00\x00\x00\x00\x01\x00" ~~~ I created proposed patch and submit pull request to https://github.com/ruby/ruby/pull/1366 -- https://bugs.ruby-lang.org/ Unsubscribe: