Mercurial > urweb
changeset 2259:6951a645ccdf
Fix effectfulness registration toy cache.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Sun, 27 Sep 2015 17:24:57 -0400 |
parents | b1ba35ce2613 |
children | 03b10c7fab9a |
files | src/sqlcache.sml src/toy_cache.sml |
diffstat | 2 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/sqlcache.sml Sun Sep 27 17:02:14 2015 -0400 +++ b/src/sqlcache.sml Sun Sep 27 17:24:57 2015 -0400 @@ -41,6 +41,8 @@ "urlifyBool_w", "urlifyChannel_w"] in + (* ASK: nicer way than using [Settings.addEffectful] for each Sqlcache + function? Right now they're all always effectful. *) fn (m, f) => Settings.isEffectful (m, f) andalso not (m = "Basis" andalso SS.member (okayWrites, f)) end @@ -807,12 +809,15 @@ fn Pure f => f () | Impure e => e +(* TODO: pick a number. *) +val sizeWorthCaching = 5 + fun makeCache (env, exp', index) = case typOfExp' env exp' of NONE => NONE | SOME (TFun _, _) => NONE | SOME typ => - if expSize (exp', dummyLoc) < 5 (* TODO: pick a number. *) + if expSize (exp', dummyLoc) < sizeWorthCaching then NONE else case List.foldr (fn ((_, _), NONE) => NONE | ((n, typ), SOME args) =>
--- a/src/toy_cache.sml Sun Sep 27 17:02:14 2015 -0400 +++ b/src/toy_cache.sml Sun Sep 27 17:24:57 2015 -0400 @@ -13,7 +13,13 @@ fun withTyp typ = map (fn exp => (exp, typ)) fun ffiAppCache' (func, index, argTyps) = - EFfiApp ("Sqlcache", func ^ Int.toString index, argTyps) + let + val m = "Sqlcache" + val f = func ^ Int.toString index + in + Settings.addEffectful (m, f); + EFfiApp (m, f, argTyps) + end fun check (index, keys) = ffiAppCache' ("check", index, withTyp stringTyp keys)