Mercurial > urweb
comparison src/compiler.sml @ 1062:3bc726a822fb
Shake bug fix; pattern reduction in ReduceLocal
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 08 Dec 2009 11:45:19 -0500 |
parents | e8a35d710ab9 |
children | d069b193ed6b |
comparison
equal
deleted
inserted
replaced
1061:e8a35d710ab9 | 1062:3bc726a822fb |
---|---|
751 | 751 |
752 val toRpcify = transform rpcify "rpcify" o toShake1 | 752 val toRpcify = transform rpcify "rpcify" o toShake1 |
753 | 753 |
754 val toCore_untangle2 = transform core_untangle "core_untangle2" o toRpcify | 754 val toCore_untangle2 = transform core_untangle "core_untangle2" o toRpcify |
755 val toShake2 = transform shake "shake2" o toCore_untangle2 | 755 val toShake2 = transform shake "shake2" o toCore_untangle2 |
756 val toEspecialize1 = transform especialize "especialize1" o toShake2 | |
757 val toCore_untangle3 = transform core_untangle "core_untangle3" o toEspecialize1 | |
758 val toShake3 = transform shake "shake3" o toCore_untangle3 | |
756 | 759 |
757 val tag = { | 760 val tag = { |
758 func = Tag.tag, | 761 func = Tag.tag, |
759 print = CorePrint.p_file CoreEnv.empty | 762 print = CorePrint.p_file CoreEnv.empty |
760 } | 763 } |
761 | 764 |
762 val toTag = transform tag "tag" o toCore_untangle2 | 765 val toTag = transform tag "tag" o toShake3 |
763 | 766 |
764 val reduce = { | 767 val reduce = { |
765 func = Reduce.reduce, | 768 func = Reduce.reduce, |
766 print = CorePrint.p_file CoreEnv.empty | 769 print = CorePrint.p_file CoreEnv.empty |
767 } | 770 } |
780 print = CorePrint.p_file CoreEnv.empty | 783 print = CorePrint.p_file CoreEnv.empty |
781 } | 784 } |
782 | 785 |
783 val toSpecialize = transform specialize "specialize" o toUnpoly | 786 val toSpecialize = transform specialize "specialize" o toUnpoly |
784 | 787 |
785 val toShake3 = transform shake "shake3" o toSpecialize | 788 val toShake4 = transform shake "shake4" o toSpecialize |
786 | 789 |
787 val toEspecialize = transform especialize "especialize" o toShake3 | 790 val toEspecialize2 = transform especialize "especialize2" o toShake4 |
788 | 791 |
789 val toReduce2 = transform reduce "reduce2" o toEspecialize | 792 val toReduce2 = transform reduce "reduce2" o toEspecialize2 |
790 | 793 |
791 val toShake4 = transform shake "shake4" o toReduce2 | 794 val toShake5 = transform shake "shake5" o toReduce2 |
792 | 795 |
793 val marshalcheck = { | 796 val marshalcheck = { |
794 func = (fn file => (MarshalCheck.check file; file)), | 797 func = (fn file => (MarshalCheck.check file; file)), |
795 print = CorePrint.p_file CoreEnv.empty | 798 print = CorePrint.p_file CoreEnv.empty |
796 } | 799 } |
797 | 800 |
798 val toMarshalcheck = transform marshalcheck "marshalcheck" o toShake4 | 801 val toMarshalcheck = transform marshalcheck "marshalcheck" o toShake5 |
799 | 802 |
800 val effectize = { | 803 val effectize = { |
801 func = Effective.effectize, | 804 func = Effective.effectize, |
802 print = CorePrint.p_file CoreEnv.empty | 805 print = CorePrint.p_file CoreEnv.empty |
803 } | 806 } |