comparison src/mono_reduce.sml @ 668:b0c1a46b1f15

First message send delivered, but not interpreted
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Mar 2009 15:05:07 -0400
parents 5891f47d7cff
children f73913d97a40
comparison
equal deleted inserted replaced
667:a93d5324f400 668:b0c1a46b1f15
55 | EFfi _ => false 55 | EFfi _ => false
56 | EFfiApp ("Basis", "set_cookie", _) => true 56 | EFfiApp ("Basis", "set_cookie", _) => true
57 | EFfiApp ("Basis", "new_client_source", _) => true 57 | EFfiApp ("Basis", "new_client_source", _) => true
58 | EFfiApp ("Basis", "set_client_source", _) => true 58 | EFfiApp ("Basis", "set_client_source", _) => true
59 | EFfiApp ("Basis", "alert", _) => true 59 | EFfiApp ("Basis", "alert", _) => true
60 | EFfiApp ("Basis", "new_channel", _) => true
61 | EFfiApp ("Basis", "subscribe", _) => true
62 | EFfiApp ("Basis", "send", _) => true
60 | EFfiApp _ => false 63 | EFfiApp _ => false
61 | EApp ((EFfi _, _), _) => false 64 | EApp ((EFfi _, _), _) => false
62 | EApp _ => true 65 | EApp _ => true
63 66
64 | EUnop (_, e) => impure e 67 | EUnop (_, e) => impure e
254 | _ => absCounts) 257 | _ => absCounts)
255 IM.empty file 258 IM.empty file
256 259
257 fun summarize d (e, _) = 260 fun summarize d (e, _) =
258 let 261 let
262 fun ffi es = List.concat (map (summarize d) es) @ [Unsure]
263
259 val s = 264 val s =
260 case e of 265 case e of
261 EPrim _ => [] 266 EPrim _ => []
262 | ERel n => if n = d then [UseRel] else [] 267 | ERel n => if n = d then [UseRel] else []
263 | ENamed _ => [] 268 | ENamed _ => []
264 | ECon (_, _, NONE) => [] 269 | ECon (_, _, NONE) => []
265 | ECon (_, _, SOME e) => summarize d e 270 | ECon (_, _, SOME e) => summarize d e
266 | ENone _ => [] 271 | ENone _ => []
267 | ESome (_, e) => summarize d e 272 | ESome (_, e) => summarize d e
268 | EFfi _ => [] 273 | EFfi _ => []
269 | EFfiApp ("Basis", "set_cookie", es) => List.concat (map (summarize d) es) @ [Unsure] 274 | EFfiApp ("Basis", "set_cookie", es) => ffi es
270 | EFfiApp ("Basis", "new_client_source", es) => List.concat (map (summarize d) es) @ [Unsure] 275 | EFfiApp ("Basis", "new_client_source", es) => ffi es
271 | EFfiApp ("Basis", "set_client_source", es) => List.concat (map (summarize d) es) @ [Unsure] 276 | EFfiApp ("Basis", "set_client_source", es) => ffi es
272 | EFfiApp ("Basis", "alert", es) => List.concat (map (summarize d) es) @ [Unsure] 277 | EFfiApp ("Basis", "alert", es) => ffi es
278 | EFfiApp ("Basis", "new_channel", es) => ffi es
279 | EFfiApp ("Basis", "subscribe", es) => ffi es
280 | EFfiApp ("Basis", "send", es) => ffi es
273 | EFfiApp (_, _, es) => List.concat (map (summarize d) es) 281 | EFfiApp (_, _, es) => List.concat (map (summarize d) es)
274 | EApp ((EFfi _, _), e) => summarize d e 282 | EApp ((EFfi _, _), e) => summarize d e
275 | EApp _ => 283 | EApp _ =>
276 let 284 let
277 fun unravel (e, ls) = 285 fun unravel (e, ls) =