Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-04-22 20:06:07 -0700 (Tue, 22 Apr 2003)
Revision: 34
Log message:

      .This is a minor fix, but in my mind it finishes the final omake
      .feature.  All that is left in alpha-test is for the PRL group to
      .comment on features/bugs.  Please do, so we can release!
      .
      .---The final feature description---
      .
      .Here's a description of the problem addressed here.
      .
      .Rules normally have an or-and semantics.  Consider the following rule:
      .
      .x y z: a b c
      . commands
      .
      .This means to build any of x y z (a disjunct),
      .dependencies are a b c (a conjunct).
      .
      .But some rules are conjuctive, like the yacc rule:
      .
      .%.c %.h: %.y
      . yacc $*.y
      .
      .This rule builds both files with suffixes .c, .h.  Normal make will
      .run yacc just once, because the file mtimes do the right thing.
      .
      .Before this commit, omake would run twice, adhering to the strict semantics.
      .This commit fixes it by examining the target files before and after.  If a
      .file on the left is modified, it is added to the cache/memo.  This eliminates
      .the duplicate yacc call.
      

Changes  Path
+1 -1 omake/Files
+2 -68 omake/Makefile.in
+3 -41 omake/OMakefile.in
+3 -2 omake/OMakeroot
+32 -14 omake/src/build/omake_build.ml
+1 -1 omake/src/build/omake_build_type.ml
+0 -1 omake/src/eval/omake_eval.ml
+4 -0 omake/src/ir/omake_cache.ml
+13 -2 omake/src/ir/omake_cache.mli
+82 -37 omake/src/ir/omake_node.ml
+1 -0 omake/src/ir/omake_node_type.ml
+1 -0 omake/src/main/omake_main.ml