comparison src/monoize.sml @ 910:8e540df3294d

grid1 compiles but gets stuck in JS
author Adam Chlipala <adamc@hcoop.net>
date Tue, 25 Aug 2009 13:57:56 -0400
parents ed06e25c70ef
children b873feb3eb52
comparison
equal deleted inserted replaced
909:1d3f60e74ec7 910:8e540df3294d
3160 val call = foldl (fn (e, call) => (L'.EStrcat (call, e), loc)) 3160 val call = foldl (fn (e, call) => (L'.EStrcat (call, e), loc))
3161 (L'.EPrim (Prim.String name), loc) call 3161 (L'.EPrim (Prim.String name), loc) call
3162 3162
3163 val (ek, fm) = monoExp (env, st, fm) ek 3163 val (ek, fm) = monoExp (env, st, fm) ek
3164 3164
3165 val unRpced = foldl (fn (e1, e2) => (L'.EApp (e2, e1), loc)) (L'.ENamed n, loc) es
3166 val unRpced = (L'.EApp (unRpced, (L'.ERecord [], loc)), loc)
3167 val unRpced = (L'.EApp (ek, unRpced), loc)
3168 val unRpced = (L'.EApp (unRpced, (L'.ERecord [], loc)), loc)
3169 val unit = (L'.TRecord [], loc) 3165 val unit = (L'.TRecord [], loc)
3170 3166
3171 val ekf = (L'.EAbs ("f", 3167 val ekf = (L'.EAbs ("f",
3172 (L'.TFun (t, 3168 (L'.TFun (t,
3173 (L'.TFun ((L'.TRecord [], loc), 3169 (L'.TFun ((L'.TRecord [], loc),
3184 val eff = if IS.member (!readCookie, n) then 3180 val eff = if IS.member (!readCookie, n) then
3185 L'.ReadCookieWrite 3181 L'.ReadCookieWrite
3186 else 3182 else
3187 L'.ReadOnly 3183 L'.ReadOnly
3188 3184
3189 val e = (L'.EServerCall (call, ek, t, eff, unRpced), loc) 3185 val e = (L'.EServerCall (call, ek, t, eff), loc)
3190 val e = liftExpInExp 0 e 3186 val e = liftExpInExp 0 e
3191 val e = (L'.EAbs ("_", unit, unit, e), loc) 3187 val e = (L'.EAbs ("_", unit, unit, e), loc)
3192 in 3188 in
3193 (e, fm) 3189 (e, fm)
3194 end 3190 end