Feature #13265
closedTracePoint for basic operation redefinition
Description
Add TracePoint for basic operation redefinition.
This infrequent event can have an outsized performance impact by eliminating a lot of the optimization that exists in the Ruby interpreter.
In order to know when these sorts of things happen, this patch adds a trace point that will fire when a basic operation is redefined.
The event data can be accessed by calling #basic_operation_redefined, which returns a hash of the class being modified and the basic operation that's been redefined.
This patch may also be useful for JIT compilers that want to speculate on basic operation definitions.
This is my first patch to Ruby, and I'd welcome and appreciate any feedback or desired changes.
Files
Updated by shyouhei (Shyouhei Urabe) over 7 years ago
- Status changed from Open to Assigned
- Assignee set to ko1 (Koichi Sasada)
Updated by ko1 (Koichi Sasada) over 7 years ago
- Status changed from Assigned to Rejected
Sorry for late response.
Basically, TracePoint should be implementation independent.
(so that :c_call, :c_return
are not good events)
The list of "basic operation" is highly implementation dependent information.