Ruby 2.6.0 Released
Posted by naruse on 25 Dec 2018
We are pleased to announce the release of Ruby 2.6.0.
It introduces a number of new features and performance improvements, most notably:
A new JIT compiler.
The RubyVM::AbstractSyntaxTree module.
JIT [Experimental]
Ruby 2.6 introduces an initial implementation of a JIT (Just-In-Time) compiler.
The JIT compiler aims to improve the performance of Ruby programs. Unlike traditional JIT compilers which operate in-process, Ruby’s JIT compiler writes out C code to disk and spawns a common C compiler to generate native code. For more details about it, see the MJIT organization by Vladimir Makarov.
In order to enable the JIT compiler, specify --jit on the command line or in the $RUBYOPT environment variable. Specifying --jit-verbose=1 will cause the JIT compiler to print additional information. Read the output of ruby --help or the documentation for other options.
The JIT compiler is supported when Ruby is built by GCC, Clang, or Microsoft VC++, which needs to be available at runtime.
As of Ruby 2.6.0, we have achieved 1.7x faster performance compared to Ruby 2.5 on a CPU-intensive, non-trivial benchmark called Optcarrot. However, it is still experimental and many other memory-intensive workloads like Rails applications might not benefit from it at the moment. For more details, see Ruby 2.6 JIT - Progress and Future.
Stay tuned for the new age of Ruby’s performance.