Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-26 12:46:55 -0700 (Tue, 26 Apr 2005)
Revision: 901
Log message:

      Added value-dependencies.
      
      Value dependencies are specified using the :value: option in rules.
      
         a: b c :value: $(X)
            ...
      
      This rule specifies that "a" should be recompiled if the value of $(X)
      changes (X does not have to be a filename).  This is intended to allow
      greater control over dependencies.
      
      In addition, it can be instead of other kinds of dependencies.
      For example, the following rule:
      
         a: b :exists: c
            commands
      
      is the same as
      
         a: b :value: $(target-exists c)
      
      
      Notes:
      
         -- The values are arbitrary (they are not limited to variables)
         -- The values are evaluated at rule expansion time, so variables
            like $@, $^, etc are legal.
      
      One other significant difference is that the rule cache now uses a
      digest of the rule commands text, not the text itself.  This has an
      impact on initial omake speed (I am not sure how significant it is)
      but the cache is smaller.  Also, "section eval" should now be
      handled correctly.
      

Changes  Path
+15 -8 omake/Files
+499 -466 omake/Makefile.dep.nt
Deleted omake/omake_value_digest.ml
Deleted omake/omake_value_digest.mli
+140 -117 omake/src/build/omake_build.ml
+16 -15 omake/src/build/omake_build_type.ml
+1 -1 omake/src/build/omake_builtin.ml
+1 -1 omake/src/build/omake_builtin_base.ml
Added omake/src/env/omake_command_digest.ml
Properties omake/src/env/omake_command_digest.ml
Added omake/src/env/omake_command_digest.mli
Properties omake/src/env/omake_command_digest.mli
+96 -58 omake/src/env/omake_env.ml
+10 -6 omake/src/env/omake_env.mli
Added omake/src/env/omake_ir_free_vars.ml
Properties omake/src/env/omake_ir_free_vars.ml
Added omake/src/env/omake_ir_free_vars.mli
Properties omake/src/env/omake_ir_free_vars.mli
+13 -10 omake/src/eval/omake_eval.ml
+73 -43 omake/src/eval/omake_rule.ml
+1 -1 omake/src/exec/omake_exec.ml
+1 -1 omake/src/exec/omake_exec_local.ml
+1 -1 omake/src/exec/omake_exec_print.ml
+1 -1 omake/src/exec/omake_exec_type.ml
+12 -19 omake/src/ir/omake_cache.ml
+17 -12 omake/src/ir/omake_cache.mli
+6 -27 omake/src/ir/omake_cache_type.ml
+5 -36 omake/src/ir/omake_command.ml
+6 -16 omake/src/ir/omake_command.mli
Added omake/src/ir/omake_command_type.ml
Properties omake/src/ir/omake_command_type.ml
+1 -0 omake/src/ir/omake_symbol.ml
+1 -1 omake/src/magic/omake_gen_magic.ml
+1 -1 omake/version.txt