Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-11-08 12:25:40 -0800 (Sat, 08 Nov 2003)
Revision: 255
Log message:

      Implemented the new global cache index (bug #110): a target is considered
      to be up-to-date if there is an up-to-date entry in the cache with the
      same dependencies and the same command text from *any* rule that has
      been run.  The .cmi rules have been updated as Aleksey suggested in bug
      #110, that is:
      
         %.cmi: %.ml
          $(if $(NATIVE_ENABLED),\
          $(OCAMLOPT) $(OCAMLOPTFLAGS) $(OCAMLPPFLAGS) $(OCAMLINCLUDES) -c $<,\
          $(OCAMLC) $(OCAMLCFLAGS) $(OCAMLPPFLAGS) $(OCAMLINCLUDES) -c $<)
      
         %.cmi: %.mli
                 $(OCAMLC) $(OCAMLCFLAGS) $(OCAMLPPFLAGS) $(OCAMLINCLUDES) -c $<
      
      The change to the implementation is to add a (deps+commands->memo) index
      to the cache.  The performance penalty looks to be around 1-2%, not very
      much.
      
      The critical assumption is this:
            Commands are functional, deterministic, and idempotent.  That is, if
            a command is run once with a given set of dependencies, then it will
            have no effect if it is run again on unchanged dependencies.
      
      Note, the environment is ignored.  So if the environment changes in a way
      that affects the build process, you will have to use omake -U.
      
      Bumped version to 0.7.5
      

Changes  Path
+6 -2 omake-branches/cache_index/OMakeroot.src.in
+24 -33 omake-branches/cache_index/src/build/omake_build.ml
+3 -0 omake-branches/cache_index/src/build/omake_build_type.ml
+101 -71 omake-branches/cache_index/src/ir/omake_cache.ml
+5 -5 omake-branches/cache_index/src/ir/omake_cache.mli
+17 -4 omake-branches/cache_index/src/ir/omake_cache_type.ml
+0 -9 omake-branches/cache_index/src/ir/omake_node.ml
+0 -1 omake-branches/cache_index/src/ir/omake_node_sig.ml
+1 -1 omake-branches/cache_index/version.txt