]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaSync.ml
* Undo fixed.
[helm.git] / helm / matita / matitaSync.ml
index 92999a49e3fd687869a76b499f7ceee45a5918a0..66e3528bf9da3351cfe1f7cd81c80e5c8085d391 100644 (file)
@@ -117,6 +117,7 @@ let add_aliases_for_object status uri =
 let add_obj uri obj status =
  let basedir = Helm_registry.get "matita.basedir" in
  let lemmas = LibrarySync.add_obj uri obj basedir in
+ let status = {status with objects = uri::status.objects} in
   List.fold_left add_alias_for_constant
    (add_aliases_for_object status uri obj) lemmas
 
@@ -140,13 +141,6 @@ module UriSet = Set.Make (OrderedUri)
 module IdSet  = Set.Make (OrderedId)
 
   (** @return l2 \ l1 *)
-let urixstring_list_diff l2 l1 =
-  let module S = UriSet in
-  let s1 = List.fold_left (fun set uri -> S.add uri set) S.empty l1 in
-  let s2 = List.fold_left (fun set uri -> S.add uri set) S.empty l2 in
-  let diff = S.diff s2 s1 in
-  S.fold (fun uri uris -> uri :: uris) diff []
-
 let uri_list_diff l2 l1 =
   let module S = UriManager.UriSet in
   let s1 = List.fold_left (fun set uri -> S.add uri set) S.empty l1 in
@@ -163,7 +157,7 @@ let id_list_diff l2 l1 =
   S.fold (fun uri uris -> uri :: uris) diff []
 
 let time_travel ~present ~past =
-  let objs_to_remove = urixstring_list_diff present.objects past.objects in
+  let objs_to_remove = uri_list_diff present.objects past.objects in
   let coercions_to_remove = uri_list_diff present.coercions past.coercions in
   let notation_to_remove =
     id_list_diff present.notation_ids past.notation_ids
@@ -172,43 +166,5 @@ let time_travel ~present ~past =
   List.iter
    (fun uri -> CoercDb.remove_coercion (fun (_,_,u) -> UriManager.eq u uri))
    coercions_to_remove;
-  List.iter
-    (fun (uri,p) -> 
-      HExtlib.safe_remove p;
-      (try 
-        CicEnvironment.remove_obj uri
-      with CicEnvironment.Object_not_found _ -> 
-        HLog.debug
-          (sprintf "time_travel removes from cache %s that is not in" 
-            (UriManager.string_of_uri uri)));
-      let l = LibraryDb.remove_uri uri in
-      debug_list := UriManager.string_of_uri uri :: !debug_list @ l) 
-    objs_to_remove;
+  List.iter LibrarySync.remove_obj objs_to_remove;
   List.iter CicNotation.remove_notation notation_to_remove
-  (*
-  (* this is debug code
-  * idea: debug_list is the list of objects to be removed as computed from the
-  * db, while list_of_objs_to_remove is the same list but computer from the
-  * differences between statuses *)
-  let l1 = List.sort Pervasives.compare !debug_list in
-  let l2 = List.sort Pervasives.compare 
-    (List.map (fun (x,_) -> UriManager.string_of_uri x) list_of_objs_to_remove)
-  in
-  let rec uniq = function 
-    | [] -> []
-    | h::[] -> [h]
-    | h1::h2::tl when h1 = h2 -> uniq (h2 :: tl)
-    | h1::tl (* when h1 <> h2 *) -> h1 :: uniq tl
-  in
-  let l1 =  uniq l1 in
-  let l2 =  uniq l2 in
-  try
-    List.iter2 (fun x y -> if x <> y then raise Exit) l1 l2
-  with
-  | Invalid_argument _ | Exit -> 
-      HLog.debug "It seems you garbaged something...";
-      HLog.debug "l1:";
-      List.iter HLog.debug l1;
-      HLog.debug "l2:";
-      List.iter HLog.debug l2
-      *)