Activity
From 07/10/2025 to 07/16/2025
07/16/2025
-
11:50 PM Revision 1a207650 (git): DRY up CARGO_VERBOSE for JITs
-
11:50 PM Revision 11650967 (git): ZJIT: Define make recipes only when configured
- This gives a better signal when say you try to run `make zjit-test` on a
YJIT-only build. -
11:25 PM Revision 960fae43 (git): ZJIT: Add missing write barrier in profiling (GH-13922)
- Fixes `TestZJIT::test_require_rubygems`. It was crashing locally due to
false collection of a live object. See
<https://alanwu.space/post/write-barrier/>.
Co-authored-by: Max Bernstein <max@bernsteinbear.com>
Co-authored-by: Takashi Kok... - 10:59 PM Revision 571a8d27 (git): YJIT: Side-exit on String#dup when it's not leaf (#13921)
- * YJIT: Side-exit on String#dup when it's not leaf
* Use an enum instead of a macro for bindgen -
10:12 PM Revision 15cf72da (git): ZJIT: Check if BOP is redefined before rewriting (#13916)
- Fix https://github.com/Shopify/ruby/issues/592
-
10:09 PM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
- Why not:
```ruby
x = my_calculation(input_a, input_b) and return x
```
-
06:30 PM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
- I would prefer it like this:
```rb
return result if result = my_calculation(input_a, input_b)
```
It doesn't need new syntax and to me at least it is rather intuitive. Unfortunatly this doesn't work today because the return code ... -
05:24 PM Feature #21515: Add `&return` as sugar for `x=my_calculation; return x if x`
- Proposal like this always reminds me:
https://poignant.guide/book/chapter-3.html
How am I supposed to read the `&return my_calculation(input_a, input_b)`. Reading it "and return my calculations from input_a and input_b" does not ma... -
02:56 PM Feature #21515 (Open): Add `&return` as sugar for `x=my_calculation; return x if x`
- Let me preface this by saying I have no marriage to the exact keyword name of `&return`.
# Problem
It is very common to have an early return in code where you get some initial value and return it if it is non-null. i.e.
```
retur... - 09:31 PM Revision 616df508 (git): ZJIT: Add ZJIT test exclusion files to jit team review targets
- 09:31 PM Revision d207efec (git): ZJIT: Remove unneeded test exclusions
- After several ZJIT fix PRs, the number of failing/crashing tests for
ZJIT has dropped significantly. This removes the unneeded test exclusions. -
09:17 PM Revision 4403cb27 (git): ZJIT: Eagerly infer types of rewritten Const instructions (#13917)
- This helps us rewrite more SendWithoutBlock into SendWithoutBlockDirect.
-
08:52 PM Bug #21516: Segfault in String#succ! on 32-bit i686
- It seems RESIZE_CAPA_TERM is miscompiled, so this may not be a Ruby issue but a compiler problem.
At the end of the if(STR_EMBED_P(str)) block, RSTRING_PTR(str) still points into the string object and not to the new heap-allocated str... -
04:28 PM Bug #21516 (Closed): Segfault in String#succ! on 32-bit i686
- I noticed segfaults in the test suite of Ruby 3.4.5, related to String#succ!
A very easy reproducer is:
```
./miniruby -e 'puts "ZZZZ999".succ!'
```
```
$ ./miniruby -e 'puts "ZZZZ999".succ!'
-e:1: [BUG] Segmentation fault a... -
08:41 PM Revision e64a9e39 (git): Alphabetize concurrent_set.h in string.c
-
08:20 PM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- The fiber is getting freed in the forked process, but it is not the same physical address as the fiber in the parent process. You are seeing virtual addresses here, these processes don't share memory.
-
05:16 AM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- luke-gru (Luke Gruber) wrote in #note-6:
> GC inside a forked process should not affect the parent. Are you getting a crash and a stack trace from running this program? If so, it would be helpful if you uploaded the stack trace.
No, ... -
08:13 PM Revision abc8745f (git): Avoid second RHASH_AR_TABLE_REF lookup
-
07:50 PM Revision 900eb048 (git): ZJIT: Split shift with immediate operand (#13914)
- Fix https://github.com/Shopify/ruby/issues/627
-
07:17 PM Revision 343619c9 (git): ZJIT: Remove dead have_two_fixnums function (#13913)
-
06:22 PM Bug #21460 (Closed): Pattern matching crash: unexpected PM_CALL_NODE
- Fixed in changeset [git|2591b935930aaeee652df3ffbbe1cb138e7f5346](https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/2591b935930aaeee652df3ffbbe1cb138e7f5346).
-
06:16 PM Bug #21345 (Closed): crash on evaluating 'a=>a,*,'
- Applied in changeset commit:git|133cf95618e687bfac6575e2daa1ce0a40e6f2e5.
----------
[ruby/prism] [Bug #21345] Fix accepting multiple rest patterns with leading match
Related:
* https://bugs.ruby-lang.org/issues/20765
* https://github.... - 06:16 PM Revision 643ca817 (git): ZJIT: run `zjit-test-all` on CI with seed (#13912)
- ZJIT: run zjit-test-all on CI with seed
ZJIT is still unstable and can crash intermittently running with Ruby
tests. Adding a seed to avoid flakiness while we work on stability. -
06:12 PM Revision 133cf956 (git): [ruby/prism] [Bug #21345] Fix accepting multiple rest patterns with leading match
- Related:
* https://bugs.ruby-lang.org/issues/20765
* https://github.com/ruby/prism/issues/2915
https://github.com/ruby/prism/commit/de56fa4a34 -
06:10 PM Revision ccbbe06a (git): YJIT: Disable the runtime_checks feature temporarily
- The stack canary gets killed in test_yjit.rb:224 for some reason. Needs
investigation. Example CI failure:
https://github.com/ruby/ruby/actions/runs/16307837724/job/46057558066 -
06:10 PM Revision 95521324 (git): ZJIT: A64: Fix bad operand swapping in `asm.sub(imm, reg)`
- Previously, my buggy optimization would turn `asm.sub(imm, reg)`
into `subs out, reg, imm` since it runs through the addition path which
relies on the commutative property. Don't do that because subtraction
does not commute. Good thing n... -
06:10 PM Revision 0c26dea5 (git): ZJIT: A64: Fix the optimization merging `asm.add(reg, imm)` with Mov
- The raw bytes didn't disassemble to the disassembly, but we missed this
since CI didn't run `make zjit-test` with the disasm feature.
Fixes: 1317377fa74 ("ZJIT: A64: Have add/sub to SP be
single-instruction") -
06:10 PM Revision 7df8e9e4 (git): ZJIT: A64: Fix `asm.add_into(NATIVE_STACK_POINTER, ...)`
- Previously, it issued CMN, which doesn't add to the stack pointer.
-
06:10 PM Revision 5ee3937a (git): ZJIT: Have `make zjit-test` use the same Cargo features as miniruby
- This is so that e.g. building with `--enable-zjit=dev` will test with the
disassembly feature. It makes more sense, saves on build time and
reveals that
`backend::arm64::tests::sp_movements_are_single_instruction` was in
fact failing wit... - 05:46 PM Revision ea81e7b8 (git): ZJIT: Remove an extra slash from $(TESTS) (#13911)
-
05:42 PM Revision 27964795 (git): test_process.rb: UID.from_name may raise Errno::ENOENT
- See: 58bc97628c1
getpwnam(3) says the same thing. I got ENOENT in my Linux environment.
1) Failure:
TestProcess#test_uid_from_name [/home/k0kubun/src/github.com/ruby/ruby/test/ruby/test_process.rb:1685]:
Exception(ArgumentError) with... - 05:08 PM Revision 2591b935 (git): [ruby/prism] Fix crash when using arithmetic expressions in pattern matching
- When arithmetic expressions like `-1**2` are used in pattern matching contexts,
Ruby crashes with "Unexpected node type in pattern matching expression: PM_CALL_NODE".
This happens because the Prism parser creates `PM_CALL_NODE` for arith... - 04:53 PM Revision acc31725 (git): ZJIT: Profile each instruction at most num_profiles times (#13903)
- * ZJIT: Profile each instruction at most num_profiles times
* Use saturating_add for num_profiles -
04:50 PM Revision af1ad78b (git): Use a const block
- Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
-
04:50 PM Revision 8668e4dd (git): ZJIT: Restore SP on side-exit chains
-
04:50 PM Revision 2250a66a (git): ZJIT: Fix SP alignment on JIT entry for x86_64
-
03:48 PM Revision 4eb0a6cd (git): [ruby/prism] Improve error handling for missing parentheses after 'not' in command calls
- https://github.com/ruby/prism/commit/d9151b8a82
-
03:48 PM Revision 4cf85fe2 (git): [ruby/prism] Reject `true && not true`
- A command-call-like `not true` must be rejected after `&&` and `||`.
https://bugs.ruby-lang.org/issues/21337
https://github.com/ruby/prism/commit/0513cf22ad -
11:14 AM Revision 830ab2c5 (git): Add a comment to count_objects to prevent future regression
-
09:48 AM Revision dedf9f5f (git): Suppress gcc 15 unterminated-string-initialization warnings
-
09:48 AM Revision 32bfb61d (git): Suppress occasional autoconf warnings
- ```
configure.ac:2803: warning: AC_CHECK_FUNCS(\
): you should use literals
../autoconf-2.72/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from...
../autoconf-2.72/lib/m4sugar/m4sh.m4:697: AS_IF is expanded from...
``` -
09:31 AM Revision 6d17a3e6 (git): Prevent ObjectSpace.count_objects from allocating extra arrays
- `ObjectSpace.count_objects` could cause an unintended array allocation.
It returns a hash like `{ :T_ARRAY => 100, :T_STRING => 100, ... }`, so
it creates the key symbol (e.g., `:T_STRING`) for the first time. On
rare occations, this sym... -
07:45 AM Feature #17473: Make Pathname to embedded class of Ruby
- hsbt (Hiroshi SHIBATA) wrote in #note-24:
> >I have merged https://github.com/ruby/pathname/pull/53, it is clearly better for the maintenance of the gem at least.
> ...
That PR is actually easy to review as explained in its description... -
07:24 AM Feature #17473: Make Pathname to embedded class of Ruby
- Dan0042 (Daniel DeLorme) wrote in #note-23:
> I don't understand this at all. What's the problem with having `require "fileutils"` inside #mkpath ? Those dependencies are part of the stdlib anyway, so it's not like they could be missing... -
05:27 AM Feature #17473: Make Pathname to embedded class of Ruby
- >I have merged https://github.com/ruby/pathname/pull/53, it is clearly better for the maintenance of the gem at least.
I reverted that. Please don't merge without consensus. At least, no one strongly against migrate C to Ruby in Dev M... -
02:10 AM Feature #17473: Make Pathname to embedded class of Ruby
- > * akr: To use the following four methods, require "pathname" is needed for a while
> ...
I don't understand this at all. What's the problem with having `require "fileutils"` inside #mkpath ? Those dependencies are part of the stdlib a... -
07:38 AM Revision 3956308a (git): `test_defined_paren_void_stmts` passes with parse.y now
-
07:17 AM Revision f0649ab4 (git): Make `defined? (x;)` return `expression` when using parse.y parser
- Follow up [Bug #21029].
Currently, `defined? (x;)` returns `expression` when using Prism parser.
See:
- https://github.com/ruby/ruby/pull/12949
- https://bugs.ruby-lang.org/issues/21029
However, `defined? (x;)` returns nil when using... -
05:50 AM Feature #21386: Introduce `Enumerable#join_map`
- Just a thought: shouldn't we add `#join` to `Enumerator::Lazy`? It wouldn't solve "logical repetitiveness" of the pattern, but might be a good _and_ idiomatic way to optimize the pattern when necessary.
(Lazy enumerators are underused... -
05:09 AM Revision 54ec4824 (git): CI: Use `sudo` only if it works
- GitHub Windows-11arm runner now provides `sudo` command, but it is
disabled and seems to need something at "Developer Settings page". -
12:15 AM Bug #21496: Fix for gcc-15 `-flto` option
- I created https://github.com/ruby/ruby/pull/13892 for Ruby 3.4.
-
12:02 AM Revision a691db30 (git): Add NEWS for Pathname promotion
07/15/2025
-
11:46 PM Bug #21513: Converting endless range to set hangs
- What's your opinion on adding the same raise/check for the following methods? They present the same infinite loop problem.
#count
#all?
#collect / #map
#collect_concat / #flat_map
#compact
#drop
#drop_while
#filter
#filter_map... -
11:23 PM Bug #21513: Converting endless range to set hangs
- I suspect this is a bug fix instead of a new feature, isn't it?
-
10:04 PM Bug #21513: Converting endless range to set hangs
- I've opened https://github.com/ruby/ruby/pull/13902
-
01:22 PM Bug #21513: Converting endless range to set hangs
- Thank you, good catch.
I think that check should be in `Range#to_set`, as well as `Range#to_a`.
```ruby
class Range
# Makes a set from the range with given arguments, if a finite
# collection; raises an exception otherwise.
... -
03:28 AM Bug #21513: Converting endless range to set hangs
- Raising an error should be the case for ANY endless range operations that result in an infinite loop and memory consumption. This is a very costly and hard to debug failure mode, and it happens for a large number of endless range methods.
-
10:12 PM Bug #21514 (Closed): Rust deprecation warning building ruby-3.4.5/yjit/src/codegen.rs
- I get the following warning when building `ruby-3.4.5` from the tarball release. I am using `rustc-1.88.0`.
```
warning: `extern` declarations without an explicit ABI are deprecated
--> ../ruby-3.4.5/yjit/src/codegen.rs:7406:1
... - 10:03 PM Revision 57239453 (git): ZJIT: Start testing against `/test/ruby/` and update all ZJIT related testing targets/docs (#13791)
- * ZJIT: Add test exclusions for ZJIT
* ZJIT: Update test targets and documentation
- Rename `zjit-test-all` to `zjit-check`
- Add `zjit-test-all` target to zjit.mk to run all Ruby tests with ZJIT enabled
excluding known failing tests... -
08:31 PM Revision 3cf32e93 (git): [DOC] Tweaks for String#downcase
-
08:12 PM Feature #21386: Introduce `Enumerable#join_map`
- matz (Yukihiro Matsumoto) wrote in #note-9:
> I hope JIT inlining will remove intermediate objects in the future.
FWIW, that's not really feasible, at least for cases where the input array has variable size.
Unless both Array#map an... -
07:52 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- Great to hear, this makes a lot of sense and addresses the original semantics issue perfectly.
-
07:47 PM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- Discussion: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-07-10.md#bug-19473-cant-be-called-from-trap-context-threaderror-is-too-limiting-ioquatix
> @ko1 Timeout.timeout issue (eregon has) would be more comp... -
07:27 PM Feature #17473: Make Pathname to embedded class of Ruby
- I have merged https://github.com/ruby/pathname/pull/53, it is clearly better for the maintenance of the gem at least.
Now we need to figure out if we want to keep the copy in core in sync with the gem or not (if not it's going to be a "... -
07:06 PM Feature #17473: Make Pathname to embedded class of Ruby
- Discussion at https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-07-10.md#feature-17473-make-pathname-to-embedded-class-of-ruby-eregon
I am disappointed, https://github.com/ruby/pathname/pull/53 makes the code cl... -
10:23 AM Feature #17473: Make Pathname to embedded class of Ruby
- Would it make sense to make `find`, `fileutils`, and `tmpdir` also builtin, given that `pathname` depends on them?
-
08:30 AM Feature #17473 (Closed): Make Pathname to embedded class of Ruby
- I made `Pathname` to embedded core class now.
* https://github.com/ruby/ruby/pull/13873
* https://github.com/ruby/ruby/pull/13885
* https://github.com/ruby/ruby/pull/13887
`Pathname#find`, `Pathname#mkpath`, `Pathname#rmtree` an... -
06:47 PM Revision b2ef33b3 (git): ZJIT: Redo JIT function native stack frame layout
- Previously, gen_param() access slots at `SP-x` for `x≥0` after subtracting from
SP, so it was accessing slots from above the top of the stack. Also, the
slots gen_entry_params() wrote to at entry point did not correspond to
the slots acc... -
06:47 PM Revision 50e2d58a (git): ZJIT: Ban `asm.load_into(Mem, ..)` and avoid it in gen_entry_params()
- Now that params can be in memory, this particular load_into() was
panicking with "Invalid operands for LDUR" with
test_spilled_method_args() on ARM.
Since it's documented to be for register destinations let's validate it. -
06:47 PM Revision 0aefa495 (git): ZJIT: Add failing test to test_spilled_method_args()
-
06:13 PM Revision be38cb92 (git): [DOC] Tweaks for String#downcase!
-
05:39 PM Revision 2899ff17 (git): ZJIT: Only specialize direct positional-positional calls (#13899)
- This is temporary until we have a unified calling convention.
- 04:33 PM Revision 37d088ad (git): Update default gems list at 024ae34e3852df4fbeb03172990327 [ci skip]
-
04:33 PM Revision 024ae34e (git): [ruby/erb] Version 5.0.2
- https://github.com/ruby/erb/commit/e8f3e64581
- 04:30 PM Revision 71d4518c (git): [ruby/erb] Declare escape functions as Ractor-safe
- (https://github.com/ruby/erb/pull/63)
https://github.com/ruby/erb/commit/fdd45c0d89 -
04:27 PM Revision 20cda200 (git): v3.4.5
-
04:23 PM Revision 8b1c313d (git): [ruby/etc] Alias value or join to take in old Ruby
- https://github.com/ruby/etc/commit/3dbe760bed
-
04:23 PM Revision d2264185 (git): [ruby/json] [ruby/json] Run `have_func` with the header providing the declarations
- https://github.com/ruby/json/commit/95fb084027
https://github.com/ruby/json/commit/9d080765cc -
04:23 PM Revision 8a9c6e03 (git): [ruby/strscan] Run `have_func` with the header providing the declarations
- https://github.com/ruby/strscan/commit/18c0a59b65
-
04:23 PM Revision 2473d0b6 (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 -
04:23 PM Revision 05a7d345 (git): [ruby/openssl] [ruby/openssl] Run `have_func` with the header providing the declarations
- https://github.com/ruby/openssl/commit/b6f56c4540
https://github.com/ruby/openssl/commit/5277ca1431 -
04:23 PM Revision 9a11bc5a (git): Merge etc 1.4.6
-
04:23 PM Revision 84d49322 (git): Merge io-nonblock 0.3.2
-
04:23 PM Revision 854787a8 (git): Merge io-wait 0.3.2
-
04:23 PM Revision 282cbf68 (git): Merge io-console 0.8.1
-
03:03 PM Revision 35660ec1 (git): Suppress warnings for variables
-
02:44 PM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- GC inside a forked process should not affect the parent. Are you getting a crash and a stack trace from running this program? If so, it would be helpful if you uploaded the stack trace.
-
01:55 PM Revision f5312d8e (git): Make rb_concurrent_set_funcs const
- We should never modify rb_concurrent_set_funcs during runtime, so we can
make it const. -
11:51 AM Revision 061d479b (git): [DOC] RDoc is not in ./lib now
- It is already a bundled gem, and only the non-built-in parts remain in
pathname.rb in ./lib and cannot work in old versions. -
11:51 AM Revision 8a31a079 (git): [DOC] Include pathname_builtin.rb documents
-
11:47 AM Bug #21512: Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)
- I merged this fix. Thank you!
-
11:39 AM Bug #21512 (Closed): Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError) - Applied in changeset commit:git|b896f80598cc096c84d57b2024813e994637af3b.
----------
[Bug #21512] Socket.tcp_with_fast_fallback: Pass proper addr family to getaddrinfo (#13878)
Socket.tcp_with_fast_fallback: Pass proper addr family to ... -
03:33 AM Bug #21512 (Assigned): Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)
- 11:38 AM Revision b896f805 (git): [Bug #21512] Socket.tcp_with_fast_fallback: Pass proper addr family to getaddrinfo (#13878)
- Socket.tcp_with_fast_fallback: Pass proper addr family to getaddrinfo
Addrinfo.getaddrinfo expects Socket::AF_INET or Socket::AF_INET6 as its
third argument (family). However Socket.tcp_with_fast_fallback was
incorrectly passing :ipv4 o... -
10:57 AM Revision 03800bff (git): Make Pathname#mkpath builtin
- [Feature #17473]
-
10:33 AM Revision 4fab4cfe (git): [ruby/pathname] Fix Init and InitVM
- https://github.com/ruby/pathname/commit/2b63d44453
-
10:10 AM Revision 6fd108dd (git): id_table.c: reduce duplication in managed_id_table methods
-
09:34 AM Revision cfdc2465 (git): Split restore and save actions from action/cache. We need to save always vcpkg cache
-
07:52 AM Revision 562599e6 (git): Skip `URI::TestMailTo#test_email_regexp` for now
- 07:25 AM Revision e27c1152 (git): Update default gems list at ea880e624e25bba6bbcf7a46dd0a2c [ci skip]
-
07:24 AM Revision ea880e62 (git): [ruby/etc] Bump up v1.4.6
- https://github.com/ruby/etc/commit/c9c9b9d15e
-
06:59 AM Revision b67e1025 (git): pathname.rbinc conflicts with `lib/pathname.rb` in our test suite.
- We can use `pathname.rb` after merging `lib/pathname.rb` to `pathname_builtin.rb`.
- 06:27 AM Revision 647b98a9 (git): Update default gems list at 2ffd6c28ed601bb738f114553e0d53 [ci skip]
-
06:26 AM Revision 2ffd6c28 (git): [ruby/io-nonblock] Bump up 0.3.2
- https://github.com/ruby/io-nonblock/commit/7285725885
- 06:01 AM Revision d2deeaf1 (git): Update default gems list at 8ea57040f08226caa922ecd4d49880 [ci skip]
-
06:01 AM Revision 8ea57040 (git): [ruby/io-console] Bump up 0.8.1
- https://github.com/ruby/io-console/commit/01071a174a
-
05:48 AM Revision a6f0a24e (git): Remove no longer used ext/pathname/depend [ci skip]
-
04:36 AM Revision 69d4c673 (git): Provide pathname.so with embedded Pathname
-
02:17 AM Revision 87944065 (git): Move builtin methods to pathname.rbinc from lib/pathname.rb
-
02:17 AM Revision 98ea78f3 (git): Make Pathname to embedded class
-
02:11 AM Revision 3922a14a (git): ZJIT: Make lir::Opnd::const_ptr take any pointer to save on casts
-
02:11 AM Revision 7a7f128d (git): ZJIT: Add a ccall macro that also adds an LIR comment
- This DRYs up the `asm_comment!` + `asm.ccall` combo, and makes ccalls
have a comment by default.
07/14/2025
-
11:34 PM Revision d23f666d (git): Split restore and save actions from action/cache. We need to save always vcpkg cache
-
10:36 PM Bug #21513 (Closed): Converting endless range to set hangs
- Converting endless range to array raises:
``` shell
ruby -e '(1..).to_a'
-e:1:in 'Range#to_a': cannot convert endless range to an array (RangeError)
from -e:1:in '<main>'
```
but converting to set does not:
``` shell
ruby ... -
09:57 PM Bug #21503: \p{Word} does not match on \p{Join_Control} while docs say it does
- The patch to master modified `CR_Word` on `enc/unicode/16.0.0/name2ctype.h`, but Ruby 3.4 uses `enc/unicode/15.0.0/name2ctype.h` that has a different content in `CR_Word`. I'm not sure how to backport this properly. Could @procmarco or a...
-
09:51 PM Bug #21500: Backport gcc 15 support
- ruby_3_4 commit:596126ee5aa35a65bcaca60b92b5547ef1a9d2da merged revision(s) commit:b42afa1dbcbb91e89852b3b3bc72484d7f0a5528, commit:f1f0cc14cc7d3f9be35b203e5583f9224b1e2387, commit:543e3a1896ae2fe3b5b954f6497d261ab5663a15, commit:ed28061...
-
09:50 PM Revision 596126ee (git): merge revision(s) b42afa1dbcbb91e89852b3b3bc72484d7f0a5528, f1f0cc14cc7d3f9be35b203e5583f9224b1e2387, 543e3a1896ae2fe3b5b954f6497d261ab5663a15, ed2806117a0b76e4439ce1a061fae21d9e116d69, 46e4c8673747de96838d2c5dec37446d23d99d88: [Backport #21500]
- Suppress gcc 15 unterminated-string-initialization warnings
Separate `__has_attribute` from `defined(__has_attribute)`
Fix Visual C warnings:
```
regenc.h(121): warning C4067: unexpected tokens following... -
09:48 PM Bug #21497: building issue when using gcc15, because C23 is default
- ruby_3_4 commit:782aef10bbdb63aba6d71e4f5f1876888c70efcb merged revision(s) commit:d77e02bd85ab7f841df8d473bac214b9a92a3506.
-
09:48 PM Revision 782aef10 (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... -
09:36 PM Bug #21441: SEGV during thread cleanup if profiler calls thread_profiles_frames at wrong time
- ruby_3_4 commit:edfcbacabae6317195a55f2b83fafe2d2b3f6fc8.
-
09:33 PM Bug #21437: Date#hash may return different values for equal dates with large years
- ruby_3_4 commit:02744e58f3d410931a58873e1dab8752740e60ff merged revision(s) commit:c1877d431e76f4a782d51602fa8487e98d302956.
-
09:31 PM Revision 02744e58 (git): merge revision(s) c1877d431e76f4a782d51602fa8487e98d302956: [Backport #21437]
- [ruby/date] [Bug #21437] Date#hash for large years
Addresses https://bugs.ruby-lang.org/issues/21437
Signed-off-by: Dmitry Dygalo <dmitry.dygalo@workato.com>
https://github.com/ruby/date/commit/31f07bc576 -
09:31 PM Bug #21440: Cannot create instances of frozen Data subclasses
- ruby_3_4 commit:2af8f305542fd20537435046c1a558db5b2cacc5 merged revision(s) commit:2e7e78cd590d20aa9d41422e96302f3edd73f623.
-
09:30 PM Revision 2af8f305 (git): merge revision(s) 2e7e78cd590d20aa9d41422e96302f3edd73f623: [Backport #21440]
- [Bug #21440] Stop caching member list in frozen Data/Struct class
-
09:30 PM Bug #21448: Random.urandom may fail to fall back to reading /dev/urandom on Linux < 3.17
- ruby_3_4 commit:508daebdcd730e34d5fb750880249deae8025b80 merged revision(s) commit:1181a682a6c314c92686e3701defa1eb44068c4e, commit:d84a811f31a65821642b165d712f380c0cc060e0.
-
09:29 PM Revision 508daebd (git): merge revision(s) 1181a682a6c314c92686e3701defa1eb44068c4e, 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.
... -
09:29 PM Bug #21447: Fix handling of PM_CONSTANT_PATH_NODE node in keyword arguments with ARGS_SPLAT
- ruby_3_4 commit:f0f97886fc0ef805835f0a0d7553e2a8abf988de merged revision(s) commit:1d94a9e1a4351e01f851dad250ba97dad859ee70.
-
09:29 PM Revision f0f97886 (git): merge revision(s) 1d94a9e1a4351e01f851dad250ba97dad859ee70: [Backport #21447]
- Fix handling of PM_CONSTANT_PATH_NODE node in keyword arguments with ARGS_SPLAT
This was handled correctly in parse.y (NODE_COLON2), but not in
prism. This wasn't caught earlier, because I only added tests for
th... -
09:27 PM Bug #21443: Backport: Fix heap-use-after-free in free_fast_fallback_getaddrinfo_entry
- ruby_3_4 commit:c57efbfb3ac3848f954735600bbab1ea814dd742.
-
09:25 PM Bug #21438: use-after-free when resizing exivars
- ruby_3_4 commit:45ddafb95bd732f7305925a779cd8403ac30e1bf.
-
09:24 PM Bug #21380: Use-After-Free in String#split with In-Block String Modification
- ruby_3_4 commit:fee92000fe96ac2dba0e87c5ed60c7440c8e2117 merged revision(s) commit:fa85d23ff4a02985ebfe0716b0ff768f5b4fe13d.
-
09:23 PM Revision fee92000 (git): merge revision(s) fa85d23ff4a02985ebfe0716b0ff768f5b4fe13d: [Backport #21380]
- [Bug #21380] Prohibit modification in String#split block
Reported at https://hackerone.com/reports/3163876 -
09:23 PM Bug #21356: Error when accessing local variable named "default" with Binding#local_variable_get
- Same here; the behavior was added in Ruby 3.5 and we don't even have the modified function in Ruby 3.4. I mark it "DONTNEED" for ruby_3_4 as well.
-
09:19 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- ruby_3_4 commit:e68adac82a58e1b4a63d9e31047b59cbd515c54c merged revision(s) commit:097d742a1ed53afb91e83aef01365d68b763357b.
-
09:18 PM Bug #21370: `it` can cause ISeq serialization failure
- Reverted the backport at commit:3a06b3d9f51bc4a3eef5fbaa035595ed34d65eba because it failed the CI:
```
TestISeq#test_serialize_anonymous_outer_variables: Test::Unit::AssertionFailedError: <1> expected but was
Retrying...
... -
08:54 PM Bug #21370: `it` can cause ISeq serialization failure
- ruby_3_4 commit:acb19e8707093593e967b6af03d92da5c570ffc6 merged revision(s) commit:ff222ac27afe712ef6ec2bb74c81cdde1a1fa176.
-
09:17 PM Revision 3a06b3d9 (git): Revert "merge revision(s) ff222ac27afe712ef6ec2bb74c81cdde1a1fa176: [Backport #21370]"
- This reverts commit acb19e8707093593e967b6af03d92da5c570ffc6.
-
09:14 PM Revision e68adac8 (git): merge revision(s) 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]
- [Bug #20009] Support marshaling non-ASCII name class/module
-
09:14 PM Bug #21255: Can't build Ruby with Windows SDK 10.0.26100
- ruby_3_4 commit:309b1aaf1f.
-
09:13 PM Bug #21283: Some tests of TestMkmfConvertible is failing with VS2022 17.14.0 preview 4.0
- ruby_3_4 commit:84a90636c5.
-
09:11 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- ruby_3_4 commit:ca1ea9578485c27daac1e16107cb48551a58d8ad.
-
09:10 PM Bug #21354: Symbol#to_proc is not ractor safe
- ruby_3_4 commit:82e05dc945e3e2c5ab22be661f6caf6c7436461f merged revision(s) commit:f6cbf499bc98b851034fffb49fcbb59d495f6f7b.
-
09:10 PM Revision 82e05dc9 (git): merge revision(s) f6cbf499bc98b851034fffb49fcbb59d495f6f7b: [Backport #21354]
- Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe
In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe
to add to this array without a lock and also it leaks procs from one
ractor to another.... -
09:08 PM Bug #21439: Crash with PM_SPLAT_NODE compiler error (Prism)
- ruby_3_4 commit:585469aff3de855a9f3db8e51f12bf87300981af merged revision(s) commit:5ec9a392cdf7f971221dc073dd466bce877d8acb.
-
09:04 PM Revision 585469af (git): merge revision(s) 5ec9a392cdf7f971221dc073dd466bce877d8acb: [Backport #21439]
- [Bug #21439] Fix `PM_SPLAT_NODE` compilation error in for loops (#13597)
[Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops
This commit fixes a crash that occurred when using splat nodes (*) as
the in... -
09:01 PM Bug #21395: Please backport caa6ba1a46afa1bc696adc5fe91ee992f9570c89
- ruby_3_4 commit:79b73dd862f6e439142e56301e60a58ed1d44030 merged revision(s) commit:8d49c05c134702c321198b70fbbf34dd80cc1ba6.
-
09:01 PM Revision 79b73dd8 (git): merge revision(s) 8d49c05c134702c321198b70fbbf34dd80cc1ba6: [Backport #21395]
- Use the edge version of debug gem
-
08:56 PM Bug #21099: TestGc#test_gc_stress_at_startup assertion failure
- ruby_3_4 commit:58d08abef567dab582ec5f7c3dcd2b8fabdaebd6 merged revision(s) commit:a084fef9afc7713aa4f4111f7e826c7ca1a607c7.
-
08:55 PM Revision 58d08abe (git): merge revision(s) a084fef9afc7713aa4f4111f7e826c7ca1a607c7: [Backport #21099]
- [Bug #21099] Fix GC when Ractor list not initialized
When the Ractor list is not initialized and a GC is ran at boot, then it
would crash because the newobj_cache of the main Ractor is not cleared.
This commit ch... -
08:55 PM Bug #21394: Memory leak in Prism's RubyVM::InstructionSequence.new
- ruby_3_4 commit:c397c2d177a0b7fd13b69c5109418fbe1f9eccd1 merged revision(s) commit:34b407a4a89e69dd04f692e2b29efa2816d4664a.
-
08:55 PM Revision c397c2d1 (git): merge revision(s) 34b407a4a89e69dd04f692e2b29efa2816d4664a: [Backport #21394]
- Fix memory leak in Prism's RubyVM::InstructionSequence.new
[Bug #21394]
There are two ways to make RubyVM::InstructionSequence.new raise which
would cause the options->scopes to leak memory:
1. Passing ... -
08:54 PM Revision acb19e87 (git): merge revision(s) ff222ac27afe712ef6ec2bb74c81cdde1a1fa176: [Backport #21370]
- compile.c: Handle anonymous variables in `outer_variable_cmp`
[Bug #21370] -
08:54 PM Bug #21383: Prism leaks memory with invalid yield
- ruby_3_4 commit:cdb039d3e4f76ee01744814e5f08395835fa8e63 merged revision(s) commit:9f91f3617bab2ee220d298ddb874ef73b10dac23.
-
08:53 PM Revision cdb039d3 (git): merge revision(s) 9f91f3617bab2ee220d298ddb874ef73b10dac23: [Backport #21383]
- Fix memory leak with invalid yield in prism
[Bug #21383]
The following script leaks memory:
10.times do
20_000.times do
eval("class C; yield; end")
rescue SyntaxE... -
08:52 PM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- ruby_3_4 commit:1bdae3404b2918a8823d2fbac2f9e30f778aa1c9 merged revision(s) commit:056497319658cbefe22351c6ec5c9fa6e4df72bd.
-
08:52 PM Revision 1bdae340 (git): merge revision(s) 056497319658cbefe22351c6ec5c9fa6e4df72bd: [Backport #21357]
- [Bug #21357] Fix crash in Hash#merge with block
Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
was a ... -
08:49 PM Bug #21333: heap-use-after-free caused by rehash during update
- ruby_3_4 commit:247b452af3ace2000d27475a0cb05ebecf3bb29c merged revision(s) commit:49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c.
-
08:49 PM Revision 247b452a (git): merge revision(s) 49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c: [Backport #21333]
- [Bug #21333] Prohibit hash modification inside Hash#update block
-
08:46 PM Bug #21197: Prism does not accept newline after defined? keyword
- ruby_3_4 commit:1e3d24a0f47e142270bfb6073feb77f6364af052, commit:1c23c3095325a4ade2064cc3b35ce8e678e03ebf, commit:e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f merged revision(s) commit:052794bfe1970e90f4f4f9e37fc362dd27903a8d.
- 08:34 PM Revision a6d48397 (git): ZJIT: Make debug info more detailed
- Print the filename, line number, and whether or not the function has
been optimized:
```
Initial HIR:
fn initialize@test.rb:4:
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
SetIvar v0, :@a, v2
Return v2
Optimized HIR:
fn ini... -
08:21 PM Revision 3a47f4ea (git): YJIT: Move RefCell one level down
- This is the second part of making YJIT work with parallel GC.
During GC, `rb_yjit_iseq_mark` and `rb_yjit_iseq_update_references` need
to resolve offsets in `Block::gc_obj_offsets` into absolute addresses
before reading or updating the ... -
08:21 PM Revision 51a3ea5a (git): YJIT: Set code mem permissions in bulk
- Some GC modules, notably MMTk, support parallel GC, i.e. multiple GC
threads work in parallel during a GC. Currently, when two GC threads
scan two iseq objects simultaneously when YJIT is enabled, both threads
will attempt to borrow `Co... - 07:22 PM Revision e288a866 (git): ZJIT: Restore SP register after JIT-to-JIT call (#13882)
- Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
Co-authored-by: Stan Lo <stan.lo@shopify.com> -
05:42 PM Feature #21346: Introduce `String#ensure_suffix`
- I've updated the documentation examples to reflect the typical use:
```rb
"script".ensure_suffix(".rb") # => "script.rb"
"script.rb".ensure_suffix(".rb") # => "script.rb"
"script.r".ensure_suffix(".rb") # => "script.r.rb"
``` -
03:34 PM Bug #21512: Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)
- I have opened a pull request: https://github.com/ruby/ruby/pull/13878
This bug is around from Ruby 3.4 when HEv2 was introduced. -
03:33 PM Bug #21512 (Closed): Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)
- The following code is expected to open a socket bound to the local IPv4 interface, but raises an SocketError.
```ruby
require 'socket'
Socket.tcp_with_fast_fallback('localhost', 8080, '127.0.0.1')
```
Expected behavior: Returns ... -
03:11 PM Revision b2a7b769 (git): Remove dead rb_cc_table_free
-
03:11 PM Revision 127cc425 (git): Remove dead rb_cc_table_mark
-
02:05 PM Revision 64d4e772 (git): [DOC] Tweaks for String#delete_suffix! (#13872)
-
01:58 PM Revision 07a3ab53 (git): [DOC] Tweaks for String#delete_suffix
-
01:58 PM Revision 55dd2022 (git): [DOC] Tweaks for String#delete_prefix!
-
01:57 PM Revision d38bb4ad (git): [DOC] Tweaks for String#delete_prefix
-
12:25 PM Bug #21029: Prism behavior for `defined? (;x)` differs
I agree that consistent behavior between both cases would be ideal.
Given the current structure of `parse.y`, wrapping with `NODE_BLOCK` seems like the most straightforward approach to make both `defined?(;x)` and `defined?(x;)` ret...-
10:01 AM Bug #19154: Specify require and autoload guarantees in ractors
- Awesome John! Thanks very much!
-
09:29 AM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- using ruby 3.5.0dev (2025-07-14T05:11:58Z master 8f54b5bb93) +PRISM [x86_64-linux]
``` shell
# this is currently in the forked proc in GC (the `fork { GC.start }` part)
# thread 3.3 is the created thread by Thread.new
(gdb) i thre... -
07:33 AM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- nobu (Nobuyoshi Nakada) wrote in #note-3:
> 3.4.1 is outdate.
> ...
Thank you I am trying to compile the current master branch and maybe the 3.4.4 release. -
07:26 AM Bug #21511 (Open): Use-after-free of the execution context after the fiber object carrying it is freed in GC
- 3.4.1 is outdate.
Could you try with more recent version?
BTW, 3.4.1 tarball is not listed there, but still exists.
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.1.tar.gz
And its `RUBY_REVISION` in `revision.h` is `"48d4efcb85"... -
07:10 AM Bug #21511: Use-after-free of the execution context after the fiber object carrying it is freed in GC
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> I can't reproduce it with ruby_3_4 (commit:1e3d24a0f47) on aarch64-linux.
> ...
Sorry I was using the 3.4.1 stable release from https://www.ruby-lang.org/en/downloads/, which is not on there ... -
06:56 AM Bug #21511 (Feedback): Use-after-free of the execution context after the fiber object carrying it is freed in GC
- I can't reproduce it with ruby_3_4 (commit:1e3d24a0f47) on aarch64-linux.
What version is commit:de8de51182? -
04:39 AM Bug #21511 (Closed): Use-after-free of the execution context after the fiber object carrying it is freed in GC
- In bootstraptest/test_thread.rb,
``` ruby
assert_equal 'ok', %{
File.write("zzz_t1.rb", <<-END)
begin
Thread.new { fork { GC.start } }.join
pid, status = Process.wait2
$result = status.success? ?... -
05:11 AM Revision 8f54b5bb (git): [ruby/uri] [DOC] Update old use of `URI::Parser`
- https://github.com/ruby/uri/commit/d2a79c6343
-
05:11 AM Revision d1470914 (git): [ruby/uri] [DOC] Document private visibility too
- For the references to URI::RFC2396_Parser private methods.
https://github.com/ruby/uri/commit/372fbb455d -
05:11 AM Revision 1a03270a (git): [ruby/uri] [DOC] Fix references
- These are instance methods, not class methods. And `URI::Parser` was
moved to URI::RFC2396_Parser at [r46491]
[r46491]: https://github.com/ruby/ruby/commit/bb83f32dc3e0
https://github.com/ruby/uri/commit/452d74390c -
02:52 AM Revision 7a03a02b (git): [rubygems/rubygems] Fix more warnings when running old Bundler with latest RubyGems
- Also fix platform warnings when Bundler's entrypoint is bundler's
binstub.
https://github.com/rubygems/rubygems/commit/4b1df58403 -
02:52 AM Revision c3d41492 (git): [rubygems/rubygems] Avoid more warnings when using RubyGems with old Bundler
- We were only avoiding them when the RUBYGEMS_GEMDEPS variable is used.
Avoid the warnings in general, whenever the entrypoint to Bundler is
`require`.
https://github.com/rubygems/rubygems/commit/8683faef36 -
02:52 AM Revision a93c6840 (git): [rubygems/rubygems] Change helper to load only Bundler extensions to RubyGems
- We'll want to reuse this helper in other situations where we don't want
all Bundler loaded.
https://github.com/rubygems/rubygems/commit/9e7018b0a1 -
02:52 AM Revision 1c48aa6f (git): [rubygems/rubygems] Move loading Bundler without platform warnings to a method
- https://github.com/rubygems/rubygems/commit/e068f0649a
-
02:52 AM Revision 4651d235 (git): [rubygems/rubygems] No need to detect ancient binstubs either
- https://github.com/rubygems/rubygems/commit/346d491a11
-
02:52 AM Revision 15751af9 (git): [rubygems/rubygems] Improve some heredoc indentations
- https://github.com/rubygems/rubygems/commit/6ee3a33048
-
02:52 AM Revision f1cbd58a (git): [rubygems/rubygems] Stop generating binstubs with support for RubyGems before 2.6.2
- RubyGems generated binstubs still provide support for this ancient
version. This makes no sense since we prevent downgrades to such old
versions.
https://github.com/rubygems/rubygems/commit/089cdc3b77 -
02:52 AM Revision 51e89003 (git): [rubygems/rubygems] Reset tmp directories before spec suite
- If you abort running test suite with a quick double Ctrl-C, tmp files
will be left around, and they will interfere with the next test run.
To avoid this, make sure to clear them once at the beginning of the test
suite.
### Before
```
... -
02:52 AM Revision 7dc28418 (git): [rubygems/rubygems] Load RubyGems extensions in the first place
- This is not currently causing any issues, but I think the most correct
thing to do is that Bundler loads the extensions to RubyGems in the
first place, so that they are available from the beginning.
https://github.com/rubygems/rubygems/... -
02:19 AM Revision 55baf026 (git): Fix an indent [ci skip]
07/13/2025
-
04:37 AM Revision f03cc0b5 (git): [ruby/uri] Repeat matching to reduce deviations
- https://github.com/ruby/uri/commit/fa49e5b8ae
-
04:37 AM Revision 9c166d26 (git): [ruby/uri] Test in exponential scale with rehearsal
- https://github.com/ruby/uri/commit/be35e0b4d8
07/12/2025
-
06:22 PM Revision b438915f (git): [DOC] TWeaks for String#delete!
-
05:08 PM Revision e1bc92d0 (git): [DOC] Tweaks for String#delete
-
02:55 PM Revision b0db93c0 (git): [DOC] Tweaks for String#count
-
02:49 PM Bug #21510 (Closed): Rails server crashes on Mac M2 with Bus Error at 0x0000000109946aac
- Thank you for the bug report. You appear to be running on Ruby 2.6, which was EOL in 2022. As such, I'll be closing this issue.
The currently supported Ruby versions are Ruby 3.3 and 3.4, please upgrade and open a new ticket if you en... -
02:24 PM Bug #21510: Rails server crashes on Mac M2 with Bus Error at 0x0000000109946aac
- Although the issue seems related to `pg` gem, I can run activerecord statements on a rails console session and they work perfectly fine. In that case, I may assume that this is not exactly a `pg` gem related issue.
-
02:18 PM Bug #21510 (Closed): Rails server crashes on Mac M2 with Bus Error at 0x0000000109946aac
- I have been struggling to setup a Rails 5.1.7 application on my Macbook M2 for months.
I installed Rosetta, x86_64 brew and my terminal app is set to run with Rosetta.
``` shell
~ ❯ arch
i386
~ ❯ which brew
/usr/local/bin/brew
~ ❯... -
01:34 PM Revision 9e7a985c (git): [Bug #21509] [DOC] Correct `IO#wait` description
-
01:32 PM Bug #21509 (Closed): io/wait: IO#wait raises error when passed nil as timeout
- Applied in changeset commit:git|dbf7a0c713c39bdfd22c24e69f4bb0b89c9cab65.
----------
[ruby/io-wait] [Bug #21509] [DOC] Correct `IO#wait` description
https://github.com/ruby/io-wait/commit/c65af887a1 -
01:32 PM Revision dbf7a0c7 (git): [ruby/io-wait] [Bug #21509] [DOC] Correct `IO#wait` description
- https://github.com/ruby/io-wait/commit/c65af887a1
-
01:25 PM Revision 753e3b7a (git): [ruby/openssl] asn1: align UTCTime year range with RFC 5280
- ASN.1 UTCTime uses two-digit years. While X.680 does not specify how to
map them as far as I can tell, X.509/PKIX uses this type to represent
dates between year 1950-2049.
OpenSSL::ASN1.decode has used 1969-2068 since the initial
implem... -
10:32 AM Bug #20686 (Closed): URI::HTTPS can build URI with blank, invalid host
- Applied in changeset commit:git|22b81b5bf56d7c5053008697d9e6b2a9c4eb79f4.
----------
[ruby/uri] Do not allow empty host names, as they are not allowed by RFC 3986
Pointed out by John Hawthorn.
Fixes [Bug #20686]
https://github.com/ru... -
10:32 AM Revision cf7b871a (git): [ruby/uri] Improve performance of `URI::MailTo::EMAIL_REGEXP`
- Fix the performance regression at #172 for valid emails.
``` yml
prelude: |
require 'uri/mailto'
n = 1000
re = URI::MailTo::EMAIL_REGEXP
benchmark:
n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
example: re.match?("example@example... -
07:07 AM Revision 22b81b5b (git): [ruby/uri] Do not allow empty host names, as they are not allowed by RFC 3986
- Pointed out by John Hawthorn.
Fixes [Bug #20686]
https://github.com/ruby/uri/commit/c0cfa04a66 -
07:07 AM Revision 1add45e2 (git): [ruby/uri] Prohibit successive dots in email
- https://github.com/ruby/uri/commit/32335923bf
-
07:07 AM Revision 859d7427 (git): [ruby/uri] More tests for `check_to`
- https://github.com/ruby/uri/commit/b1b5f9a476
- 03:31 AM Revision c97eba9b (git): [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class
- https://github.com/ruby/uri/commit/2d7d2d9988
- 03:31 AM Revision 0685e8ca (git): [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): the local part should not contain leading or trailing dots
- https://github.com/ruby/uri/commit/618e2bb640
-
03:24 AM Revision f1764623 (git): [ruby/uri] Make URI::regexp schemes case sensitive
- (https://github.com/ruby/uri/pull/38)
https://github.com/ruby/uri/commit/0c2b6468fa -
03:05 AM Revision c47a92b6 (git): [ruby/uri] Fix the message for unexpected argument
- Use just `self` instead of `self.class`, in `URI::Generic.build`.
Since this is a class method, `self.class` is always `Class` even in
inherited sub classes, and does not have `#component` method.
https://github.com/ruby/uri/commit/6f44...
07/11/2025
- 08:24 PM Revision 3ec46aad (git): ZJIT: Mark objects baked in JIT code (#13862)
-
06:07 PM Revision c592cbd6 (git): [DOC] Fix links to RDoc in documentation_guide.md
- Since RDoc's documentation is built separately now, the references will
no longer work. -
06:07 PM Revision 482eeb7d (git): [DOC] Remove doc/rdoc/markup_reference.rb
- RDoc has been moved from a default gem to a bundled gem, which means that
the source code is no longer in the ruby/ruby repository. We should also
remove doc/rdoc/markup_reference.rb. -
05:20 PM Revision 1582bd93 (git): Add Timeout message when bootstraptest times out
-
04:55 PM Revision b0b1712b (git): ZJIT: Use Vec instead of HashMap for profiling (#13809)
- This is notably faster: no need to hash indices.
Before:
```
plum% samply record ~/.rubies/ruby-zjit/bin/ruby --zjit benchmarks/getivar.rb
ruby 3.5.0dev (2025-07-10T14:40:49Z master 51252ef8d7) +ZJIT dev +PRISM [arm64-darwin24]
itr: ... - 04:49 PM Revision b760afe2 (git): ZJIT: Improve asm comments for side exits (#13853)
- * ZJIT: Improve asm comments for side exits
* Use GuardType(Type) and GuardBitEquals(VALUE) - 04:41 PM Revision 77de6b4e (git): [DOC] Add ZJIT glossary table
- 04:41 PM Revision c0b9480b (git): [DOC] Add a few new terms to Ruby glossary
- 04:30 PM Revision bd162dc0 (git): ZJIT: Run validation between compiler passes in debug mode
- 04:30 PM Revision e53bfe21 (git): ZJIT: Fix missing find!() for SetIvar
- 04:30 PM Revision 0d7d87b4 (git): ZJIT: Gracefully handle iseq_name with NULL ISEQ
- 04:30 PM Revision e3456d61 (git): ZJIT: Don't stringify Function in ValidationError
- That's not the validator's responsibility; the caller can choose to
later. -
04:13 PM Bug #18903: Stack overflow signal handling seems to be triggered once and then not working after
- One observation I have is that there are ways to prevent this in application code:
```ruby
require 'json'
circular_reference_hash = {}.tap { |h| h[:self] = h }
# Globally
JSON.dump_default_options[:max_nesting] = 100
JSON.dump(circular... -
02:04 PM Bug #21509 (Closed): io/wait: IO#wait raises error when passed nil as timeout
- The [documentation of the method](https://ruby-doc.org/3.4.1/exts/io/wait/IO.html#method-i-wait) goes:
wait(timeout = nil, mode = :read) → self, true, or false
However, when passing `nil` in the first argument, it fails:
... -
10:45 AM Revision 12d44dbc (git): Use an invariant condition
- Cannot rule out the possibility that `crr->silent` is modified during
`func`. -
09:04 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- > The underlying premise is that a bug is far more likely to be in the user's Ruby code [...]
Yup, I can very very much understand this argument.
We actually have a feature on the datadog ruby profiler which we call "only my code" ... -
02:43 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- Let me clarify why the current behavior is generally preferred.
The underlying premise is that a bug is far more likely to be in the user's Ruby code than in the C extensions.
Therefore, a line like:
```
native-filenames-exampl... -
08:32 AM Revision 9760ec6f (git): [DOC] Move document only source to doc
-
06:26 AM Feature #21459 (Closed): Add Set C-API
- Feature added in commit:2ab38691a2683c992bf2886159094afd5e461233
-
06:24 AM Revision 0b23a8db (git): Update dependencies for addition of set.h to public headers
-
06:24 AM Revision 2ab38691 (git): Add Set C-API
- This should be a minimal C-API needed to deal with Set objects. It
supports creating the sets, checking whether an element is the set,
adding and removing elements, iterating over the elements, clearing
a set, and returning the size of t... -
06:24 AM Revision 08d4f789 (git): Rename some set_* functions to set_table_*
- These functions conflict with the planned C-API functions. Since they
deal with the underlying set_table pointers and not Set instances,
this seems like a more accurate name as well. -
06:19 AM Bug #21507 (Closed): Regexp considers variable repetition quantifiers invalid in lookbehind
- Applied in changeset commit:git|b2fdd26417d1539014c7af499ab1f9b398eca4c0.
----------
Lookbehind regexp must be fixed-length
Fixes [Bug #21507] -
03:36 AM Bug #21507 (Open): Regexp considers variable repetition quantifiers invalid in lookbehind
-
03:36 AM Bug #21507 (Feedback): Regexp considers variable repetition quantifiers invalid in lookbehind
- This is currently an intended implementation limitation.
This behavior comes from the specifications of Onigmo, which Ruby's regular expression engine is based on. The Onigmo documentation states the following about look-behinds:
`... -
02:48 AM Bug #21507 (Closed): Regexp considers variable repetition quantifiers invalid in lookbehind
- This is my first bug subscription, please feel free to tell me if I can do anything better.
# Description
Attempting to use "variable" repetition quantifiers (`?`, `+`,`*`,`{n,}`, ...) inside lookbehind anchors raises a **SyntaxErr... -
06:19 AM Revision b2fdd264 (git): Lookbehind regexp must be fixed-length
- Fixes [Bug #21507]
-
06:08 AM Revision 1317377f (git): ZJIT: A64: Have add/sub to SP be single-instruction
- Previously a missed optimization for add followed by mov. While we're
at it, have Add and Sub share the same match arm in arm64_split(). - 05:47 AM Revision 0058bee5 (git): Fix `heap-use-after-free` in `rb_getaddrinfo` (#13856)
- This change addresses the following ASAN error:
```
==1973462==ERROR: AddressSanitizer: heap-use-after-free on address 0x5110002117dc at pc 0x749c307c8a65 bp 0x7ffc3af331d0 sp 0x7ffc3af331c8
READ of size 4 at 0x5110002117dc thread T0
... -
05:45 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- The followings are also approved; changing an existing proc object to shareable should be prohibited.
> * raise on `Ractor.make_shareable(proc)`
> ...
-
05:43 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-07-10.md#feature-21039-ractormake_shareable-breaks-block-semantics-seeing-updated-captured-variables-of-existing-blocks-eregon
* `Ractor.shareable_proc { }` retu... -
05:09 AM Misc #21399 (Closed): DevMeeting-2025-07-10
-
05:09 AM Misc #21508 (Closed): DevMeeting-2025-08-21
- # The next dev meeting
**Date: 2025/08/21 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-08-21.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... - 01:15 AM Revision a02dcbfd (git): Remove accidentally committed method Module.gccct_clear_table
- This was probably meant to be only for debugging. It was introduced in
the big namespace on read commit: 382645d440d - 01:12 AM Revision 0e2bae82 (git): ZJIT: Print a message about ZJIT_RB_BUG when unused (#13852)
-
12:26 AM Bug #21503 (Closed): \p{Word} does not match on \p{Join_Control} while docs say it does
- https://github.com/ruby/ruby/pull/7711 has been merged
07/10/2025
-
10:57 PM Bug #21505 (Closed): [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
- Applied in changeset commit:git|6c66458070e2de45213f473ac30b431ebea81b9b.
----------
Fix rb_eSystemExit raised in Ractor
[Bug #21505]
Previously `Ractor.new { exit }.join` would hang because SystemExit was
special cased.
This commit ... -
10:57 PM Revision 6c664580 (git): Fix rb_eSystemExit raised in Ractor
- [Bug #21505]
Previously `Ractor.new { exit }.join` would hang because SystemExit was
special cased.
This commit updates this to take the same path as other exceptions,
which wraps the exception in a Ractor::RemoteError and does not end... - 09:10 PM Revision 470e11a4 (git): ZJIT: Mark Snapshot as having an output
- Other instructions use it as an operand and #13814 especially needs it
to have an output for validation. - 09:10 PM Revision 45be0e99 (git): ZJIT: Validate that each IR instruction appears at most once
- 08:40 PM Revision b1828cbb (git): ZJIT: Implement patch points on BOP redefinition (#13850)
- Co-authored-by: Max Bernstein <max@bernsteinbear.com>
- 07:11 PM Revision 214983bd (git): ZJIT: Add def-use validator via dataflow analysis (#13814)
- This PR adds a validator based on dataflow analysis to ZJIT. It checks that all uses are dominated by a GEN-DEF prior.
See issue https://github.com/Shopify/ruby/issues/591
This is especially useful in validating optimizations don't zap... - 07:08 PM Revision 9ab80a74 (git): ZJIT: Avoid optimizing locals on eval (#13840)
- * ZJIT: Avoid optimizing locals on eval
* Maintain the local state for eval -
03:56 PM Revision 9d41541b (git): Fix unused variable warnings in default.c in modular GC
- The asan and valgrind macros when BUILDING_MODULAR_GC don't use the variables
which could the compiler to emit unused variable warnings. -
03:18 PM Revision 1fb4929a (git): Make `rb_enc_autoload_p` atomic
- Using `encoding->max_enc_len` as a way to check if the encoding
has been loaded isn't atomic, because it's not atomically set
last.
Intead we can use a dedicated atomic value inside the encoding table. -
02:40 PM Revision 51252ef8 (git): [DOC] Tweaks for String#concat (#13836)
-
02:02 PM Revision a1acba6d (git): [DOC] Tweaks for String#codepoints
-
12:42 PM Revision 800de989 (git): [Bug #19417] Update version guard
-
12:35 PM Bug #21506 (Closed): Fix timeout in `Addrinfo.getaddrinfo` to actually take effect - Applied in changeset commit:git|cdeb9c4d7020d36f157fde57eb12108c2515f031.
----------
Fix timeout in Addrinfo.getaddrinfo to actually take effect (#13803)
[Bug #21506] Fix timeout in Addrinfo.getaddrinfo to actually take effect
This ch... - 12:35 PM Revision cdeb9c4d (git): Fix timeout in Addrinfo.getaddrinfo to actually take effect (#13803)
- [Bug #21506] Fix timeout in Addrinfo.getaddrinfo to actually take effect
This change fixes an issue where the timeout option in `Addrinfo.getaddrinfo` was not functioning as expected.
It also addresses a related issue where specifying ... -
12:28 PM Revision bd18238a (git): [Bug #19417] Make word prop match join_control ...
- ... to conform to UTS 18 as mentioned in https://bugs.ruby-lang.org/issues/19417#note-3
https://unicode.org/reports/tr18/#word states word should match join_control chars.
It currently does not:
```ruby
[*0x0..0xD799, *0xE000..0x10FFF... -
12:02 PM Feature #21454: "undefined method 'break' for an instance of Binding"
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> Use no-dbg.rb with `RUBYOPT=-rno-dbg` when you run without `rdbg`.
> ...
Interesting idea. Assuming that I should request this feature in rdbg project.
> BTW debug.gem supports specifying ... -
09:04 AM Feature #21454 (Feedback): "undefined method 'break' for an instance of Binding"
- In today's dev meeting, we emphasized that it's important to ensure `binding.break` (or `debugger`) is removed before release, so having it as a no-op is a bad idea.
----
BTW debug.gem supports specifying breakpoints by adding environm... -
08:57 AM Feature #21454: "undefined method 'break' for an instance of Binding"
- Use no-dbg.rb with `RUBYOPT=-rno-dbg` when you run without `rdbg`.
```ruby
class Binding
def break = nil
end
```
-
09:39 AM Bug #21503: \p{Word} does not match on \p{Join_Control} while docs say it does
- It looks `\p{Word}` is updated in TR#18 Version 15.
https://www.unicode.org/reports/tr18/tr18-15.html
The fix looks good. -
09:23 AM Bug #21456 (Rejected): IO.close does not work in a rescue IO::TimeoutError block.
- dE (dE Techno) wrote:
> not sure what signal it sends, it's undocumented
No signal is sent.
Send a signal by yourself if you want to stop the process.
Since your example invokes a grand child process, add `pgroup` option and send... -
08:56 AM Feature #21435 (Rejected): Kernel#then_try as a conditional #then
- From my point of view, it doesn't make the code clearer. Besides that, the core Ruby does not provide even `#try`.
Maybe ActiveSupport wants to add this method, but not in the core.
Matz.
-
08:53 AM Bug #21452 (Rejected): ARGS_SPLAT bytecode regression between 3.3 and 3.4
- I agree with @jeremyevans0 here. I consider this as an optimization.
Matz.
-
08:51 AM Feature #21386: Introduce `Enumerable#join_map`
- FWIW, this function is called `mapconcat` in Emacs: https://www.gnu.org/software/emacs/manual/html_node/elisp/Mapping-Functions.html#index-mapconcat
I once wanted this when I implemented shelljoin() and chose to just call map and join... -
08:38 AM Feature #21386 (Rejected): Introduce `Enumerable#join_map`
- I reject this proposal. Simply combine join and map at the moment.
I hope JIT inlining will remove intermediate objects in the future.
Matz.
-
02:54 AM Feature #21386: Introduce `Enumerable#join_map`
- https://github.com/ruby/dev-meeting-log/blob/master/2019/DevMeeting-2019-03-11.md
> [Feature #15323] Proposal: Add Enumerable#filter_map
> ...
That's why I was against it 🤦 -
08:51 AM Feature #20205: Enable `frozen_string_literal` by default
- Probably we would have Ruby4.0 in 2025, but I am not going to make frozen-string-literal default this year.
Matz.
-
08:45 AM Feature #21455 (Rejected): Add a block argument to Array#join
- It's fundamentally `join_map` we have rejected. Array#join should join, not mapping.
We are not going to add every enumerable method combined with map. `filter_map` is an exception.
Matz.
-
08:33 AM Feature #4539 (Rejected): Array#zip_with
- I don't think it's worth adding a new method.
Matz.
-
08:30 AM Feature #21346: Introduce `String#ensure_suffix`
- I don't think other candidates are better. Probably typical usage `str.ensure_suffix(".rb")` helps you understand the behavior.
Matz.
-
08:19 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- I'd like to have `Ractor.shareble_proc` and `Ractor.sharable_lambda`. See the agenda from 20250710 developer meeting.
Matz.
-
08:17 AM Feature #21459: Add Set C-API
- I accept the proposal.
Matz.
-
08:15 AM Feature #21442 (Assigned): Make tsort to bundled gems
- I got the approval from @akr at https://bugs.ruby-lang.org/issues/21399
I added warning for this at commit:65a0f46880ecb13994d3011b7a95ecbc5c61c5a0 -
07:48 AM Revision 65a0f468 (git): Warn to use tsort for Ruby 3.6 that will be released at 2026
-
06:45 AM Revision bec1ff62 (git): Sort `COMMONOBJS` alphabetically
-
06:40 AM Revision 8cc109a8 (git): [rubygems/rubygems] Update vendored resolv to 0.6.2
- https://github.com/rubygems/rubygems/commit/afbbc02763
-
05:16 AM Feature #17473: Make Pathname to embedded class of Ruby
- Regarding the original proposal, I'd accept making Pathname built-in, considering its wide accepting among the community, especially with Rails.
Whether to keep the built-in Pathname in the C implementation or implement it in Ruby is le... -
03:44 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- We know that signal handlers run in a trap context, but are there other ways this can happen? I was under the impression GC finalizers also run in a pseudo-trap context, preventing the use of Mutex too. Of course, using a mutex during GC...
-
12:28 AM Revision 581da51c (git): Fix whitespace on some RB_VM_LOCKING calls