Mercurial > urweb
comparison src/mono_reduce.sml @ 1663:0577be31a435
First part of changes to avoid depending on C function call argument order of evaluation (omitting normal Ur function calls, so far)
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sat, 07 Jan 2012 15:56:22 -0500 |
parents | 4437b008e0ab |
children | 62c18ecbfec4 |
comparison
equal
deleted
inserted
replaced
1662:edf86cef0dba | 1663:0577be31a435 |
---|---|
388 | ECon (_, _, NONE) => [] | 388 | ECon (_, _, NONE) => [] |
389 | ECon (_, _, SOME e) => summarize d e | 389 | ECon (_, _, SOME e) => summarize d e |
390 | ENone _ => [] | 390 | ENone _ => [] |
391 | ESome (_, e) => summarize d e | 391 | ESome (_, e) => summarize d e |
392 | EFfi _ => [] | 392 | EFfi _ => [] |
393 | EFfiApp ("Basis", "get_cookie", [e]) => | 393 | EFfiApp ("Basis", "get_cookie", [(e, _)]) => |
394 summarize d e @ [ReadCookie] | 394 summarize d e @ [ReadCookie] |
395 | EFfiApp ("Basis", "set_cookie", es) => | 395 | EFfiApp ("Basis", "set_cookie", es) => |
396 List.concat (map (summarize d) es) @ [WriteCookie] | 396 List.concat (map (summarize d o #1) es) @ [WriteCookie] |
397 | EFfiApp ("Basis", "clear_cookie", es) => | 397 | EFfiApp ("Basis", "clear_cookie", es) => |
398 List.concat (map (summarize d) es) @ [WriteCookie] | 398 List.concat (map (summarize d o #1) es) @ [WriteCookie] |
399 | EFfiApp (m, x, es) => | 399 | EFfiApp (m, x, es) => |
400 if Settings.isEffectful (m, x) orelse Settings.isBenignEffectful (m, x) then | 400 if Settings.isEffectful (m, x) orelse Settings.isBenignEffectful (m, x) then |
401 List.concat (map (summarize d) es) @ [if m = "Basis" andalso String.isSuffix "_w" x then | 401 List.concat (map (summarize d o #1) es) @ [if m = "Basis" andalso String.isSuffix "_w" x then |
402 WritePage | 402 WritePage |
403 else | 403 else |
404 Unsure] | 404 Unsure] |
405 else | 405 else |
406 List.concat (map (summarize d) es) | 406 List.concat (map (summarize d o #1) es) |
407 | EApp ((EFfi _, _), e) => summarize d e | 407 | EApp ((EFfi _, _), e) => summarize d e |
408 | EApp _ => | 408 | EApp _ => |
409 let | 409 let |
410 fun unravel (e, passed, ls) = | 410 fun unravel (e, passed, ls) = |
411 case e of | 411 case e of |