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)
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)
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)
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)
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)
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)
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)
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)
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)