Require infinite loop

With the latest version, if a ruby source file requires itself, or if
there is a cyclic chain of requires so that the original source file is
required again - it results in an infinite loop.

This used to work correctly in the previous version - it simply requires
marking the file as already loaded prior to executing it.

Cheers, Wayne.

Well, it is not so simple. Currently we check whether the file is
already in $". But it doesn’t get into the list until it’s execution is
successfully finished:

x.rb:
p $"
require ‘y.rb’
p $"

y.rb:
p $"

The output is:
[]
[]
[“y.rb”]

So we probably need another list/table of already loaded files. Besides,
a single file could be required multiple times - if you do $".clear
before calling require. I need to figure out what is exactly the
condition under which Ruby doesn’t load a file. Could you please file a
bug?

Tomas

From: [email protected]
[mailto:[email protected]] On Behalf Of Wayne K.
Sent: Tuesday, May 13, 2008 10:23 PM
To: [email protected]
Subject: [Ironruby-core] require infinite loop

With the latest version, if a ruby source file requires itself, or if
there is a cyclic chain of requires so that the original source file is
required again - it results in an infinite loop.

This used to work correctly in the previous version - it simply requires
marking the file as already loaded prior to executing it.

Cheers, Wayne.