Ruby 3.1 Adds In-Process JIT Compiler
Written by Alex Denham   
Tuesday, 04 January 2022

Ruby 3.1 has been released with improvements including an experimental in-process just in time compiler and a new debugger.

Ruby's creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming. Ruby has gained popularity because in addition to being fun to use, it is useful because of its mix of different programming styles - functional, dynamic and object-oriented.

rubylogo2a

The main improvement to Ruby 3.1 is its incorporation of YJIT, a new in-process JIT compiler developed by Shopify. The development team says that while Ruby 2.6 introduced MJIT in 2018, the JIT hasn’t benefited real world business applications. Recently Shopify contributed many Ruby improvements to speed up their Rails application, and one of these was the YJIT compiler.

YJIT uses Basic Block Versioning and includes a JIT compiler inside it. With Lazy Basic Block Versioning (LBBV) it first compiles the beginning of a method, and incrementally compiles the rest when the type of arguments and variables are dynamically determined. This achieves both fast warmup time and performance improvements on most real-world software, up to 22% on railsbench, 39% on liquid-render. YJIT is still an experimental feature, and as such, it is disabled by default.

A completely rewritten debugger has also been included, with faster  debugging performance, support for remote debugging and for multi-process/multi-thread debugging. It also adds support for a rich debugging frontend with support for VSCode and Chrome browser. The debugger also adds colorful REPL and extras including a record & replay feature, and a tracing feature.

Ruby 3.1 is available now.

rubylogo2a

More Information

Ruby Official Site

Related Articles

Ruby 3 Released Offering Three Times Better Performance

Ruby On Rails 7 Moves To No-Node Default

Fukuoka Ruby Award 2021 Prestigious Ruby Prize

Ruby 2.6 Adds JIT Compiler

Sorbet - Making Ruby Statically Typed

Ruby 2.5 Adds Support For Branch Coverage

Commercial Ruby Distro Enters Beta

Ruby On Rails Reaches 5.0

Ruby 2.3 Released

ActiveState Extends to Ruby, Node.js, Go and Lua

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


New Database Drivers for Oracle and PostgreSQL Released
16/06/2022

The PostgreSQL JDBC Team team has announced the release 42.4.0 of the JDBC driver for PostgreSQL. Meanwhile Oracle has released a Python-based driver for Oracle. Python and Java users rejoice!



pg_ivm - Materialised Views On Steroids
06/06/2022

pg_ivm is an extension module for PostgreSQL 14 that provides an Incremental View Maintenance (IVM) feature.That means that materialized views are updated immediately after a base table is modified.


More News

pythondata

 



 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Tuesday, 04 January 2022 )