[前][次][番号順一覧][スレッド一覧]

ruby-changes:66346

From: Hiroshi <ko1@a...>
Date: Tue, 25 May 2021 13:14:09 +0900 (JST)
Subject: [ruby-changes:66346] ab3266ea5c (master): Removed tracer from ruby repo

https://git.ruby-lang.org/ruby.git/commit/?id=ab3266ea5c

From ab3266ea5c2c45b6e0ce9ba377a035710cb4fd1b Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Mon, 24 May 2021 18:20:07 +0900
Subject: Removed tracer from ruby repo

---
 doc/maintainers.rdoc      |   4 -
 doc/standard_library.rdoc |   1 -
 lib/tracer.rb             | 292 ----------------------------------------------
 lib/tracer/tracer.gemspec |  25 ----
 test/test_tracer.rb       | 234 -------------------------------------
 tool/sync_default_gems.rb |   1 -
 6 files changed, 557 deletions(-)
 delete mode 100644 lib/tracer.rb
 delete mode 100644 lib/tracer/tracer.gemspec
 delete mode 100644 test/test_tracer.rb

diff --git a/doc/maintainers.rdoc b/doc/maintainers.rdoc
index b453a92..6f69ffc 100644
--- a/doc/maintainers.rdoc
+++ b/doc/maintainers.rdoc
@@ -277,10 +277,6 @@ Yukihiro Matsumoto (matz) https://github.com/ruby/ruby/blob/trunk/doc/maintainers.rdoc#L277
   _unmaintained_
   https://github.com/ruby/tmpdir
   https://rubygems.org/gems/tmpdir
-[lib/tracer.rb]
-  Keiju ISHITSUKA (keiju)
-  https://github.com/ruby/tracer
-  https://rubygems.org/gems/tracer
 [lib/tsort.rb]
   Tanaka Akira (akr)
   https://github.com/ruby/tsort
diff --git a/doc/standard_library.rdoc b/doc/standard_library.rdoc
index e4418ae..7300b72 100644
--- a/doc/standard_library.rdoc
+++ b/doc/standard_library.rdoc
@@ -72,7 +72,6 @@ Tempfile:: A utility class for managing temporary files https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L72
 Time:: Extends the Time class with methods for parsing and conversion
 Timeout:: Auto-terminate potentially long-running operations in Ruby
 tmpdir.rb:: Extends the Dir class to manage the OS temporary file path
-Tracer:: Outputs a source level execution trace of a Ruby program
 TSort:: Topological sorting using Tarjan's algorithm
 un.rb:: Utilities to replace common UNIX commands
 URI:: A Ruby module providing support for Uniform Resource Identifiers
diff --git a/lib/tracer.rb b/lib/tracer.rb
deleted file mode 100644
index 9014d80..0000000
--- a/lib/tracer.rb
+++ /dev/null
@@ -1,292 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L0
-# frozen_string_literal: false
-#--
-# $Release Version: 0.3$
-# $Revision: 1.12 $
-
-##
-# Outputs a source level execution trace of a Ruby program.
-#
-# It does this by registering an event handler with Kernel#set_trace_func for
-# processing incoming events.  It also provides methods for filtering unwanted
-# trace output (see Tracer.add_filter, Tracer.on, and Tracer.off).
-#
-# == Example
-#
-# Consider the following Ruby script
-#
-#   class A
-#     def square(a)
-#       return a*a
-#     end
-#   end
-#
-#   a = A.new
-#   a.square(5)
-#
-# Running the above script using <code>ruby -r tracer example.rb</code> will
-# output the following trace to STDOUT (Note you can also explicitly
-# <code>require 'tracer'</code>)
-#
-#   #0:<internal:lib/rubygems/custom_require>:38:Kernel:<: -
-#   #0:example.rb:3::-: class A
-#   #0:example.rb:3::C: class A
-#   #0:example.rb:4::-:   def square(a)
-#   #0:example.rb:7::E: end
-#   #0:example.rb:9::-: a = A.new
-#   #0:example.rb:10::-: a.square(5)
-#   #0:example.rb:4:A:>:   def square(a)
-#   #0:example.rb:5:A:-:     return a*a
-#   #0:example.rb:6:A:<:   end
-#    |  |         | |  |
-#    |  |         | |   ---------------------+ event
-#    |  |         |  ------------------------+ class
-#    |  |          --------------------------+ line
-#    |   ------------------------------------+ filename
-#     ---------------------------------------+ thread
-#
-# Symbol table used for displaying incoming events:
-#
-# +}+:: call a C-language routine
-# +{+:: return from a C-language routine
-# +>+:: call a Ruby method
-# +C+:: start a class or module definition
-# +E+:: finish a class or module definition
-# +-+:: execute code on a new line
-# +^+:: raise an exception
-# +<+:: return from a Ruby method
-#
-# == Copyright
-#
-# by Keiju ISHITSUKA(keiju@i...)
-#
-class Tracer
-  VERSION = "0.1.1"
-
-  class << self
-    # display additional debug information (defaults to false)
-    attr_accessor :verbose
-    alias verbose? verbose
-
-    # output stream used to output trace (defaults to STDOUT)
-    attr_accessor :stdout
-
-    # mutex lock used by tracer for displaying trace output
-    attr_reader :stdout_mutex
-
-    # display process id in trace output (defaults to false)
-    attr_accessor :display_process_id
-    alias display_process_id? display_process_id
-
-    # display thread id in trace output (defaults to true)
-    attr_accessor :display_thread_id
-    alias display_thread_id? display_thread_id
-
-    # display C-routine calls in trace output (defaults to false)
-    attr_accessor :display_c_call
-    alias display_c_call? display_c_call
-  end
-
-  Tracer::stdout = STDOUT
-  Tracer::verbose = false
-  Tracer::display_process_id = false
-  Tracer::display_thread_id = true
-  Tracer::display_c_call = false
-
-  @stdout_mutex = Thread::Mutex.new
-
-  # Symbol table used for displaying trace information
-  EVENT_SYMBOL = {
-    "line" => "-",
-    "call" => ">",
-    "return" => "<",
-    "class" => "C",
-    "end" => "E",
-    "raise" => "^",
-    "c-call" => "}",
-    "c-return" => "{",
-    "unknown" => "?"
-  }
-
-  def initialize # :nodoc:
-    @threads = Hash.new
-    if defined? Thread.main
-      @threads[Thread.main.object_id] = 0
-    else
-      @threads[Thread.current.object_id] = 0
-    end
-
-    @get_line_procs = {}
-
-    @filters = []
-  end
-
-  def stdout # :nodoc:
-    Tracer.stdout
-  end
-
-  def on # :nodoc:
-    if block_given?
-      on
-      begin
-        yield
-      ensure
-        off
-      end
-    else
-      set_trace_func method(:trace_func).to_proc
-      stdout.print "Trace on\n" if Tracer.verbose?
-    end
-  end
-
-  def off # :nodoc:
-    set_trace_func nil
-    stdout.print "Trace off\n" if Tracer.verbose?
-  end
-
-  def add_filter(p = nil, &b) # :nodoc:
-    p ||= b
-    @filters.push p
-  end
-
-  def set_get_line_procs(file, p = nil, &b) # :nodoc:
-    p ||= b
-    @get_line_procs[file] = p
-  end
-
-  def get_line(file, line) # :nodoc:
-    if p = @get_line_procs[file]
-      return p.call(line)
-    end
-
-    unless list = SCRIPT_LINES__[file]
-      list = File.readlines(file) rescue []
-      SCRIPT_LINES__[file] = list
-    end
-
-    if l = list[line - 1]
-      l
-    else
-      "-\n"
-    end
-  end
-
-  def get_thread_no # :nodoc:
-    if no = @threads[Thread.current.object_id]
-      no
-    else
-      @threads[Thread.current.object_id] = @threads.size
-    end
-  end
-
-  def trace_func(event, file, line, id, binding, klass, *) # :nodoc:
-    return if file == __FILE__
-
-    for p in @filters
-      return unless p.call event, file, line, id, binding, klass
-    end
-
-    return unless Tracer::display_c_call? or
-      event != "c-call" && event != "c-return"
-
-    Tracer::stdout_mutex.synchronize do
-      if EVENT_SYMBOL[event]
-        stdout.printf("<%d>", $$) if Tracer::display_process_id?
-        stdout.printf("#%d:", get_thread_no) if Tracer::display_thread_id?
-        if line == 0
-          source = "?\n"
-        else
-          source = get_line(file, line)
-        end
-        stdout.printf("%s:%d:%s:%s: %s",
-               file,
-               line,
-               klass || '',
-               EVENT_SYMBOL[event],
-               source)
-      end
-    end
-
-  end
-
-  # Reference to singleton instance of Tracer
-  Single = new
-
-  ##
-  # Start tracing
-  #
-  # === Example
-  #
-  #   Tracer.on
-  #   # code to trace here
-  #   Tracer.off
-  #
-  # You can also pass a block:
-  #
-  #   Tracer.on {
-  #     # trace everything in this block
-  #   }
-
-  def Tracer.on
-    if block_given?
-      Single.on{yield}
-    else
-      Single.on
-    end
-  end
-
-  ##
-  # Disable tracing
-
-  def Tracer.off
-    Single.off
-  end
-
-  ##
-  # Register an event handler <code>p</code> which is called every time a line
-  # in +file_name+ is executed.
-  #
-  # Example:
-  #
-  #   Tracer.set_get_line_procs("example.rb", lambda { |line|
-  #     puts "line number executed is #{line}"
-  #   })
-
-  def Tracer.set_get_line_procs(file_name, p = nil, &b)
-    p ||= b
-    Single.set_get_line_procs(file_name, p)
-  end
-
-  ##
-  # Used to filter unwanted trace output
-  #
-  # Example which only outputs lines of code executed within the Kernel class:
-  #
-  #   Tracer.add_filter do |event, file, line, id, binding, klass, *rest|
-  #     "Kernel" == klass.to_s
-  #   end
-
-  def Tracer.add_filter(p = nil, &b)
-    p ||= b
-    Single.add_filter(p)
-  end
-end
-
-# :stopdoc:
-SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__
-
-if $0 == __FILE__
-  # direct call
-
-  $0 = ARGV[0]
-  ARGV.shift
-  Tracer.on
-  require $0
-else
-  # call Tracer.on only if required by -r command-line option
-  count = caller.count {|bt| %r%/rubygems/core_ext/kernel_require\.rb:% !~ bt}
-  if (defined?(Gem) and count == 0) or
-     (!defined?(Gem) and count <= 1)
-    Tracer.on
-  end
-end
-# :startdoc:
diff --git a/lib/tracer/tracer.gemspec b/lib/tracer/tracer.gemspec
deleted file mode 100644
index de9401d..0000000
--- a/lib/tracer/tracer.gemspec
+++ /dev/null
@@ -1,25 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L0
-# frozen_string_literal: true
-
-name = File.basename(__FILE__, ".gemspec")
-version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|
-  break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|
-    /^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1
-  end rescue nil
-end
-
-Gem::Specification.new do |spec|
-  spec.name          = name
-  spec.version       = version
-  spec.authors       = ["Keiju ISHITSUKA"]
-  spec.email         = ["keiju@r..."]
-
-  spec.summary       = %q{Outputs a source level execution trace of a Ruby program.}
-  spec.description   = %q{Outputs a source level execution t (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]