summaryrefslogtreecommitdiff
path: root/src/compiler.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-04 12:54:39 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-04 12:54:39 -0400
commit8e8c217003dcda28e14b330039062d9bf8463e64 (patch)
treefffd7969dc6117fb442be22dfcbb86c15df35d0d /src/compiler.sml
parent0e5d32d1caf9b4267c76193fc787e12ea7691fc8 (diff)
Fix overzealous Marshalcheck; garbage-collect string-embedded closures when no dyns are active
Diffstat (limited to 'src/compiler.sml')
-rw-r--r--src/compiler.sml18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/compiler.sml b/src/compiler.sml
index 0eb8cb0f..6a43d94e 100644
--- a/src/compiler.sml
+++ b/src/compiler.sml
@@ -475,19 +475,12 @@ val tag = {
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 toSpecialize = transform specialize "specialize" o toUnpoly
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,