[Omake] SVN Commit: OMake Build System [0.9.8.x] (Rev. 10579)

Jason Hickey jyh at cs.caltech.edu
Tue May 1 11:12:04 PDT 2007


Add .STATIC rules.  This is different from a "static. =" section.

   - .STATIC rules are delayed; they are evaluated only if the value is needed.
   - .STATIC rules allow dependencies, and explicit variables.
   - The values are stored in .omakedb

* Basic usage:

    .STATIC:
        println(foo)
        X = 1
    Y = $X

The variable X is exported.  The rule is evaluated if the value for $X is needed,
but it is lazy.  The definition of Y does not force evaluation.

* With dependencies:

   .STATIC: x.input
       X = $(expensive-function x.input)

This is be evaluated if x.input changes and X is forced.

* Exporting variables

   .STATIC: X: x.input
       Y = 1
       X = $Y

Y is not exported from the section.

----
Changes:
    +0 -1	omake-branches/0.9.8.x/lib/OMakeroot.om
    +0 -1	omake-branches/0.9.8.x/lib/Pervasives.om
    +2 -3	omake-branches/0.9.8.x/lib/build/C.om
    +0 -1	omake-branches/0.9.8.x/lib/build/Common.om
    +1 -2	omake-branches/0.9.8.x/lib/build/LaTeX.om
    +3 -4	omake-branches/0.9.8.x/lib/build/OCaml.om
    +1 -2	omake-branches/0.9.8.x/lib/build/svn_realclean.om
    +0 -1	omake-branches/0.9.8.x/lib/configure/Configure.om
    +0 -1	omake-branches/0.9.8.x/lib/configure/X.om
    +1 -2	omake-branches/0.9.8.x/lib/configure/fam.om
    +1 -2	omake-branches/0.9.8.x/lib/configure/fs_case_sensitive.om
    +1 -2	omake-branches/0.9.8.x/lib/configure/ncurses.om
    +2 -2	omake-branches/0.9.8.x/lib/configure/readline.om
    +0 -1	omake-branches/0.9.8.x/lib/configure/snprintf.om
    +0 -1	omake-branches/0.9.8.x/lib/parse/C/Lex.om
    +0 -1	omake-branches/0.9.8.x/lib/parse/C/Parse.om
    +3 -3	omake-branches/0.9.8.x/src/build/omake_build.ml
    +3 -3	omake-branches/0.9.8.x/src/build/omake_build_type.ml
    +26 -8	omake-branches/0.9.8.x/src/build/omake_rule.ml
    +10 -0	omake-branches/0.9.8.x/src/build/omake_rule.mli
    +16 -10	omake-branches/0.9.8.x/src/builtin/omake_builtin_object.ml
    +17 -0	omake-branches/0.9.8.x/src/builtin/omake_builtin_target.ml
    +27 -9	omake-branches/0.9.8.x/src/env/omake_command_digest.ml
    +2 -0	omake-branches/0.9.8.x/src/env/omake_command_digest.mli
    +51 -0	omake-branches/0.9.8.x/src/env/omake_env.ml
    +22 -2	omake-branches/0.9.8.x/src/env/omake_env.mli
    +143 -39	omake-branches/0.9.8.x/src/env/omake_ir_ast.ml
    +2 -1	omake-branches/0.9.8.x/src/env/omake_ir_semant.ml
    +112 -43	omake-branches/0.9.8.x/src/eval/omake_eval.ml
    +49 -21	omake-branches/0.9.8.x/src/eval/omake_value.ml
    +1 -0	omake-branches/0.9.8.x/src/eval/omake_value.mli
    +77 -31	omake-branches/0.9.8.x/src/ir/omake_cache.ml
    +10 -4	omake-branches/0.9.8.x/src/ir/omake_cache.mli
    +10 -7	omake-branches/0.9.8.x/src/ir/omake_cache_type.ml
    +2 -1	omake-branches/0.9.8.x/src/ir/omake_ir.ml
    +2 -1	omake-branches/0.9.8.x/src/ir/omake_ir_free_vars.ml
    +3 -1	omake-branches/0.9.8.x/src/ir/omake_ir_print.ml
    +3 -0	omake-branches/0.9.8.x/src/ir/omake_symbol.ml
    +12 -4	omake-branches/0.9.8.x/src/ir/omake_value_print.ml
    +18 -6	omake-branches/0.9.8.x/src/ir/omake_value_type.ml
    +1 -0	omake-branches/0.9.8.x/src/ir/omake_var.ml
    +1 -0	omake-branches/0.9.8.x/src/ir/omake_var.mli
    +4 -2	omake-branches/0.9.8.x/src/main/omake_shell.ml
 
A hyperlinked version of this commit is available at
http://svn.metaprl.org/commitlogs/omake/2007-05.html#07/05/01.11:12:04



More information about the OMake-CVS mailing list