view src/cache.sml @ 2257:28a541bd2d23

Use referenced (rather than all) free variables as keys for pure caches.
author Ziv Scully <ziv@mit.edu>
date Sun, 27 Sep 2015 14:46:12 -0400
parents af1585e7d645
children 0bdfec16a01d
line wrap: on
line source
structure Cache = struct

type cache =
     {(* Takes a query ID and parameters (and, for store, the value to
            store) and gives an FFI call that checks, stores, or flushes the
            relevant entry. The parameters are strings for check and store and
            optional strings for flush because some parameters might not be
            fixed. *)
      check : int * Mono.exp list -> Mono.exp',
      store : int * Mono.exp list * Mono.exp -> Mono.exp',
      flush : int * Mono.exp list -> Mono.exp',
      (* Generates C needed for FFI calls in check, store, and flush. *)
      setupGlobal : Print.PD.pp_desc,
      setupQuery : {index : int, params : int} -> Print.PD.pp_desc}

end