author | haftmann |
Fri, 19 Aug 2022 05:49:16 +0000 | |
changeset 75882 | 96d5fa32f0f7 |
parent 71656 | 3e121f999120 |
child 78671 | 66e7a3131fe3 |
permissions | -rw-r--r-- |
48681
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
1 |
(* Title: Pure/System/command_line.ML |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
2 |
Author: Makarius |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
3 |
|
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
4 |
Support for Isabelle/ML command line tools. |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
5 |
*) |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
6 |
|
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
7 |
signature COMMAND_LINE = |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
8 |
sig |
71632 | 9 |
val tool: (unit -> unit) -> unit |
48681
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
10 |
end; |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
11 |
|
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
12 |
structure Command_Line: COMMAND_LINE = |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
13 |
struct |
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
14 |
|
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
15 |
fun tool body = |
62923 | 16 |
Thread_Attributes.uninterruptible (fn restore_attributes => fn () => |
56628 | 17 |
let |
18 |
val rc = |
|
71632 | 19 |
(restore_attributes body (); 0) |
71656
3e121f999120
clarified signature: more direct Isabelle_Process.EXIT;
wenzelm
parents:
71632
diff
changeset
|
20 |
handle exn => Exn.capture_exit 2 (fn () => (Runtime.exn_error_message exn; raise exn)) (); |
62470
9037ed690e19
proper exit as in Scala version (in contrast to a45ba78abcc1);
wenzelm
parents:
56630
diff
changeset
|
21 |
in exit rc end) (); |
48681
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
22 |
|
181b91e1d1c1
prefer general Command_Line.tool wrapper (cf. Scala version);
wenzelm
parents:
diff
changeset
|
23 |
end; |