Differences between mri and jruby
From JRubyWiki
Although ideally mri and jruby would behave 100% the same in all situations, there are some minor differences. Some differences are due to bugs, and those are not reported here. This page is for differences that are not bugs.
Contents |
Continuations
JRuby does not support continuations (Kernel.callcc).
Invoking external processes
On windows, jruby is a little smarter when launching external processes. If the executable file is not a binary executable (.exe), mri requires you give the file suffix as well, but jruby manages without it.
An example: say you have file foo.bat on your PATH and want to run it.
system( 'foo' ) # works on jruby, fails on mri
system( 'foo.bat' ) # works both in jruby and mri
Fork is not implemented
JRuby doesn't implement fork() on any platform, including those where fork() is available in MRI.
Native Endian is Big Endian
Since the JVM presents a 'compatible' CPU to JRuby, the 'native' endianness of JRuby is Big Endian. This does matter for operations which depend on that like String.pack() and Array.unpack() for formats like "I", "i", "S" and "s".

