Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2007-03-15 19:08:39 -0700 (Thu, 15 Mar 2007)
Revision: 10233
Log message:

      Added autoloading, see bug #651.
     
     The problem has to do with cyclic open commands.  For example, C.om opens Configure.om,
     and vice-versa.  This fix performs eager linking, but files are loaded only when
     their values are dereferenced.  [Also: need to force all opens before building a project.]
     
     Also added a "select" command.  This is intended to allow files that are configured for
     multiple versions.
     
     The select is based on Python's "future" directive, where parsing is conditional on
     a specific Python feature.
     
     Configure.om gives the following example.
     
        select feature
        case strictscope
            open build/C
        default
            open build/Common
     
     Unlike other constructs, the indentation does not specify a new scope.  This is more
     like an #ifdef.
     
     Also, I'm willing to consider other syntaxes and/or concepts.

Changes  Path
+3 -0 omake-jumbo-branches/DEPENDENCIES
+4 -4 omake-jumbo-branches/keyword/0.9.8.x/src/builtin/omake_builtin_base.ml
Properties omake-jumbo-branches/keyword/0.9.8.x/src/clib
+1 -0 omake-jumbo-branches/keyword/0.9.8.x/src/env/omake_ast_lex.mll
+39 -18 omake-jumbo-branches/keyword/0.9.8.x/src/env/omake_ast_parse.input
+11 -4 omake-jumbo-branches/keyword/0.9.8.x/src/env/omake_gen_parse.ml
+56 -11 omake-jumbo-branches/keyword/0.9.8.x/src/env/omake_ir_ast.ml
+1 -0 omake-jumbo-branches/keyword/0.9.8.x/src/ir/omake_symbol.ml
Properties omake-jumbo-branches/keyword/0.9.8.x/src/libmojave
+4 -4 omake-jumbo-branches/var1/0.9.8.x/src/builtin/omake_builtin_base.ml
Properties omake-jumbo-branches/var1/0.9.8.x/src/clib
+1 -0 omake-jumbo-branches/var1/0.9.8.x/src/env/omake_ast_lex.mll
+39 -21 omake-jumbo-branches/var1/0.9.8.x/src/env/omake_ast_parse.input
+7 -4 omake-jumbo-branches/var1/0.9.8.x/src/env/omake_gen_parse.ml
+54 -10 omake-jumbo-branches/var1/0.9.8.x/src/env/omake_ir_ast.ml
+1 -0 omake-jumbo-branches/var1/0.9.8.x/src/ir/omake_symbol.ml
Properties omake-jumbo-branches/var1/0.9.8.x/src/libmojave
+4 -4 omake-jumbo-branches/var2/0.9.8.x/src/builtin/omake_builtin_base.ml
Properties omake-jumbo-branches/var2/0.9.8.x/src/clib
+1 -0 omake-jumbo-branches/var2/0.9.8.x/src/env/omake_ast_lex.mll
+39 -18 omake-jumbo-branches/var2/0.9.8.x/src/env/omake_ast_parse.input
+11 -4 omake-jumbo-branches/var2/0.9.8.x/src/env/omake_gen_parse.ml
+56 -11 omake-jumbo-branches/var2/0.9.8.x/src/env/omake_ir_ast.ml
+1 -0 omake-jumbo-branches/var2/0.9.8.x/src/ir/omake_symbol.ml
Properties omake-jumbo-branches/var2/0.9.8.x/src/libmojave
+42 -42 omake-jumbo-branches/var3/0.9.8.x/lib/Pervasives.om
+6 -0 omake-jumbo-branches/var3/0.9.8.x/lib/build/C.om
+27 -26 omake-jumbo-branches/var3/0.9.8.x/lib/build/Common.om
+3 -0 omake-jumbo-branches/var3/0.9.8.x/lib/configure/Configure.om
+1 -0 omake-jumbo-branches/var3/0.9.8.x/src/build/omake_build.ml
+2 -2 omake-jumbo-branches/var3/0.9.8.x/src/build/omake_builtin.ml
+3 -3 omake-jumbo-branches/var3/0.9.8.x/src/build/omake_builtin_util.ml
+7 -7 omake-jumbo-branches/var3/0.9.8.x/src/build/omake_rule.ml
+4 -4 omake-jumbo-branches/var3/0.9.8.x/src/builtin/omake_builtin_base.ml
+7 -3 omake-jumbo-branches/var3/0.9.8.x/src/builtin/omake_builtin_object.ml
Properties omake-jumbo-branches/var3/0.9.8.x/src/clib
+1 -0 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_ast_lex.mll
+39 -18 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_ast_parse.input
+3 -8 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_command_digest.ml
+434 -573 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_env.ml
+16 -14 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_env.mli
+11 -4 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_gen_parse.ml
+60 -36 omake-jumbo-branches/var3/0.9.8.x/src/env/omake_ir_ast.ml
+58 -49 omake-jumbo-branches/var3/0.9.8.x/src/eval/omake_eval.ml
+2 -1 omake-jumbo-branches/var3/0.9.8.x/src/eval/omake_eval.mli
+16 -7 omake-jumbo-branches/var3/0.9.8.x/src/eval/omake_value.ml
+5 -19 omake-jumbo-branches/var3/0.9.8.x/src/ir/omake_ir.ml
+0 -4 omake-jumbo-branches/var3/0.9.8.x/src/ir/omake_ir_print.ml
+1 -0 omake-jumbo-branches/var3/0.9.8.x/src/ir/omake_symbol.ml
+1 -3 omake-jumbo-branches/var3/0.9.8.x/src/ir/omake_var.ml
Properties omake-jumbo-branches/var3/0.9.8.x/src/libmojave
+3 -1 omake-jumbo-branches/var3/0.9.8.x/src/main/omake_shell.ml