]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/lambda-delta/basic_rg/brgEnvironment.ml
- proper KAM with closures implemented for the brg kernel
[helm.git] / helm / software / lambda-delta / basic_rg / brgEnvironment.ml
index f1561516d1cb47f31abe87e8127913610b0b9d27..902eeb45a629c599da696f0d798336e5260d4460 100644 (file)
       V_______________________________________________________________ *)
 
 module U = NUri
+module L = Log
 module H = U.UriHash
 module B = Brg
 
-exception ObjectNotFound of string Lazy.t
+exception ObjectNotFound of B.message
 
 let hsize = 7000 
 let env = H.create hsize
+let entry = ref 1
 
 (* Internal functions *******************************************************)
 
+let error uri = raise (ObjectNotFound (L.items1 (U.string_of_uri uri)))
+
 (* Interface functions ******************************************************)
 
-let set_obj f obj uri =
-   H.add env uri obj; f obj uri
-   
+let set_obj f obj =
+   let _, uri, b = obj in
+   let obj = !entry, uri, b in
+   incr entry; H.add env uri obj; f obj
+
 let get_obj f uri =
-   try f (H.find env uri) uri
-   with Not_found -> raise (ObjectNotFound (lazy (U.string_of_uri uri)))
+   try f (H.find env uri) with Not_found -> error uri