X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fng_library%2FnCicLibrary.ml;h=a7129177eba6f39d1b7691940ccd1b075dbd3394;hb=fe4e63f87929fc9d63db499c5035573683be34be;hp=27fb0baf62db3722a378313847b69e91608cbd90;hpb=2b339969803b2ff9f5442c96a5736626712745f7;p=helm.git diff --git a/matita/components/ng_library/nCicLibrary.ml b/matita/components/ng_library/nCicLibrary.ml index 27fb0baf6..a7129177e 100644 --- a/matita/components/ng_library/nCicLibrary.ml +++ b/matita/components/ng_library/nCicLibrary.ml @@ -162,6 +162,11 @@ let time_travel0 (sto,ali) = let time_travel status = time_travel0 status#timestamp;; +let replace status = + let sto,ali = status#timestamp in + storage := sto; local_aliases := ali +;; + type obj = string * Obj.t (* includes are transitively closed; dependencies are only immediate *) type dump = @@ -278,32 +283,31 @@ module Serializer(D: sig type dumpable_s val get: dumpable_s -> dumpable_status let aux (baseuri,fname) ~refresh_uri_in_universe:_ ~refresh_uri_in_term:_ ~refresh_uri_in_reference:_ ~alias_only status = let baseuri = refresh_uri baseuri in - let alias_only = - alias_only || List.mem baseuri (get_transitively_included (D.get status)) - in - (*HLog.warn ("include " ^ (if alias_only then "alias " else "") ^ fname);*) + if not alias_only && List.mem baseuri (get_transitively_included (D.get status)) then status + else + (HLog.warn ("include " ^ (if alias_only then "alias " else "") ^ fname); let status = require2 ~baseuri ~alias_only status in - (*HLog.warn ("done: include " ^ (if alias_only then "alias " else "") ^ fname);*) - status + HLog.warn ("done: include " ^ (if alias_only then "alias " else "") ^ fname); + status) in register#run "include" aux let require ~baseuri ~fname ~alias_only status = - let alias_only = - alias_only || List.mem baseuri (get_transitively_included (D.get status)) in - let status = - if not alias_only then - let s = D.get status in - D.set status - (s#set_dump {s#dump with dependencies = fname::s#dump.dependencies}) - else - status in - let status = require2 ~baseuri ~alias_only status in - let s = D.get status in - D.set status - (s#set_dump - {s#dump with - objs = record_include (baseuri,fname)::s#dump.objs }) + if not alias_only && List.mem baseuri (get_transitively_included (D.get status)) then status + else + (let status = + if not alias_only then + let s = D.get status in + D.set status + (s#set_dump {s#dump with dependencies = fname::s#dump.dependencies}) + else + status in + let status = require2 ~baseuri ~alias_only status in + let s = D.get status in + D.set status + (s#set_dump + {s#dump with + objs = record_include (baseuri,fname)::s#dump.objs })) end let fetch_obj status uri =