diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2020-07-03 09:52:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-03 09:52:35 -0700 |
commit | f3a0d7a2035e9f5e0c70effd55732607e3def263 (patch) | |
tree | 697ff4e3c14edb8005ea2c361f026cec557fa1c6 /benchmark | |
parent | e8010c7401764f54173ffbe8c2bde38cd6d216fa (diff) |
Rewrite Kernel#tap with Ruby (#3281)
* Rewrite Kernel#tap with Ruby
This was good for VM too, but of course my intention is to unblock JIT's inlining of a block over yield
(inlining invokeyield has not been committed though).
* Fix test_settracefunc
About the :tap deletions, the :tap events are actually traced (we already have a TracePoint test for builtin methods),
but it's filtered out by tp.path == "xyzzy" (it became "<internal:kernel>"). We could trace tp.path == "<internal:kernel>"
cases too, but the lineno is impacted by kernel.rb changes and I didn't want to make it fragile for kernel.rb lineno changes.
Notes
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/kernel_tap.yml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/benchmark/kernel_tap.yml b/benchmark/kernel_tap.yml new file mode 100644 index 0000000000..4dcbb31b4d --- /dev/null +++ b/benchmark/kernel_tap.yml @@ -0,0 +1,6 @@ +prelude: | + obj = Object.new + x = nil +benchmark: + kernel_tap: obj.tap { |o| x = o } +loop_count: 20000000 |