Tech – walker – 2026-08-07

86 items · updated 2026-08-07 23:35 UTC · RSS · Up to 2026-08

GC: scan a thread's machine stack once per collection

github/ruby/ruby · 2026-08-07

The Ractor root scan marked each thread's ec directly and then marked the wrapper of the fiber that ec lives in. Both reach rb_executio

Fixes after rebase for ZJIT GC fastpath in debug builds

github/ruby/ruby · 2026-08-07

1) Remove copied code in gc_fastpath.rs 2) RbGcZjitDefaultNewObjFastpath and RbGcZjitMmtkNewObjFastpath structs were copied from the cruby_

ZJIT: enable alloc fastpath when compiled with --enable-zjit=dev

github/ruby/ruby · 2026-08-07

This also enables the alloc fastpath where it previously wasn't enabled when `-DRUBY_DEBUG` is set in cflags during compilation. This wi

ZJIT: Add NEWOBJ hook patchpoint for the ZJIT allocation fastpath

github/ruby/ruby · 2026-08-07

The allocation fastpath just advances the cursor and we don't want to emit code that checks for this rare case. Emit a patchpoint instea

ZJIT: Strength-reduce Fixnum % and / by power-of-two constants (#18258)

github/ruby/ruby · 2026-08-07

Rewrite FixnumMod with a positive power-of-two constant divisor into FixnumAnd, and FixnumDiv into FixnumRShift. The sign of Ruby's modu

Update to ruby/spec@0f44fd5

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Update to ruby/mspec@b79c65e

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

ZJIT: Export build-dependent struct offsets as a const table (#18256)

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Allow `config.active_storage.variant_processor` to be set to a class …

github/rails/rails · 2026-08-07

…(#58384) Active Storage passes attachment bytes to a media library in three operations: analysis, preview generation, and variant processi

ZJIT: Centralize shape setting for ZJIT GC fastpath

github/ruby/ruby · 2026-08-07

This commit centralizes shape setting for objects in the ZJIT GC fastpath into the rb_zjit_new_obj_shape function to avoid each type having

Merge pull request #58404 from 55728/fix-request-media-type-doc-example

github/rails/rails · 2026-08-07

Fix the `Request#media_type` documentation example

Disable failing specs on macOS in RubyCI

github/ruby/ruby · 2026-08-07

* https://logs.rubyci.org/osx1400arm/ruby-master/log/20260807T174503Z.fail.html.gz 1) File.setgid? accepts a path in a non-UTF-8, ASCII-

Merge pull request #58399 from Shopify/ar_ractorize_5

github/rails/rails · 2026-08-07

Active Record ivar ractor safety

Make ActiveRecord::ModelSchema._returning_columns_for_insert ractor safe

github/rails/rails · 2026-08-07

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

Make ActiveRecord::ModelSchema.table_name ractor safe

github/rails/rails · 2026-08-07

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

Make ActiveRecord::ModelSchema @symbol_column_to_string_name_hash rac…

github/rails/rails · 2026-08-07

…tor safe

Make ActiveRecord::Persistence.query_constraints_list ractor safe

github/rails/rails · 2026-08-07

Instead of delegating assignment, we calculate the value instead when it is not set. Benchmarks show this doesn't regress performance enough

ZJIT: Re-introduce allocation fast path

github/ruby/ruby · 2026-08-07

Re-enable rb_gc_impl_zjit_new_obj_fastpath, was stubbed to "return false" by the recent rlgc merge. The bump-pointer state moved

検証環境にEC2 Spot Instanceは最適解なのか?コストと可用性の観点から考えてみた

Qiita(trend) · 2026-08-07

はじめに 本記事は「2026 Japan AWS Jr. Champions 真夏のQiitaリレー」の7日目の記事です! 下記URLから他の方の記事を確認できます。ぜひご覧ください! さて、本題に移ります。 最近仕事をしていて、開発・検証環境は、稼働時間が意外と長...

Merge pull request #58359 from Shopify/ec-doc-for-erb

github/rails/rails · 2026-08-07

Allow to configure ERB options through `ActionView::Base`

Merge pull request #58060 from Shopify/ec-notifications-wip

github/rails/rails · 2026-08-07

Ractor compatible Active Support Notifications

Use `Ractor#make_shareable` instead of freeze:

github/rails/rails · 2026-08-07

- There is a concern that users may be adding unfrozen string to that configuration so we want to ancipate and freeze things for them.

Allow to configure ERB options through `ActionView::Base`:

github/rails/rails · 2026-08-07

- ### Problem In #970bf380fe8 we added a :nodoc: to official not document AV::Template::Handlers::ERB, but some applications were leg

Merge pull request #58405 from rails/rmf-loaded-routes-reloader

github/rails/rails · 2026-08-07

Add back `loaded` to RoutesReloader

Avoid reaching for internal state of RoutesReloader in order to write…

github/rails/rails · 2026-08-07

… tests

Fix definition of STR_DUPLICATE_MAX_EMBED_LEN in Test_RbStrDup

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Drop revision.h dependency from dump_ast (#18224)

github/ruby/ruby · 2026-08-07

Follow-up on dd93d13c8a38d1116f4df24c117e902f8144db43 (#18071). Baking revision.h into dump_ast couples every builtin *.rbinc to the curren

Add back `loaded` to RoutesReloader

github/rails/rails · 2026-08-07

It was removed on https://github.com/rails/rails/pull/58225 but it is public API of the framework.

ZJIT: Add JSON output option to `--zjit-stats=<file.json>` (#18228)

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

PowerVS IBM i 日記(111): PowerVS上でのPower9のEOLが発表-2027年12月31日

Qiita(trend) · 2026-08-07

PowerVS上でのPower9のEOL(End of Life)が発表されました。 「Release notes for Power Virtual Server - August 2026」に下記が記載されました。 投稿時点では、日本語版には掲載されていませんでした。 ...

鍵を渡さず・文脈を可視化する — マルチエージェント管理デスクトップアプリ「moeca」を個人開発している話

Qiita(trend) · 2026-08-07

「AI で業務効率化」が当たり前になった一方で、こんな経験はないでしょうか。 思ったような出力をしてくれない… 出力に、いらないデータが混ざっている… 事実と異なる結果を、それっぽく返してくる… さらに、チームで使い始めると別の不安も出てきます。 このエージェント、社...

st.c: swap types of `entries_start` and `rebuilds_num`

github/ruby/ruby · 2026-08-07

A char is more than large enough for counting rebuilds, and it&#39;s fine if it rolls over. The table being rebuilt exactly 255 times betwee

Align multipart boundary handling with RFC 2046 (#11674)

remix · 2026-08-07

Co-authored-by: Reinder Nijhoff <reinder@mediamonks.com>

Ractor compatible Active Support Notifications:

github/rails/rails · 2026-08-07

- ### Problem It is currently not possible to instrument code using ActiveSupport::Notifications inside Ractors. The underying notif

Escape server-rendered CSS style text (#11672)

remix · 2026-08-07

Build Better Websites. Create modern, resilient user experiences with web fundamentals. - Escape server-rendered CSS style text (#11672) · r

str_subseq: copy sharable substrings up to a 256 byte slot

github/ruby/ruby · 2026-08-07

Previously the embedded path allocated a full-size embedded string via str_alloc_heap plus STR_SET_EMBED, which capped the copy at the defau

Fix the `Request#media_type` documentation example [ci skip]

github/rails/rails · 2026-08-07

The documented request is a GET, which carries no body and therefore no `Content-Type`, so `media_type` returns `nil` instead of the documen

VM: keep vm_sendish inlined into the interpreter loop

github/ruby/ruby · 2026-08-07

gcc used to inline four vm_sendish calls into vm_exec_core; it now inlines three. The fourth was a constprop clone -- the one specialised f

GC: remember an old parent once while marking its children

github/ruby/ruby · 2026-08-07

rgengc_check_relation asks rgengc_remember to remember the parent for every child that is young or write-barrier unprotected. Remembering i

Add Proc#syntax_tree, Method#syntax_tree, and UnboundMethod#syntax_tree

github/ruby/ruby · 2026-08-07

Returns the AST node that the proc or method was compiled from, by re-parsing the source ([Feature #21795]). Returns nil if the node cannot

Add Thread::Backtrace::Location#syntax_tree

github/ruby/ruby · 2026-08-07

Returns the AST node at the location: the node of the surrounding method or block is retrieved and validated in the same way as Proc#syntax_

[ruby/io-console] Introduce the `IO::Console` namespace

github/ruby/ruby · 2026-08-07

Isolate console modes and version information from `IO` into a common namespace. https://github.com/ruby/io-console/commit/62890333ac

Fix warnings

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Add missing wrapper for `rb_deprecate_constant`

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

AWS検証環境の削除し忘れ対策を、簡易的に自動化してみた!

Qiita(trend) · 2026-08-07

本記事は、BIPROGY / ユニアデックス社内AWSコミュニティ「BIPROGY AWS SPARK」の定期投稿企画第10回目の記事です。 他の定期投稿企画の記事は、インデックスページをご覧ください 目次 はじめに やりたいこと 全体アーキテクチャ 実装の全体...

GC: only look at the GC mode when the allocation region runs out

github/ruby/ruby · 2026-08-07

heap_alloc_slot tested is_incremental_marking() and bumped a counter on every allocation, to bring the mutator out to newobj_refill every IN

Omit direct ISeq#to_binary tests when coverage is enabled

github/ruby/ruby · 2026-08-07

RubyVM::InstructionSequence#to_binary raises &quot;should not compile with coverage&quot; while coverage measurement is enabled. Most to_bin

Update to ruby/spec@4731fc6

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Merge pull request #58400 from seuros/dedup-local-cache-read-multi

github/rails/rails · 2026-08-07

Extract duplicated local cache multi-read resolution in Strategy::LocalCache

Merge pull request #58401 from seuros/dedup-assert-job-matching

github/rails/rails · 2026-08-07

Extract duplicated job matching logic in ActiveJob::TestHelper

Merge pull request #58397 from seuros/dedup-arel-update-self-join

github/rails/rails · 2026-08-07

Extract duplicated UPDATE self-join preparation into Arel::Visitors::…

[ruby/json] Widen the json_decode_integer fast path to more 64-bit in…

github/ruby/ruby · 2026-08-07

…tegers. When this code was refactored in 9c4db31, the mantissa_digits captured only the length of the mantissa and the negative sign was c

Ractor: close an undelivered IO's fd when freeing a move courier

github/ruby/ruby · 2026-08-07

A move courier carries an IO by taking over its rb_io, so the source IO is already a RactorMovedObject and nobody else can close the descrip

tool/rbs_skip_tests: skip GC/ObjectSpace type tests that break on Rac…

github/ruby/ruby · 2026-08-07

…tor-local roots Skipping test_enable leaves GC enabled for the rest of the suite, which exposes two more tests: (1) test_stress_and_stres

GC: per-Ractor local GC — Ractor (move courier / absorb / teardown)

github/ruby/ruby · 2026-08-07

Implement send(move: true) with an off-heap courier that carries the payload between objspaces, neutralizing the source into a RactorMovedOb

Ractor: drop the pin list if basket allocation raises

github/ruby/ruby · 2026-08-07

After a native copy succeeds, ractor_basket_alloc can still raise NoMemoryError before cr-&gt;pin_capture is handed to the basket. The stal

Ractor: do not leak generic_fields_lock when the insert raises

github/ruby/ruby · 2026-08-07

Adding a generic-fields entry takes the VM-wide generic_fields_lock and then calls st_insert, which mallocs when the table grows. With this

Fix raise-path bugs in Ractor#value and Ractor creation

github/ruby/ruby · 2026-08-07

Verified from an independent review&#39;s findings: - Ractor#value: the legacy_taken check ran only before the wait for ractor_terminated

GC: per-Ractor local GC — GC engine

github/ruby/ruby · 2026-08-07

Give each Ractor its own objspace so an ordinary local GC runs without the VM lock or a barrier. A stop-the-world global GC does the cross-

GC: per-Ractor local GC — generic fields (single global table)

github/ruby/ruby · 2026-08-07

Keep the generic-ivar host-to-fields_obj mapping in one global table, serializing mutators with a dedicated lock. A local GC marks only the

GC: per-Ractor local GC — Thread / scheduler

github/ruby/ruby · 2026-08-07

Order thread teardown against GC-time frees, route Fiber and Thread frees from a local GC through the VM lock, and stop touching VM-global f

Ractor#value: return the value only once

github/ruby/ruby · 2026-08-07

Ractor#value used to be repeatable: the successor could call it again and get the same object back, because the value stayed reachable from

GC: per-Ractor local GC — VM (lock / roots / write barrier)

github/ruby/ruby · 2026-08-07

Make the VM-global GC roots per-Ractor so the main Ractor&#39;s ordinary local GC runs lock-free. Add the shareability and objspace-localit

GC: per-Ractor local GC — tests

github/ruby/ruby · 2026-08-07

Adjust bootstraptest and test-all for the per-Ractor local GC, and add regression tests for the Ractor lifecycle and cross-objspace cases.

NEWS: per-Ractor GC

github/ruby/ruby · 2026-08-07

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

GC: support modular GC (mmtk) — coverage for single-objspace impls

github/ruby/ruby · 2026-08-07

A single-objspace implementation has no pinning or shareable-reference bits, no zombie objspaces, and no per-Ractor local GC: liveness is de

Ractor: test that a monitor keeps the monitoring Ractor alive

github/ruby/ruby · 2026-08-07

A monitor entry holds a port of the monitoring Ractor and the exit token is sent through it, so the monitoring Ractor&#39;s struct has to ou

thread: restore the atfork reinitialization of vm->once_lock

github/ruby/ruby · 2026-08-07

Rewriting the atfork block to reinitialize the GC&#39;s locks dropped the two lines that reinitialize vm-&gt;once_lock and vm-&gt;once_cond.

Ractor: derive object belonging from the owning objspace

github/ruby/ruby · 2026-08-07

RACTOR_CHECK_MODE stamped every object with the id of the Ractor that allocated it (a 4 byte suffix on every slot), and re-stamped whole obj

Update bundled gems list as of 2026-08-07

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

Extract duplicated job matching logic in ActiveJob::TestHelper

github/rails/rails · 2026-08-07

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

ROS 2のcallback/CallbackGroup構造を「ビルドせず・実行せず」ソースから抽出するツールを作った

Qiita(trend) · 2026-08-07

はじめに 先日のROSCon JP 2026のライトニングトークで、このツールを紹介しました。 ……が、「ライトニング」の名に忠実過ぎました。 久しぶりの口頭発表で心臓バクバクしてまして、なぜこれが必要なのかも、中で何をしているのかも、ほとんど伝えられないまま終了。 会場...

Make Module#descendants follow the ancestors of the current box

github/ruby/ruby · 2026-08-07

The subclasses lists are kept only in the prime classext and thus shared by all boxes, so a module included into a builtin class in a box wa

Make Arel::Table ractor safe

github/rails/rails · 2026-08-07

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

Make ActiveRecord::PredicateBuilder ractor safe

github/rails/rails · 2026-08-07

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

ZJIT: Summarize the invokeblock block handler profile once

github/ruby/ruby · 2026-08-07

Compute a TypeDistributionSummary for the profiled block handler distribution up front instead of deriving only the monomorphic class from i

ZJIT: Compile polymorphic ISEQ invokeblock

github/ruby/ruby · 2026-08-07

The Ruby Programming Language. Contribute to ruby/ruby development by creating an account on GitHub.

ZJIT: Test mixed block handlers at polymorphic yield sites

github/ruby/ruby · 2026-08-07

Cover yield sites that see a mix of ISEQ, proc, symbol, and ifunc block handlers: * HIR tests that a profile mixing ISEQ blocks with proc/s

ZJIT: Use offset_of for the captured block code field

github/ruby/ruby · 2026-08-07

Instead of hard-coding the 2 * SIZEOF_VALUE offset of rb_captured_block's code union, compute it with offset_of! from the bindgen-generated

楽観ロックの実装でおさえたいポイントと、よくあるしくじり

Zenn · 2026-08-07

これはなに こんにちは、レバテック開発部のもりたです。 今回はアプリケーションを作る上でわりと出会う楽観ロックの実装方法についてまとめます。 コードの例はPHP/Laravelですが、基本的には言語やフレームワークに制限はありません。 構成 構成 楽観ロックとは 課題 楽

Bump the github-actions group across 1 directory with 4 updates

github/ruby/ruby · 2026-08-07

Bumps the github-actions group with 4 updates in the / directory: [github/codeql-action/init](https://github.com/github/codeql-action), [git

[Feature #22215] Extract internal objspace API

github/ruby/ruby · 2026-08-07

Provide narrow accessors so `ext/objspace` does not depend on call cache and call info layouts.

[Feature #22215] Remove vm_core dependency from gc header

github/ruby/ruby · 2026-08-07

Keep `internal/gc.h` usable without VM-private definitions so bundled extensions do not inherit `vm_core.h` dependencies.

[Feature #22215] Extract internal coverage API

github/ruby/ruby · 2026-08-07

Provide a narrow coverage interface so `ext/coverage` does not depend on GC or VM implementation headers.

[DOC] Add NEWS entry for String bit operations

github/ruby/ruby · 2026-08-07

Proposed in https://bugs.ruby-lang.org/issues/22118 Merged in #17353

Extract duplicated local cache multi-read resolution in Strategy::Loc…

github/rails/rails · 2026-08-07

…alCache