From: Hiroshi Nakamura Date: 2011-06-28T12:33:37+09:00 Subject: [ruby-core:37603] [Ruby 1.9 - Bug #4403][Rejected] require command loads file twice when required symlink or file under directory which is symlink (symbolic link) 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