Project

General

Profile

Activity

From 06/19/2026 to 06/25/2026

Today

04:52 AM Bug #22129 (Assigned): error_highlight raises NotImplementedError for ArgumentErrors that get wrapped
hsbt (Hiroshi SHIBATA)
03:53 AM Revision 37fa88d7 (git): Remove flaky test_escape_html_allocates_same_as_escapeHTML
It's causing ruby CI to flake, because it's a badly designed test,
a lot of thing can cause acouple extra allocation there and there
so even if you invoke the exact same code twice, you might still
allocate a bit more or a bit less.
byroot (Jean Boussier)
03:13 AM Revision c2154294 (git): [ruby/rubygems] Track the shipped RubyGems URI in the file invariant
The Bundler gem now ships lib/rubygems/vendor/uri, so include it in
tracked_files_glob to keep the "ships the correct set of files" spec in
sync with the gemspec.
https://github.com/ruby/rubygems/commit/d159cabc72
Co-Authored-By: Claud...
hsbt (Hiroshi SHIBATA)
03:13 AM Revision 223f7967 (git): [ruby/rubygems] Use RubyGems' vendored URI in Bundler
Drop Bundler's duplicate vendored URI copy and load Gem::URI from
RubyGems' copy instead, which the gem now ships under lib/rubygems.
The shim skips loading when Gem::URI is already defined and falls back
to the stdlib only when no vendo...
hsbt (Hiroshi SHIBATA)
03:13 AM Revision 0953a296 (git): [ruby/rubygems] Ship RubyGems' vendored URI in the Bundler gem
Add lib/rubygems/vendor/uri to the gem's files so Bundler carries the
Gem::URI copy itself. This keeps Bundler self-contained on RubyGems
versions older than 3.5, which do not vendor URI, independently of any
release cutoff.
https://git...
hsbt (Hiroshi SHIBATA)
03:13 AM Revision bc1348aa (git): [ruby/rubygems] Guard the vendored URI against double loading
When the same Gem::URI copy is shipped in two gems (RubyGems and Bundler)
and required from different paths, RubyGems' unguarded require_relative
reloads it and emits "already initialized constant" warnings. Add an
idempotent guard at th...
hsbt (Hiroshi SHIBATA)
02:28 AM Revision 1619cf7c (git): io_buffer: add safe callback wrappers for String views. (#17473)
Samuel Williams

06/24/2026

11:56 PM Revision c552f2bc (git): [ruby/cgi] Fix unescapeHTML CompatibilityError in pure-Ruby fallback
The ascii-compatible path builds a binary buffer but returned numeric
character references via chr(enc), so a non-ASCII replacement appended
to a buffer that already held non-ASCII bytes raised
Encoding::CompatibilityError. Decode into t...
hsbt (Hiroshi SHIBATA)
11:56 PM Revision adc44f9a (git): [ruby/cgi] Fix escape_html/h aliases to use C extension instead of pure Ruby fallback
The snake_case aliases (escape_html, h, unescape_html) were defined
before `require 'cgi/escape.so'`, so they captured references to the
pure Ruby methods. After the C extension loads and prepends EscapeExt,
only the camelCase names (esc...
hsbt (Hiroshi SHIBATA)
11:00 PM Revision 30e15d84 (git): [ruby/rubygems] Reuse RubyGems' vendored tsort in Bundler
Bundler's required_rubygems_version (>= 3.4.1) always ships Gem::TSort,
vendored into RubyGems since 3.4.0, so the duplicate Bundler::TSort copy
is unnecessary. Delegate to rubygems/vendored_tsort and switch SpecSet to
include Gem::TSort...
hsbt (Hiroshi SHIBATA)
10:57 PM Revision d663de3f (git): re.c: Simplify rb_reg_equal
Since `src` is always a `fstring` we don't need to compare
length nor content, we can just compare the pointers.
byroot (Jean Boussier)
10:47 PM Feature #22128: C API: Expose RB_OBJ_SET_FROZEN_SHAREABLE
> since RB_OBJ_SET_FROZEN_SHAREABLE is shallow and doesn't verify that referenced objects are shareable, this seems very hard to use safely.
I understand your reservation, I kinda have the same, but I think this being a C-level API i...
byroot (Jean Boussier)
08:02 PM Feature #22128: C API: Expose RB_OBJ_SET_FROZEN_SHAREABLE
I agree we need to find some way to make up that performance, but since `RB_OBJ_SET_FROZEN_SHAREABLE` is shallow and doesn't verify that referenced objects are shareable, this seems very hard to use safely. Even in the example Trilogy PR... jhawthorn (John Hawthorn)
09:48 AM Feature #22128 (Open): C API: Expose RB_OBJ_SET_FROZEN_SHAREABLE
### Context
I'm trying to experiment with adapting Active Record for a Ractor architecture.
Since database connections can't possibly be Ractor shareable, the idea is to warp each connection inside its own ractor, and then send SQL...
byroot (Jean Boussier)
09:17 PM Revision bb75c289 (git): ZJIT: Inline String#ascii_only? and #valid_encoding?
Read the cached coderange directly (flags & MASK) instead of calling the
builtin: ascii_only? is == 7BIT, valid_encoding? is != BROKEN, side-exit
on UNKNOWN. Drops the call, ~20% faster on ZJIT.
sampokuokkanen (Sampo Kuokkanen)
09:17 PM Revision 93e97793 (git): Define String#ascii_only? and #valid_encoding? in Ruby
Get rid of the CFUNC overhead in String#ascii_only? and #valid_encoding?. Define them as leaf Primitive.cexpr! builtins in a new string.rb, following the pattern of numeric.rb.
This makes them 1.2x-1.4x faster across the interpreter, YJ...
sampokuokkanen (Sampo Kuokkanen)
09:15 PM Revision 5465dca9 (git): Prefer rb_sym2str over rb_id2str(SYM2ID)
eightbitraptor (Matt V-H)
08:22 PM Revision 4949309e (git): ZJIT: Remove optimize_getivar
Max Bernstein
08:22 PM Revision 312d58f3 (git): ZJIT: Obviate optimize_getivar
Max Bernstein
08:22 PM Revision a0c02a4d (git): ZJIT: Optimize loading instance variables in one go
Skip intermediate GetIvar and optimize straight through, either from
getinstancevariable opcode or from methods with METHOD_TYPE_IVAR.
Max Bernstein
08:04 PM Bug #22129 (Assigned): error_highlight raises NotImplementedError for ArgumentErrors that get wrapped
With code like
```ruby
def x(y:) = y
begin
x
rescue => e
p e.exception("wat").detailed_message
end
```
a NotImplementedError is raised on ruby 4.0+
```
/Users/rwstauner/.rubies/4.0.2/lib/ruby/4.0.0/error_highlight/...
rwstauner (Randy Stauner)
07:14 PM Revision b2e8843a (git): ZJIT: Fix prefix comma on InvokeBlock (#17471)
Also introduce printing helper for writing separated lists in `Display`
impl for `Insn`.
Max Bernstein
06:47 PM Revision fd2f18c3 (git): ZJIT: Print string name of constant in rb_zjit_constant_state_changed (#17470)
It's not so useful to see `ID(abc)` when debugging with `--zjit-debug`
or in Perfetto traces. Also provide the string representation of the ID,
for example: `ID(abc): String`.
Max Bernstein
03:58 PM Revision 491d6151 (git): Bump RDoc bundled gem revision (#17448)
* Bump RDoc bundled gem revision
* Skip RBS RDoc plugin tests for RDoc bump
st0012 (Stan Lo)
02:47 PM Feature #22118: Introduce Basic Bit Operations into String
Introducing efficient bit operations is a great idea, but looking at the proposed methods, having to pass `lsb_first:` repeatedly across multiple bit-related methods suggests that the bit-endianness is a cross-cutting concern.
I belie...
Dan0042 (Daniel DeLorme)
02:18 PM Revision 94045984 (git): [DOC] Fix rdoc-ref replacement
Replace attributes and decode escaped punctuations.
```
Net/HTTP.html: `rdoc-ref:OpenSSL::SSL::SSLContext#max_version-3D` can't be resolved for ``
Net/HTTP.html: `rdoc-ref:OpenSSL::SSL::SSLContext#min_version-3D` can't be resolved for `...
nobu (Nobuyoshi Nakada)
01:51 PM Revision b914f830 (git): [ruby/openssl] x509store: add X509::Store{,Context}#flags and #clear_flags
OpenSSL::X509::Store{,Context}#flags= does not clear existing flags.
Instead, it ORs new flags to the current set. This is contrary to
normal convention and likely unintentional, but changing the behavior
would not be acceptable for comp...
rhenium (Kazuki Yamaguchi)
01:35 PM Revision 3082e00b (git): [ruby/openssl] ssl: let SSLServer accept frozen SSLContext
Do not raise FrozenError in SSLServer.new when
SSLContext#session_id_context cannot be updated. session_id_context is
only necessary for session resumption, so its absence is not critical.
Fixes https://github.com/ruby/openssl/pull/742
...
rhenium (Kazuki Yamaguchi)
11:23 AM Revision 7bd30792 (git): LeakChecker: skip CLOSED sockets as well as CLOSE_WAIT
nobu (Nobuyoshi Nakada)
11:19 AM Bug #22127 (Closed): parse.y regexp crash on invalid encoding
Applied in changeset commit:git|66ec908b84a99e512647a9dd61ac3451869e2a12.
----------
[Bug #22127] Check the dynamic regexp compilation results
nobu (Nobuyoshi Nakada)
11:19 AM Revision 66ec908b (git): [Bug #22127] Check the dynamic regexp compilation results
nobu (Nobuyoshi Nakada)
11:06 AM Revision 9643b833 (git): [ruby/openssl] pkey: expand OSSL_3_const macro
OSSL_3_const was useful when supporting OpenSSL 1.0.2-3.x at the same
time. Since support for OpenSSL < 1.1.1 has been dropped, most uses can
simply be replaced with plain const.
https://github.com/ruby/openssl/commit/ce050d7740
rhenium (Kazuki Yamaguchi)
10:38 AM Revision 498a2cbc (git): [ruby/net-http] Fix FD leaks
https://github.com/ruby/net-http/commit/69f6f6dedd nobu (Nobuyoshi Nakada)
09:45 AM Revision 649e639a (git): [ruby/openssl] Add DHKEM test cases
https://github.com/ruby/openssl/commit/dfc45d31d0 Ryo Kajiwara
07:57 AM Revision 12ce975e (git): [DOC] Update bundled gems list at 815710fc27bd3c12d256e14883b37d
git[bot]
06:17 AM Revision 815710fc (git): [DOC] Update documentation of refinement super
Method lookup for refinement super starts with the next active
refinement at the super call site, excluding the current refinment,
if such a refinement exists. This has been the behavior since Ruby
2.7, and it is now confirmed to be the ...
jeremyevans (Jeremy Evans)
05:43 AM Revision 6018a38a (git): Follow the flattened Bundler layout when syncing rubygems
ruby/rubygems flattened the Bundler tree from bundler/ up to the
repository root, so repoint the rubygems mappings accordingly. Guard the
gemspec fixup with File.exist? too, since the synthetic parent tree built
for the flattening commit...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision 8ef77c3d (git): [ruby/rubygems] Load the worktree RubyGems in the dev binstubs
After flattening, lib/ holds both RubyGems and Bundler, so any dev binstub
that puts the worktree lib/ on $LOAD_PATH now overlays the already-booted
system RubyGems with the worktree one. bin/bundle hit this through the
Bundler gemspec a...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision 4eb711b8 (git): [ruby/rubygems] Adjust Bundler specs for the flat layout
After flattening, Bundler shares lib/ with RubyGems, so spec subprocesses
load the in-development Bundler from $LOAD_PATH instead of an installed
gem, the same way ruby-core already does. Four examples assumed a
separately installed Bund...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision d6c484c2 (git): [ruby/rubygems] Update remaining references to the flat Bundler layout
Catch the leftover bundler/lib and bundler/exe references after the move:
the dev binstubs (bin/mdl, bin/rubocop, bin/test-unit), .gitattributes,
.codespellrc, the release tool version file, the rubygems_ext/ci_detector
cross-reference N...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision 4a541375 (git): [ruby/rubygems] Move Bundler docs to the top level under aliased names
Move bundler/{CHANGELOG,LICENSE,README}.md to the top level as
CHANGELOG-bundler.md, LICENSE-bundler.md and README-bundler.md so they
no longer collide with the RubyGems documents while keeping the
CHANGELOG*/LICENSE*/README* prefixes th...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision 2b74a0b4 (git): [ruby/rubygems] Update `gem update --system` for the flat Bundler layout
setup_command builds and installs the default Bundler gem from the
source tree. With Bundler flattened into the top-level lib/ and
bundler.gemspec, the separate "bundler/lib" library and the chdir into
bundler/ are gone: the single lib/ ...
hsbt (Hiroshi SHIBATA)
05:43 AM Revision 3bd6565a (git): [ruby/rubygems] Move Bundler runtime tree to the top level
Flatten bundler/lib, bundler/exe and bundler/bundler.gemspec into the
repository's top-level lib/, exe/ and bundler.gemspec to converge on the
flat layout ruby/ruby already uses. Bundler is fully require_relative
based, so the source mov...
hsbt (Hiroshi SHIBATA)
03:41 AM Bug #22126 (Closed): Stack underflow for partial DCE and loops
Applied in changeset commit:git|1f473ed633a364f8c89b69a76adfb22a4bf21f96.
----------
[Bug #22126] Fix partial DCE with loop back-edges
The old `remove_unreachable_chunk` walked the dead code once and tried
to do two things at the same ...
viralpraxis (Iaroslav Kurbatov)
03:33 AM Bug #22126: Stack underflow for partial DCE and loops
viralpraxis (Iaroslav Kurbatov) wrote:
> every version since 3.4.0-preview2 is affected
Ruby 3.3 with prism hangs up instead of stack underflow.
nobu (Nobuyoshi Nakada)
03:40 AM Revision 1f473ed6 (git): [Bug #22126] Fix partial DCE with loop back-edges
The old `remove_unreachable_chunk` walked the dead code once and tried
to do two things at the same time -- count label references inside that
chunk and figure out what exactly to delete.
That breaks for loops -- the loop label comes be...
viralpraxis (Iaroslav Kurbatov)
03:08 AM Revision 17187e40 (git): [ruby/rubygems] Skip PQC connection tests when the runtime cannot negotiate PQC
OpenSSL >= 3.5 can ship ML-KEM and ML-DSA while still keeping them out
of the default negotiation lists, for example under RHEL's system-wide
crypto policies. The tests force a PQC-only server but connect with the
default gem fetcher, so...
hsbt (Hiroshi SHIBATA)
02:37 AM Revision 0e4dbb2d (git): [DOC] Fix the return value of Ractor#monitor
The RDoc `call-seq` for `Ractor#monitor` says it returns `self`, but the
method actually returns `true`/`false`.
It is implemented by `ractor_monitor()` in `ractor_sync.c`, which returns
only `Qtrue` or `Qfalse` — there is no code path ...
znz (Kazuhiro NISHIYAMA)
12:42 AM Feature #22097: Add Proc#with_refinements
Thank you for your feedback, and I'm glad to hear your concerns are mostly addressed.
Eregon (Benoit Daloze) wrote in #note-16:
> I'm not sure it's really needed though and might be surprising, is it needed?
`with_refinements` is seman...
shugo (Shugo Maeda)

06/23/2026

10:45 PM Feature #22121: Introduce Parallel Sweep feature
Sorry, I forget to address the last concern.
> 3% is valuable for apps? (if no disadvantage, I think so)
I think so, but we would like to improve upon it over time.
luke-gru (Luke Gruber)
10:40 PM Feature #22121: Introduce Parallel Sweep feature
ko1 (Koichi Sasada) wrote in #note-1:
> The definition of "Ruby GC thread" and "the sweep thread"
The Ruby GC thread is the mutator thread that started GC and is currently doing GC work. The sweep thread is the thread whose only work...
luke-gru (Luke Gruber)
03:07 AM Feature #22121: Introduce Parallel Sweep feature
> I would like to have an additional "sweep thread" that sweeps alongside the Ruby GC thread (in parallel) and at the same time as Ruby code is running (concurrent). When the sweep thread is working alongside the Ruby GC thread, both thr... ko1 (Koichi Sasada)
10:17 PM Revision 85348bf1 (git): ZJIT: Split the getivar not_monomorphic fallback counter by cause (#17455)
Before this commit we were lumping all getivar fallback reasons in to
one counter. This made it very hard to find the most popular reasons for
why we're doing slowpath IV reads. This commit just adds more counters
and splits up the fall...
tenderlovemaking (Aaron Patterson)
10:07 PM Revision e91fb8fe (git): [ruby/rubygems] rubygems: Fix Gem::Request for PQC support, adding integration connection tests
Added PQC server/client connection integration tests.
As test_pqc_ssl_client_cert_auth_connection failed with the following error
due to hardcoded `OpenSSL::PKey::RSA.new` in
`Gem::Request.configure_connection_for_https`, fixed it to sup...
Jun Aruga
09:44 PM Revision d58f0291 (git): Use page-sized stack overflow detection window. (#17436)
* Remove stack overflow space ratio
* Cache page size.
Samuel Williams
09:30 PM Revision 00f824cd (git): ZJIT: Recompile getblockparamproxy on side exits (GH-17326)
Add recompile support for getblockparamproxy. This reduces side exits
from monomorphic block handler paths.
Collect block handler profiles from unprofiled and monomorphic
getblockparamproxy guard exits, then invalidate the compiled vers...
Nozomi Hijikata
08:33 PM Revision 11d005d6 (git): [ruby/prism] Pop block stack before finishing command call arguments within parenthesized call
https://github.com/ruby/prism/commit/26cfb915e8 kddnewton (Kevin Newton)
08:30 PM Revision daffaaee (git): Mark most TypedData types as THREAD_SAFE_FREE
Set RUBY_TYPED_THREAD_SAFE_FREE on TypedData types whose dfree function
is trivially safe, and only frees its own memory
Types not yet marked as THREAD_SAFE_FREE:
- id2ref_tbl_type: sets the process-global id2ref_tbl to NULL.
- mutex_da...
jhawthorn (John Hawthorn)
08:17 PM Bug #22125: IO::Buffer triggers use-after-free when it's freed/resized during enumeration
We're already discussing how to fix this case in https://github.com/ruby/ruby/pull/17398 . kou (Kouhei Sutou)
10:23 AM Bug #22125 (Open): IO::Buffer triggers use-after-free when it's freed/resized during enumeration
The block passed to `IO::Buffer#each` can free or resize the receiver (or its parent buffer when the reciver is a slice), which invalidates the memory region being iterated. The next iteration causes use-after-free.

repro:
```
./m...
hanazuki (Kasumi Hanazuki)
08:15 PM Misc #22107: DevMeeting-2026-07-09
* [Feature #21998] Add {Method,UnboundMethod,Proc}#source_range (eregon)
* Could matz reply there?
Eregon (Benoit Daloze)
08:12 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
From https://github.com/ruby/dev-meeting-log/blob/master/2026/DevMeeting-2026-06-11.md#feature-21998-add-methodunboundmethodprocsource_range-eregon
> matz: I want to confirm his intention. Let me respond.
@matz What can I clarify?
...
Eregon (Benoit Daloze)
07:17 PM Revision 7a40f85f (git): ZJIT: Move ivar stats out of "send" stats group
Previously, `:dynamic_setivar_count`, `:dynamic_getivar_count`, and
`:dynamic_definedivar_count` had a percentage to the right of them in
the printout with the denominator being `:send_count`.
These are not sends, so move them out of th...
alanwu (Alan Wu)
07:04 PM Bug #22127 (Closed): parse.y regexp crash on invalid encoding
```
./ruby --parser=parse.y -e '/#{"\xcd"}/'
```
results in a segfault
kddnewton (Kevin Newton)
06:51 PM Revision 2f889f75 (git): [ruby/prism] Fix up regex delimited by \r\n
https://github.com/ruby/prism/commit/7c415b1936 kddnewton (Kevin Newton)
05:43 PM Revision 406a62e5 (git): ZJIT: Re-apply "ZJIT: Clean up branching in polymorphic opt_send_without_block HIR construction" (#17437)
Re-apply https://github.com/ruby/ruby/pull/16634 Max Bernstein
05:08 PM Revision f2425a17 (git): ZJIT: Optimize definedivar in HIR build
No optimization emits DefinedIvar, so just use what we know in HIR build
instead.
Max Bernstein
05:08 PM Revision de640b93 (git): ZJIT: Optimize opt_getconstant_path in HIR build
Don't do this in `type_specialize`; it doesn't depend on any other IR
optimization and can be done with only bytecode information.
Max Bernstein
04:06 PM Bug #22126 (Closed): Stack underflow for partial DCE and loops
``` ruby
ruby --parser prism -e 'if []; else; a => [*, 42, *]; end'
-- raw disasm--------
trace: 1
0000 putnil ( 1)
0001 leave ...
viralpraxis (Iaroslav Kurbatov)
03:53 PM Revision 793dfa1b (git): [ruby/prism] Fix up newline-delimited array literals
https://github.com/ruby/prism/commit/56172038ce kddnewton (Kevin Newton)
03:27 PM Revision 5874b12d (git): Bump prism version
Earlopain (Earlopain _)
03:21 PM Bug #21967: `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
> should have an "else rb_vm_rewind_cfp", but I don't know enough about how this all works.
Out of curiosity I tried it, it does solve the problem on my machine, it does fail in some case on CI though: https://github.com/ruby/ruby/pul...
byroot (Jean Boussier)
02:20 PM Bug #21967: `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
Trying that repro on older Rubies, it does seem to reproduce all the way back to `2.7.8`, `2.6.10` seem fine though. byroot (Jean Boussier)
01:43 PM Bug #21967: `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
So the crash did come back later when `charlock_holmes` was added as a dependency, this time it crash while loading some encoding `.so`.
```
ruby-4.0.5/lib/ruby/4.0.0/aarch64-linux/enc/euc_jp.so: [BUG] vm_call_cfunc: cfp consistency err...
byroot (Jean Boussier)
01:42 PM Bug #21967: `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
We've got a similar looking crash while loading encodings at boot via the charlock_holmes gem. I think it happens when we get a TERM in the middle of loading the encoding, causing us to longjmp over the line that would normally pop the f... dodecadaniel (Daniel Colson)
01:29 PM Revision 13fe77dd (git): Add an ASCII fast path for String#casecmp?
String#casecmp? folds both operands with a Unicode case fold, allocating two new strings, and compares the results. For ASCII-only strings, Unicode case folding is equivalent to ASCII case-insensitive comparison, so the operands can be c... sampokuokkanen (Sampo Kuokkanen)
01:12 PM Bug #21848: GC compaction freezes during code reload with 100% CPU in rb_vm_ci_free -> st_general_delete
This bug may be related to #22104. luke-gru (Luke Gruber)
12:25 PM Bug #22124 (Closed): void value missed in parse.y
Applied in changeset commit:git|d8444812f42162567502877ff3665105a960eb60.
----------
[Bug #22124] Add block to the proper node
nobu (Nobuyoshi Nakada)
12:24 PM Bug #22124: void value missed in parse.y
Thanks, it looks a very old standing bug. nobu (Nobuyoshi Nakada)
11:44 AM Revision d8444812 (git): [Bug #22124] Add block to the proper node
nobu (Nobuyoshi Nakada)
11:44 AM Revision b2205233 (git): Simplify RubyVM::AbstractSyntaxTree::Node::CodePosition
nobu (Nobuyoshi Nakada)
10:46 AM Revision 3688723a (git): Update default gems list at 1da3f06e26b1f65f5f30eb2b0e1999 [ci skip]
git[bot]
10:45 AM Revision 1da3f06e (git): [ruby/json] Release 2.20.0
https://github.com/ruby/json/commit/13162921b8 byroot (Jean Boussier)
10:27 AM Revision 50688881 (git): [ruby/rubygems] RubyGems: Remove unused ctx.tmp_dh_callback in start_ssl_server
https://github.com/ruby/rubygems/commit/c249eae477 Jun Aruga
09:56 AM Revision 55945e5c (git): Retry transient crates.io download failures on all Rust CI
cargo builds in YJIT/ZJIT/Rust workflows intermittently fail when a
crates.io download is truncated (curl [16] HTTP/2 framing, [18] partial
transfer). Set CARGO_NET_RETRY and disable HTTP/2 multiplexing at the
workflow level so every job...
hsbt (Hiroshi SHIBATA)
08:51 AM Revision 23f3148e (git): [ruby/cgi] Fix unescapeHTML CompatibilityError in pure-Ruby fallback
The ascii-compatible path builds a binary buffer but returned numeric
character references via chr(enc), so a non-ASCII replacement appended
to a buffer that already held non-ASCII bytes raised
Encoding::CompatibilityError. Decode into t...
hsbt (Hiroshi SHIBATA)
08:51 AM Revision d916df88 (git): [ruby/cgi] Fix escape_html/h aliases to use C extension instead of pure Ruby fallback
The snake_case aliases (escape_html, h, unescape_html) were defined
before `require 'cgi/escape.so'`, so they captured references to the
pure Ruby methods. After the C extension loads and prepends EscapeExt,
only the camelCase names (esc...
hsbt (Hiroshi SHIBATA)
08:11 AM Feature #22111: Non-symbolic hash keys with `expr : value` syntax
BTW, what I was alluding to in my side question above was how adding _"hash colon"_ syntax (eg. `"key" : value`) to `Hash` could unlock pattern matching on string-keyed values.
Previously `in {key: ...}` only matched symbol keys, so par...
yertto (_ yertto)
06:50 AM Revision dc16cb05 (git): wbcheck: rb_bug on first error on GC
jhawthorn (John Hawthorn)
06:50 AM Revision 300143e0 (git): wbcheck: GC before fork
This isn't essential for correctness, however it's a natural time to
investigate whether the heap is in a correct state.
jhawthorn (John Hawthorn)
06:17 AM Revision c7190d3b (git): Remove unused native thread stack size. (#17435)
Samuel Williams
01:08 AM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
This one was tricky. I couldn't get a reliable reproduction even after knowing what the issue was, but I think this will fix it: [PR](https://github.com/ruby/ruby/pull/17438) luke-gru (Luke Gruber)
12:50 AM Revision 2768663a (git): [ruby/json] Remove useless executable bits
https://github.com/ruby/json/commit/1443265cd1 nobu (Nobuyoshi Nakada)

06/22/2026

10:57 PM Feature #22067 (Closed): New RUBY_TYPED_THREAD_SAFE_FREE bit to declare thread safe dfree functions
Applied in changeset commit:git|d44862fe2a5d68de648eccae7743899b6a5c870a.
----------
[Feature #22067] Add RUBY_TYPED_THREAD_SAFE_FREE flag
Lets a TypedData type declare its dfree as thread-safe, so the GC may
run it on any thread, in p...
jhawthorn (John Hawthorn)
10:57 PM Revision d44862fe (git): [Feature #22067] Add RUBY_TYPED_THREAD_SAFE_FREE flag
Lets a TypedData type declare its dfree as thread-safe, so the GC may
run it on any thread, in parallel, and concurrently with Ruby code.
Implies RUBY_TYPED_FREE_IMMEDIATELY.
jhawthorn (John Hawthorn)
10:57 PM Revision 77a3c15f (git): ZJIT: Remove unused rbimpl_typeddata_flags
We're not using these anymore now that non-typed T_DATA are gone. jhawthorn (John Hawthorn)
08:54 PM Revision e9e7f9b6 (git): ZJIT: Add quick checks to bail out of inlining early (#17432)
While these checks were already being performed, they did so after scanning the caller's blocks. We want to avoid that work when we know inlining cannot be performed. Kevin Menard
08:52 PM Revision 6785670f (git): [ruby/prism] Handle EOF in hash pattern key
https://github.com/ruby/prism/commit/43ffaad503 kddnewton (Kevin Newton)
08:16 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
Doh, fixed. luke-gru (Luke Gruber)
07:52 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
> I managed to get a reproduction.
Your repo is private :)
byroot (Jean Boussier)
07:24 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
I managed to get a [reproduction](https://github.com/luke-gruber/ruby_bug_22104_repro). It crashes fairly often, but you should still use a script that calls it over and over until non-0 exit status. When it does crash, the stack trace i... luke-gru (Luke Gruber)
07:54 PM Revision 5b162d7b (git): ZJIT: Remove redundant EP reloads in gen_getblockparam (#17430)
gen_getblockparam loads the EP once at the top,
then reloads it twice more before writing the Proc and before reading it back.
Both reloads are unnecessary:
- The EP address is invariant here. The function only writes into env slots rea...
Daichi Kamiyama
07:53 PM Revision 10b27fd0 (git): [ruby/prism] Dynamic constant writes on operator writes
https://github.com/ruby/prism/commit/6b4f0ade80 kddnewton (Kevin Newton)
07:51 PM Feature #22097: Add Proc#with_refinements
Thank you for your replies, they address most of my concerns and show this was well though out.
Yes, I think a performance warning is fine and important to add, nothing would be a silent performance trap.
shugo (Shugo Maeda) wrote in #...
Eregon (Benoit Daloze)
07:50 PM Revision 80c53fda (git): [ruby/prism] Match command_call/arg
A couple more deviations from the parse.y grammar with the
command_call and arg productions.
* pm_block_call_p — allow parens on chain links (meth 1 do end.fun(x))
* pm_command_call_value_p — recognize const-path brace commands (Foo::Ba...
kddnewton (Kevin Newton)
05:42 PM Revision 55ec9b91 (git): [ruby/openssl] Remove version constraint for jruby-openssl
"~> 0.14" is equivalent to ">= 0.14, < 1". Since the openssl gem is an
empty stub on JRuby, there is no good reason to specify version bounds
on jruby-openssl.
[ky: commit message]
https://github.com/ruby/openssl/commit/3ffbe73aaa
Co-...
hsbt (Hiroshi SHIBATA)
05:23 PM Revision d54ab7bd (git): [ruby/openssl] x509crl: add OpenSSL::X509::CRL#by_serial for faster lookup of a single cert
https://github.com/ruby/openssl/commit/83f4a0db32 Adrien Rey-Jarthon
05:18 PM Revision c729c842 (git): [ruby/openssl] Add EVP_PKEY KEM operations
https://github.com/ruby/openssl/commit/f2ec03dda1 Bart de Water
04:58 PM Revision 37ab334c (git): Fix ar_find_entry_hint() to handle #eql? or another thread changing bound or converting to st_table
* While perusing code in hash.c I found it suspicious that ar_find_entry_hint()
didn't reread bound in the loop and yet called arbitrary code through #eql?.
* ar_find_entry_hint() before this commit would not check if bound or the stor...
Eregon (Benoit Daloze)
04:58 PM Revision 89b33636 (git): [Prism] RB_GC_GUARDs needed in pm_parse_string
(Backport for 4.0) Luke Gruber
04:57 PM Revision 5c33033b (git): ZJIT: Register builtin CMEs before prelude to avoid prepend crash
Split rb_zjit_init into rb_zjit_init_builtin_cmes (called before
ruby_init_prelude) and rb_zjit_init (called after). The prelude may
load bundler via BUNDLER_SETUP which can call Kernel.prepend, moving
core methods to an origin iclass. R...
rwstauner (Randy Stauner)
04:57 PM Revision c1f299ad (git): Simplify Kernel prepend test
rwstauner (Randy Stauner)
04:57 PM Revision 6d56bceb (git): Add regression test for module prepend crash
etienne (Étienne Barrié)
04:57 PM Revision c52a400e (git): YJIT: Register builtin CMEs before prelude to avoid prepend crash
Split rb_yjit_init into rb_yjit_init_builtin_cmes (called before
ruby_init_prelude) and rb_yjit_init (called after). The prelude may
load bundler via BUNDLER_SETUP which can call Kernel.prepend, moving
core methods to an origin iclass. R...
rwstauner (Randy Stauner)
04:57 PM Revision b23f46c1 (git): [Box] make the tmp array safe
* Using rb_ary_hidden_new() to hide this array
from ObjectSpace.each_object
* Call RB_GC_GUARD to not collect this value in GC
Satoshi Tagomori
04:57 PM Revision a7003017 (git): [Box] Invalidate callable me on per-box origin IClasses
Satoshi Tagomori
04:57 PM Revision 6765a5f6 (git): [Box] Invalidate the method cache of the owner too
The owner could be different from the housing class when the housing
module is prepended.
Satoshi Tagomori
04:57 PM Revision 4d75ffad (git): [Box] dump the effective box on the control frame info
Satoshi Tagomori
04:57 PM Revision 2be8de43 (git): Make `rb_load_entrypoint` accept two arguments directly
`rb_load_entrypoint` is used only by `rb_box_load`; it checks that the
argument has two-elements (implicitly assuming it is an array),
extracts its contents, and then simply discards the argument.
nobu (Nobuyoshi Nakada)
04:57 PM Revision dd3f462d (git): Fix perf. of RCLASS_EXT_WRITABLE
FL_TEST -> FL_TEST_RAW
FL_SET -> FL_SET_RAW
I was seeing bad performance on the ruby-bench getivar-module benchmark
when using yjit. This was with other changes in a branch, but changes
totally unrelated to accessing ivars on a class o...
Luke Gruber
04:57 PM Revision 0ccf6c0c (git): test_box.rb: extend timeout for Windows CI (#16963)
test/ruby/test_box.rb: extend timeout for slow Windows CI
The default 10-second assert_separately timeout is too tight for
test_calling_root_box_methods_does_not_change_user_boxes_newly_created
on Windows CI, where the subprocess comple...
k0kubun (Takashi Kokubun)
04:57 PM Revision 3b119e4f (git): Don't use obj_id in Box classext_cow_classes
Using obj_id in classext_cow_classes is slow and also is a problem when
freeing classes because the lookup requires the EC, which is not available
if it is running on a GC thread. This will cause it to crash on MMTk.
We don't need to us...
peterzhu2118 (Peter Zhu)
04:57 PM Revision 99aac00f (git): [Bug #21881] Separate the master and root box
This change separates the master box from the root box, as the single
master copy of boxes.
Before this change, the root box is the source of copies, and also
it runs builtin classes' code. Builtin code makes changes by
requiring files, ...
Satoshi Tagomori
04:57 PM Revision 271d3f2e (git): Fix bug: the Slowpath doesn't work correctly because of double increment
builtin_lookup() find the pre-loaded and compiled (to ISeq) builtin libraries.
The libraries (.rb files) are loaded by miniruby, and those ISeq are written
in build/builtin_library.rbbin in the order that miniruby loads.
The fastpath of...
Satoshi Tagomori
04:57 PM Revision 3adbf3b0 (git): Ruby::Box fix stale cached values for exception-related global variables ($! and $@)
Ruby::Box fix stale cached values for exception-related global variables ($! and $@)
The exception-related virtual variables $! (current exception) and
$@ (its backtrace) are stored on the execution context (ec->errinfo
and the rescue/e...
dak2 (Daichi Kamiyama)
04:57 PM Revision a2cdbf2b (git): Box: pend the CI failure on Windows
The failure is caused by the problems of call caches, subclasses management.
The fix requires the tons of changes on master, so we will skip those changes
in 4.0 to make users try Box with minimum changes.
Satoshi Tagomori
04:57 PM Revision 655f89db (git): [Box] Unroll the changes using features for 4.1
Satoshi Tagomori
04:55 PM Revision efafbe44 (git): ZJIT: Account for inlining depth in stack maps (#17373)
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> k0kubun (Takashi Kokubun)
02:38 PM Revision b5bbbe69 (git): [ruby/prism] Fix duplicative rest pattern in pattern matching
https://github.com/ruby/prism/commit/358d778439 kddnewton (Kevin Newton)
02:38 PM Revision 8f3fce4e (git): [ruby/prism] Handle trailing comma after ...
https://github.com/ruby/prism/commit/8eb393bf37 kddnewton (Kevin Newton)
02:38 PM Revision 1c05bb8c (git): [ruby/prism] Better handle trailing comma on pattern matching
https://github.com/ruby/prism/commit/654b4edc21 kddnewton (Kevin Newton)
02:38 PM Revision 1db15766 (git): [ruby/prism] Fix up non-associativity in same binding power
https://github.com/ruby/prism/commit/55548c2fd5 kddnewton (Kevin Newton)
02:38 PM Revision 20bdc5d2 (git): [ruby/prism] Disallow trailing comma on parenthesized yield
https://github.com/ruby/prism/commit/b3819da252 kddnewton (Kevin Newton)
02:38 PM Revision f71dd80f (git): [ruby/prism] Disallow trailing comma on jumps at EOF
https://github.com/ruby/prism/commit/d18d9d829b kddnewton (Kevin Newton)
02:20 PM Bug #22124 (Closed): void value missed in parse.y
```
$ ruby --parser=parse.y -cwe 'x = return a b do end'
Syntax OK
$ ruby --parser=prism -cwe 'x = return a b do end'
ruby: -e:1: syntax error found (SyntaxError)
> 1 | x = return a b do end
| ^~~~~~~~~~~~~~~~~ unexpected v...
kddnewton (Kevin Newton)
09:30 AM Revision d190c264 (git): Extend omnibus compiler step timeout to 8 minutes
A slow ghcr image pull (~2.5 min) can leave too little of the 5 minute
budget for configure and build to finish, so the step is killed before
the build completes. Bump each per-compiler step to 8 minutes to absorb
the pull variance.
Co-...
hsbt (Hiroshi SHIBATA)
08:46 AM Revision 08a731fe (git): Bump the github-actions group across 2 directories with 4 updates
Bumps the github-actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [zizmorcore/zizmor-action](https://github.com/zizmorcore/zi... dependabot[bot]
08:45 AM Revision 2a574fd9 (git): [DOC] Update bundled gems list at 2f65ce7ccda7d75d4075ce319cbd1d
git[bot]
08:44 AM Revision fa69b96b (git): Skip fetching bundled gems whose ref is already present
With a warm gems/src cache the wanted tag or revision is already in the local clone, but the fetch ran unconditionally and added a github.com round-trip per gem that a transient outage could abort. Resolve the ref locally first and fetch... hsbt (Hiroshi SHIBATA)
08:44 AM Revision 7c8668d9 (git): Save the complete bundled gem sources cache only from test-bundled-gems
`make up` clones only the revision-pinned gems (debug, rdoc) into gems/src, so jobs that merely run `make up` saved a partial tree and, because the cache key is immutable, won the shared key and left test-bundled-gems to re-clone the res... hsbt (Hiroshi SHIBATA)
07:51 AM Revision 2f65ce7c (git): [ruby/json] Preserve UTF-8 encoding when reallocating a frozen ResumableParser buffer
`JSON::ResumableParser#<<` raises `Encoding::CompatibilityError` when the
first chunk is a frozen multibyte UTF-8 string and more data is fed after a
partial parse.
## Reproduction
```ruby
require "json"
parser = JSON::ResumableParser...
pocke (Masataka Kuwabara)
07:33 AM Revision 0ef0856f (git): [ruby/mmtk] Implement allocation fast path for Immix
This commit implements a fast path that inlines mmtk_post_alloc for Immix.
The benchmark results show a decent speed up in allocation performance.
GC.disable
i = 0
while i < 10_000_000
Object.new
i += 1
end
...
peterzhu2118 (Peter Zhu)
06:27 AM Revision 996647e8 (git): Retry connection errors when downloading gems
SSL_connect failing with Errno::ECONNRESET ("Connection reset by peer")
was not caught by with_retry, so a transient reset from rubygems.org
aborted the build on the first failure instead of retrying. Catch
SystemCallError so the Errno::...
hsbt (Hiroshi SHIBATA)
06:27 AM Revision 766f4105 (git): Raise SYNTAX_SUGGEST_TIMEOUT on emulated ppc64le/s390x runners
syntax_suggest's internal search timeout defaults to 1 second, which is
too short on the emulated ppc64le/s390x runners. The integration spec
issues/95 prints "Search timed out" instead of the expected diagnostic
and flakes. RUBY_TEST_TI...
hsbt (Hiroshi SHIBATA)
05:46 AM Revision 5c7b23dc (git): Cache bundled gem sources to survive transient clone failures
CI jobs frequently abort when cloning bundled gems from github.com fails
with "Could not resolve host", a transient DNS error unrelated to the
change under test. Cache gems/src keyed on gems/bundled_gems so the common
case touches no net...
hsbt (Hiroshi SHIBATA)
04:44 AM Revision 3b6c8999 (git): [ruby/net-http] Fix broken ENV link in proxy_from_env= doc
RDoc parsed ENV['http_proxy'] inside the link label as a cross-reference,
emitting a stray <a href="'http_proxy'">ENV</a> and breaking the
surrounding {label}[url] markup. Drop the subscript from the label.
https://github.com/ruby/net-h...
hsbt (Hiroshi SHIBATA)
04:44 AM Revision 02741998 (git): [ruby/net-http] Fix broken OpenSSL::SSL::SSLContext doc links
The {label}[url] markup pointed at OpenSSL::SSL::SSL::Context#..., which
RDoc emitted verbatim as a relative href and never resolved. Point them
at the full SSLContext documentation URLs instead.
https://github.com/ruby/net-http/issues/...
hsbt (Hiroshi SHIBATA)
04:01 AM Revision 4b08ca5a (git): Work around flaky crates.io downloads in ZJIT Ubuntu CI
The ZJIT build occasionally fails while cargo fetches a crate from
crates.io with `curl [16] Error in the HTTP2 framing layer`, a transient
transport error unrelated to the change under test. Disable HTTP/2
multiplexing and raise the ret...
hsbt (Hiroshi SHIBATA)
03:24 AM Bug #18995: IO#set_encoding sometimes set an IO's internal encoding to the default external encoding
Contrast the reported behavior with an apparently equivalent call using a single, colon separated argument:
```ruby
def show(io)
printf(
"external encoding: %-25p internal encoding: %-25p\n",
io.external_encoding,
io...
javanthropus (Jeremy Bopp)
02:57 AM Bug #18995: IO#set_encoding sometimes set an IO's internal encoding to the default external encoding
This bug continues to exist in version 4.0.5. javanthropus (Jeremy Bopp)
02:03 AM Revision 4750bf3c (git): Guard mktmpdir spec for remove_entry force argument
The tmpdir cleanup now calls FileUtils.remove_entry with force enabled
on Ruby 4.1 and later. Branch the mock expectation by version so older
Ruby still asserts the single-argument call.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropi...
hsbt (Hiroshi SHIBATA)
01:18 AM Revision 38a22a07 (git): Update default gems list at 05b94177c435321f8168d8a930d5c2 [ci skip]
git[bot]
01:17 AM Revision 05b94177 (git): [ruby/pp] v0.6.4
https://github.com/ruby/pp/commit/29552e894c hsbt (Hiroshi SHIBATA)

06/21/2026

11:51 PM Misc #22107: DevMeeting-2026-07-09
* [Feature #18915] New error class: NotImplementedYetError or scope change for NotImplementedError (koic)
* A new exception class `AbstractMethodError` inheriting from `ScriptError` has been designed.
* Existing code may define an ...
koic (Koichi ITO)
09:43 PM Revision 2b751ac7 (git): [ruby/tmpdir] Make `mktmpdir` cleanup tolerate missing paths.
https://github.com/ruby/tmpdir/commit/57c6cad284 Samuel Williams
12:05 PM Revision 20e8c63f (git): Update ext/openssl/depend
Commit be5877d1539e2802743904662f532b2b8237ce1e added new source files. rhenium (Kazuki Yamaguchi)
12:04 PM Revision fe7f1fd7 (git): [ruby/json] Update extconf.rb guard to use RUBY_ENGINE_VERSION
https://github.com/ruby/json/commit/7c8af4b9ef Eregon (Benoit Daloze)
11:59 AM Revision be5877d1 (git): [ruby/openssl] Add Hybrid Public Key Encryption (HPKE) API Support
https://github.com/ruby/openssl/commit/6b80681cde Ryo Kajiwara
09:02 AM Revision 1d493d90 (git): [DOC] Restore some GC docs
Since modular GC was done, the GC module is missing a bunch of methods. Earlopain (Earlopain _)
08:56 AM Revision 10676931 (git): file.c: share common logic between `rb_find_file` and `rb_find_file_ext`
byroot (Jean Boussier)
08:56 AM Revision 6411a491 (git): file.c: skip rb_file_expand_path_internal when not needed
If the feature name contains neither `./` nor `../`, we don't need
to call `rb_file_expand_path_internal`, just joining the load path
with the feature name is enough.
byroot (Jean Boussier)
08:25 AM Revision d57e5f41 (git): [ruby/json] Cleanup the `rb_catch_obj` workaround
Followup: https://github.com/ruby/json/pull/1031
Now that the bug has been fixed upstream, we can only apply
it on unpatched version.
Also refactor the workaround to expose the exact same API
as `rb_catch_obj`, making it easier to igno...
byroot (Jean Boussier)
03:05 AM Revision a2b9d6ff (git): [ruby/openssl] Constify pkey pointers
https://github.com/ruby/openssl/commit/9d74f60dea nobu (Nobuyoshi Nakada)

06/20/2026

01:24 PM Revision 34d51d56 (git): [ruby/json] Simplify parser_config_init
https://github.com/ruby/json/commit/98925145d2 byroot (Jean Boussier)
08:20 AM Revision 3bec79ac (git): io.c: read files in a single pass
`read_all` receives the file size when known, and does all the
work to allocate a string of the right size and issue a single
`read` call.
However since the condition to check for EOF is `read_bytes < size`,
on the happy path we end up:...
byroot (Jean Boussier)
07:14 AM Revision 217dd3d1 (git): Improve performance of `String#capitalize` with a single-byte ASCII fast path
#upcase/#downcase already case-map ASCII strings with a plain byte
loop, but #capitalize/#capitalize! always went through full Unicode
case-mapping, making them ~10x slower on the same input. Add
capitalize_single (mirroring upcase_singl...
sampokuokkanen (Sampo Kuokkanen)
05:09 AM Bug #22123 (Open): Ruby::Box + `BUNDLER_SETUP` can evaluate gemspecs before main-box RubyGems initialization
# Ruby::Box + `BUNDLER_SETUP` can evaluate gemspecs before main-box RubyGems initialization
## Subject
Ruby::Box + BUNDLER_SETUP can evaluate gemspecs before main-box RubyGems initialization
## Description
When Ruby is starte...
se4weed.dev@gmail.com (Yuto NORINAGA)
01:37 AM Feature #22118: Introduce Basic Bit Operations into String
Memorandom.
I had a face-to-face conversation with Matz and Shugo yesterday.
> Matz: each_bit should yield `0/1`, not `false/true`
> ...
(Matz didn't reject it at least)
If it is realized, Pretty-Print could make something like t...
hasumikin (hitoshi hasumi)

06/19/2026

07:34 PM Revision 1165d7c6 (git): [Prism] RB_GC_GUARDs needed in pm_parse_string
Luke Gruber
07:25 PM Bug #22122 (Open): A Ractor/Ractor::Port memory leak (or so it would seem)
Hi!
If I do something like this:
```ruby
#!/usr/bin/env ruby
1000.times do
return_port = Ractor::Port.new
ractor = Ractor.new(return_port) do |return_port|
return_port << Ractor::Port.new while receive
end
10...
miles-georgi (Miles Georgi)
07:20 PM Revision d17f8ecd (git): file.c: right size the `rb_find_file_ext` & `rb_find_file` buffer
It generally end up frozen in `$LOADED_FEATURES` so it's preferable
to predict its size and only deal with an embedded string most of
the time.
It saves on having to allocate a `MAXPATHLEN + 2` (1026) bytes long
buffer and then realloc ...
byroot (Jean Boussier)
07:00 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
A large commit to prism landed on Mar 19 (78ab3a7ced8). It looks like some `RB_GC_GUARD`s were improperly placed in `pm_parse_string`, which *could* result in some weird behavior like we're seeing. I've got a [PR](https://github.com/ruby... luke-gru (Luke Gruber)
04:38 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
A few people reported this on bootsnap a few months ago: https://github.com/rails/bootsnap/issues/529
I've been witnessing what I think is the same bug semi-frequently, I once got a core dump but couldn't make much sense of it: https:...
byroot (Jean Boussier)
12:10 PM Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
Thank you for your patience.
I disabled the GC and wasn't able to get it to segfault. However, I think that's inconclusive because it's an intermittent error and with the GC on I can't reliably reproduce it either.
Here are the det...
Morred (Laura Eck)
06:04 PM Revision 1c1dafa7 (git): file_expand_path_1: preallocate the buffer
byroot (Jean Boussier)
05:49 PM Feature #22121 (Open): Introduce Parallel Sweep feature
## Abstract
Ruby's GC sweep implementation is currently incremental and lazy. This is to reduce pause times when sweeping. However, the sweep implementation doesn't take advantage of parallelism (multi-core). Sweeping in a GC is not a...
luke-gru (Luke Gruber)
03:49 PM Revision cd7e59d4 (git): Improve inlinability of `rb_define_class` and `rb_define_module`
By moving the `rb_intern` to the caller, we allow compilers to
precompute the `strlen` part of `rb_intern` which isn't a huge win,
but happens quite a lot as part of Ruby's boot process and when
requiring native gems.
byroot (Jean Boussier)
03:49 PM Revision 143f28be (git): class.c: refactor `rb_define_module`
Merge it with `rb_define_module_under` to reduce duplication. byroot (Jean Boussier)
03:49 PM Revision b5c53030 (git): class.c: refactor `rb_define_class`
Merge it with `rb_define_class_under` to reduce duplication. byroot (Jean Boussier)
03:48 PM Revision bc1e5772 (git): rb_define_method: allow compilers to precompute strlen
By inlining the `rb_intern()` call, we allow it to be replaced
by `rb_intern_const()` which with most compiler will allow to
save the `strlen` call when invoked with a string literal.
This is a small optimization, but during program boo...
byroot (Jean Boussier)
02:21 PM Revision 827bd3e0 (git): [ruby/json] ResumableParser: eagerly drop the buffer when reaching EOS
No point to wait for the next call to `<<` to remove the reference.
https://github.com/ruby/json/commit/b30a8f852d
byroot (Jean Boussier)
12:15 PM Revision a7022d33 (git): [ruby/json] ResumableParser: accept only keyword arguments
Fix: https://github.com/ruby/json/pull/1016#issuecomment-4744487710
`json` takes option hashes across the board, mostly because its API
predates the introduction of keyword arguments.
I'd like to change that to only take keyword argume...
byroot (Jean Boussier)
11:37 AM Revision b6bcd73e (git): [ruby/json] Workaround TruffleRuby buggy `rb_catch_obj` implementation
Somehow on TruffleRuby `rb_catch_obj` straight out doesn't call
the passed function, acting as a noop.
https://github.com/ruby/json/commit/9d8efcb08b
byroot (Jean Boussier)
11:37 AM Revision 70abf87e (git): [ruby/json] ResumableParser: use throw rather than raise for handled EOS
Since the exception will be swallowed, building a message and
backtrace is just a waste of time.
https://github.com/ruby/json/commit/4bd1e9bce6
byroot (Jean Boussier)
11:31 AM Revision ca7a90c4 (git): [ruby/json] Don't omit `test_parse_error_snippet` on TruffleRuby
https://github.com/ruby/json/commit/181396ca3d byroot (Jean Boussier)
09:43 AM Revision 4be75d8e (git): Avoid `-C` with miniruby
If `load-relative` is specified, the system uses `dladdr` to locate
the executable file path when initializing the load path; however, on
some platforms (at least OpenBSD), `dladdr` fails under certain
conditions (such as when debug info...
nobu (Nobuyoshi Nakada)
09:38 AM Bug #22120: Segfault caused by ar_find_entry_hint() not checking for conversion to st_table
Backports:
* 4.0: https://github.com/ruby/ruby/pull/17405
* 3.4: https://github.com/ruby/ruby/pull/17406
* 3.3: https://github.com/ruby/ruby/pull/17407
Eregon (Benoit Daloze)
09:22 AM Bug #22120 (Closed): Segfault caused by ar_find_entry_hint() not checking for conversion to st_table
Applied in changeset commit:git|c88430e1878fe8d219a239259728a90098e014d2.
----------
Fix ar_find_entry_hint() to handle #eql? or another thread changing bound or converting to st_table
* While perusing code in hash.c I found it suspici...
Eregon (Benoit Daloze)
09:22 AM Revision fe5ec34e (git): Refactor DO_PTR_EQUAL_CHECK to read entry fields once into locals
* The macros would expand `ptr` 3 times which could cause extra reads.
* We had reports of many segfaults in this area
(e.g. https://github.com/DataDog/dd-trace-rb/issues/5718).
Even though the code before looks correct semantically,...
Eregon (Benoit Daloze)
09:22 AM Revision c88430e1 (git): Fix ar_find_entry_hint() to handle #eql? or another thread changing bound or converting to st_table
* While perusing code in hash.c I found it suspicious that ar_find_entry_hint()
didn't reread bound in the loop and yet called arbitrary code through #eql?.
* ar_find_entry_hint() before this commit would not check if bound or the stor...
Eregon (Benoit Daloze)
08:45 AM Revision 46128b15 (git): [ruby/json] ResumableParser: Don't compute lines and columns on parse error
Fix: https://github.com/ruby/json/issues/1022
They can't always be accurate because we don't always keep the
full document in the buffer. As such it's better never to compute
them than to sometimes provide wrong coordinates.
In theory ...
byroot (Jean Boussier)
08:23 AM Revision 73cd91b8 (git): [ruby/json] Implement ResumableParser#parsed_bytes
This is intended to make it easier to securely parse untrusted
inputs.
https://github.com/ruby/json/commit/21c2bbea1c
byroot (Jean Boussier)
07:56 AM Revision 51d4ad5f (git): Fast path ASCII-8BIT case mapping
Fletcher Dares
07:56 AM Revision ebd2fcf9 (git): Test ASCII-8BIT case mapping byte parity
Fletcher Dares
07:32 AM Revision 57d5247f (git): [ruby/mmtk] Call rb_memerror when OOM
https://github.com/ruby/mmtk/commit/6258cfa315 peterzhu2118 (Peter Zhu)
07:30 AM Revision 4ad44e52 (git): [ruby/json] Update the json_minefield_parser_test.rb to remove JRUBY_PENDING as the new JRuby parser successfully parsed those files.
https://github.com/ruby/json/commit/e954a6fe4e samyron (Scott Myron)
04:54 AM Revision b49a2721 (git): [ruby/rubygems] Verify embedded credentials are stripped from copied git origin
The existing copy_to specs only proved we avoid the credential-bearing
configured URI. Add a case where the remote URI itself embeds a password
so the credential_filtered_uri stripping is exercised directly.
https://github.com/ruby/ruby...
hsbt (Hiroshi SHIBATA)
04:54 AM Revision fc24706a (git): [ruby/rubygems] Resolve Git LFS files in git sources from the real remote
A git source working copy is cloned from the local bare cache, whose
origin holds no LFS objects, so git-lfs looked there and checkout failed
with "smudge filter lfs failed". Reset origin to the real remote so
git-lfs derives the right e...
hsbt (Hiroshi SHIBATA)
04:54 AM Revision e602af1f (git): [ruby/rubygems] Suggest access issues, not only yanking, for missing locked gems
A private source returning 403/404 for an inaccessible gem is
indistinguishable from a real 404, so the previous message wrongly told
users the author had removed the gem. Mention the credentials and access
possibility and point at the s...
hsbt (Hiroshi SHIBATA)
02:55 AM Revision 5c007637 (git): [ruby/json] Read ASCII-incompatible strings in binary mode
https://github.com/ruby/json/commit/46aa46d3da nobu (Nobuyoshi Nakada)
 

Also available in: Atom