Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 23:16:31 -0800 (Thu, 17 Mar 2005)
Revision: 6970
Log message:

      Note to self: remember, ML-style values are *never* polymorphic unless
      they are toplevel, except for existentials around closures.
      
      Like, duh.
      
      This solves the problem with non-toplevel Lam terms in the backend.
      I added a fix to CPS to place the quantifiers appropriately in
      non-tailcall applications.  The tailcall version needs to be fixed.
      
      Note also that we will need a top-level let for polymorphic constructors.
      These values should be hoisted, and will prevent merging the toplevel
      let-rec (no big deal).
      
         let f x = x
         let u = ([], f)
         let v = (snd u) 1
         let w = (snd u) "foo"
      

Changes  Path
+0 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+0 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+0 -13 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+0 -8 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+2 -15 mpcompiler/mmc/core/mmc_core_cps.ml
+3 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+21 -6 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+2 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.mli