General

Profile

matz (Yukihiro Matsumoto)

  • Login: matz
  • Email: matz@ruby.or.jp
  • Registered on: 05/09/2008
  • Last sign in: 12/16/2025

Issues

open closed Total
Assigned issues 144 694 838
Reported issues 1 30 31

Projects

Project Roles Registered on
Ruby Owner, Committer 05/18/2008

Activity

09/12/2026

11:36 PM Ruby Feature #22274: Make `IO::Buffer` no longer experimental.
Two points on the semantics.
**Slices.** I agree with Eregon that a slice should track a logical `[offset, length)` range of its source, not an absolute address. With address-based validation, a reallocation that lands overlapping but...
matz (Yukihiro Matsumoto)

09/11/2026

03:32 AM Ruby Bug #22216: Special variables (ex. Regexp backref and IO lastline) are thread-unsafe in some cases, incompatible with Ractor
You are right that the blocking based rule does not work, since fibers for enumerators are non-blocking. I withdraw that idea. I agree that plain Fiber-local should be the default.
But I still think `e.next` is a real problem. The sam...
matz (Yukihiro Matsumoto)
02:07 AM Ruby Misc #22272: Propose Kevin Menard (@nirvdrum) as a core committer
+1 matz (Yukihiro Matsumoto)
02:07 AM Ruby Feature #22297: Module#method_defined? should have an `include_private` argument
Accepted. `method_defined?(name, inherit = true, include_all = false)` looks good.
I considered adding a new method instead, but the only difference would be visibility, and I couldn't find a good name for it. An optional positional a...
matz (Yukihiro Matsumoto)

09/10/2026

11:38 PM Ruby Feature #22238 (Open): String#tr to take a Hash for multi-character replacements
Reopened. I am satisfied with the spec, but the current implementation (master 3742091) has bugs.
```ruby
"hello".tr("x" => "y") #=> nil (should be "hello")
"hello".tr({}) #=> nil (should be "hello")
s = +"hello"
s.t...
matz (Yukihiro Matsumoto)
02:49 PM Ruby Feature #22266: Stop warning for duplicate keywords in splatted literal hashes
I think the current behavior is slightly better. In `{h: 1, **{h: 1}}`, the overwrite is always obvious from the source, so warning about it is a consistent attitude. Whether a warning is emitted should not depend on whether the implemen... matz (Yukihiro Matsumoto)
10:13 AM Ruby Feature #22279: Region (Length / Range) Arguments for String Bit Operations
Accepted.
Two notes:
* The second positional argument of `bit_set`/`bit_clear`/`bit_flip` is always a length. Setting bits to a given value is the role of `bit_put`, which we may consider later.
* Now that `bit_count` takes a regi...
matz (Yukihiro Matsumoto)
10:01 AM Ruby Bug #22291: Instance variables should be forbidden on Ractor-shareable objects
Accepted. I agree that freezing means the object's own state is immutable, not just its instance variables, so we should not freeze these objects. Forbidding instance variables on them is the right approach.
Please define it as an inv...
matz (Yukihiro Matsumoto)
09:53 AM Ruby Bug #22273: Aliasing doesn't interact well with Module#prepend
I accept Jeremy's proposal. `alias` should look up the method from the origin class, so it only sees the methods of the class/module itself and its ancestors. Aliasing a method that exists only in a prepended module should raise `NameErr... matz (Yukihiro Matsumoto)
06:44 AM Ruby Bug #22276: alias in a module falls back to Object even in classes not inheriting from Object
The root cause is that `alias` in a module treats methods defined in `Object` specially. This made sense in Ruby 1.8, where every class had `Object` as an ancestor, but it contradicts `BasicObject` introduced in 1.9.
So I'd like to re...
matz (Yukihiro Matsumoto)

Also available in: Atom