X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Fng_kernel%2FnCicLibrary.mli;h=6dc7dde437d52e1e41e22e42e0bff7ee522c470a;hb=55ef67743ddc33b1b3f86384909fddadbb7d5103;hp=ca1aed271baa01b9a8e1a5e23e5223f15ea4d3b7;hpb=cf2b1084c561a6842d7cbc5691943ef53b151aca;p=helm.git diff --git a/helm/software/components/ng_kernel/nCicLibrary.mli b/helm/software/components/ng_kernel/nCicLibrary.mli index ca1aed271..6dc7dde43 100644 --- a/helm/software/components/ng_kernel/nCicLibrary.mli +++ b/helm/software/components/ng_kernel/nCicLibrary.mli @@ -9,11 +9,55 @@ \ / This software is distributed as is, NO WARRANTY. V_______________________________________________________________ *) -(* NG: minimal wrapper on the old cicEnvironment, should provide only the - * functions strictly necessary to the typechecking algorithm *) +(* $Id$ *) -exception ObjectNotFound of string Lazy.t +exception LibraryOutOfSync of string Lazy.t -val get_obj: NUri.uri -> NCic.obj +type timestamp + +class type g_status = + object + method timestamp: timestamp + end + +class status : + object ('self) + inherit g_status + method set_timestamp: timestamp -> 'self + method set_library_status: #g_status -> 'self + end + +(* it also checks it and add it to the environment *) +val add_obj: #status as 'status -> NCic.obj -> 'status +val add_constraint: + #status as 'status -> NCic.universe -> NCic.universe -> 'status +val aliases_of: NUri.uri -> NReference.reference list +val resolve: string -> NReference.reference list +(* warning: get_obj may raise (NCicEnvironment.ObjectNotFoud l) *) +val get_obj: NUri.uri -> NCic.obj (* changes the current timestamp *) + +val clear_cache : unit -> unit + +val time_travel: #status -> unit +val decompile: baseuri:NUri.uri -> unit + +module type Serializer = + sig + type status + type obj + val register: + string -> + ('a -> refresh_uri_in_universe:(NCic.universe -> NCic.universe) -> refresh_uri_in_term:(NCic.term -> NCic.term) -> status -> status) -> + ('a -> obj) + val serialize: baseuri:NUri.uri -> obj list -> unit + val require: baseuri:NUri.uri -> status -> status + end + +module Serializer(S: sig type status end): Serializer with type status= S.status + +val init: unit -> unit + +(* CSC: only required during old-to-NG phase, to be deleted *) +val refresh_uri: NUri.uri -> NUri.uri (* EOF *)