Project

General

Profile

Actions

Misc #22221

closed

DevMeeting-2026-08-06

Misc #22221: DevMeeting-2026-08-06

Added by mame (Yusuke Endoh) 25 days ago. Updated 7 days ago.

Status:
Closed
Assignee:
-
[ruby-core:126210]

Description

The next dev meeting

Date: 2026/08/06 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2026/DevMeeting-2026-08-06.md

  • 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/08/03. 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.

Related issues 1 (1 open0 closed)

Related to Ruby - Misc #14770: [META] DevelopersMeetingOpenActions

Updated by mame (Yusuke Endoh) 25 days ago Actions #1

  • Related to Misc #14770: [META] DevelopersMeeting added

Updated by shugo (Shugo Maeda) 25 days ago Actions #2

  • [Feature #22213] Allow no-argument and chained calls of Proc#refined (shugo)
    • A no-argument call returns the receiver itself, and a chained call returns a Proc with additional refinements: prc.refined(*ms).refined(*ns) is equivalent to prc.refined(*ms, *ns)
    • The copy of the block is deferred until the first call, so a Proc that is never called is never copied, and a chained call is memoized like a single call with all the modules
    • I'd like matz to approve this behavior
  • [Feature #22205] Deprecate ruby2_keywords (shugo)
    • I'd like to deprecate and eventually remove ruby2_keywords; feedback on the ticket is positive, and the proposed schedule is in the description
    • Should Hash.ruby2_keywords_hash? and Hash.ruby2_keywords_hash be deprecated one phase later than the marking methods (they are needed as long as flagged hashes exist), or on the same schedule?
  • [Feature #9779] Add Module#descendants (shugo)
    • Module#descendants returns the classes and modules that inherit or include the receiver
    • Is it OK to add it to Module, not only Class?
    • Is it OK that the return value does not include self?
  • [Feature #22132] Scala-like for comprehensions (shugo)
    • At the previous dev meeting, matz said he was interested and wanted to take time to consider it
    • Does matz have any opinions or questions at this point?

Updated by Eregon (Benoit Daloze) 24 days ago Actions #3 [ruby-core:126219]

  • [Feature #22212] Add Thread::Backtrace::Location#source_range (eregon)
    • Proposes a portable API returning a Ruby::SourceRange for an exception's backtrace_locations or for caller_locations.
    • This gives tools stable start/end line/column coordinates without version-specific node_id values (examples of node_id instability).
    • Examples which could use this API instead of currently the CRuby-specific RubyVM::AST.node_id_for_backtrace_location, and therefore work reliably on TruffleRuby/JRuby:
      Prism.find(Thread::Backtrace::Location), Rails exception printing, error_highlight, power_assert.
    • It does not require the Prism gem or create Prism::Node objects, separating source-code location from parsing that code into an AST.
    • The implementation reparses on demand to avoid persistent memory overhead, uses source-hash validation based on @mame (Yusuke Endoh) 's work, and supports RubyVM.keep_script_lines = true to avoid re-reading files from disk.
    • Extensive specs ensure Prism and parse.y return identical user-facing coordinates, including for blocks.
    • I am looking for matz's approval for the new method.

Updated by Eregon (Benoit Daloze) 24 days ago · Edited Actions #4 [ruby-core:126220]

  • [Bug #22197] Backtraces show methods which do not exist (eregon)
    • As the title says, backtraces sometimes list methods which do not exist, because of mixing definition name with run-time owner (Method#owner).
    • Since we print file, line and method name from the original definition (def), I think we should show the original module too.
    • Let's fix it? PR: https://github.com/ruby/ruby/pull/17963

Updated by jaruga (Jun Aruga) 24 days ago · Edited Actions #5 [ruby-core:126221]

  • [Feature #22068] Adding post-quantum cryptography (PQC) support across Ruby standard libraries (jaruga)
    • I explain the feature with my motivations, and answer questions from other developers.
    • I want to share how to proceed for possible target libraries to modify: ruby/rubygems, bundler, ruby/net-http, ruby/open-uri, ruby/spec, ruby/drb, ruby/rbs.

Updated by hasumikin (hitoshi hasumi) 22 days ago Actions #6 [ruby-core:126224]

  • [Feature #22118] Introduce Basic Bit Operations into String (hasumikin)
    • https://bugs.ruby-lang.org/issues/22118#note-6
      • Is it OK to have a temporary asymmetry where String#bit_count doesn't take a bit-order keyword?
      • Is it OK to raise an ArgumentError for a bit offset size that cannot be represented internally?

Updated by byroot (Jean Boussier) 21 days ago Actions #7 [ruby-core:126229]

  • [Feature #22222] Expose a C API equivalent of RubyVM::InstructionSequence.load_from_binary (byroot)
    • It would allow Bootsnap to directly load iseq from C without copying bytes into a string.
    • rb_str_new_static exists but is impractical and dangerous.

Updated by ko1 (Koichi Sasada) 21 days ago Actions #8 [ruby-core:126239]

  • [Feature #22226] Ractor: class/module ownership -- restrict modification to the Ractor that created it (ko1)
    • This proposal reduce the exceptions. In most case, there are no problem.
  • [Feature #22227] Per-Ractor GC: collect each Ractor's heap locally, stop the world only when needed (ko1)
    • There are several behavior changes, so I want to clear it is acceptable or not.

Updated by hsbt (Hiroshi SHIBATA) 21 days ago Actions #9 [ruby-core:126242]

  • [Bug #18947] Unexpected Errno::ENAMETOOLONG on Windows

    • This fix resolved the real-world issue. But my fix used undocumented feature. Is it okay?
  • [Bug #19378] Windows: Use less syscalls for faster require of big gems

    • Is it okay to merge? Is there any objection?

Updated by jhawthorn (John Hawthorn) 20 days ago Actions #10 [ruby-core:126260]

  • [Bug #22216] Special variables (ex. Regexp backref and IO lastline) are thread-unsafe in some cases, incompatible with Ractor
    • Are we okay making this either thread-local or fiber-local? It's already Fiber-local at the top-level (only inside of the Thread.new {...} or Fiber.new {...} block)
    • Do we want this Fiber-local (my preference, but more potential compatibility issues), or Thread-local
    • Prototype implementation https://github.com/ruby/ruby/pull/18200

Updated by nobu (Nobuyoshi Nakada) 20 days ago · Edited Actions #11 [ruby-core:126262]

  • [Feature #22215] Introduce narrow internal interfaces for bundled extensions
    • Add narrow internal interfaces for the bundled extensions
      • internal/coverage.h
      • internal/objspace.h
    • Remove the transitive inclusion of vm_core.h from internal/gc.h

Updated by Eregon (Benoit Daloze) 19 days ago · Edited Actions #12 [ruby-core:126270]

  • [Bug #22200] ObjectSpace._id2ref can return a different object than the id's owner on Ruby 4.0 (stale id2ref_tbl entry for objects with generic fields) (eregon)
    • _id2ref is broken on Ruby 4.0, it returns internal objects, corrupt objects, and doing anything on them might segfault.
    • We have seen many crashes caused by this in the datadog gem. They all happen on Ruby 4.0, no issue on Ruby 3.x & 2.x.
    • _id2ref has been removed in Ruby 4.1, but nevertheless I believe we should fix this (or remove it in 4.0 but that's quite incompatible).
    • Maybe we could use the older implementation for _id2ref, as in Ruby 3.4 and earlier? That seems safer.
    • There is possibly a more direct fix if that's preferred.
    • UPDATE: talking to @byroot (Jean Boussier) he said reverting isn't really an option. Too big of a change for a backport, and would impact Ractor perf.
    • UPDATE: I will try to find a fix.

Updated by Eregon (Benoit Daloze) 19 days ago Actions #13 [ruby-core:126275]

Updated by Eregon (Benoit Daloze) 19 days ago Actions #14 [ruby-core:126277]

  • [Misc #22230] Should Ruby specs define byte oriented read behavior when the character buffer is not empty? (eregon)
    • Is the byte oriented read for character buffered IO (IOError) behavior intentional, or an implementation detail of CRuby?
    • This edge case means a lot of complexity and the addition of a "character buffer" just for this (in addition to the byte buffer). It's unclear to me if that should be spec'd, I'm currently leaning towards no.
    • Do we envision this changing in the future for CRuby? Maybe by doing the reverse conversion on ungetc and if that fails raise an error? It would be a nice simplification IMO, and only change behavior in very weird (possibly invalid) edge cases.
    • StringIO doesn't have this behavior.

Updated by himura467 (Akito Shitara) 19 days ago Actions #15 [ruby-core:126282]

  • [Feature #22231] Add IO::Buffer#index (himura467)
    • IO::Buffer has no search primitive, so finding a delimiter means copying the region out with #get_string or looping over #get_value(:U8) in Ruby. Proposes buffer.index(object, offset = 0, length = size - offset), where object is an Integer byte, a String, or another IO::Buffer
    • Should an out-of-range offset/length raise ArgumentError (as the most of IO::Buffer range methods do) or return nil (as String#index does)?
    • Should an Integer outside 0..255 raise, or be masked as #clear and String#setbyte do?

Updated by himura467 (Akito Shitara) 19 days ago Actions #16 [ruby-core:126283]

  • [Feature #22186] Increase the embeddable size limit for substrings created by str_subseq() (himura467)
    • str_subseq() copies a sharable substring only while it fits in the tiny slot. The proposal copies up to a 128 byte slot, keeping the current cutoff when the source is frozen or already shared.
    • The cutoff is heuristic. Is it acceptable?
    • PR: https://github.com/ruby/ruby/pull/17723

Updated by chucke (Tiago Cardoso) 12 days ago Actions #17 [ruby-core:126377]

Updated by mame (Yusuke Endoh) 7 days ago Actions #18

  • Description updated (diff)
  • Status changed from Open to Closed
Actions

Also available in: PDF Atom