summaryrefslogtreecommitdiff
path: root/src/mono_reduce.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-03-22 15:05:07 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-03-22 15:05:07 -0400
commit2627ab6f5cfd96df06016a88b7e5a245e3ab9d8f (patch)
tree5a3c064007e7481a452bc60d9dfaeabebb515a53 /src/mono_reduce.sml
parent9e730b9a1aa4db311088a355e7e8601c6a998467 (diff)
First message send delivered, but not interpreted
Diffstat (limited to 'src/mono_reduce.sml')
-rw-r--r--src/mono_reduce.sml16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml
index 1f640004..b789e05f 100644
--- a/src/mono_reduce.sml
+++ b/src/mono_reduce.sml
@@ -57,6 +57,9 @@ fun impure (e, _) =
| EFfiApp ("Basis", "new_client_source", _) => true
| EFfiApp ("Basis", "set_client_source", _) => true
| EFfiApp ("Basis", "alert", _) => true
+ | EFfiApp ("Basis", "new_channel", _) => true
+ | EFfiApp ("Basis", "subscribe", _) => true
+ | EFfiApp ("Basis", "send", _) => true
| EFfiApp _ => false
| EApp ((EFfi _, _), _) => false
| EApp _ => true
@@ -256,6 +259,8 @@ fun reduce file =
fun summarize d (e, _) =
let
+ fun ffi es = List.concat (map (summarize d) es) @ [Unsure]
+
val s =
case e of
EPrim _ => []
@@ -266,10 +271,13 @@ fun reduce file =
| ENone _ => []
| ESome (_, e) => summarize d e
| EFfi _ => []
- | EFfiApp ("Basis", "set_cookie", es) => List.concat (map (summarize d) es) @ [Unsure]
- | EFfiApp ("Basis", "new_client_source", es) => List.concat (map (summarize d) es) @ [Unsure]
- | EFfiApp ("Basis", "set_client_source", es) => List.concat (map (summarize d) es) @ [Unsure]
- | EFfiApp ("Basis", "alert", es) => List.concat (map (summarize d) es) @ [Unsure]
+ | EFfiApp ("Basis", "set_cookie", es) => ffi es
+ | EFfiApp ("Basis", "new_client_source", es) => ffi es
+ | EFfiApp ("Basis", "set_client_source", es) => ffi es
+ | EFfiApp ("Basis", "alert", es) => ffi es
+ | EFfiApp ("Basis", "new_channel", es) => ffi es
+ | EFfiApp ("Basis", "subscribe", es) => ffi es
+ | EFfiApp ("Basis", "send", es) => ffi es
| EFfiApp (_, _, es) => List.concat (map (summarize d) es)
| EApp ((EFfi _, _), e) => summarize d e
| EApp _ =>