From: Marko Schulz Date: 2002-05-07T12:22:35+09:00 Subject: Re: require and case On Tue, May 07, 2002 at 05:14:27AM +0900, Dave Thomas wrote: > > I'm becoming convinced by this thread It had the contrary effect on me. :-) > that rb_require should normalize all paths before executing, and > should store those normalized paths in $". That will likely break scripts that fiddle around with $:. So it probably is unwise to change it in a minor release. > Thus on a Windows box the names should be converted to lower case > and expand_path called. Does expand_path() solve the problem that on pre-NTFS-filesystems every file with a name that is too long has two different names? parsedate.rb vs. parsda~1.rb Please note that that the path might also contain "mangled" directory names. > On a Unix both, the case should be left unchanged but expand_path is > called. expand_path() doesn't resolve symbolic links. If there is more than one hard link to a file it is impossible to determine _the_ correct name. I don't know NTFS, but this might be an issue there too. Contrary to Dave the thread didn't convince me at all. Most people have absolutely no problem that require might load a file twice if they specify the name in two different ways. It if easy enough to be careful. And there are so many special cases how a file may be addressed that it is virtually impossible for ruby to ensure that a file gets loaded only once. So IMHO it should stick with the simple and understandable route it takes at the moment. -- marko schulz