diff src/core_util.sml @ 1020:dfe34fad749d

RPC uses VM support for call/cc
author Adam Chlipala <adamc@hcoop.net>
date Sun, 25 Oct 2009 14:07:10 -0400
parents 2a50da66ffd8
children b2311dfb3158
line wrap: on
line diff
--- a/src/core_util.sml	Sun Oct 25 13:12:24 2009 -0400
+++ b/src/core_util.sml	Sun Oct 25 14:07:10 2009 -0400
@@ -532,20 +532,12 @@
       | (ELet _, _) => LESS
       | (_, ELet _) => GREATER
 
-      | (EServerCall (n1, es1, e1, _, _), EServerCall (n2, es2, e2, _, _)) =>
+      | (EServerCall (n1, es1, _), EServerCall (n2, es2, _)) =>
         join (Int.compare (n1, n2),
-              fn () => join (joinL compare (es1, es2),
-                             fn () => compare (e1, e2)))
+              fn () => joinL compare (es1, es2))
       | (EServerCall _, _) => LESS
       | (_, EServerCall _) => GREATER
 
-      | (ETailCall (n1, es1, e1, _, _), ETailCall (n2, es2, e2, _, _)) =>
-        join (Int.compare (n1, n2),
-              fn () => join (joinL compare (es1, es2),
-                             fn () => compare (e1, e2)))
-      | (ETailCall _, _) => LESS
-      | (_, ETailCall _) => GREATER
-
       | (EKAbs (_, e1), EKAbs (_, e2)) => compare (e1, e2)
       | (EKAbs _, _) => LESS
       | (_, EKAbs _) => GREATER
@@ -725,27 +717,12 @@
                                           fn e2' =>
                                              (ELet (x, t', e1', e2'), loc))))
 
-              | EServerCall (n, es, e, t1, t2) =>
+              | EServerCall (n, es, t) =>
                 S.bind2 (ListUtil.mapfold (mfe ctx) es,
                       fn es' =>
-                         S.bind2 (mfe ctx e,
-                                 fn e' =>
-                                    S.bind2 (mfc ctx t1,
-                                          fn t1' =>
-                                             S.map2 (mfc ctx t2,
-                                                  fn t2' =>
-                                                     (EServerCall (n, es', e', t1', t2'), loc)))))
-
-              | ETailCall (n, es, e, t1, t2) =>
-                S.bind2 (ListUtil.mapfold (mfe ctx) es,
-                      fn es' =>
-                         S.bind2 (mfe ctx e,
-                                 fn e' =>
-                                    S.bind2 (mfc ctx t1,
-                                          fn t1' =>
-                                             S.map2 (mfc ctx t2,
-                                                  fn t2' =>
-                                                     (ETailCall (n, es', e', t1', t2'), loc)))))
+                         S.map2 (mfc ctx t,
+                              fn t' =>
+                                 (EServerCall (n, es', t'), loc)))
 
               | EKAbs (x, e) =>
                 S.map2 (mfe (bind (ctx, RelK x)) e,