---
title: "Making a case for real macros in Ruby"
publication: "Ruby Weekly"
issue: 820
published_at: "2026-10-08"
canonical_url: "https://rubyweekly.com/issues/820"
---

Plus Ruby's plans for Windows, why's Ruby events guest book, and DHH's continuing Rust experiments.        

#​820 — October 8, 2026 

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

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)](https://go.fastruby.io/6sj)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nufqhhqpmvoptuwylfhw.jpg)](https://dev.37signals.com/warming-up-the-puma-master-before-it-forks/)  

[Warming Up the Puma Master Before It Forks](https://dev.37signals.com/warming-up-the-puma-master-before-it-forks/) — Using Puma with `preload_app!`? Your workers still start cold, each compiling templates and YJIT code on live traffic. This post covers Basecamp's fix of running real requests in the parent process before forking, giving workers a warm app. 

Lewis Buckley (37signals)   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/86eaada6.png)](https://go.fastruby.io/6sj) 

[🤖 Ready for AI-Native Rails Modernization?](https://go.fastruby.io/6sj) — 🚨 Rails 8.0 EOL Nov 7. Our AI agents upgrade your app on your CI runners. PRs open only when your test suite passes. You review and merge. No quiet test deletions. Join the private-beta waitlist to lock in beta pricing from $497/mo. 

FastRuby.io | AI-native Upgrades on Autopilot sponsor   

[Rails Originator Roasted Over Rust Boosterism](https://www.theregister.com/devops/2026/10/07/rails-originator-roasted-over-rust-boosterism/5301494) — An update on DHH's dabbling with other languages, this time porting [Campfire](https://github.com/basecamp/once-campfire) to Elixir, Go, and Rust. The benchmarks didn't pass muster on social media, but DHH is [working on that.](https://github.com/basecamp/once-campfire-verification) 

Joab Jackson (The Register)  

💡 Meanwhile, Tobi Lütke is sticking with Ruby with his experimental [Rails-free Ruby & Ractors port of Campfire](https://github.com/tobi/campfire-once-ruby-ractor) which gets [15-27x throughput vs. the Rails version](https://static.lutke.dev/KTK6Vb/campfire-ruby-explainer/).  

**⚡️ IN BRIEF:** 

- We learnt from [yesterday's core dev meeting](https://github.com/ruby/dev-meeting-log/blob/master/2026/DevMeeting-2026-10-07.md) that Ruby 4.1's first preview release is imminent. The final usually lands on Christmas Day.
- 📺 All the talks from _Rails World 2026_ [are now on YouTube](https://www.youtube.com/playlist?list=PLdMRFKO1zSBE).
- [YJIT now works on Windows](https://github.com/ruby/ruby/commit/d0e8537b4cb86bfc84f002e35cdf49cbba7d9b43) builds made with Visual C++ (mswin, not MinGW). Part of a broader effort for Ruby to [provide official Windows binary packages again](https://redmine.ruby-lang.org/issues/22180) (which it stopped doing after Ruby 1.9).
- [Matz has accepted](https://bugs.ruby-lang.org/issues/22312) `parents:` for `Dir.mkdir` and `recursive:` for `File.unlink`, so `mkdir -p` and `rm -r` can work without [FileUtils](https://docs.ruby-lang.org/en/master/FileUtils.html). The implementation is yet to follow, however.
- `Class.allocate` is [going away](https://bugs.ruby-lang.org/issues/22376). Matz has approved making it raise, as `Proc.allocate` already does, since an uninitialized class has no use.   

[Unrolled Code (and a Case for Real Macros in Ruby)](https://noteflakes.com/articles/2026-10-07-unrolled-code) — A thoughtful proposal for Elixir-style `quote`/`unquote` macros, so you could generate fast, specialized code from ASTs rather than strings. 

Sharon Rosner   

[Don't Bet on `SELECT` Order: Shuffle Your Rows and See What Folds](https://evilmartians.com/chronicles/dont-bet-on-select-order-shuffle-your-rows-see-what-folds) — Your tests may assume rows come back in insertion order, but Rails 8.2's `shuffle_unordered_selects` option will challenge that assumption, as will the [pg_disorder](https://github.com/viralpraxis/pg_disorder) Postgres extension but at the database level. This approach has already surfaced [a bug](https://github.com/rails/rails/pull/58177) in Rails. 

Yaroslav Kurbatov (Evil Martians)   

[Keep Rails on Postgres. Even for Analytics](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=ruby-weekly-newsletter) — TimescaleDB extends the Postgres behind your Rails app so analytics stay fast. Same ActiveRecord. [Get $1000 credit](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=ruby-weekly-newsletter). 

Tiger Data (creators of TimescaleDB) sponsor   

📄 [ruby-lean: A Ruby Semantics with a Type Soundness Proof](https://samx.io/blog/topics/devlog/2026-09-26-ruby-lean.html) – An executable model of Ruby in Lean 4, built with heavy LLM help. Sam Xifaras 

📄 [What `retry_on` Actually Means](https://railsrevelry.substack.com/p/what-retry-on-actually-means) – Tracing what `retry_on` repeats and when retries go missing, with a repro. Syed Aslam 

🤖 [How to Run the Rails Agent Benchmark Yourself](https://www.fastruby.io/blog/run-the-rails-agent-benchmark-yourself.html) Henrique Medeiros  

🛠 Code & Tools  

[RubyLLM 2.1 Adds MCP, Agent Evals and OpenTelemetry Tracing](https://github.com/crmne/ruby_llm/releases/tag/v2.1.0) — The popular Ruby LLM library adds a built-in MCP client, `RubyLLM::Judge` for typed classification-style questions ([Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev), anyone?), and an agent eval framework with RSpec/Minitest hooks. 

Carmine Paolino  

💡 There's also [a thorough, practical guide](https://rubyllm.com/whats-new-in-2-1/) to using all the new features.  

[Rutie 0.14: A Way to Bring Ruby and Rust Together](https://github.com/danielpclark/rutie) — Write Ruby extensions in Rust, or embed Ruby in a Rust app. We last linked to this six years ago, but it’s been revived to support Ruby 4.0 and a larger portion of Ruby’s C API. 

Daniel P. Clark   

[Paying Per Seat for New Relic? AppSignal Includes Unlimited Users](https://www.appsignal.com/alternative/new-relic-alternative?utm_medium=paid&utm_campaign=rubyweekly&utm_source=rubyweekly&utm_content=sponsored&utm_term=1008) — Flat request-based pricing, free support from real engineers, and every feature on every plan. [Free 30-day trial](https://www.appsignal.com/alternative/new-relic-alternative?utm_medium=paid&utm_campaign=rubyweekly&utm_source=rubyweekly&utm_content=sponsored&utm_term=1008). 

AppSignal sponsor   

✋ [exhale: A CI Gate for Duplication and Complexity in Rails Apps](https://github.com/tools4imps/exhale-ruby) — `exhale dry` flags duplicated Ruby and ERB code, while `exhale complexity` [scores methods and DSL calls](https://github.com/tools4imps/exhale-ruby/releases/tag/v0.2.0) before and after a PR and fails only when one gets harder to follow, so existing code passes until someone makes it _worse_. 

Obie Fernandez   

[toml-rb 6.0: A Fast, Dependency-Free TOML Parser Library](https://github.com/emancu/toml-rb/releases/tag/v6.0.0) — The gem for reading and writing [TOML](https://toml.io/en/) config files (think `Cargo.toml`) is now dependency-free _and_ dramatically faster. 

Emiliano Mancuso   

- ⚠️ [Dalli 5.2.2](https://github.com/petergoldstein/dalli/releases/tag/v5.2.2) – The popular memcached client has fixed six security issues. [Two high-severity bugs](https://rubysec.com/advisories/GHSA-p6pm-ch9v-44vx/) can return another key's cached value. v5.1.4, 5.0.10, 4.3.7 and 3.2.13 are also fixed if you're on those lines.
- [RubyGems and Bundler 4.1.0 Beta 2](https://blog.rubygems.org/2026/10/08/4.1.0.beta2-released.html) – Now supports [content-addressable gem](https://github.com/ruby/rubygems/issues/9654) builds, plus setuid, setgid and sticky bits are now dropped on extraction.
- [Active Record Doctor 2.1](https://github.com/gregnavis/active_record_doctor) – A long-standing way to identify database-related issues before they reach production.
- [kamal-backup 1.1](https://github.com/crmne/kamal-backup/releases/tag/v1.1.0) – Scheduled Rails backups as a single Kamal accessory. A new `dump` command downloads one database dump without a full restore.
- [Reek 6.6](https://github.com/troessner/reek) – A modernization release of the 18-year-old 'code smell' detector.       

📰 Classifieds   

Who decides what gets built to last—or paved over? We all do. Join us in Barcelona for [Mozilla Festival](https://www.mozillafoundation.org/en/festival/?utm_medium=paid&utm_source=newsletter&utm_campaign=26-mozfest&utm_content=ad_ruby-weekly&utm_term=cooperpress), Oct. 28-30. [Get your badge](https://www.mozillafoundation.org/en/festival/?utm_medium=paid&utm_source=newsletter&utm_campaign=26-mozfest&utm_content=ad_ruby-weekly&utm_term=cooperpress).    

📢 Elsewhere in the ecosystem 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yxhoixcxvvzvjuykdvgk.jpg)](https://whysfoxes.github.io/whysfoxes_web/)  

- TIL that a paperback copy of _why's (poignant) Guide to Ruby_ is [travelling between Ruby events as a guest book](https://whysfoxes.github.io/whysfoxes_web/). Matz wrote _"He started a movement. I miss you, why!"_ on its title page, and Eileen Uchitelle, Jeremy Evans, Charles Nutter, Sarah Mei, Xavier Noria and Nate Berkopec have all left notes too!
- 🕹️ [Rai*bert](https://github.com/cdimartino/raibert) is a 20-level Q*bert-style arcade game built with Ruby and Gosu. You can also [play it in your browser](https://raibert.lol/) thanks to WebAssembly.
- [rich-ri](https://github.com/hvpaiva/rich-ri) is like `ri` for reading Ruby's docs in the terminal, but with syntax highlighting and shell completion.         

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/).
