Mercurial > urweb
comparison src/iflow.sml @ 2221:278e10629ba1
Basic field-resolution invalidation.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Sat, 29 Nov 2014 03:37:59 -0500 |
parents | 70ec9bb337be |
children | 25874084bf1f |
comparison
equal
deleted
inserted
replaced
2220:794017f378de | 2221:278e10629ba1 |
---|---|
1868 val namer = MonoUtil.File.map {typ = fn t => t, | 1868 val namer = MonoUtil.File.map {typ = fn t => t, |
1869 exp = fn e => | 1869 exp = fn e => |
1870 case e of | 1870 case e of |
1871 EDml (e, fm) => | 1871 EDml (e, fm) => |
1872 nameSubexps (fn (_, e') => (EDml (e', fm), #2 e)) e | 1872 nameSubexps (fn (_, e') => (EDml (e', fm), #2 e)) e |
1873 | EQuery {exps, tables, state, query, body, initial} => | 1873 | EQuery {exps, tables, state, query, body, initial, sqlcacheInfo} => |
1874 nameSubexps (fn (liftBy, e') => | 1874 nameSubexps (fn (liftBy, e') => |
1875 (EQuery {exps = exps, | 1875 (EQuery {exps = exps, |
1876 tables = tables, | 1876 tables = tables, |
1877 state = state, | 1877 state = state, |
1878 query = e', | 1878 query = e', |
1879 body = mliftExpInExp liftBy 2 body, | 1879 body = mliftExpInExp liftBy 2 body, |
1880 initial = mliftExpInExp liftBy 0 initial}, | 1880 initial = mliftExpInExp liftBy 0 initial, |
1881 sqlcacheInfo = sqlcacheInfo}, | |
1881 #2 query)) query | 1882 #2 query)) query |
1882 | _ => e, | 1883 | _ => e, |
1883 decl = fn d => d} | 1884 decl = fn d => d} |
1884 | 1885 |
1885 fun check (file : file) = | 1886 fun check (file : file) = |
2068 | ERedirect (e1, t) => (ERedirect (doExp env e1, t), loc) | 2069 | ERedirect (e1, t) => (ERedirect (doExp env e1, t), loc) |
2069 | EWrite e1 => (EWrite (doExp env e1), loc) | 2070 | EWrite e1 => (EWrite (doExp env e1), loc) |
2070 | ESeq (e1, e2) => (ESeq (doExp env e1, doExp env e2), loc) | 2071 | ESeq (e1, e2) => (ESeq (doExp env e1, doExp env e2), loc) |
2071 | ELet (x, t, e1, e2) => (ELet (x, t, doExp env e1, doExp (Unknown :: env) e2), loc) | 2072 | ELet (x, t, e1, e2) => (ELet (x, t, doExp env e1, doExp (Unknown :: env) e2), loc) |
2072 | EClosure (n, es) => (EClosure (n, map (doExp env) es), loc) | 2073 | EClosure (n, es) => (EClosure (n, map (doExp env) es), loc) |
2073 | EQuery {exps, tables, state, query, body, initial} => | 2074 | EQuery {exps, tables, state, query, body, initial, sqlcacheInfo} => |
2074 (EQuery {exps = exps, tables = tables, state = state, | 2075 (EQuery {exps = exps, tables = tables, state = state, |
2075 query = doExp env query, | 2076 query = doExp env query, |
2076 body = doExp (Unknown :: Unknown :: env) body, | 2077 body = doExp (Unknown :: Unknown :: env) body, |
2077 initial = doExp env initial}, loc) | 2078 initial = doExp env initial, |
2079 sqlcacheInfo = sqlcacheInfo}, loc) | |
2078 | EDml (e1, mode) => | 2080 | EDml (e1, mode) => |
2079 (case parse dml e1 of | 2081 (case parse dml e1 of |
2080 NONE => () | 2082 NONE => () |
2081 | SOME c => | 2083 | SOME c => |
2082 case c of | 2084 case c of |