X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Flambda-delta%2Fbasic_rg%2FbrgEnvironment.ml;h=902eeb45a629c599da696f0d798336e5260d4460;hb=dcdee4ca839dac671924a95f0ada71faf06a8be4;hp=f1561516d1cb47f31abe87e8127913610b0b9d27;hpb=c45c77de154323feaf5bf6aee98c86b95361b9ae;p=helm.git diff --git a/helm/software/lambda-delta/basic_rg/brgEnvironment.ml b/helm/software/lambda-delta/basic_rg/brgEnvironment.ml index f1561516d..902eeb45a 100644 --- a/helm/software/lambda-delta/basic_rg/brgEnvironment.ml +++ b/helm/software/lambda-delta/basic_rg/brgEnvironment.ml @@ -10,21 +10,26 @@ 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