Bug #18737
closedWindows 'require' is case independent
Description
On Windows, require
may cause one file to load in more than once if user accidentally spells the wrong name of a gem.
I think this is because that Windows file systems are case-insensitive.
See the code below.
require 'yard'
# => true
require 'Yard'
# => true
# => warning: already initialized constant YARD::ROOT....
# => warning: already initialized constant ...
# => warning: already initialized constant ...
These warnings may notify the user something went wrong. But what if a gem loaded twice doesn't cause constant redefined, instead, it did something related to persistence? The user may get weird and unexpected behaviours without knowing this. It's hard to find and debug.
And some gem's name is not always in lowercase, this will make user on Windows more likely to go wrong,
For example,
# The standard gem 'English' s first letter is in upper case
require 'English'
# => true
I think this issue may have come under observation before, but may be considered unnecessary to fix?
Updated by jeremyevans0 (Jeremy Evans) over 2 years ago
I'm fairly sure this is expected behavior when Ruby is used on a case insensitive file system. However, it would be good if more experienced committer could confirm that.
Updated by jeremyevans0 (Jeremy Evans) over 1 year ago
- Status changed from Open to Closed