Changes by: Adam Granicz (granicz at cs.caltech.edu)
Date: 2003-08-30 06:34:54 -0700 (Sat, 30 Aug 2003)
Revision: 4904
Log message:

      Made Phobos smarter about checking which file to use to parse
      :ext quotations.
      Now, the following happens:
      
      1. if no .cph exists, we use the .pho file and create a .cph as
         a side-effect
      2. if no .pho exists but only a .cph, we use that file (this would
         have caused failure under what we had yesterday). This doesn't
         happen anywhere in MetaPRL, but may be useful. In fact, in
         mcc we used this for dynamic frontends.
      3. if neither file exists, we raise an error message
      4. if both files exist, we look at the time stamps and file sizes.
         a) we recover these for the .pho file using Unix.stat
         b) for the .cph file, we use a header storing the above (and other)
            information for the .pho file that produced the .cph file
      5. if everything is the same, we use the .cph file
      6. if the .pho file is newer
         a) we check the MD5 sum, if it is the same as in the .cph, we
            use the .cph file instead
         b) otherwise, we use the .pho file
      7. in any other case, we use the .cph file
      
      I question why we needed this as opposed to what I had yesterday.
      MD5 checking is already provided in omake, now we shifted that
      into Phobos as well. Although things are conceptually cleaner
      this way and to realize the change was not difficult, we duplicated
      functionality that is already found in omake.
      

Changes  Path
+1 -0 metaprl/filter/phobos/Files
+45 -6 metaprl/filter/phobos/phobos_compile.ml
+7 -0 metaprl/filter/phobos/phobos_constants.ml
+2 -0 metaprl/filter/phobos/phobos_constants.mli
+1 -1 metaprl/filter/phobos/phobos_grammar.ml
Added metaprl/filter/phobos/phobos_header.ml
Properties metaprl/filter/phobos/phobos_header.ml
Added metaprl/filter/phobos/phobos_header.mli
Properties metaprl/filter/phobos/phobos_header.mli
+5 -2 metaprl/filter/phobos/phobos_marshal.ml
+3 -2 metaprl/filter/phobos/phobos_marshal.mli
+1 -1 metaprl/filter/phobos/phobos_parser.mly
+0 -2 metaprl/mk/rules