lib/scripts/run-polyml-5.3.0
author wenzelm
Mon, 29 Feb 2016 20:35:06 +0100
changeset 62475 43e64c770f28
parent 62459 7a5d88dd8cc9
permissions -rwxr-xr-x
isabelle_process executable no longer supports writable heap images;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10555
2323ec838401 /usr/bin/env bash;
wenzelm
parents: 10206
diff changeset
     1
#!/usr/bin/env bash
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
     2
#
26215
94d32a7cd0fb rearrangements to make latest Poly/ML the default, not old 4.x;
wenzelm
parents: 25123
diff changeset
     3
# Author: Makarius
2314
67bf78c7c725 replaced cat by ucat;
wenzelm
parents: 2301
diff changeset
     4
#
62459
7a5d88dd8cc9 support only polyml-5.3.0 and polyml-5.6;
wenzelm
parents: 59344
diff changeset
     5
# Startup script for Poly/ML 5.3.0.
9977
32955afeb835 unexport exports;
wenzelm
parents: 9789
diff changeset
     6
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
     7
export -n HEAP_FILE ML_TEXT TERMINATE
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
     8
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
     9
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    10
## diagnostics
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    11
40544
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    12
function fail()
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    13
{
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    14
  echo "$1" >&2
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    15
  exit 2
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    16
}
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    17
10206
d48a2e324abf accomodate Poly/ML 4.0;
wenzelm
parents: 10105
diff changeset
    18
function check_file()
5063
d45ec8d00ab0 check_mlhome_file;
wenzelm
parents: 4505
diff changeset
    19
{
40544
34e56a6668ba tuned error messages;
wenzelm
parents: 40480
diff changeset
    20
  [ ! -f "$1" ] && fail "Unable to locate \"$1\""
5063
d45ec8d00ab0 check_mlhome_file;
wenzelm
parents: 4505
diff changeset
    21
}
d45ec8d00ab0 check_mlhome_file;
wenzelm
parents: 4505
diff changeset
    22
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    23
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    24
## prepare databases
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    25
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    26
if [ -z "$HEAP_FILE" ]; then
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    27
  INIT="fun exit rc = Posix.Process.exit (Word8.fromInt rc);"
10105
f9be78009930 added COPYDB argument;
wenzelm
parents: 9997
diff changeset
    28
else
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    29
  check_file "$HEAP_FILE"
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    30
  INIT="(Signal.signal (2, Signal.SIG_HANDLE (fn _ => Process.interruptConsoleProcesses ())); PolyML.SaveState.loadState \"$HEAP_FILE\" handle exn => (TextIO.output (TextIO.stdErr, General.exnMessage exn ^ \": $HEAP_FILE\\n\"); Posix.Process.exit 0w1));"
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    31
fi
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    32
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    33
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    34
## poly process
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    35
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    36
ML_TEXT="$INIT $ML_TEXT"
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    37
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    38
check_file "$ML_HOME/poly"
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    39
librarypath "$ML_HOME"
26215
94d32a7cd0fb rearrangements to make latest Poly/ML the default, not old 4.x;
wenzelm
parents: 25123
diff changeset
    40
16254
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    41
if [ -z "$TERMINATE" ]; then
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    42
  FEEDER_OPTS=""
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    43
else
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    44
  FEEDER_OPTS="-q"
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    45
fi
1b2683e18fd2 DISCGARB_OPTIONS: proper treatment of specific polyml versions;
wenzelm
parents: 15850
diff changeset
    46
62475
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    47
"$ISABELLE_HOME/lib/scripts/feeder" -p -h "$ML_TEXT" $FEEDER_OPTS | \
43e64c770f28 isabelle_process executable no longer supports writable heap images;
wenzelm
parents: 62459
diff changeset
    48
  { read FPID; "$ML_HOME/poly" -q $ML_OPTIONS; RC="$?"; kill -TERM "$FPID"; exit "$RC"; }
9789
wenzelm
parents: 9765
diff changeset
    49
RC="$?"
2301
c72f4f7236b6 run-polyml: Poly/ML startup script.
wenzelm
parents:
diff changeset
    50
9789
wenzelm
parents: 9765
diff changeset
    51
exit "$RC"
40480
d695d258dfbc tuned error message;
wenzelm
parents: 39619
diff changeset
    52
d695d258dfbc tuned error message;
wenzelm
parents: 39619
diff changeset
    53
#:wrap=soft:maxLineLen=100: