[ruby-core:120119] [Ruby master Bug#20920] When loading a file, __FILE__ gets relative paths expanded only when they start with "./"
From:
"Dan0042 (Daniel DeLorme) via ruby-core" <ruby-core@...>
Date:
2024-12-06 14:27:21 UTC
List:
ruby-core #120119
Issue #20920 has been updated by Dan0042 (Daniel DeLorme). It's interesting that this highlights the only case where `load` searches i= n a different path than `require` if path is absolute load/require absolute path --> __FILE__ is absolute elsif path starts with "." or ".." load/require relative to pwd --> __FILE__ is expanded to absolute else load/require relative to each $LOAD_PATH --> __FILE__ is expanded to abs= olute if above not found, load (but not require) relative to pwd --> __FILE__ = is NOT expanded to absolute end ---------------------------------------- Bug #20920: When loading a file, __FILE__ gets relative paths expanded only= when they start with "./" https://bugs.ruby-lang.org/issues/20920#change-110871 * Author: deivid (David Rodr=EDguez) * Status: Open * ruby -v: ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [arm64-darwin23] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- ``` $ cat foo.rb puts __FILE__ $ ruby foo.rb =20 foo.rb $ ruby ./foo.rb =20 ./foo.rb $ ruby -e 'load "foo.rb"' =20 foo.rb $ ruby -e 'load "./foo.rb"' /full/path/to/foo.rb ``` More than an issue, this is mainly a question. In principle, it seems more = consistent to me to either expand or not expand, but this is not causing re= al issues for me. I just want to figure out what to do with one pending spe= c in Bundler (https://github.com/rubygems/rubygems/blob/cd65092deb316875982= 0c613ecbc54cd9e06d46f/bundler/spec/commands/exec_spec.rb#L1023-L1028). --=20 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.rub= y-lang.org/