Project

General

Profile

Actions

Feature #21335

open

Namespaces should be present in the backtrace

Added by tenderlovemaking (Aaron Patterson) 3 days ago. Updated 31 minutes ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:122070]

Description

Namespaces can call in to other name spaces. I think it might be helpful if namespace information is in the backtrace.

For example:

File.binwrite "foo.rb", <<-eorb
class Foo
  def self.test(ns1, ns2, count)
    if count == 0
      puts caller
    else
      if count % 2 == 0
        ns1::Foo.test(ns1, ns2, count - 1)
      else
        ns2::Foo.test(ns1, ns2, count - 1)
      end
    end
  end
end
eorb

ns1 = Namespace.new
ns1.load "foo.rb"

ns2 = Namespace.new
ns2.load "foo.rb"

ns1::Foo.test(ns1, ns2, 10)

The output is like this:

See doc/namespace.md for known issues, etc.
/Users/aaron/git/ruby/exe/ruby: warning: Namespace is experimental, and the behavior may change in the future!
See doc/namespace.md for known issues, etc.
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
./test.rb:23:in '<main>'

Foo.test alternates between namespaces when calling a method, but you can't tell from the backtrace. I think we should include namespaces in the backtrace.


Related issues 2 (2 open0 closed)

Related to Ruby - Feature #21311: Namespace on read (revised)Assignedtagomoris (Satoshi Tagomori)Actions
Related to Ruby - Bug #21316: Namespaces leak with permanent namesOpenActions
Actions

Also available in: Atom PDF

Like2
Like0Like0Like0Like0Like0Like0Like0