X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Flibrary%2FlibraryClean.ml;h=092527155e272cce2ad638d81c425047eaf3e7ff;hb=114ee592d3da9b49abfd4c1b186cba1e170075dc;hp=a7a3d7345886027bec83229911b6a4928aa84ac0;hpb=a58d25c192ff13ecee2cb92f07ee6f1cbe5219b5;p=helm.git diff --git a/helm/ocaml/library/libraryClean.ml b/helm/ocaml/library/libraryClean.ml index a7a3d7345..092527155 100644 --- a/helm/ocaml/library/libraryClean.ml +++ b/helm/ocaml/library/libraryClean.ml @@ -122,10 +122,10 @@ let close_uri_list uri_to_remove = in uri_to_remove, depend -let rec close_using_db uris next = +let rec close_db uris next = match next with | [] -> uris - | l -> let uris, next = close_uri_list l in close_using_db uris next @ uris + | l -> let uris, next = close_uri_list l in close_db uris next @ uris let cleaned_no = ref 0;; @@ -145,33 +145,31 @@ let moo_root_dir = lazy ( String.sub url 7 (String.length url - 7) (* remove heading "file:///" *) ) -let close_using_moos buris = +let close_nodb ~basedir buris = let rev_deps = Hashtbl.create 97 in - let all_moos = - HExtlib.find ~test:(fun name -> Filename.check_suffix name ".moo") + let all_metadata = + HExtlib.find ~test:(fun name -> Filename.check_suffix name ".metadata") (Lazy.force moo_root_dir) in List.iter (fun path -> - let _, metadata = GrafiteMarshal.load_moo ~fname:path in - let baseuri_of_current_moo = - let rec aux = function - | [] -> assert false - | GrafiteAst.Baseuri buri::_ -> buri - | _ :: tl -> aux tl - in - aux metadata + let metadata = LibraryNoDb.load_metadata ~fname:path in + let baseuri_of_current_metadata = + let dirname = Filename.dirname path in + let basedirlen = String.length basedir in + assert (String.sub dirname 0 basedirlen = basedir); + "cic:" ^ + String.sub dirname basedirlen (String.length dirname - basedirlen) ^ + Filename.basename path in let deps = HExtlib.filter_map - (function - | GrafiteAst.Dependency buri -> Some buri - | _ -> None ) + (function LibraryNoDb.Dependency buri -> Some buri) metadata in List.iter - (fun buri -> Hashtbl.add rev_deps buri baseuri_of_current_moo) deps) - all_moos; + (fun buri -> Hashtbl.add rev_deps buri baseuri_of_current_metadata) deps) + all_metadata; let buris_to_remove = HExtlib.list_uniq (List.fast_sort Pervasives.compare @@ -198,9 +196,9 @@ let clean_baseuris ?(verbose=true) ~basedir buris = List.iter debug_prerr buris; let l = if Helm_registry.get_bool "db.nodb" then - close_using_moos buris + close_nodb ~basedir buris else - close_using_db [] buris + close_db [] buris in let l = HExtlib.list_uniq (List.fast_sort Pervasives.compare l) in let l = List.map UriManager.uri_of_string l in @@ -209,7 +207,9 @@ let clean_baseuris ?(verbose=true) ~basedir buris = List.iter (fun u -> debug_prerr (UriManager.string_of_uri u)) l; List.iter (fun buri -> - HExtlib.safe_remove (LibraryMisc.obj_file_of_baseuri basedir buri)) + HExtlib.safe_remove (LibraryMisc.obj_file_of_baseuri basedir buri); + HExtlib.safe_remove (LibraryMisc.metadata_file_of_baseuri basedir buri); + HExtlib.safe_remove (LibraryMisc.lexicon_file_of_baseuri basedir buri)) (HExtlib.list_uniq (List.fast_sort Pervasives.compare (List.map (UriManager.buri_of_uri) l))); List.iter