Actions
Bug #18737
closedWindows 'require' is case independent
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]
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?
Actions
Like0
Like0Like0