Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2007-03-21 19:42:15 -0700 (Wed, 21 Mar 2007)
Revision: 10265
Log message:
var3 is nearly done. Self-builds work. I should probably try to make it
more backward compatible.
This commit changes "open" to include rules in the opened file (and
all files it opens, etc.)
In 0.9.8, "open" is about the same as "include". Basically, "open"
means "include once".
In 0.9.9 open is different because opened files are evaluated in a
pristine environment that contains only Pervasives (see bug #586).
BTW, it may be fairly easy to specify a Site.om that specifies this
pristine environment. For example Site.om might set the PATH to
some default value.
This means that rules in opened files must be merged when the file
is opened. Autoloading broke it because the rule would get added
at some delayed time.
This commit changes the behavior.
- "open" is eager, loading values+rules recursively.
- "autoload" is lazy, but you don't get any rules from the autoloaded file.
Configure.om has this code:
open build/Common
select feature
case strictscope
autoload build/C
This has the usual bogus effect that if you only open Configure, then
configuration is useless (this is the same in 0.9.8). However, the
cyclic dependency is gone, and the build works as it should.