General

Profile

luke-gru (Luke Gruber)

  • Login: luke-gru
  • Email: luke.gru@gmail.com
  • Registered on: 08/19/2011
  • Last sign in: 10/20/2026

Issues

open closed Total
Assigned issues 3 27 30
Reported issues 14 56 70

Projects

Project Roles Registered on
Ruby Committer 06/19/2025

Activity

10/20/2026

05:31 PM Ruby Bug #22453: GET_EC() may break when the native thread switches under M:N threads
I agree to make noinline the default for 4.1. Maybe we can use one of the alternatives for static x86 builds at a later time. I think the reason `GET_EC()` is a hotspot is not only the dynamic TLS access but the compiler optimizations th... luke-gru (Luke Gruber)
03:12 AM Ruby Bug #22453: GET_EC() may break when the native thread switches under M:N threads
Something like this should definitely work too, and it's arguably safer as it doesn't rely on the compiler's optimizations.
```patch
+ // Under M:N threads the native thread can change in the middle of a C
+ // function. The comp...
luke-gru (Luke Gruber)
02:54 AM Ruby Bug #22453: GET_EC() may break when the native thread switches under M:N threads
I agree something needs to be done about this. I wonder if something like this would work (it appears to):
```patch
+// With -fPIC, the default TLS model (general-dynamic) gets the address of a
+// TLS variable from __tls_get_addr()...
luke-gru (Luke Gruber)
02:28 PM Ruby Bug #22457 (Open): Implicit Ractor shareability for frozen objects is buggy
## Background
To share objects between Ractors without passing them explicitly with `Ractor#send`, you can use shareable objects. Certain objects are always shareable (such as nil, true, false, Symbols, etc) but most aren't. To make a...
luke-gru (Luke Gruber)

10/13/2026

02:34 PM Ruby Bug #22419: [BUG] "rb_objspace_reachable_objects_from_local: set is owned by another Ractor" when a non-main Ractor reads a class instance variable since f0439cdfa7
Thanks for the report. We're working on fixing this and I've created a [PR](https://github.com/ruby/ruby/pull/19283) for it. We've realized that the way Ractor shareability is checked when the object is not shareable but frozen is curren... luke-gru (Luke Gruber)

09/30/2026

06:34 PM Ruby Bug #22398: `alias_method` over a bmethod fails `rb_vm_check_ints` assertion after a Ractor has been created
Thanks for reporting this. I have a [fix for this](https://github.com/ruby/ruby/pull/19146) but I'll need to discuss it with others first.
If you see other assertion failures like this in Ruby 4.1.0dev with RUBY_DEBUG on, these failur...
luke-gru (Luke Gruber)

09/04/2026

05:03 PM Ruby Bug #22276: alias in a module falls back to Object even in classes not inheriting from Object
I think nothing should be decided on this in isolation. We should discuss this and [22273](https://bugs.ruby-lang.org/issues/22273) together, as they are related as @shugo mentions. luke-gru (Luke Gruber)

09/03/2026

09:28 PM Ruby Bug #22287: Prism aborts in pm_newline_list_append when requiring a file after fork
I see that the return value of `pm_newline_list_init` is never checked (whether xcalloc succeeded), and on my machine (Arm64 macOS) `xcalloc` is plain old `calloc`, so it can fail without raising. Could this have anything to do with it?... luke-gru (Luke Gruber)

08/27/2026

06:24 PM Ruby Bug #22273 (Open): Aliasing doesn't interact well with Module#prepend
Currently, aliasing doesn't interact well with `Module#prepend` in my opinion.
### Example
```ruby
module Kernel
prepend(Module.new do
def require(feature)
puts "requiring feature (prepend): #{feature}"
super...
luke-gru (Luke Gruber)

08/26/2026

02:47 PM Ruby Bug #22263: NoMethodError: super: no superclass method 'require' for main — raised in a forked child process after a Ractor has exited in the parent (bisected to c59c4d717a)
I have a reproduction showing the issue:
```ruby
module M
def foo
print "M#foo(orig)"
end
end
class C; include M; end
M.prepend(Module.new do
def foo
print "P#foo("
super
print ")"
end
end)
C.new....
luke-gru (Luke Gruber)

Also available in: Atom