General

Profile

shugo (Shugo Maeda)

  • Login: shugo
  • Registered on: 05/08/2008
  • Last sign in: 08/28/2026

Issues

open closed Total
Assigned issues 3 158 161
Reported issues 3 92 95

Projects

Project Roles Registered on
Ruby Committer, Infrastructure team 05/28/2008

Activity

09/02/2026

08:28 AM Ruby Misc #22249: DevMeeting-2026-09-10
* [Bug #22276] alias in a module falls back to Object even in classes not inheriting from Object (shugo)
* `alias` in a module binds Object's method at alias time, so it is broken in classes not inheriting from Object; this assumes Obj...
shugo (Shugo Maeda)

08/28/2026

12:55 PM Ruby Bug #22276: alias in a module falls back to Object even in classes not inheriting from Object
I implemented option 2: https://github.com/ruby/ruby/pull/18553
When `alias` in a module does not find the method in the module, it now creates a ZSUPER method entry whose original name is the aliased method. `Object` is searched only t...
shugo (Shugo Maeda)
09:55 AM Ruby Bug #22276 (Open): alias in a module falls back to Object even in classes not inheriting from Object
When `alias` (or `alias_method`) is used in a module and the method is not found in the module, `alias` searches the method from `Object`. So a module can alias a method of `Kernel` or `Object`, and the alias works even if the module is ... shugo (Shugo Maeda)
09:33 AM Ruby Bug #22273: Aliasing doesn't interact well with Module#prepend
I agree with Jeremy, and would like to point out that Ruby already has exactly this semantics for refinements.
If the prepend in the example is replaced with a refinement, we get the expected behavior:
```ruby
using Module.new {
...
shugo (Shugo Maeda)

08/19/2026

05:19 PM Ruby Revision a51163ff (git): Register clones with their superclass's subclass list
Since a2531ba29303fab468c8084c07149040a7871219, class_associate_super()
maintains subclass lists only for direct T_CLASS -> T_CLASS links. When
a class that includes or prepends a module is cloned, rb_mod_init_copy()
connects the clone (...
shugo (Shugo Maeda)

08/07/2026

04:56 AM Ruby Revision de56b5e2 (git): Make Module#descendants follow the ancestors of the current box
The subclasses lists are kept only in the prime classext and thus shared
by all boxes, so a module included into a builtin class in a box was
reported as a descendant from other boxes, where the include is not in
the ancestors of the cla...
shugo (Shugo Maeda)
02:24 AM Ruby Feature #14394 (Closed): Class.descendants
Module#descendants was added instead of Class#descendants, so I'm closing this issue.
See #9779 for details.
shugo (Shugo Maeda)

08/06/2026

02:06 PM Ruby Feature #9779 (Closed): Add Module#descendants
Applied in changeset commit:git|96589334512bc960fabb5908ce8cc25a245ce090.
----------
[Feature #9779] Add Module#descendants
Module#descendants returns an array of classes and modules that have
the receiver in their ancestors; it is the...
shugo (Shugo Maeda)
02:05 PM Ruby Revision 96589334 (git): [Feature #9779] Add Module#descendants
Module#descendants returns an array of classes and modules that have
the receiver in their ancestors; it is the inverse of Module#ancestors.
The receiver itself, singleton classes, and refinements are not included.
Co-Authored-By: Claud...
shugo (Shugo Maeda)
01:29 PM Ruby Feature #22213: Allow no-argument and chained calls of Proc#refined
I forgot to mention the change to Proc#==: it now compares not only the underlying iseq but also the sequence of modules passed to Proc#refined.
The behavior of Proc#== is unchanged for Procs that don't use Proc#refined.
In CRuby, `prc...
shugo (Shugo Maeda)

Also available in: Atom