Issue #12159 has been updated by Eregon (Benoit Daloze).


ko1 (Koichi Sasada) wrote:
> Disadvantage is backtrace will be long for main script.

This only applies to the main script, and none of the other files so I think it's worth the gain in consistency.
Backtraces in anything but small script include more than one file anyway.

#realpath sounds OK, although it seems to mix two different things at once.
Is #realpath essentially (in terms of current methods):

~~~ ruby
def realpath
  absolute_path && File.realpath(absolute_path) rescue nil
end
~~~

If so I think it's not needed and the simpler proposal is better.

----------------------------------------
Bug #12159: Thread::Backtrace::Location#path returns absolute path for files loaded by require_relative
https://bugs.ruby-lang.org/issues/12159#change-65174

* Author: tagomoris (Satoshi TAGOMORI)
* Status: Assigned
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* Target version: 
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
I expected that Thread::Backtrace::Location#path always returns base filename, but returns absolute path for files loaded by require_relative.
Is it intentional? or a bug?

~~~
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
$ cat > x.rb
def a
  caller_locations
end

p a.first.path
$ cat > y.rb
require_relative "x"
$ ruby x.rb 
"x.rb"
$ ruby y.rb
"/Users/tagomoris/x.rb"
~~~



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>