[#122258] [Ruby Misc#21367] Remove link to ruby-doc.org from www.ruby-lang.org/en/documentation/ — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>
Issue #21367 has been reported by p8 (Petrik de Heus).
11 messages
2025/05/23
[ruby-core:122175] [Ruby Misc#21348] Should Tracepoint track retry as another "call" event?
From:
"karthikc (Karthik Chandrasekariah) via ruby-core" <ruby-core@...>
Date:
2025-05-17 23:10:04 UTC
List:
ruby-core #122175
Issue #21348 has been reported by karthikc (Karthik Chandrasekariah). ---------------------------------------- Misc #21348: Should Tracepoint track retry as another "call" event? https://bugs.ruby-lang.org/issues/21348 * Author: karthikc (Karthik Chandrasekariah) * Status: Open ---------------------------------------- When `retry` is executed in a method, Tracepoint records it as a new "call" event. ``` ruby # tracepoint-retry.rb # method that retries once def foo attempts ||= 1 raise "Fail" if attempts == 1 rescue attempts += 1 retry end trace = TracePoint.new(:call, :return) do |tp| p [tp.event, tp.method_id] end trace.enable foo ``` ``` shell $ ruby -v ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-darwin24] $ ruby tracepoint-retry.rb [:call, :foo] [:call, :foo] [:return, :foo] ``` It results in multiple "call" events and a single "return" event. Since the `retry` doesn't technically leave and re-enter the method, should we change Tracepoint to not fire the second "call" event? Context - I am building a library that tracks everything that happened in a block of code. This behavior makes it look like `foo` was called within `foo` but the outer call never returned/completed. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/