General

Profile

matz (Yukihiro Matsumoto)

  • Login: matz
  • Email: matz@ruby.or.jp
  • Registered on: 05/09/2008
  • Last sign in: 10/08/2026

Issues

open closed Total
Assigned issues 143 695 838
Reported issues 1 30 31

Projects

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

Activity

Today

04:40 AM Ruby Feature #22431: Add `IO#unpack` and `IO#unpack1`
I understand the need. Reading length-prefixed messages from a stream is common, and doing it efficiently in Ruby is hard today.
But I don't want to bring the whole `unpack` template to IO. As @mame pointed out, `X`, `@` and `*` assum...
matz (Yukihiro Matsumoto)

10/08/2026

07:19 AM Ruby Feature #22379: Remove prism mismatch warning from `#syntax_tree`
Accepted.
Matz.
matz (Yukihiro Matsumoto)

10/07/2026

09:01 AM Ruby Feature #22312: Add parent directory operations and recursive file removal
I like the direction. `mkdir -p` and `rm -r` are common enough to be in core, and doing the recursive removal with `openat` and `unlinkat` is a real improvement over what FileUtils can do.
* `Dir.mkdir(path, parents: true)` and `perm:...
matz (Yukihiro Matsumoto)
08:54 AM Ruby Bug #22328: Should IO#wait_priority be deprecated and then removed?
You are right, it was left by mistake. Let's deprecate `IO#wait_priority` in 4.1 with a warning and remove it in a later release. `io.wait(IO::PRIORITY, timeout)` does the same thing.
Matz.
matz (Yukihiro Matsumoto)
08:52 AM Ruby Feature #22274: Make `IO::Buffer` no longer experimental.
About `freeze`: I still think a frozen buffer should refuse modification through that object, including its bytes. That is what `freeze` means for other core classes. Even a frozen `File` raises FrozenError on `write`, though its data li... matz (Yukihiro Matsumoto)
08:43 AM Ruby Feature #11817 (Closed): map.parallel
Thank you for bringing a concrete use case.
For I/O-bound work like yours, this already works today:
```ruby
results = items.map { |item| Thread.new { process(item) } }.map(&:value)
```
Beyond that, a built-in method has to de...
matz (Yukihiro Matsumoto)
08:38 AM Ruby Feature #22404 (Closed): Make Data (and/or Struct, etc.) true "first-class citizens" and thank you!
Thank you for the kind words.
This is the same proposal as #20993, and my opinion has not changed. It is too small an issue to add new syntax for. Please use one of the existing forms you listed.
Matz.
matz (Yukihiro Matsumoto)
08:20 AM Ruby Feature #22379: Remove prism mismatch warning from `#syntax_tree`
I don't want to simply remove the warning. Silently returning a node that does not correspond to the running code is dangerous, especially when the tree is used to generate something and not just to show a message.
How about separatin...
matz (Yukihiro Matsumoto)
07:32 AM Ruby Feature #22376: Undefine the allocator for Class
Accepted. An uninitialized class is of no use, so there is no reason to allow `Class.allocate`.
I leave the details to you, including whether it should raise NoMethodError like `Module.allocate` or TypeError like `Proc.allocate`.
M...
matz (Yukihiro Matsumoto)
07:27 AM Ruby Bug #22305: Ruby::Box: statically linked prism loads in only one box
I prefer option 1.
In Box, things defined by the interpreter are shared, and things loaded by `require` belong to each box. Option 1 keeps that model as it is, and it is also what #19900 originally described. Option 2 makes every proc...
matz (Yukihiro Matsumoto)

Also available in: Atom