Issue #4403 has been updated by Hiroshi Nakamura.

Category set to core
Status changed from Assigned to Rejected

As Kirk said. 1.9 expands a path for required feature for double load detection but it does not follow symlink. I can understand that some user think it as a bug but following symlink should be handled at OS layer, not at Ruby language layer I think. I don't expect 'require "foo"' adds '/path/to/bar.rb' to $LOADED_FEATURES.

I close this ticket as 'Not a Bug'. Please re-file a new issue for require+symlink as 'Feature' if you think it good to be added.
----------------------------------------
Bug #4403: require command loads file twice when required symlink or file under directory which is symlink (symbolic link)
http://redmine.ruby-lang.org/issues/4403

Author: Robert Pankowecki
Status: Rejected
Priority: Normal
Assignee: Hiroshi Nakamura
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux] 


=begin
 Consider this file structure:
 
 ~/test/symbolic  > tree
 .
 |-- a
 |   `-- a.rb
 |-- b -> a
 |-- c.rb
 `-- d.rb -> c.rb
 
 
 Current behavior:
 
 ruby-1.9.2-p136 :001 > require './c'
  => true 
 ruby-1.9.2-p136 :002 > require './d'
 ./d.rb:1: warning: already initialized constant CON2
  => true 
 ruby-1.9.2-p136 :003 > require './a/a'
  => true 
 ruby-1.9.2-p136 :004 > require './b/a'
 ./b/a.rb:1: warning: already initialized constant CON
  => true 
 
 Expected behavior:
 
 ruby-1.9.2-p136 :001 > require './c'
  => true 
 ruby-1.9.2-p136 :002 > require './d'
  => false
 ruby-1.9.2-p136 :003 > require './a/a'
  => true 
 ruby-1.9.2-p136 :004 > require './b/a'
  => false
 
 This bug can be reproduced at Ruby 1.8.7, too.
=end



-- 
http://redmine.ruby-lang.org