Mercurial > urweb
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) = |