X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fmatita%2FmatitacLib.ml;h=cfec1c5072512ace47dd29b2ef4ef505d48f1959;hb=cb99a2022db2d4731679912db78fba002c1acb5c;hp=a9172cee5a563b43406d37873a7eea76a72ee354;hpb=bfde711dd3ecd1065c8cbc6d321c583b1ac5d6c5;p=helm.git diff --git a/helm/software/matita/matitacLib.ml b/helm/software/matita/matitacLib.ml index a9172cee5..cfec1c507 100644 --- a/helm/software/matita/matitacLib.ml +++ b/helm/software/matita/matitacLib.ml @@ -180,10 +180,10 @@ let activate_extraction baseuri fname = let f = open_out (Filename.dirname fname ^ "/" ^ mangled_baseuri ^ ".ml") in - LibrarySync.set_object_declaration_hook - (fun _ obj -> + LibrarySync.add_object_declaration_hook + (fun ~add_obj ~add_coercion _ obj -> output_string f (CicExportation.ppobj baseuri obj); - flush f); + flush f; []); ;; let compile options fname = @@ -381,6 +381,10 @@ module F = with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = s -> None ;; +(* FG: a problem was noticed in relising memory between subsequent *) +(* invocations of the compiler. The following might help *) + let compact r = Gc.compact (); r + let build options fname = let matita_debug = Helm_registry.get_bool "matita.debug" in let compile opts fname = @@ -404,10 +408,10 @@ module F = let generated = Filename.chop_suffix fname ".mma" ^ ".ma" in let atexit = dump generated in let res = compile options fname in - let r = atexit res in + let r = compact (atexit res) in if r then r else begin - Sys.remove generated; - Printf.printf "rm %s\n" generated; flush stdout; r + Sys.remove generated; + Printf.printf "rm %s\n" generated; flush stdout; r end else compile options fname