external_prover: "exec" the command line, in order to preserve the exact process context of the "system" invocation (this recovers interruptibility of E-1.0, which assumes to be the process group leader);
--- a/src/HOL/Tools/atp_wrapper.ML Wed Apr 15 20:03:08 2009 +0200
+++ b/src/HOL/Tools/atp_wrapper.ML Thu Apr 16 14:54:57 2009 +0200
@@ -68,7 +68,7 @@
val fname = File.platform_path probfile
val thm_names = write_problem_file probfile th subgoalno axiom_clauses thy
val cmdline =
- if File.exists cmd then File.shell_path cmd ^ " " ^ args
+ if File.exists cmd then "exec " ^ File.shell_path cmd ^ " " ^ args
else error ("Bad executable: " ^ Path.implode cmd)
val (proof, rc) = system_out (cmdline ^ " " ^ fname)