[ruby-core:108153] [Ruby master Feature#16978] Ruby should not use realpath for __FILE__
From:
retro <noreply@...>
Date:
2022-04-01 11:30:39 UTC
List:
ruby-core #108153
Issue #16978 has been updated by retro (Josef Šimánek). In the end RubyGems decided to leave `__FILE__` due to this behaviour at all. If I understand Jeremy's original reasoning well, it was actually misused. Anyway it would be great to inline `__FILE__` and `__dir__` to provide consistent output. https://github.com/rubygems/rubygems/pull/5444 ---------------------------------------- Feature #16978: Ruby should not use realpath for __FILE__ https://bugs.ruby-lang.org/issues/16978#change-97128 * Author: vo.x (Vit Ondruch) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) ---------------------------------------- This is the simplest test case: ~~~ $ mkdir a $ echo "puts __FILE__" > a/test.rb $ ln -s a b $ ruby -Ib -e "require 'test'" /builddir/a/test.rb ~~~ This behavior is problematic, because Ruby should not know nothing about the `a` directory. It was not instructed to use it. I should always refer to the file using the original path and do not dig into the underlying details, otherwise depending on file system setup, one might be forced to used `File.realpath` everywhere trying to use `__FILE__`. -- 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>