Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-02-02 03:06:01 -0800 (Wed, 02 Feb 2005)
Revision: 6565
Log message:

      Whew, mmc now compiles with full type information.
      
      Here are some tradeoffs.
      
         1. Type information is *very* useful.  I caught many errors
            in mmc with it.
         2. It also requires you be more verbose.  For example, you
            might need separate terms:
      
               Foo{'e : Exp}
               FooList{'el : List{Exp}}
      
            you probably got away with just Foo{'a} before.
         3. It is also unsound.  This is mainly because there is no relation
            between rules, so one rule can't tell any type constraints of
            another rule.
      

Changes  Path
+10 -15 metaprl-branches/opname_classes3/filter/base/filter_cache_fun.ml
+1 -1 metaprl-branches/opname_classes3/filter/base/filter_magic.ml
+1 -0 metaprl-branches/opname_classes3/filter/base/filter_type.ml
+10 -8 metaprl-branches/opname_classes3/filter/filter/filter_parse.ml
+16 -9 metaprl-branches/opname_classes3/filter/filter/filter_patt.ml
+25 -11 metaprl-branches/opname_classes3/filter/filter/term_grammar.ml
+3 -3 metaprl-branches/opname_classes3/refiner/refiner/refiner_debug.ml
+1 -1 metaprl-branches/opname_classes3/refiner/refsig/term_sig.ml
+1 -1 metaprl-branches/opname_classes3/refiner/term_ds/term_ds.ml
+1 -1 metaprl-branches/opname_classes3/refiner/term_ds/term_ds_sig.ml
+9 -6 metaprl-branches/opname_classes3/refiner/term_ds/term_man_ds.ml
+1 -1 metaprl-branches/opname_classes3/refiner/term_gen/term_man_gen.ml
+1 -1 metaprl-branches/opname_classes3/refiner/term_std/term_std.ml
+1 -1 metaprl-branches/opname_classes3/refiner/term_std/term_std_sig.ml
+11 -131 metaprl-branches/opname_classes3/support/display/perv.ml
+107 -17 metaprl-branches/opname_classes3/support/display/perv.mli
+0 -1 mpcompiler-branches/opname_classes3/mmc/OMakefile
+9 -111 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_asm.ml
+33 -16 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_asm.mli
+95 -90 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_backend.ml
+8 -8 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_closure.ml
+43 -61 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_codegen.ml
+18 -7 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_codegen.mli
+56 -56 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_convention.ml
+22 -27 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_frame.ml
+15 -15 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_frame.mli
+1 -1 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_hoist.ml
+3 -3 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_opt1.ml
+18 -28 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_prologue.ml
+16 -9 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_prologue.mli
+12 -13 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_slop.ml
+59 -57 mpcompiler-branches/opname_classes3/mmc/arch/x86/mmc_x86_spill.ml
+6 -1 mpcompiler-branches/opname_classes3/mmc/base/mmc_base_judgment.mli
+0 -7 mpcompiler-branches/opname_classes3/mmc/base/mmc_base_meta.ml
+5 -3 mpcompiler-branches/opname_classes3/mmc/base/mmc_base_meta.mli
+75 -61 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_closure.ml
+0 -4 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_closure.mli
+138 -93 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_cps.ml
+5 -1 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_cps.mli
+11 -18 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_front.ml
+1 -0 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_front.mli
+1 -1 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_hoist.ml
+16 -22 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_inline.ml
+2 -3 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_inline.mli
+4 -4 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_optimize.ml
+18 -27 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_reserve.ml
+3 -6 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_reserve.mli
+0 -121 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_sweep_ty.ml
+3 -0 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_sweep_ty.mli
+1 -0 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_tast.mli
+2 -10 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_type_erase.ml
+10 -3 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_type_erase.mli
+128 -0 mpcompiler-branches/opname_classes3/mmc/core/mmc_core_type_infer.ml
+13 -20 mpcompiler-branches/opname_classes3/mmc/extensions/array/mmc_ext_array.ml
+7 -5 mpcompiler-branches/opname_classes3/mmc/extensions/array/mmc_ext_array.mli
+29 -24 mpcompiler-branches/opname_classes3/mmc/extensions/array/mmc_ext_array_x86.ml
+27 -45 mpcompiler-branches/opname_classes3/mmc/extensions/bool/mmc_ext_bool.ml
+2 -2 mpcompiler-branches/opname_classes3/mmc/extensions/bool/mmc_ext_boolean_x86.ml
+20 -42 mpcompiler-branches/opname_classes3/mmc/extensions/int/mmc_ext_int.ml
+43 -43 mpcompiler-branches/opname_classes3/mmc/extensions/int/mmc_ext_integer_x86.ml
+7 -10 mpcompiler-branches/opname_classes3/mmc/extensions/loop/mmc_ext_loop.ml
+3 -1 mpcompiler-branches/opname_classes3/mmc/extensions/loop/mmc_ext_loop.mli
+42 -55 mpcompiler-branches/opname_classes3/mmc/extensions/operator/mmc_ext_operator.ml
+6 -2 mpcompiler-branches/opname_classes3/mmc/extensions/operator/mmc_ext_operator.mli
+8 -8 mpcompiler-branches/opname_classes3/mmc/extensions/reserve/mmc_ext_reserve.ml
+1 -1 mpcompiler-branches/opname_classes3/mmc/extensions/reserve/mmc_ext_reserve.mli
+8 -8 mpcompiler-branches/opname_classes3/mmc/extensions/reserve/mmc_ext_reserve_x86.ml
+2 -2 mpcompiler-branches/opname_classes3/mmc/extensions/special/mmc_ext_special_x86.ml
+12 -20 mpcompiler-branches/opname_classes3/mmc/extensions/tuple/mmc_ext_tuple.ml
+7 -5 mpcompiler-branches/opname_classes3/mmc/extensions/tuple/mmc_ext_tuple.mli
+9 -4 mpcompiler-branches/opname_classes3/mmc/extensions/tuple/mmc_ext_tuple_x86.ml
+3 -7 mpcompiler-branches/opname_classes3/mmc/extensions/unit/mmc_ext_unit.ml
+5 -2 mpcompiler-branches/opname_classes3/mmc/extensions/unit/mmc_ext_unit.mli
+0 -1 mpcompiler-branches/opname_classes3/mmc/main/mmc_theory.ml
+0 -1 mpcompiler-branches/opname_classes3/mmc/main/mmc_theory.mli
+37 -37 mpcompiler-branches/opname_classes3/mmc/opt/direct/core/mmc_opt_direct.ml
+23 -23 mpcompiler-branches/opname_classes3/mmc/test/mmc_array_test.ml
+8 -3 mpcompiler-branches/opname_classes3/mmc/test/mmc_spill_test.ml