aboutsummaryrefslogtreecommitdiffstats
path: root/benchmark
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2020-07-03 09:52:35 -0700
committerGitHub <noreply@github.com>2020-07-03 09:52:35 -0700
commitf3a0d7a2035e9f5e0c70effd55732607e3def263 (patch)
tree697ff4e3c14edb8005ea2c361f026cec557fa1c6 /benchmark
parente8010c7401764f54173ffbe8c2bde38cd6d216fa (diff)
downloadruby-f3a0d7a2035e9f5e0c70effd55732607e3def263.tar.gz
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.
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/kernel_tap.yml6
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