Project

General

Profile

Activity

From 07/18/2025 to 07/24/2025

07/24/2025

11:35 PM Revision 7f25b8f5 (git): Disable TSAN for rb_gc_mark_machine_context
Previously this was listed as a suppression, but we actually want this
permanently unsanitized. This should be faster and more reliable since
TASN won't have to match against symbolicated backtraces.
jhawthorn (John Hawthorn)
11:35 PM Revision 3ad20192 (git): Extract vm_locked_by_ractor_p
This introduces a new method to encapsulate checking whether the current
Ractor owns the vm->ractor.sync lock. This allows us to disable TSan on
it since that operation should be safe, and still get validation of
other uses.
jhawthorn (John Hawthorn)
10:47 PM Revision 7465e169 (git): ZJIT: Remove redundant test exclusions
Stan Lo
09:01 PM Revision 271e52d5 (git): ZJIT: Re-enable some A64 assembler tests
Tweak for Condition to build when `cfg!(target = "x86_64")`. alanwu (Alan Wu)
09:01 PM Revision 7e2b6291 (git): ZJIT: DRY up underscore rexport anti-pattern
Keeping the same name makes re-exporting more concise. alanwu (Alan Wu)
08:44 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
Eregon (Benoit Daloze) wrote in #note-19:
> tenderlovemaking (Aaron Patterson) wrote in #note-18:
> ...
I don't have any numbers, but my intuition is that most non-literal, global procs (procs that are reachable via the application), i...
tenderlovemaking (Aaron Patterson)
07:47 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
tenderlovemaking (Aaron Patterson) wrote in #note-18:
> This can't be a serious suggestion? It's basically saying that no existing Sinatra code could run inside a Ractor based webserver. If we had new syntax for `Ractor.shareable_proc`,...
Eregon (Benoit Daloze)
04:27 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
I understand your argument, but I don't agree this is an issue.
> ruby -e 'count = 0; b = nil.instance_exec { -> { count } }; b2 = Ractor.shareable_proc(&b); p b2.call; count += 1; p b2.call'
In this code we've explicitly converte...
tenderlovemaking (Aaron Patterson)
07:57 PM Revision ed22e15a (git): [DOC] Tweak for String#encode!
burdettelamar (Burdette Lamar)
05:23 PM Feature #21028 (Open): Method for finding why an object isn't Ractor shareable
mame (Yusuke Endoh)
04:49 PM Feature #21028: Method for finding why an object isn't Ractor shareable
I have been relying a lot on @mame 's snippet when programming with Ractors. It has been very useful to find why a library function / constant violates the rules of Ractors.
I have opened a pull request to add `ObjectSpace#find_paths_...
osyoyu (Daisuke Aritomo)
04:07 PM Revision b2838bef (git): Add NODE_DEFINED tests for cases with parentheses to test_ast.rb
ydah (Yudai Takada)
03:37 PM Revision 5ef20b3a (git): YJIT: Use raw memory write to update pointers in code
Because we have set all code memory to writable before the reference
updating phase, we can use raw memory writes directly.
wks (Kunshan Wang)
02:35 PM Feature #21518: Statistical helpers to `Enumerable`
Thanks, great catch! Amitleshed (Amit Leshed)
02:20 PM Feature #21518: Statistical helpers to `Enumerable`
In favor, just careful about the bug in #median
```ruby
x = [1, 3, 2]
x.median #=> 2
x #=> [1, 2, 3] modified by #median
```
You'll want to use `arr = entries` rather than `arr = to_a`
Dan0042 (Daniel DeLorme)
02:30 PM Revision fd492a45 (git): Add DEFINED NODE locations
Add keyword_defined locations to struct RNode_DEFINED S_H_ (Shun Hiraoka)
02:07 PM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
#peek already exists, and does something different.
Dan0042 (Daniel DeLorme)
02:37 AM Feature #21520 (Open): Feature Proposal: Enumerator::Lazy#tee
# Abstract
Add a #tee method to Enumerator::Lazy that allows observing each element in a lazy enumeration pipeline without modifying or consuming the stream.
# Background
Ruby provides Enumerator::Lazy for efficient lazy stream ...
nuzair46 (Nuzair Rasheed)
01:49 PM Revision f186f2cb (git): Remove unused imemo_parser_strterm
peterzhu2118 (Peter Zhu)
10:04 AM Revision f5c772fc (git): bump teeny
nagachika (Tomoyuki Chikanaga)
08:27 AM Revision 8f611e0c (git): bump teeny
hsbt (Hiroshi SHIBATA)
08:15 AM Revision 361d1431 (git): merge revision(s) 5e5cec1b86837653b2106af377561045f4bbecef:
Fix bigand_int edgecase returning false (#13987) nagachika (Tomoyuki Chikanaga)
07:44 AM Revision 83335453 (git): Revert bump versions of default gems for extconf.rb changes.
This reverts commit 91263c7e523dd0345c35ac4b616676132aad09d1. nagachika (Tomoyuki Chikanaga)
06:45 AM Revision 4c60e431 (git): Win32: Suppress an error message when baseruby is not found
nobu (Nobuyoshi Nakada)
05:41 AM Bug #21500: Backport gcc 15 support
Merged them at https://github.com/ruby/ruby/pull/14002 for Ruby 3.2 hsbt (Hiroshi SHIBATA)
05:39 AM Revision 2417ed92 (git): Update dependencies
hsbt (Hiroshi SHIBATA)
05:39 AM Revision b2cd6d71 (git): Cast up `int` instruction code to `VALUE`
Fix Visual C warnings:
```
iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
```
nobu (Nobuyoshi Nakada)
05:39 AM Revision 25092972 (git): Separate `__has_attribute` from `defined(__has_attribute)`
Fix Visual C warnings:
```
regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline
```
nobu (Nobuyoshi Nakada)
05:39 AM Revision e26e8423 (git): Suppress gcc 15 unterminated-string-initialization warnings
nobu (Nobuyoshi Nakada)
04:20 AM Bug #21310: YJIT optimization causes incorrect is_a? method evaluation
Note: http://github.com/ruby/ruby/commit/7afa08ce8d245c7d756ddaeb78daddb61fd0e271 is backport commit for Ruby 3.4 hsbt (Hiroshi SHIBATA)
04:19 AM Bug #21310 (Closed): YJIT optimization causes incorrect is_a? method evaluation
hsbt (Hiroshi SHIBATA)
04:18 AM Bug #21327: Windows builds seem broken after clock_gettime changes?
Merged at https://github.com/ruby/ruby/commit/d946d65cea2468086932bb95d77ac2f93b9f67b9 for Ruby 3.2 hsbt (Hiroshi SHIBATA)
04:16 AM Bug #21255: Can't build Ruby with Windows SDK 10.0.26100
Merged at https://github.com/ruby/ruby/commit/051e5f54ccaef1721796252af259530b82c44211 for Ruby 3.2 hsbt (Hiroshi SHIBATA)
04:08 AM Bug #21497: building issue when using gcc15, because C23 is default
Merged at https://github.com/ruby/ruby/pull/14001 for Ruby 3.2 hsbt (Hiroshi SHIBATA)
03:56 AM Revision b246fb60 (git): Use `<>` for a system header
nobu (Nobuyoshi Nakada)
03:47 AM Revision 6dc37f90 (git): Update the latest versions of actions
hsbt (Hiroshi SHIBATA)
03:39 AM Revision 076e51e5 (git): math.c: cleanup unused `#include <errno.h>`
`errno` is no longer used after 5073155a178a9f478950afef4f148e44fd14b5d6 katei (Yuta Saito)
03:23 AM Bug #21496: Fix for gcc-15 `-flto` option
I merged them at https://github.com/ruby/ruby/pull/14001
I only merged `strscan`, `json` and `io-wait` because other libraries didn't declare affected `have_func`.
hsbt (Hiroshi SHIBATA)
03:21 AM Revision 7e6bbc40 (git): [ruby/io-wait] Run `have_func` with the header providing the declarations
https://github.com/ruby/io-wait/commit/48309d7877 nobu (Nobuyoshi Nakada)
03:21 AM Revision 5c74f2a7 (git): [ruby/json] Run `have_func` with the header providing the declarations
https://github.com/ruby/json/commit/95fb084027 nobu (Nobuyoshi Nakada)
03:21 AM Revision f82b9d8d (git): [ruby/strscan] Run `have_func` with the header providing the declarations
https://github.com/ruby/strscan/commit/18c0a59b65 nobu (Nobuyoshi Nakada)
03:21 AM Revision eba9fa20 (git): [ruby/strscan] Update extconf.rb
(https://github.com/ruby/strscan/pull/158)
- `have_func` includes "ruby.h" by default.
- include "ruby/re.h" where `rb_reg_onig_match` is declared.
https://github.com/ruby/strscan/commit/1ac96f47e9
nobu (Nobuyoshi Nakada)
02:45 AM Feature #21360 (Closed): Inconsistent Support for `Exception#cause` in `Fiber#raise` and `Thread#raise`
Applied in changeset commit:git|64f508ade8c8535b7d3ecdd217886aa52fddd43c.
----------
Support `cause:` in `Thread#raise` and `Fiber#raise`. (#13967)
* Add support for `cause:` argument to `Fiber#raise` and `Thread#raise`.
The implement...
Anonymous
02:45 AM Revision 64f508ad (git): Support `cause:` in `Thread#raise` and `Fiber#raise`. (#13967)
* Add support for `cause:` argument to `Fiber#raise` and `Thread#raise`.
The implementation behaviour is consistent with `Kernel#raise` and
`Exception#initialize` methods, allowing the `cause:` argument to be
passed to `Fiber#raise` and...
Samuel Williams

07/23/2025

11:52 PM Revision 2e0a7829 (git): ZJIT: Run zjit-check on CI for faster test_zjit.rb feedback
Stan Lo
11:52 PM Revision f27e8b11 (git): ZJIT: Add multiple exclude targets
Stan Lo
11:52 PM Revision 3504eba9 (git): ZJIT: Start testing againt /test
Stan Lo
09:46 PM Bug #21337 (Closed): Using `not` on the RHS of a logical operator becomes valid syntax with Prism
I think this is fixed in 4cf85fe2140d0522f924ab57c850b2f03b967390 tenderlovemaking (Aaron Patterson)
09:33 PM Revision 92564426 (git): Cleanup M_TBL workarounds and comments
Previously we had an assertion that the method table was only set on
young objects, and a comment stating that was how it needed to be used.
I think that confused the complexity of the write barriers that may be
needed here.
* Setting a...
jhawthorn (John Hawthorn)
09:33 PM Revision d67eb07f (git): Fix missing write barrier through M_TBL
When creating a new origin in ensure_origin, we need to fire a write
barrier after RCLASS_WRITE_ORIGIN. rb_class_set_super allocates, so GC
could happen there, either incrementally marking or promoting the newly
allocated class, and only...
jhawthorn (John Hawthorn)
09:09 PM Revision 54a578e7 (git): [DOC] Tweaks for String#encoding
burdettelamar (Burdette Lamar)
09:07 PM Revision 56572baa (git): [DOC] Tweaks for String#each_grapheme_cluster (#13981)
burdettelamar (Burdette Lamar)
09:06 PM Revision e3d36fff (git): [DOC] Tweaks for String#empty?
burdettelamar (Burdette Lamar)
08:23 PM Bug #21519 (Closed): `configure` script in Ruby tarballs should be generated with autoconf 2.72+ for C23 compilers
stanhu (Stan Hu)
08:22 PM Bug #21519: `configure` script in Ruby tarballs should be generated with autoconf 2.72+ for C23 compilers
Oh, this is a duplicate of https://bugs.ruby-lang.org/issues/21340. stanhu (Stan Hu)
08:21 PM Bug #21519 (Closed): `configure` script in Ruby tarballs should be generated with autoconf 2.72+ for C23 compilers
The `autoconf` used to generate `configure` in the Ruby source downloads needs to be updated from 2.71 to 2.72 to fix compatibility with C23 compilers, such as GCC 15.
This is related to https://bugs.ruby-lang.org/issues/21024, but th...
stanhu (Stan Hu)
07:49 PM Revision 78820e86 (git): Update doc for ObjectSpace.memsize_of
Stan Lo
07:48 PM Revision 7816a04d (git): [DOC] Tweaks for String#each_line
burdettelamar (Burdette Lamar)
07:36 PM Revision 17eee25c (git): [DOC] Tweaks for String#each_codepoint
burdettelamar (Burdette Lamar)
07:35 PM Revision cd9b7463 (git): [DOC] Tweaks for String#each_char
burdettelamar (Burdette Lamar)
06:35 PM Misc #21458: Test 'make install'?
I ran into this same bundler issue when trying to upgrade a Rails app to ruby 3.5.0-preview1. If it could have been caught by testing the installation, I think it should be done. luke-gru (Luke Gruber)
05:29 PM Revision 41149a96 (git): ZJIT: Fix clobbering register for `self` in gen_entry_params()
Previously, for 8+ params we wound up clobbering the self param when
putting the last param in memory in the JIT entry point:
# ZJIT entry point: a@../test.rb:5
<snip>
ldur x0, [x19, #0x18]
# set method params: 8
ldu...
alanwu (Alan Wu)
05:12 PM Revision 5e5cec1b (git): Fix bigand_int edgecase returning false (#13987)
tompng (tomoya ishida)
03:30 PM Feature #21518 (Open): Statistical helpers to `Enumerable`
**Summary**
I'd like to add two statistical helpers to `Enumerable`:
- `Enumerable#average` (arithmetic mean)
- `Enumerable#median`
Both are small, well-defined operations that many Rubyists re-implement in apps and gems. Provi...
Amitleshed (Amit Leshed)
02:07 PM Revision 93be5786 (git): Remove global symbol locks for rb_intern
peterzhu2118 (Peter Zhu)
02:07 PM Revision 33a849e3 (git): Remove global symbol lock for rb_gc_free_dsymbol
peterzhu2118 (Peter Zhu)
11:23 AM Revision 85221800 (git): Add comments to autogen script
altxtech (André Soares)
07:46 AM Revision 7e64a682 (git): Prevent a warning: old-style function definition
ipsocket.c:57:1: warning: old-style function definition [-Wold-style-definition]
57 | current_clocktime()
| ^~~~~~~~~~~~~~~~~
mame (Yusuke Endoh)
02:18 AM Revision fbaad485 (git): Launchable: Remove `launchable subset` command (#13969)
I've enabled the [Predictive Test Selection](https://www.launchableinc.com/docs/features/predictive-test-selection/) feature, which let machine-learning model selects the appropriate tests to reduce CI execution time in https://github.co... ono-max (Naoto Ono)
01:10 AM Revision 61b5d3cf (git): [DOC] Fix 'hexadecimal' spelling on encodings docs
Fix typo altxtech (André Soares)

07/22/2025

10:04 PM Revision 33363030 (git): ZJIT: Use rb_vm_env_write() for `hir::Insn::SetLocal`
We weren't firing write barriers before when writing to imemo/env
objects. Wbcheck caught this with test/ruby/test_refinement.rb:
ruby -v: ruby 3.5.0dev (2025-07-22T17:05:58Z wbcheck 2569a80954) +ZJIT dev +PRISM +GC[wbcheck] [x86_64...
alanwu (Alan Wu)
09:55 PM Revision 465b1696 (git): [DOC] Tweaks for String#each_byte
burdettelamar (Burdette Lamar)
09:54 PM Revision 7ca3b38a (git): [DOC] Tweak for String#dump
burdettelamar (Burdette Lamar)
08:45 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
@tenderlovemaking The issue with that is it still breaks the block semantics as in the OP description, specifically reading of captured variables inside the block is snapshotted for Ractor-shareable-blocks:
```
$ ruby -e 'count = 0; b = ...
Eregon (Benoit Daloze)
03:18 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
I think these make sense, but I would also like to propose that `Ractor.shareable_proc` take a block that isn't a literal and returns a new proc that is shareable.
For example:
```
not_shareable = ->{ ... }
shareable = Ractor.sha...
tenderlovemaking (Aaron Patterson)
04:52 PM Revision 45e65f55 (git): Fix typos in `documentation_guide.md`
Allison Cretel
04:52 PM Revision 02aee1b7 (git): Change `TESTOPS` to `TESTOPTS`
Allison Cretel
04:51 PM Revision 7bb48f87 (git): [ruby/openssl] ssl: add SSLSocket#sigalg, #peer_sigalg, #group
These methods are useful to test post-quantum cryptography (PQC) cases.
https://github.com/ruby/openssl/commit/434ef74452
Jun Aruga
04:37 PM Revision 41ec0f5b (git): Update misc/tsan_suppressions.txt
* Add gc_enable/disable to TSAN suppressions
* Remove deleted methods from tsan suppressions
* Remove TSAN errors we've fixed
* Add another two inline cache suppressions
* Improve comments
jhawthorn (John Hawthorn)
04:37 PM Revision 973e6770 (git): Fix TSAN data race in gc_start
objspace->flags.immediate_sweep shares the same word as
objspace->flags.during_incremental_marking. So in gc_start we need to
assign it after gc_enter() so that we hold the VM lock and have issued a
barrier, as rb_gc_impl_writebarrier is...
jhawthorn (John Hawthorn)
03:11 PM Bug #21187 (Closed): Strings concatenated with `\` getting frozen with literal hashes (PRISM only)
Applied in changeset commit:git|a1403fb7cbd1fe0df97c932be9814c86081783dc.
----------
Interpolated strings must not be frozen
Strings concatenated with backslash may end up being frozen when they
shouldn't be. This commit fixes the iss...
tenderlovemaking (Aaron Patterson)
03:10 PM Revision a1403fb7 (git): Interpolated strings must not be frozen
Strings concatenated with backslash may end up being frozen when they
shouldn't be. This commit fixes the issue. It required a change
upstream in Prism, but also a change to the Prism compiler in CRuby.
https://github.com/ruby/prism...
tenderlovemaking (Aaron Patterson)
02:05 PM Revision 0f408602 (git): Fix missing increment of deleted_entries
When `rb_concurrent_set_foreach_with_replace` deletes entries from a
concurrent set, it should increment the `deleted_entries` field, too.
wks (Kunshan Wang)
11:25 AM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
Instead of adding new syntax to `return` part, how about a new keyword to reference if-predicate part?
It can be used for wider range of purposes like this:
~~~ruby
return that if @cache[key]
puts that if my_calculation
x = that + 4...
tompng (tomoya ishida)
10:58 AM Revision 8541dec8 (git): encoding.c: check for autoload before checking index
Otherwise we may be checking the index while the encoding
is being autoloaded by another ractor.
byroot (Jean Boussier)
09:41 AM Revision 4dec4fbd (git): [rubygems/rubygems] Define dummy module for mise plugin
https://github.com/rubygems/rubygems/commit/64bdff1e1e hsbt (Hiroshi SHIBATA)
07:07 AM Revision af718aaf (git): Update bundled gems list as of 2025-07-22
git[bot]
05:20 AM Feature #21360: Inconsistent Support for `Exception#cause` in `Fiber#raise` and `Thread#raise`
I'm changing this to a feature as it's net new code. ioquatix (Samuel Williams)
12:48 AM Feature #21360 (Assigned): Inconsistent Support for `Exception#cause` in `Fiber#raise` and `Thread#raise`
@matz accepted this change: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-07-10.md#bug-21360-inconsistent-support-for-exceptioncause-in-fiberraise-and-threadraise-ioquatix ioquatix (Samuel Williams)
03:37 AM Feature #21140: Add a method to get the address of certain JIT related functions
If we introduce this method, will yjit/bindgen also use it? nobu (Nobuyoshi Nakada)
02:19 AM Feature #21140: Add a method to get the address of certain JIT related functions
I accept the concept. In the developers' meeting, RubyVM::Internals.address_of() was proposed. And it looks good to me.
Matz.
matz (Yukihiro Matsumoto)
03:09 AM Revision e77eee96 (git): ZJIT: Load return value before frame teardown
Or else the following returns garbage since it loads after
moving SP. Prior bad disassembly:
def a(n1,n2,n3,n4,n5,n6,n7,n8) = n8
a(1,1,1,1,1,1,1,0)
# Block: bb0(v0, v1, v2, v3, v4, v5, v6, v7, v8)
stp x29, x30, [sp, #-0...
alanwu (Alan Wu)
01:01 AM Revision 9f961a4b (git): [rubygems/rubygems] Workaround RVM issue when using Bundler <= 2.5.22
Old versions of BUndler need a workaround to support nested `bundle
exec` invocations by overriding `Gem.activate_bin_path`. However,
RubyGems now uses this new `Gem.activate_and_load_bin_path` helper in
binstubs, which is of course not ...
deivid (David Rodríguez)
12:56 AM Revision ba6a2717 (git): Skip test_ln_sr(FileUtilsSingletonTest) ib rbs tests
https://github.com/ruby/fileutils/pull/139
https://github.com/ruby/actions/actions/runs/16425309325/job/46414287784
hsbt (Hiroshi SHIBATA)
12:07 AM Revision 7dbd9c26 (git): Revert "[ruby/prism] Clear flags on interpolated strings"
This reverts commit a495e6a44ce8cff17461b250e32ab63e409a642d.
This break extension builds:
```
/Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'String#replace': can't modify frozen String: "$(SDKROOT)$(prefix)/include" (F...
hsbt (Hiroshi SHIBATA)

07/21/2025

11:04 PM Revision a495e6a4 (git): [ruby/prism] Clear flags on interpolated strings
When inner strings aren't frozen, we need to clear the flags on
interpolated string nodes so that we don't emit wrong instructions.
The compiler is currently incorrectly emitting frozen strings because
the parser is erroneously declarin...
tenderlovemaking (Aaron Patterson)
09:45 PM Bug #21259: The Prism compiler wrongly creates a line number of zero
ruby_3_4 commit:8b505a286080fead52a603fcd2761c2d6b3e3aec merged revision(s) commit:148db9c80f11af1780f0f3685201f28de8f6b47a. k0kubun (Takashi Kokubun)
09:45 PM Revision 8b505a28 (git): merge revision(s) 148db9c80f11af1780f0f3685201f28de8f6b47a: [Backport #21259]
Fix flipflop line numbers
[ruby-core:121605]
k0kubun (Takashi Kokubun)
09:44 PM Bug #21514: Rust deprecation warning building ruby-3.4.5/yjit/src/codegen.rs
ruby_3_4 commit:d713896f19517ab688b13174e6346a87fd9e01ee. k0kubun (Takashi Kokubun)
09:07 PM Revision 21c78cb0 (git): [DOC] Docs for String#dump
peterzhu2118 (Peter Zhu)
05:51 PM Revision 3bbdcf08 (git): ZJIT: Remove no-op movs after register allocation
Previously `no_dead_mov_from_vreg` generated:
0x0: ldur x0, [x0]
0x4: mov x0, x0
0x8: ret
Because of phase ordering. Split couldn't recognize that the no-op mov
because at that point it sees a `VReg`.
alanwu (Alan Wu)
05:51 PM Revision 495e3f64 (git): ZJIT: Trim disassembly output from capstone-rs
It has a bad habit of leaving a trailing space, for example for ARM
`ret`.
alanwu (Alan Wu)
03:09 PM Bug #21504: [Ractor] Process.waitpid blocks ractor, new NT doesn't pick up other ractors
This is actually a more pervasive problem than I first realized, because only sometimes does `IO#read` register with the timer thread. With a plain `IO#read` without arguments, it does not wake the timer thread and can block the nt forev... luke-gru (Luke Gruber)
02:58 PM Revision 6b0e5de4 (git): Don't rehash on retry in concurrent set
Since the hash should never change, we only need to calculate it once. peterzhu2118 (Peter Zhu)
02:58 PM Revision 66349692 (git): Introduce free function to rb_concurrent_set_funcs
If we create a key but don't insert it (due to other Ractor winning the
race), then it would leak memory if we don't free it. This introduces a
new function to free that memory for this case.
peterzhu2118 (Peter Zhu)
02:58 PM Revision 061224f3 (git): Remove lock for dynamic symbol
Benchmark:
ARGV[0].to_i.times.map do
Ractor.new do
1_000_000.times do |i|
"hello#{i}".to_sym
end
end
end.map(&:value)
Results:
| Ractor count | Branch (s) | Master (s) |
|--------------|--...
peterzhu2118 (Peter Zhu)
02:58 PM Revision efc23224 (git): Don't call cmp on garbage objects
If the object is garbage, then calling cmp on it may crash. peterzhu2118 (Peter Zhu)
02:58 PM Revision a2e165e8 (git): Remove dsymbol_fstr_hash
We don't need to delay the freeing of the fstr for the symbol if we store
the hash of the fstr in the dynamic symbol and we use compare-by-identity
for removing the dynamic symbol from the sym_set.
peterzhu2118 (Peter Zhu)
02:58 PM Revision 2bcb155b (git): Convert global symbol table to concurrent set
peterzhu2118 (Peter Zhu)
02:58 PM Revision f05ee26a (git): Add rb_concurrent_set_find
peterzhu2118 (Peter Zhu)
02:58 PM Revision 9ef482bd (git): Add rb_concurrent_set_size
peterzhu2118 (Peter Zhu)
02:58 PM Revision 5d44f291 (git): Skip garbage check for special consts in concurrent set
rb_objspace_garbage_object_p expects only GC managed objects to be passed
in. We should skip the check if curr_key is a special constant.
peterzhu2118 (Peter Zhu)
02:31 PM Revision 03812917 (git): [ruby/openssl] test/openssl/test_ts.rb: make assert_raise blocks smaller
https://github.com/ruby/openssl/commit/dbfcc44b37 rhenium (Kazuki Yamaguchi)
02:31 PM Revision d4621b42 (git): [ruby/openssl] test/openssl/test_ossl.rb: fix style issues
Use OpenSSL::TestCase instead of OpenSSL::SSLTestCase.
Prefer assert_true and assert_false over the bare assert and refute.
OpenSSL.fixed_length_secure_compare and OpenSSL.secure_compare will
only return true or false, and it should be ...
rhenium (Kazuki Yamaguchi)
02:31 PM Revision 090825f5 (git): [ruby/openssl] Move slow tests to OSSL_TEST_ALL=1 only
Update GitHub Actions workflows to set OSSL_TEST_ALL=1.
Exclude a few slow tests that are not critical for local development,
unless OSSL_TEST_ALL=1 is set. The bindings code paths are still reached
by other tests with smaller inputs, a...
rhenium (Kazuki Yamaguchi)
01:57 PM Revision be58cd4d (git): Ractor: lock around global variable get/set
There's a global id_table `rb_global_tbl` that needs a lock (I used VM lock). In the future, we might use a lock-free rb_id_table if we create such a data structure.
Reproduction script that might crash or behave strangely:
```ruby
100...
Luke Gruber
01:55 PM Revision c3d91eb4 (git): Fix several typos in the ractors docs
altxtech (André Soares)
02:11 AM Bug #21139: Prism and parse.y parses `it = it` differently
I've created a pull request to fix this Prism behavior where `42.tap { it = it; p it }` returns `42` instead of `nil`.
https://github.com/ruby/prism/pull/3604
This change makes Prism treat the right-hand side `it` as a local variab...
S_H_ (Shun Hiraoka)

07/20/2025

10:39 PM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
jeremyevans0 (Jeremy Evans) wrote in #note-6:
> Not sure why the local variable declaration would matter, as long as you don't pick one already in use.
Because you have to write the name of the variable twice. And coming up with names c...
lpogic (Łukasz Pomietło)
04:29 PM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
lpogic (Łukasz Pomietło) wrote in #note-5:
> The advantage of the proposed syntax is that it does not require an explicit declaration of an auxiliary variable, like here:
> ...
Not sure why the local variable declaration would matter, ...
jeremyevans0 (Jeremy Evans)
09:50 AM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
The advantage of the proposed syntax is that it does not require an explicit declaration of an auxiliary variable, like here:
```rb
return result if result = my_calculation(input_a, input_b)
```
and here:
```rb
x = my_calculation(i...
lpogic (Łukasz Pomietło)
09:32 AM Revision 9a269b15 (git): [ruby/json] Run `have_func` with the header providing the declarations
https://github.com/ruby/json/commit/95fb084027 nobu (Nobuyoshi Nakada)
09:32 AM Revision dd84f059 (git): [ruby/strscan] Run `have_func` with the header providing the declarations
https://github.com/ruby/strscan/commit/18c0a59b65 nobu (Nobuyoshi Nakada)
09:32 AM Revision 2af51ec4 (git): [ruby/strscan] Update extconf.rb
(https://github.com/ruby/strscan/pull/158)
- `have_func` includes "ruby.h" by default.
- include "ruby/re.h" where `rb_reg_onig_match` is declared.
https://github.com/ruby/strscan/commit/1ac96f47e9
nobu (Nobuyoshi Nakada)
09:32 AM Revision bf08633e (git): [ruby/openssl] Run `have_func` with the header providing the declarations
https://github.com/ruby/openssl/commit/b6f56c4540 nobu (Nobuyoshi Nakada)
09:32 AM Revision 280cf2ad (git): Bump io-nonblock to 0.3.0.1
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision 2493ec4f (git): [ruby/io-nonblock] Run `have_func` with the header providing the declarations
https://github.com/ruby/io-nonblock/commit/70909f5362 nobu (Nobuyoshi Nakada)
09:32 AM Revision e997c7f2 (git): Bump io-wait to 0.3.1.1
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision 8fab4f20 (git): [ruby/io-wait] Run `have_func` with the header providing the declarations
https://github.com/ruby/io-wait/commit/48309d7877 nobu (Nobuyoshi Nakada)
09:32 AM Revision 1d275bfd (git): Bump io-console to 0.7.1.1
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision fb42816c (git): [ruby/io-console] Run `have_func` with the header providing the declarations
https://github.com/ruby/io-console/commit/dd013030dd nobu (Nobuyoshi Nakada)
09:32 AM Revision 91263c7e (git): bump etc-1.4.3.1
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision fd6d5824 (git): [ruby/etc] Run `have_func` with the header providing the declarations
https://github.com/ruby/etc/commit/6668bfd42a nobu (Nobuyoshi Nakada)
09:32 AM Revision 868bcf38 (git): Update dependency for goruby
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision f0ec1ad8 (git): Add compilation with GCC 14,15 on GitHub workflow
nagachika (Tomoyuki Chikanaga)
09:32 AM Revision 407f6c9d (git): merge revision(s) b42afa1dbcbb91e89852b3b3bc72484d7f0a5528, 67b91e780798b80038dbfb39a06831918a75259f, f1f0cc14cc7d3f9be35b203e5583f9224b1e2387, 543e3a1896ae2fe3b5b954f6497d261ab5663a15, ed2806117a0b76e4439ce1a061fae21d9e116d69, 46e4c8673747de96838d2c5dec37446d23d99d88: [Backport #21497]
Suppress gcc 15 unterminated-string-initialization warnings
Drop an ignored attribute
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GCC 13.3.0 (Ubuntu ...
nagachika (Tomoyuki Chikanaga)
08:40 AM Bug #21500: Backport gcc 15 support
I have created a backporting pull request along with [Bug #21496].
https://github.com/ruby/ruby/pull/13962
nagachika (Tomoyuki Chikanaga)
08:40 AM Bug #21496: Fix for gcc-15 `-flto` option
I have created a backporting pull request along with [Bug #21500].
https://github.com/ruby/ruby/pull/13962
nagachika (Tomoyuki Chikanaga)
06:51 AM Bug #21497: building issue when using gcc15, because C23 is default
ruby_3_3 commit:1e37f34eaad715119d49c13e0bf6e6c54c5cbca6 merged revision(s) commit:d77e02bd85ab7f841df8d473bac214b9a92a3506. nagachika (Tomoyuki Chikanaga)
06:49 AM Revision 1e37f34e (git): merge revision(s) d77e02bd85ab7f841df8d473bac214b9a92a3506: [Backport #21497]
[Bug #21497] [ruby/socket]: add full prototype
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
otherwise, gcc 15 will complain:
> init.c:573:19: error: t...
nagachika (Tomoyuki Chikanaga)
06:46 AM Bug #21448: Random.urandom may fail to fall back to reading /dev/urandom on Linux < 3.17
ruby_3_3 commit:9b9f244b9837d2f3f1128591823eabe55f1a3204 merged revision(s) commit:1181a682a6c314c92686e3701defa1eb44068c4e, commit:0cec4a14fb832aed4b498a21ec0c19765642d408, commit:d84a811f31a65821642b165d712f380c0cc060e0. nagachika (Tomoyuki Chikanaga)
06:43 AM Revision 9b9f244b (git): merge revision(s) 1181a682a6c314c92686e3701defa1eb44068c4e, 0cec4a14fb832aed4b498a21ec0c19765642d408, d84a811f31a65821642b165d712f380c0cc060e0: [Backport #21448]
[Bug #21448] Use `getentropy(2)` only on macOS
If this is not a system call, then it is using getrandom (which would
have been tried already), and cannot be used as a replacement for the
random devices.
...
nagachika (Tomoyuki Chikanaga)
01:35 AM Revision f4de78f2 (git): merge a revision partially 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]
nagachika (Tomoyuki Chikanaga)

07/19/2025

03:44 PM Revision d21e4e76 (git): [ruby/fileutils] Make `ln_s` forward `target_directory` to `ln_sr`
https://github.com/ruby/fileutils/commit/b487f09eed nobu (Nobuyoshi Nakada)
02:48 PM Revision f62e9f2b (git): [ruby/fileutils] A workaround for RBS
https://github.com/ruby/fileutils/commit/c3abf39e7a nobu (Nobuyoshi Nakada)
02:48 PM Revision a1168712 (git): [ruby/fileutils] A workaround for RBS
https://github.com/ruby/fileutils/commit/fde0f0713a nobu (Nobuyoshi Nakada)
02:09 PM Revision 5a8e87cb (git): [ruby/fileutils] Just the parent path of the destination symlink should exist
https://github.com/ruby/fileutils/commit/71225b1b46 nobu (Nobuyoshi Nakada)
01:54 PM Revision 4431ca53 (git): [ruby/fileutils] FileUtils.remove_dir checks directory
https://github.com/ruby/fileutils/commit/f0d7fc817b sferik (Erik Michaels-Ober)
01:47 PM Revision 3dced795 (git): [ruby/fileutils] Use shorter symlink by real paths
https://github.com/ruby/fileutils/commit/277f7f2ff8 nobu (Nobuyoshi Nakada)
01:47 PM Revision de68f220 (git): [ruby/fileutils] Fix up `FileUtils#ln_sr`
https://github.com/ruby/fileutils/commit/2836a164ed nobu (Nobuyoshi Nakada)
02:17 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
ruby_3_3 commit:581be2b79cca0cb977fc0d6745cec7dbbe29b134 merged revision(s) commit:097d742a1ed53afb91e83aef01365d68b763357b. nagachika (Tomoyuki Chikanaga)
02:16 AM Revision 581be2b7 (git): merge revision(s) 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]
[Bug #20009] Support marshaling non-ASCII name class/module nagachika (Tomoyuki Chikanaga)
01:25 AM Bug #21438: use-after-free when resizing exivars
Merged into ruby_3_3. nagachika (Tomoyuki Chikanaga)
01:23 AM Revision 3471ee07 (git): Fix generic_ivar_set_shape_ivptr for table rebuild
[Bug #21438]
Previously GC could trigger a table rebuild of the generic ivar
st_table in the middle of calling the st_update callback. This could
cause entries to be reallocated or rearranged and the update to be for
the wrong entry.
T...
jhawthorn (John Hawthorn)
01:19 AM Revision 111a49e7 (git): Bump up resolv-0.3.1 for Ruby 3.3
hsbt (Hiroshi SHIBATA)

07/18/2025

11:30 PM Revision b49ae45b (git): Remove dead post-hoc rehash check
Hash#rehash checks whether the hash is iterating, and with VWA,
RHASH_ST_TABLE() always returns the same thing for the same
hash.
RHASH_ST_TABLE(VALUE h)
{
return (st_table *)((uintptr_t)h + sizeof(struct RHash));
}
...
alanwu (Alan Wu)
09:58 PM Revision bd27460c (git): Remove rehash checking TODO (GH-13919)
Hash#rehash checks for rehash during iteration, and there
seems to be no efficient way to check for it after the fact,
so remove the TODO.
sferik (Erik Michaels-Ober)
09:17 PM Bug #21504: [Ractor] Process.waitpid blocks ractor, new NT doesn't pick up other ractors
This is due to IO (ex: IO#read) registering wait events with the timer thread. When it does this, it wakes the timer thread up. This makes the timer thread check if any new NT needs to be created, and creates one if necessary. A quick fi... luke-gru (Luke Gruber)
08:21 PM Bug #21139: Prism and parse.y parses `it = it` differently
@tenderlovemaking From matz's latest reply in https://bugs.ruby-lang.org/issues/21139#note-6:
> But It was due to my misunderstanding. it = it should initialize the local variable named it and the value should be nil,
Which means it ...
Eregon (Benoit Daloze)
05:45 PM Bug #21139 (Feedback): Prism and parse.y parses `it = it` differently
tenderlovemaking (Aaron Patterson)
05:42 PM Bug #21139: Prism and parse.y parses `it = it` differently
Can we get some clarification on this? @matz likes the behavior of Prism, but this bug is assigned to the Prism team. It sounds like this should be considered a feature in parse.y.
Thanks.
-Aaron
tenderlovemaking (Aaron Patterson)
05:54 PM Misc #21508: DevMeeting-2025-08-21
* [Feature #20925] Allow boolean operators at beginning of line to continue previous line
* It seems like Matz approved this feature
* Prism has [a PR to support it](https://github.com/ruby/prism/pull/3337)
* Should we merge the...
tenderlovemaking (Aaron Patterson)
05:46 PM Feature #21020 (Feedback): Sync sig directory for prism of default gem.
@ksss What do you think? tenderlovemaking (Aaron Patterson)
05:44 PM Bug #21517 (Closed): Behaviour of StringIO#readpartial with multibyte differs from IO#readpartial
The specs for `IO#readpartial` have the following test (https://github.com/ruby/spec/blob/ed254bae321221f5cd24280beb37e5bddaff6bb6/core/io/readpartial_spec.rb#L41-L47):
```ruby
before :each do
@rd, @wr = IO.pipe
@rd.binmode
@w...
herwin (Herwin W)
05:43 PM Bug #20776 (Feedback): [PRISM] Pattern matching syntax error message
@nobu are you satisfied with @kddnewton's response? I'm not sure what we need to do to close this issue.
Thanks.
tenderlovemaking (Aaron Patterson)
03:36 PM Revision 8df61bfc (git): ZJIT: Support invalidating on method redefinition (#13875)
ZJIT: Support invalidating method redefinition
This commit adds support for the MethodRedefined invariant to be invalidated
when a method is redefined.
Changes:
- Added CME pointer to the MethodRedefined invariant in HIR
- Updated all ...
Stan Lo
02:01 PM Revision dafc4e13 (git): Fix size assertion in concurrent set resizing
Since we resize when `prev_size > set->capacity / 2`, it's possible that
`prev_size == set->capacity / 2`, so we need to change the assertion in
concurrent_set_try_resize_without_locking to be
`new_set->size <= new_set->capacity / 2`.
peterzhu2118 (Peter Zhu)
10:24 AM Revision 05f51cf3 (git): Extract arith_seq_take
sferik (Erik Michaels-Ober)
10:13 AM Revision 77254420 (git): [ruby/fileutils] If `noop`, return before checking the argument
Get rid of failure in rbs.
https://github.com/ruby/fileutils/commit/e44b7b366c
nobu (Nobuyoshi Nakada)
09:25 AM Revision eeb682c5 (git): [ruby/fileutils] [DOC] Fix optional argument descriptions
Several optional positional arguments were incorrectly denoted as
keyword arguments so correct them.
https://github.com/ruby/fileutils/commit/c25f069f96
Akihiko Odaki
09:22 AM Revision cfe8263f (git): [ruby/fileutils] Fix `ln_sf` with multiple sources and `target_directory: false`
In this case, an ArgumentError is now raised rather than ignoring the
option, just as GNU coreutils' `ln` would error on the command line.
Fixes https://github.com/ruby/fileutils/pull/128 as well.
https://github.com/ruby/fileutils/commi...
nobu (Nobuyoshi Nakada)
08:47 AM Feature #17473: Make Pathname to embedded class of Ruby
hsbt (Hiroshi SHIBATA) wrote in #note-27:
> Please separate the small PRs. I want to reduce the side effect like https://github.com/ruby/ruby/pull/13906.
Let's discuss your concerns about the PR on https://github.com/ruby/pathname/pu...
Eregon (Benoit Daloze)
06:12 AM Feature #17473: Make Pathname to embedded class of Ruby
Eregon (Benoit Daloze) wrote in #note-26:
> That PR is actually easy to review as explained in its description, it restores pathname.rb as it used to be and includes all changes to pathname.rb since then, see https://github.com/ruby/p...
hsbt (Hiroshi SHIBATA)
08:17 AM Bug #21256: `it` value is wrapped in an array when that doesn't happen with numbered parameter
Sorry about that. It looks like removing the first handling of `PM_IT_PARAMETERS_NODE` you wrote about in https://github.com/ruby/ruby/pull/13947 runs into https://bugs.ruby-lang.org/issues/20965 / https://github.com/ruby/ruby/commit/667... Earlopain (Earlopain _)
04:50 AM Bug #21256 (Open): `it` value is wrapped in an array when that doesn't happen with numbered parameter
mame (Yusuke Endoh)
04:28 AM Bug #21256 (Closed): `it` value is wrapped in an array when that doesn't happen with numbered parameter
Applied in changeset commit:git|dc8ae249517e017e52a4b34a14ddd594a706a9d5.
----------
Revert "[Bug #21256] Fix `it` parameter when splatting and `define_method` is…"
This reverts commit 265059603c3aa6a13f90096c71b32046a17938f3.
mame (Yusuke Endoh)
03:28 AM Bug #21256 (Open): `it` value is wrapped in an array when that doesn't happen with numbered parameter
That fix caused an ASAN error. I will revert it for now. See https://github.com/ruby/ruby/pull/13947 mame (Yusuke Endoh)
05:34 AM Revision bd50545f (git): Update default gems list at 1e65f0d93e637770c1598efae0d5a2 [ci skip]
git[bot]
05:33 AM Revision 1e65f0d9 (git): [ruby/json] Release 2.13.0
https://github.com/ruby/json/commit/8d08494dee byroot (Jean Boussier)
04:28 AM Revision dc8ae249 (git): Revert "[Bug #21256] Fix `it` parameter when splatting and `define_method` is…"
This reverts commit 265059603c3aa6a13f90096c71b32046a17938f3. mame (Yusuke Endoh)
 

Also available in: Atom