]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/grafite2/grafiteTypes.ml
1. metadata are no longer stored in .moo files.
[helm.git] / helm / ocaml / grafite2 / grafiteTypes.ml
index 2e2daf4e773de903e1561ce19fc2c64810a76e58..c73e8bd3ce395af92af7a52e00b53900ad503adb 100644 (file)
@@ -53,6 +53,7 @@ type status = {
   aliases: DisambiguateTypes.environment;
   multi_aliases: DisambiguateTypes.multiple_environment;
   moo_content_rev: GrafiteMarshal.moo;
+  metadata: LibraryNoDb.metadata list;
   proof_status: proof_status;
   options: options;
   objects: UriManager.uri list;
@@ -115,7 +116,7 @@ let get_proof_conclusion status goal =
   | _ -> raise (Statement_error "no ongoing proof")
  
 let add_moo_content cmds status =
-  let content, metadata = status.moo_content_rev in
+  let content = status.moo_content_rev in
   let content' =
     List.fold_right
       (fun cmd acc ->
@@ -132,7 +133,7 @@ let add_moo_content cmds status =
   in
 (*   prerr_endline ("new moo content: " ^ String.concat " " (List.map
     GrafiteAstPp.pp_command content')); *)
-  { status with moo_content_rev = content', metadata }
+  { status with moo_content_rev = content' }
 
 let get_option status name =
   try
@@ -174,26 +175,29 @@ let get_string_option status name =
 
 let qualify status name = get_string_option status "baseuri" ^ "/" ^ name
 
-let add_moo_metadata new_metadata status =
-  let content, metadata = status.moo_content_rev in
-  let metadata' =
-    List.fold_left
-      (fun acc m ->
-        match m with
-        | GrafiteAst.Dependency buri ->
-            let is_self = (* self dependency *)
-              try
-                get_string_option status "baseuri" = buri
-              with Option_error _ -> false  (* baseuri not yet set *)
-            in
-            if is_self
-              || List.exists (GrafiteAst.eq_metadata m) metadata (* duplicate *)
-            then acc
-            else m :: acc
-        | _ -> m :: acc)
-      metadata new_metadata
-  in
-  { status with moo_content_rev = content, metadata' }
+let add_metadata new_metadata status =
+  if Helm_registry.get_bool "db.nodb" then
+    let metadata = status.metadata in
+    let metadata' =
+      List.fold_left
+        (fun acc m ->
+          match m with
+          | LibraryNoDb.Dependency buri ->
+              let is_self = (* self dependency *)
+                try
+                  get_string_option status "baseuri" = buri
+                with Option_error _ -> false  (* baseuri not yet set *)
+              in
+              if is_self (* duplicate *)
+                || List.exists (LibraryNoDb.eq_metadata m) metadata
+              then acc
+              else m :: acc
+          | _ -> m :: acc)
+        metadata new_metadata
+    in
+    { status with metadata = metadata' }
+  else
+    status
 
 let dump_status status = 
   HLog.message "status.aliases:\n";