From: funny.falcon@... Date: 2015-07-22T12:50:53+00:00 Subject: [ruby-core:70084] [Ruby trunk - Bug #11379] Difference in `Array#sort_by` method between Ubuntu Linux and OS X Issue #11379 has been updated by Yura Sokolov. > I understand that the order cannot be guaranteed but I would expect it to work the same on all platforms. And you will be wrong. You may not expect order is same even with two subsequent sort invocation. Every "same order" produced by unstable sorting on a set with some equal elements should be treated as occasional. ---------------------------------------- Bug #11379: Difference in `Array#sort_by` method between Ubuntu Linux and OS X https://bugs.ruby-lang.org/issues/11379#change-53500 * Author: Piotr Kowalski * Status: Rejected * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-07-21 trunk 51310) [i686-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- The sort order (for the same objects) is different depending on the operating system. It looks like the Linux version of sorting has changed versus the previous ruby versions. ### On Linux: ~~~ piotr@pi-virtualbox:~$ uname -a Linux pi-virtualbox 3.13.0-49-generic #83-Ubuntu SMP Fri Apr 10 20:14:51 UTC 2015 i686 i686 i686 GNU/Linux piotr@pi-virtualbox:~$ ruby --version ruby 2.2.2p95 (2015-04-13 revision 50295) [i686-linux] piotr@pi-virtualbox:~$ irb irb(main):001:0> ['az', 'ac', 'AC'].sort_by {|s| s.downcase} => ["ac", "AC", "az"] ~~~ ### On OS X: ~~~ pi@mac:~$ uname -a Darwin mac.local 14.4.0 Darwin Kernel Version 14.4.0: Thu May 28 11:35:04 PDT 2015; root:xnu-2782.30.5~1/RELEASE_X86_64 x86_64 pi@mac:~$ ruby --version ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] pi@mac:~$ irb irb(main):001:0> ['az', 'ac', 'AC'].sort_by {|s| s.downcase} => ["AC", "ac", "az"] ~~~ The bug is not present in 1.9.3 and 2.1.x. I also confirmed it's not fixed in 2.2.2 and 2.3.0-dev. -- https://bugs.ruby-lang.org/