Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2007-04-25 12:55:31 -0700 (Wed, 25 Apr 2007)
Revision: 10501
Log message:
This is the var1 jumbo patch. There are no semantic changes, only
code structure, which now looks like 0.9.9 but has no features from
0.9.9.
************************************************************************
*** var1
Convert the source code in 0.9.8 so that it matches the
source structure in 0.9.9.
There should be no real semantical changes to the OMake
language.
This is a change to the code only. The update is large,
but it should be relatively uncontroversial.
Major architectural changes:
** The Scope* is folded into the variable, it is no longer a separate
field.
The right way to think is that there are _not_ 3 environments, there
are 3 kinds of variables and a single environment.
There are 4 classes of variables:
* VarPrivate: private, statically scoped
* VarThis: current object, dynamically scoped
* VarVirtual: global, dynamically scoped
* VarGlobal: the usual default
** Omake_ir_ast now structurally looks like 0.9.9.
Other changes:
* export variables are computed at compile time in Omake_ir_ast,
instead of at runtime.
* function parameters are private (not protected).
* defined/getvar/setvar functions allow qualified names.