Feature #13265

TracePoint for basic operation redefinition

Added by magaudet (Matthew Gaudet) over 3 years ago. Updated over 3 years ago.

Target version:


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.


0001-Add-TracePoint-for-basic-operation-redefinition.patch (6.13 KB) 0001-Add-TracePoint-for-basic-operation-redefinition.patch Patch for feature magaudet (Matthew Gaudet), 03/01/2017 02:40 PM

Updated by shyouhei (Shyouhei Urabe) over 3 years ago

  • Assignee set to ko1 (Koichi Sasada)
  • Status changed from Open to Assigned

Updated by ko1 (Koichi Sasada) over 3 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.

Also available in: Atom PDF