Bug #2578
closedRequiring a relative path with an empty $LOAD_PATH raises LoadError on 1.8
Description
=begin
Hi,
While revising the rubyspecs for Kernel#require, I noticed the following difference between 1.8 and 1.9. If $LOAD_PATH is empty, requiring a path relative to the CWD raises a LoadError on 1.8 but succeeds on 1.9. Adding any entry to $LOAD_PATH, even a nonexistent directory, causes the relative require to succeed.
I've tried searching for a ticket related to this but was unable to find one. Is this a bug in 1.8? If not a bug, could you please explain the reason for the difference.
$ cat a.rb
puts 1
$ cat b.rb
p $LOAD_PATH.clear
require './a.rb'
$ cat c.rb
p $LOAD_PATH.clear
p $LOAD_PATH << "irrelevant_dir"
require './a.rb'
$ ruby1.8.7 -v b.rb
ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin9.8.0]
[]
b.rb:2:in `require': no such file to load -- ./a.rb (LoadError)
from b.rb:2
$ ruby1.9 -v b.rb
ruby 1.9.2dev (2009-12-16 trunk 26107) [i386-darwin9.8.0]
[]
1
$ ruby1.8.7 -v c.rb
ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin9.8.0]
[]
["irrelevant_dir"]
1
$ ruby1.9 -v c.rb
ruby 1.9.2dev (2009-12-16 trunk 26107) [i386-darwin9.8.0]
[]
["irrelevant_dir"]
1
Thanks,
Brian
=end