---
title: "Visualizing what ZJIT does when compiling Ruby"
publication: "Ruby Weekly"
issue: 779
published_at: "2025-12-11"
canonical_url: "https://rubyweekly.com/issues/779"
---

Plus building a roguelike in Ruby, a Rails CMS update, and the latest advancements in CSS. |        

#​779 — December 11, 2025 

[Read on the Web](https://rubyweekly.com/issues/779)  

Together with [![FastRuby.io\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_467,h_106/e_make_transparent/co_white,e_outline:14/y65nyff19ylf5udphsq4.png)](http://go.fastruby.io/u4v)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/by456z1xjqt8zqetcxnz.jpg)](https://railsatscale.com/2025-11-19-adding-iongraph-support/)  

[Adding Iongraph Support to ZJIT](https://railsatscale.com/2025-11-19-adding-iongraph-support/) — This is a _very_ niche item to feature, but it’s a slow week (😅) and I found it interesting, given that the [ZJIT compiler](https://railsatscale.com/2025-05-14-merge-zjit/) will be available in Ruby 4.0 later this month. _Iongraph_, a tool originally built to visualize JavaScript JIT compilation, can now be used to inspect optimizations made by ZJIT too. This is a truly ‘deep in the weeds’ post, but if it encourages you to work on, or experiment with, ZJIT, fantastic! 

Aiden Fox Ivey   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/d22538bc.png)](http://go.fastruby.io/u4v) 

[Stuck on Rails 4.2? Ready to Upgrade Rails with FastRuby.io?](http://go.fastruby.io/u4v) — Stop postponing your upgrade project. Get a thorough action plan and estimates backed by 50,000 dev/hours of historical data. Don’t have the budget for a [Roadmap](http://go.fastruby.io/u4v)? Get our free, [AI-enhanced Rails roadmap](http://go.fastruby.io/vyl) in minutes and DIY your upgrade. 

The Rails Upgrade Roadmap sponsor   

[Rails’s Swappable Migration Backend for Schema Changes at Scale](https://railsatscale.com/2025-12-08-swappable-migration-backends-in-rails/) — Rails’s swappable migration backend, introduced in Rails 7.0, allows apps to customize how database migrations execute giving more control when you need it (like in production.) Running some of the biggest Rails apps in the world, Shopify has a particular interest in this area. 

Adrianna Chang (Shopify)   

**⚡️ IN BRIEF:** 

- [PicoRuby](https://picoruby.org/) is _"the smallest Ruby implementation for one-chip microcontrollers"_. Hitoshi Hasumi [shares an update on its progress.](https://rubystacknews.com/2025/12/10/why-now-is-the-right-time-for-picoruby/)
- [RubyMine 2025.3](https://blog.jetbrains.com/ruby/2025/12/rubymine-2025-3-multi-agent-ai-chat-rails-aware-mcp-server-faster-multi-module-projects-startup-and-more/), the latest version of JetBrains' commercial Ruby IDE, has been released. It now includes Claude Agent, smarter autocompletion, full Unicode regex support, and more.
- If you're interested in RBS and type-safe programming in Ruby, there's a new newsletter called [Static Ruby Monthly](https://newsletters.eremin.eu/posts) – [here's the latest issue.](https://newsletters.eremin.eu/posts/static-ruby-monthly-issue-11-december-2025)
- 🇺🇸 [RBQ Conf](https://rbqconf.com/) is a Ruby event taking place next March 26-27 in Austin, Texas. [Its CFP](https://docs.google.com/forms/d/e/1FAIpQLScZiWKKW_0lWe8C59p2mwk6U0YVh0hFuMYLtKLYVO9hQ_f7Kw/viewform) is open till January 7.
- [RubyGems 4.0.1](https://blog.rubygems.org/2025/12/09/4.0.1-released.html) has been released.   

🕹️ [Building Vanilla Roguelike: A Ruby-Powered Roguelike](https://davidslv.uk/ruby/game-development/2025/11/08/vanilla-roguelike.html) — The tale of five years of development of [this game.](https://github.com/Davidslv/vanilla-roguelike) David has also written [a book](https://www.amazon.com/Building-Your-Own-Roguelike-Hands-ebook/dp/B0G1RBWF6V) on the topic. 

David Silva   

🔊 [Building a Custom Audio Player with Stimulus](https://avohq.io/blog/building-an-audio-player-with-stimulusjs) — A particularly thorough walkthrough by Exequiel for building a custom audio player into a Rails app. 

Exequiel Rozas   

[Making Rails Global IDs Safer](https://blog.julik.nl/2025/12/a-trap-with-global-ids) — [Global ID](https://github.com/rails/globalid) is a mechanism by which individual records in a Rails app get their own form of URI, e.g. `gid://myblog/Post/32` 

Julik Tarkhanov   

[Why Does Your APM Deliver So Much Data but So Few Answers? #longread](https://www.honeybadger.io/blog/apm-paradox/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-12-05-rubyweekly-link) — APMs overwhelm you with dashboards and data but fail to offer fixes when production breaks. [Let's unpack the APM Paradox ->](https://www.honeybadger.io/blog/apm-paradox/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-12-05-rubyweekly-link) 

Honeybadger sponsor   

📄 [Why Evil Martians Hosted a Ruby Conference in San Francisco](https://evilmartians.com/chronicles/why-evil-martians-hosted-a-ruby-conference-in-san-francisco) – In tech, all roads lead to San Francisco, it seems. Melnikova and Nazarova 

📄 [Going Beyond Ruby: Writing a Simple C Extension](https://www.aha.io/engineering/articles/ruby-c-extension) – Well trodden ground, but succinctly covered here. Kyle d’Oliveira 

📄 [Lessons Learned From Studying Fizzy's Test Suite](https://testdrivingrails.com/blog/fizzy-test-suite) – 37signals’ latest open-sourced app provides a good example of how they approach testing a modern Rails app. Josef Strzibny 

📄 [Why Frozen Test Fixtures are a Problem on Large Projects and How to Avoid Them](https://radanskoric.com/articles/frozen-test-fixtures) Radan Skorić 

📄 [Rails Native Composite Primary Keys: The Evolution from Rails 3 to Rails 8](https://blog.saeloun.com/2025/12/10/evolution-of-rails-composite-keys/) Amol Joshi 

📄 [Match HTTP Methods with `current_page?` in Rails](https://www.mintbit.com/blog/match-http-methods-with-current-page/) Mintbit  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eb2kcduoxcbjtoc7h0g9.jpg)](https://railsdesigner.com/new-requestkit/)  

[Requestkit: Test and Send Webhooks and API Requests in Development](https://railsdesigner.com/new-requestkit/) — A local HTTP server and Web interface for sending _and_ receiving webhooks and API requests (outbound requests are defined in JSON files for repeatability). [GitHub repo.](https://github.com/Rails-Designer/requestkit) 

Rails Designer   

[connection_pool 3.0: A Generic Connection Pooling Library](https://github.com/mperham/connection_pool) — Lots of systems have connection pools built in, but what if you want a generic one to use with whatever you wish in Ruby? v3.0 drops support for Ruby 3.2 and under and a key breaking change is a wholesale [shift to keyword arguments.](https://github.com/mperham/connection_pool/blob/main/Changes.md#300) 

Mike Perham   

[🧠 Smart Rails Applications Are Not the Future, They're the Present](https://sinaptia.dev/posts/building-intelligent-applications-with-rails?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=rubyweekly-2025q4&utm_content=sponsored) — We identify problems worth solving with AI and [implement cost-effective solutions](https://sinaptia.dev/blog/tags/ai/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=rubyweekly-2025q4&utm_content=sponsored) that save significant organizational time. 

SINAPTIA sponsor   

🖼️ [ruby-vips 2.3.0: The `libvips` Image Processing Library in Ruby](https://github.com/libvips/ruby-vips) — FFI-powered bindings to [libvips](https://www.libvips.org/), a popular, [fast](https://github.com/libvips/libvips/wiki/Speed-and-memory-use) C-powered image processing library. Think resampling, blending, rotation, producing histograms, and similar operations. 

libvips team   

[AlchemyCMS 8.0: A Rails CMS Framework](https://github.com/AlchemyCMS/alchemy_cms) — A CMS you can run standalone or bake into your existing Rails apps in order to build your own CMS on top of it. It now supports Rails 8. There’s [a live demo](https://demo.alchemy-cms.com/) (the admin login is `demo`/`demo123`). 

Blish GmbH   

- [Timeout v0.5.0](https://github.com/ruby/timeout) – Provides automatic termination of operations exceeding a specified time limit. Now supports Ractors in Ruby 4.0+.
- [rux 1.4](https://github.com/camertron/rux) – JSX-inspired way to render view components in Ruby. Now with support for React-style contexts.
- 🚦 [Stoplight 5.7](https://github.com/bolshakov/stoplight) – Implementation of the circuit breaker pattern to gracefully handle external failures.
- [RubyMoney 7.0](https://github.com/RubyMoney/money) – Library for dealing with money and currency conversion.
- [ReActionView 0.2](https://github.com/marcoroth/reactionview) – Advanced ActionView-compatible ERB engine.
- [OpenAI Ruby 0.37](https://github.com/openai/openai-ruby) – Official Ruby SDK for the OpenAI API.
- [Mongoid v7.6.0](https://github.com/mongodb/mongoid) – ODM framework for MongoDB in Ruby.
- [Psych v5.3.0](https://github.com/ruby/psych) – libyaml-based YAML parser and emitter.
- [Haml 7.1](https://github.com/haml/haml/releases/tag/v7.1.0) – Alternative template markup language.   

📢 Elsewhere in the ecosystem  

Some other interesting stories in the broader landscape:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/aes7g4btd08qduj72llk.jpg)](https://chrome.dev/css-wrapped-2025/)  

- Get up to speed with the latest developments in the world of CSS this year with the Chrome team's [CSS Wrapped 2025.](https://chrome.dev/css-wrapped-2025/)
- 🎂 Ruby isn't the only programming language turning thirty years old this year, [JavaScript was first announced in this press release in December 1995](https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html), less than a month before the release of Ruby 0.95.
- [Let's Encrypt is celebrating ten years](https://letsencrypt.org/2025/12/09/10-years.html) of generating certificates.
- 😡 If you've found getting a key to use Google's Gemini APIs a nightmare, [you're not alone.](https://ankursethi.com/blog/gemini-api-key-frustration/)         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
