Mercurial > urweb
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,