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 =
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