TracePoint for basic operation redefinition
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.
Updated by ko1 (Koichi Sasada) over 4 years ago
- Status changed from Assigned to Rejected
Sorry for late response.
Basically, TracePoint should be implementation independent.
:c_call, :c_return are not good events)
The list of "basic operation" is highly implementation dependent information.