How TruffleRuby's Startup Time Became Faster Than MRI's

Introduction I want to talk about VM startup in Ruby. That is, the time it takes for a Ruby implementation to print “Hello World” with: $...

TruffleRuby Native: Fast Even for Short Scripts

Introduction Nowadays, it seems every major Ruby implementation has a Just-In-Time (JIT) compiler. Recently, YARV-MJIT has been merged to MRI (CRuby) trunk. JRuby relies on the Java...

From an obfuscated Sudoku to Fibers and coroutines

TRICK is the Transcendental Ruby Imbroglio Contest for RubyKaigi, a contest for interesting & weird (transcendental, imbroglio) Ruby programs. I participated in the 2015 edition and won the 4th prize....

Finding Thread errors early with Thread.report_on_exception

Ruby 2.4 introduced Thread.report_on_exception to print exceptions to $stderr when a Thread dies from an exception. However, it was disabled by default. In Ruby 2.5, I made

Running Optcarrot, a Ruby NES emulator, at 150 fps with the GUI!

TruffleRuby runs Optcarrot, a NES emulator written in Ruby, at 150 fps while playing a NES game. As we can see in the GIF, performance gets better...

RubySpec is Reborn!

Reposted from the ruby/spec blog post and slightly updated. TL;DR The Ruby Spec Suite is actively maintained at ruby/spec and MRI, JRuby, Opal and...