diff src/compiler.sml @ 692:09df0c85f306

Fix overzealous Marshalcheck; garbage-collect string-embedded closures when no dyns are active
author Adam Chlipala <adamc@hcoop.net>
date Sat, 04 Apr 2009 12:54:39 -0400
parents 54ec237a3028
children 5819fb63c93a
line wrap: on
line diff
--- a/src/compiler.sml	Sat Apr 04 11:46:24 2009 -0400
+++ b/src/compiler.sml	Sat Apr 04 12:54:39 2009 -0400
@@ -475,19 +475,12 @@
 
 val toTag = transform tag "tag" o toCore_untangle2
 
-val marshalcheck = {
-    func = (fn file => (MarshalCheck.check file; file)),
-    print = CorePrint.p_file CoreEnv.empty
-}
-
-val toMarshalcheck = transform marshalcheck "marshalcheck" o toTag
-
 val reduce = {
     func = Reduce.reduce,
     print = CorePrint.p_file CoreEnv.empty
 }
 
-val toReduce = transform reduce "reduce" o toMarshalcheck
+val toReduce = transform reduce "reduce" o toTag
 
 val unpoly = {
     func = Unpoly.unpoly,
@@ -505,12 +498,19 @@
 
 val toShake3 = transform shake "shake3" o toSpecialize
 
+val marshalcheck = {
+    func = (fn file => (MarshalCheck.check file; file)),
+    print = CorePrint.p_file CoreEnv.empty
+}
+
+val toMarshalcheck = transform marshalcheck "marshalcheck" o toShake3
+
 val monoize = {
     func = Monoize.monoize CoreEnv.empty,
     print = MonoPrint.p_file MonoEnv.empty
 }
 
-val toMonoize = transform monoize "monoize" o toShake3
+val toMonoize = transform monoize "monoize" o toMarshalcheck
 
 val mono_opt = {
     func = MonoOpt.optimize,