Hi,

2010/3/13 Greg Hazel <redmine / ruby-lang.org>:
> Still not constant, which I think it probably could be if the absolute paths of both "/path/to/foo" and "/path/to/foo.rb" were written to $" when "foo" is loaded.

It may not be enough to improve the speed.

I guess that the speed of require could be faster if Ruby had two
lists for $", where the one list stores arguments of require as-is,
and the other list stores expanded absolute paths.
In that case, if a feature name, which is an argument of require, is
included in the former list, there's no need to lookup the latter
list.  But this is not compatible with the current behavior when a
relative path is included in $: and the current directory is changed.
For example, in the SVN trunk, the following code loads foo/x.rb
first, then loads bar/x.rb:

  $:.push(".")
  Dir.chdir("foo")
  require "x"
  Dir.chdir("../bar")
  require "x"

I doubt, however, that this is intended behavior.

Anyway, if the speed in the SVN trunk is not enough for real world
applications, I will try some hacks.

-- 
Shugo Maeda