Ruby 3.1.0 Preview 1 released with new experimental JIT

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • SaaSHub - Software Alternatives and Reviews
  • error_highlight

    The gem enhances Exception#message by adding a short explanation where the exception is raised

    Enhanced error log messages are always welcome on the ground :)

    Reminded me of the work done in elm to explicitly improve their error reporting by deeply considering the user experience [1]

    Repo for the newly included error_highlight gem is interesting [2], anyone have more background on this ?

    1. Elm “the perfect big report”

    2. Error_highlight gem repo:

  • typeprof

    An experimental type-level Ruby interpreter for testing and understanding Ruby code

    Good to see IDE support for TypeProf type hints[1]. I've been doing a lot of work in statically typed languages lately. Ruby has been moving towards static types for a while, but the lack of IDE support has always been the dealbreaker for me to pick up Ruby again.


  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at

  • yjit

    Optimizing JIT compiler built inside CRuby

    > I’m curious how the impact affects development, deployment, etc.

    YJIT is pretty much transparent in production, if not it's likely a bug.

    When we tried MJIT in production to compare it against YJIT, it causes lots of request timeouts on deploy, because the JIT warmup would take 10 to 20 minutes and it's much slower during that phase.

    But YJIT warms ups extremely fast and with a much lower overhead, it's seemless on deploy.

    The only thing you may need to tweak is `--yjit-exec-mem-size`, it defaults to `--yjit-exec-mem-size=256` (MB) which is not quite enough for larger apps.

    As for development, it would work, but with code reloading enabled, you'd likely exhaust the executable memory allocation pretty fast, because for now YJIT doesn't GC generated code [0]. It will come soon, hopefully before the 3.1.0 release, but that's one of the reason why it's not enabled by default.


  • ruby

    The Ruby Programming Language

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts