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. -
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. - 10:47 PM Revision 7465e169 (git): ZJIT: Remove redundant test exclusions
-
09:01 PM Revision 271e52d5 (git): ZJIT: Re-enable some A64 assembler tests
- Tweak for Condition to build when `cfg!(target = "x86_64")`.
-
09:01 PM Revision 7e2b6291 (git): ZJIT: DRY up underscore rexport anti-pattern
- Keeping the same name makes re-exporting more concise.
-
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... -
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`,... -
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... -
07:57 PM Revision ed22e15a (git): [DOC] Tweak for String#encode!
-
05:23 PM Feature #21028 (Open): Method for finding why an object isn't Ractor shareable
-
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_... -
04:07 PM Revision b2838bef (git): Add NODE_DEFINED tests for cases with parentheses to test_ast.rb
-
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. -
02:35 PM Feature #21518: Statistical helpers to `Enumerable`
- Thanks, great catch!
-
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` -
02:30 PM Revision fd492a45 (git): Add DEFINED NODE locations
- Add keyword_defined locations to struct RNode_DEFINED
-
02:07 PM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- #peek already exists, and does something different.
-
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 ... -
01:49 PM Revision f186f2cb (git): Remove unused imemo_parser_strterm
-
10:04 AM Revision f5c772fc (git): bump teeny
-
08:27 AM Revision 8f611e0c (git): bump teeny
-
08:15 AM Revision 361d1431 (git): merge revision(s) 5e5cec1b86837653b2106af377561045f4bbecef:
- Fix bigand_int edgecase returning false (#13987)
-
07:44 AM Revision 83335453 (git): Revert bump versions of default gems for extconf.rb changes.
- This reverts commit 91263c7e523dd0345c35ac4b616676132aad09d1.
-
06:45 AM Revision 4c60e431 (git): Win32: Suppress an error message when baseruby is not found
-
05:41 AM Bug #21500: Backport gcc 15 support
- Merged them at https://github.com/ruby/ruby/pull/14002 for Ruby 3.2
-
05:39 AM Revision 2417ed92 (git): Update dependencies
-
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
``` -
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
``` -
05:39 AM Revision e26e8423 (git): Suppress gcc 15 unterminated-string-initialization warnings
-
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
-
04:19 AM Bug #21310 (Closed): YJIT optimization causes incorrect is_a? method evaluation
-
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
-
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
-
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
-
03:56 AM Revision b246fb60 (git): Use `<>` for a system header
-
03:47 AM Revision 6dc37f90 (git): Update the latest versions of actions
-
03:39 AM Revision 076e51e5 (git): math.c: cleanup unused `#include <errno.h>`
- `errno` is no longer used after 5073155a178a9f478950afef4f148e44fd14b5d6
-
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`. -
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
-
03:21 AM Revision 5c74f2a7 (git): [ruby/json] Run `have_func` with the header providing the declarations
- https://github.com/ruby/json/commit/95fb084027
-
03:21 AM Revision f82b9d8d (git): [ruby/strscan] Run `have_func` with the header providing the declarations
- https://github.com/ruby/strscan/commit/18c0a59b65
-
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 -
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... - 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...
07/23/2025
- 11:52 PM Revision 2e0a7829 (git): ZJIT: Run zjit-check on CI for faster test_zjit.rb feedback
- 11:52 PM Revision f27e8b11 (git): ZJIT: Add multiple exclude targets
- 11:52 PM Revision 3504eba9 (git): ZJIT: Start testing againt /test
-
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
-
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... -
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... -
09:09 PM Revision 54a578e7 (git): [DOC] Tweaks for String#encoding
-
09:07 PM Revision 56572baa (git): [DOC] Tweaks for String#each_grapheme_cluster (#13981)
-
09:06 PM Revision e3d36fff (git): [DOC] Tweaks for String#empty?
-
08:23 PM Bug #21519 (Closed): `configure` script in Ruby tarballs should be generated with autoconf 2.72+ for C23 compilers
-
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.
-
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... - 07:49 PM Revision 78820e86 (git): Update doc for ObjectSpace.memsize_of
-
07:48 PM Revision 7816a04d (git): [DOC] Tweaks for String#each_line
-
07:36 PM Revision 17eee25c (git): [DOC] Tweaks for String#each_codepoint
-
07:35 PM Revision cd9b7463 (git): [DOC] Tweaks for String#each_char
-
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.
-
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... -
05:12 PM Revision 5e5cec1b (git): Fix bigand_int edgecase returning false (#13987)
-
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... -
02:07 PM Revision 93be5786 (git): Remove global symbol locks for rb_intern
-
02:07 PM Revision 33a849e3 (git): Remove global symbol lock for rb_gc_free_dsymbol
-
11:23 AM Revision 85221800 (git): Add comments to autogen script
-
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()
| ^~~~~~~~~~~~~~~~~ -
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...
-
01:10 AM Revision 61b5d3cf (git): [DOC] Fix 'hexadecimal' spelling on encodings docs
- Fix typo
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... -
09:55 PM Revision 465b1696 (git): [DOC] Tweaks for String#each_byte
-
09:54 PM Revision 7ca3b38a (git): [DOC] Tweak for String#dump
-
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 = ... -
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... - 04:52 PM Revision 45e65f55 (git): Fix typos in `documentation_guide.md`
- 04:52 PM Revision 02aee1b7 (git): Change `TESTOPS` to `TESTOPTS`
- 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 -
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 -
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... -
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... -
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... -
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. -
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... -
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. -
09:41 AM Revision 4dec4fbd (git): [rubygems/rubygems] Define dummy module for mise plugin
- https://github.com/rubygems/rubygems/commit/64bdff1e1e
- 07:07 AM Revision af718aaf (git): Update bundled gems list as of 2025-07-22
-
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.
-
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
-
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?
-
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.
-
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... -
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 ... -
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 -
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...
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... -
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.
-
09:45 PM Revision 8b505a28 (git): merge revision(s) 148db9c80f11af1780f0f3685201f28de8f6b47a: [Backport #21259]
- Fix flipflop line numbers
[ruby-core:121605] -
09:44 PM Bug #21514: Rust deprecation warning building ruby-3.4.5/yjit/src/codegen.rs
- ruby_3_4 commit:d713896f19517ab688b13174e6346a87fd9e01ee.
-
09:07 PM Revision 21c78cb0 (git): [DOC] Docs for String#dump
-
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`. -
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`. -
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...
-
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.
-
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. -
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) |
|--------------|--... -
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.
-
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. -
02:58 PM Revision 2bcb155b (git): Convert global symbol table to concurrent set
-
02:58 PM Revision f05ee26a (git): Add rb_concurrent_set_find
-
02:58 PM Revision 9ef482bd (git): Add rb_concurrent_set_size
-
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. -
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
-
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 ... -
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... - 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... -
01:55 PM Revision c3d91eb4 (git): Fix several typos in the ractors docs
-
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...
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... -
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, ... -
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... -
09:32 AM Revision 9a269b15 (git): [ruby/json] Run `have_func` with the header providing the declarations
- https://github.com/ruby/json/commit/95fb084027
-
09:32 AM Revision dd84f059 (git): [ruby/strscan] Run `have_func` with the header providing the declarations
- https://github.com/ruby/strscan/commit/18c0a59b65
-
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 -
09:32 AM Revision bf08633e (git): [ruby/openssl] Run `have_func` with the header providing the declarations
- https://github.com/ruby/openssl/commit/b6f56c4540
-
09:32 AM Revision 280cf2ad (git): Bump io-nonblock to 0.3.0.1
-
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
-
09:32 AM Revision e997c7f2 (git): Bump io-wait to 0.3.1.1
-
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
-
09:32 AM Revision 1d275bfd (git): Bump io-console to 0.7.1.1
-
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
-
09:32 AM Revision 91263c7e (git): bump etc-1.4.3.1
-
09:32 AM Revision fd6d5824 (git): [ruby/etc] Run `have_func` with the header providing the declarations
- https://github.com/ruby/etc/commit/6668bfd42a
-
09:32 AM Revision 868bcf38 (git): Update dependency for goruby
-
09:32 AM Revision f0ec1ad8 (git): Add compilation with GCC 14,15 on GitHub workflow
-
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 ... -
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 -
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 -
06:51 AM Bug #21497: building issue when using gcc15, because C23 is default
- ruby_3_3 commit:1e37f34eaad715119d49c13e0bf6e6c54c5cbca6 merged revision(s) commit:d77e02bd85ab7f841df8d473bac214b9a92a3506.
-
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... -
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.
-
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.
... -
01:35 AM Revision f4de78f2 (git): merge a revision partially 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]
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
-
02:48 PM Revision f62e9f2b (git): [ruby/fileutils] A workaround for RBS
- https://github.com/ruby/fileutils/commit/c3abf39e7a
-
02:48 PM Revision a1168712 (git): [ruby/fileutils] A workaround for RBS
- https://github.com/ruby/fileutils/commit/fde0f0713a
-
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
-
01:54 PM Revision 4431ca53 (git): [ruby/fileutils] FileUtils.remove_dir checks directory
- https://github.com/ruby/fileutils/commit/f0d7fc817b
-
01:47 PM Revision 3dced795 (git): [ruby/fileutils] Use shorter symlink by real paths
- https://github.com/ruby/fileutils/commit/277f7f2ff8
-
01:47 PM Revision de68f220 (git): [ruby/fileutils] Fix up `FileUtils#ln_sr`
- https://github.com/ruby/fileutils/commit/2836a164ed
-
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.
-
02:16 AM Revision 581be2b7 (git): merge revision(s) 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]
- [Bug #20009] Support marshaling non-ASCII name class/module
-
01:25 AM Bug #21438: use-after-free when resizing exivars
- Merged into ruby_3_3.
-
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... -
01:19 AM Revision 111a49e7 (git): Bump up resolv-0.3.1 for Ruby 3.3
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));
}
... -
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. -
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...
-
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 ... -
05:45 PM Bug #21139 (Feedback): Prism and parse.y parses `it = it` differently
-
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 -
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... -
05:46 PM Feature #21020 (Feedback): Sync sig directory for prism of default gem.
- @ksss What do you think?
-
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... -
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. - 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 ... -
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`. -
10:24 AM Revision 05f51cf3 (git): Extract arith_seq_take
-
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 - 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 -
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... -
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... -
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... -
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...
-
04:50 AM Bug #21256 (Open): `it` value is wrapped in an array when that doesn't happen with numbered parameter
-
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. -
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
- 05:34 AM Revision bd50545f (git): Update default gems list at 1e65f0d93e637770c1598efae0d5a2 [ci skip]
-
05:33 AM Revision 1e65f0d9 (git): [ruby/json] Release 2.13.0
- https://github.com/ruby/json/commit/8d08494dee
-
04:28 AM Revision dc8ae249 (git): Revert "[Bug #21256] Fix `it` parameter when splatting and `define_method` is…"
- This reverts commit 265059603c3aa6a13f90096c71b32046a17938f3.