Mercurial > urweb
comparison src/mono_util.sml @ 1932:98895243b5b6
Change handling of returned text blobs, to activate the normal EWrite optimizations
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 11 Dec 2013 18:22:10 -0500 |
parents | e15234fbb163 |
children | f7113855f3b7 |
comparison
equal
deleted
inserted
replaced
1931:1a04b1edded2 | 1932:98895243b5b6 |
---|---|
259 S.bind2 (mfe ctx e, | 259 S.bind2 (mfe ctx e, |
260 fn e' => | 260 fn e' => |
261 S.map2 (mft t, | 261 S.map2 (mft t, |
262 fn t' => | 262 fn t' => |
263 (EError (e', t'), loc))) | 263 (EError (e', t'), loc))) |
264 | EReturnBlob {blob, mimeType, t} => | 264 | EReturnBlob {blob = NONE, mimeType, t} => |
265 S.bind2 (mfe ctx mimeType, | |
266 fn mimeType' => | |
267 S.map2 (mft t, | |
268 fn t' => | |
269 (EReturnBlob {blob = NONE, mimeType = mimeType', t = t'}, loc))) | |
270 | EReturnBlob {blob = SOME blob, mimeType, t} => | |
265 S.bind2 (mfe ctx blob, | 271 S.bind2 (mfe ctx blob, |
266 fn blob' => | 272 fn blob' => |
267 S.bind2 (mfe ctx mimeType, | 273 S.bind2 (mfe ctx mimeType, |
268 fn mimeType' => | 274 fn mimeType' => |
269 S.map2 (mft t, | 275 S.map2 (mft t, |
270 fn t' => | 276 fn t' => |
271 (EReturnBlob {blob = blob', mimeType = mimeType', t = t'}, loc)))) | 277 (EReturnBlob {blob = SOME blob', mimeType = mimeType', t = t'}, loc)))) |
272 | ERedirect (e, t) => | 278 | ERedirect (e, t) => |
273 S.bind2 (mfe ctx e, | 279 S.bind2 (mfe ctx e, |
274 fn e' => | 280 fn e' => |
275 S.map2 (mft t, | 281 S.map2 (mft t, |
276 fn t' => | 282 fn t' => |
493 | ERecord xets => app (appl o #2) xets | 499 | ERecord xets => app (appl o #2) xets |
494 | EField (e1, _) => appl e1 | 500 | EField (e1, _) => appl e1 |
495 | ECase (e1, pes, _) => (appl e1; app (appl o #2) pes) | 501 | ECase (e1, pes, _) => (appl e1; app (appl o #2) pes) |
496 | EStrcat (e1, e2) => (appl e1; appl e2) | 502 | EStrcat (e1, e2) => (appl e1; appl e2) |
497 | EError (e1, _) => appl e1 | 503 | EError (e1, _) => appl e1 |
498 | EReturnBlob {blob = e1, mimeType = e2, ...} => (appl e1; appl e2) | 504 | EReturnBlob {blob = NONE, mimeType = e2, ...} => appl e2 |
505 | EReturnBlob {blob = SOME e1, mimeType = e2, ...} => (appl e1; appl e2) | |
499 | ERedirect (e1, _) => appl e1 | 506 | ERedirect (e1, _) => appl e1 |
500 | EWrite e1 => appl e1 | 507 | EWrite e1 => appl e1 |
501 | ESeq (e1, e2) => (appl e1; appl e2) | 508 | ESeq (e1, e2) => (appl e1; appl e2) |
502 | ELet (_, _, e1, e2) => (appl e1; appl e2) | 509 | ELet (_, _, e1, e2) => (appl e1; appl e2) |
503 | EClosure (_, es) => app appl es | 510 | EClosure (_, es) => app appl es |