Actions
Misc #21877
openDevMeeting-2026-03-17
Misc #21877:
DevMeeting-2026-03-17
Status:
Open
Assignee:
-
Description
The next dev meeting¶
Date: 2026/03/17 13:00-17:00 (JST)
Log: TBD
- Dev meeting IS NOT a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and other developers directly.
- Matz is a very busy person. Take this opportunity to ask him. If you can not attend, other attendees can ask instead of you (if attendees can understand your issue).
- We will write a record of the discussion in the file or to each ticket in English.
- All activities are best-effort (keep in mind that most of us are volunteer developers).
- The date, time and place of the meeting are scheduled according to when/where we can reserve Matz's time.
- DO NOT discuss then on this ticket, please.
Call for agenda items¶
If you have a ticket that you want matz and committers to discuss, please post it into this ticket in the following format:
* [Ticket ref] Ticket title (your name)
* Comment (A summary of the ticket, why you put this ticket here, what point should be discussed, etc.)
Example:
* [Feature #14609] `Kernel#p` without args shows the receiver (ko1)
* I feel this feature is very useful and some people say :+1: so let discuss this feature.
- It is recommended to add a comment by 2026/03/14. We hold a preparatory meeting to create an agenda a few days before the dev-meeting.
- The format is strict. We'll use this script to automatically create an markdown-style agenda. We may ignore a comment that does not follow the format.
- Your comment is mandatory. We cannot read all discussion of the ticket in a limited time. We appreciate it if you could write a short summary and update from a previous discussion.
Updated by mame (Yusuke Endoh) about 1 month ago
- Related to Misc #14770: [META] DevelopersMeeting added
Updated by synacker (Mikhail Milovidov) about 1 month ago
· Edited
- [Feature #21869] Add receive_all Method to Ractor API for Message Batching
- This feature is essential for high‑load services because message batching is a highly efficient technique for reducing the number of expensive I/O requests and minimizing context switches between Ractors and business logic
- The feature opens the way to vectorized message handlers, enabling batch processing of messages in a single handler invocation.
- The proposal has received positive feedback from the community on GitHub, Reddit, and Discord
- I have created a PR on GitHub: https://github.com/ruby/ruby/pull/16105
Updated by Earlopain (Earlopain _) 27 days ago
- [Feature #21875] Handling of trailing commas in lambda parameters (earlopain)
- Followup to Feature #19107 (Allow trailing comma in method signature)
- During implementation I noticed that lambdas in the style of
->()never came up - In addition to the ticket description, @Eregon (Benoit Daloze) created a good comparison in https://bugs.ruby-lang.org/issues/21875#note-2
- There are a few ways that a trailing comma could be handled but I think it would be best to just reject it. It's confusing and I don't think there is a use-case (if one comes up, we can reconsider).
Updated by tenderlovemaking (Aaron Patterson) 6 days ago
- [Feature #21942] Allow reading class variables (
@@foo) from non-main Ractors- Currently
@foois allowed to be read, but@@fooisn't allowed - Rails uses
@@fooso I'd like to make them allowed
- Currently
Updated by jneen (Jeanine Adkisson) 6 days ago
· Edited
- [Bug #21870] Regexp: Warnings when using slightly overlapping
\p{...}classes (jneen)- Warning spam on code that definitely isn't a mistake (
/[\p{Word}\p{S}]/and other overlapping properties) - Noted some possible ways forward in https://bugs.ruby-lang.org/issues/21870#note-20, including an easy path that I'm happy to take on
- It looks like this was discussed in DevMeeting 2026-02-12 (https://github.com/ruby/dev-meeting-log/blob/master/2026/DevMeeting-2026-02-12.md, near the bottom), unclear if any decision was made
- Could use some clarity on the best path forward, both short-term and long-term
- Warning spam on code that definitely isn't a mistake (
Updated by jpl-coconut (Jacob Lacouture) 1 day ago
· Edited
- [Bug #21685] Unnecessary context-switching, especially bad on multi-core machines. (jpl-coconut)
- Ruby exhibits excessive context switching around fast syscalls, which compromises performance. Microbenchmarks (linked from issue and PR) show the impact in isolation.
- A small (+68 LOC) PR fixes the issue. Microbenchmark results are included. Two production rails apps (shopify and github) see ~10% overall perf improvements with the fix, which seem likely to generalize to others.
- How to move this forward?
- How to better facilitate future contributions/discussions related to concurrency/perf, where tradeoffs my be more subtle.
Updated by byroot (Jean Boussier) about 15 hours ago
- [Feature #21861] C API: expose
ruby_xfree_sized,ruby_xrealloc_sized, etc (byroot)- C23 added
void free_sized(void *ptr, size_t old_size). - It has both speed and correctness benefits.
- Several common allocators already support it, including latest
glibcand the very popularjemalloc. - Maps well with
ruby_sized_xfreeused internally to provide the freed size to GC statistics. - I'd like to expose
ruby_xfree_sizedandruby_xrealloc_sizedto C extensions so they can make use of it too. - I'd also like to expose
RB_FREE_SIZED,RB_FREE_SIZED_NandRB_REALLOC_SIZED_Nmacros for convenience.
- C23 added
- [Feature #21853] Make Embedded TypedData a public API (byroot)
-
RUBY_TYPED_EMBEDDABLEwas introduced in 3.3 as private API which help reduce memory usage and sped up numerous core types. - I'd like to expose this capability to C extensions, so they can get the same benefits.
- I think the API is currently fine, but we can make change before making it public if desired.
-
- [Feature #21852] New improved allocator function interface (byroot)
- The current
typedef VALUE (*rb_alloc_func_t)(VALUE klass);interface is too limited for Ractor and Embedded Typed Data - When duping or cloning some objects, the allocator do need to receive the source object to allocate in the correct size pool.
- I propose to introduce
typedef VALUE (*rb_copy_alloc_func_t)(VALUE klass, VALUE other); - I have a PR that does so without breaking backward compatibility: https://github.com/ruby/ruby/pull/15795
- I believe @ko1 (Koichi Sasada) would like to introduce more change for Ractors.
- The current
Actions