bin/isabelle_process
changeset 58846 98c03412079b
parent 58842 22b87ab47d3b
child 59350 acba5d6fdb2f
equal deleted inserted replaced
58845:8451eddc4d67 58846:98c03412079b
    24 {
    24 {
    25   echo
    25   echo
    26   echo "Usage: $PRG [OPTIONS] [INPUT] [OUTPUT]"
    26   echo "Usage: $PRG [OPTIONS] [INPUT] [OUTPUT]"
    27   echo
    27   echo
    28   echo "  Options are:"
    28   echo "  Options are:"
    29   echo "    -I           startup Isar interaction mode"
       
    30   echo "    -O           system options from given YXML file"
    29   echo "    -O           system options from given YXML file"
    31   echo "    -S           secure mode -- disallow critical operations"
    30   echo "    -S           secure mode -- disallow critical operations"
    32   echo "    -T ADDR      startup process wrapper, with socket address"
    31   echo "    -T ADDR      startup process wrapper, with socket address"
    33   echo "    -W IN:OUT    startup process wrapper, with input/output fifos"
    32   echo "    -W IN:OUT    startup process wrapper, with input/output fifos"
    34   echo "    -e MLTEXT    pass MLTEXT to the ML session"
    33   echo "    -e MLTEXT    pass MLTEXT to the ML session"
    55 
    54 
    56 ## process command line
    55 ## process command line
    57 
    56 
    58 # options
    57 # options
    59 
    58 
    60 ISAR=""
       
    61 OPTIONS_FILE=""
    59 OPTIONS_FILE=""
    62 SECURE=""
    60 SECURE=""
    63 WRAPPER_SOCKET=""
    61 WRAPPER_SOCKET=""
    64 WRAPPER_FIFOS=""
    62 WRAPPER_FIFOS=""
    65 MLTEXT=""
    63 MLTEXT=""
    67 declare -a SYSTEM_OPTIONS=()
    65 declare -a SYSTEM_OPTIONS=()
    68 TERMINATE=""
    66 TERMINATE=""
    69 READONLY=""
    67 READONLY=""
    70 NOWRITE=""
    68 NOWRITE=""
    71 
    69 
    72 while getopts "IO:ST:W:e:m:o:qrw" OPT
    70 while getopts "O:ST:W:e:m:o:qrw" OPT
    73 do
    71 do
    74   case "$OPT" in
    72   case "$OPT" in
    75     I)
       
    76       ISAR=true
       
    77       ;;
       
    78     O)
    73     O)
    79       OPTIONS_FILE="$OPTARG"
    74       OPTIONS_FILE="$OPTARG"
    80       ;;
    75       ;;
    81     S)
    76     S)
    82       SECURE=true
    77       SECURE=true
   205 ML_SYSTEM_BASE=$(echo "$ML_SYSTEM" | cut -f1 -d-)
   200 ML_SYSTEM_BASE=$(echo "$ML_SYSTEM" | cut -f1 -d-)
   206 
   201 
   207 [ -n "$MODES" ] && MLTEXT="Unsynchronized.change print_mode (append [$MODES]); $MLTEXT"
   202 [ -n "$MODES" ] && MLTEXT="Unsynchronized.change print_mode (append [$MODES]); $MLTEXT"
   208 
   203 
   209 [ -n "$SECURE" ] && MLTEXT="$MLTEXT; Secure.set_secure ();"
   204 [ -n "$SECURE" ] && MLTEXT="$MLTEXT; Secure.set_secure ();"
   210 
       
   211 NICE="nice"
       
   212 
   205 
   213 if [ -n "$WRAPPER_SOCKET" ]; then
   206 if [ -n "$WRAPPER_SOCKET" ]; then
   214   MLTEXT="$MLTEXT; Isabelle_Process.init_socket \"$WRAPPER_SOCKET\";"
   207   MLTEXT="$MLTEXT; Isabelle_Process.init_socket \"$WRAPPER_SOCKET\";"
   215 elif [ -n "$WRAPPER_FIFOS" ]; then
   208 elif [ -n "$WRAPPER_FIFOS" ]; then
   216   splitarray ":" "$WRAPPER_FIFOS"; FIFOS=("${SPLITARRAY[@]}")
   209   splitarray ":" "$WRAPPER_FIFOS"; FIFOS=("${SPLITARRAY[@]}")
   230       fail "Failed to retrieve Isabelle system options"
   223       fail "Failed to retrieve Isabelle system options"
   231   fi
   224   fi
   232   if [ "$INPUT" != RAW_ML_SYSTEM -a "$INPUT" != RAW ]; then
   225   if [ "$INPUT" != RAW_ML_SYSTEM -a "$INPUT" != RAW ]; then
   233     MLTEXT="Exn.capture_exit 2 Options.load_default (); $MLTEXT"
   226     MLTEXT="Exn.capture_exit 2 Options.load_default (); $MLTEXT"
   234   fi
   227   fi
   235   if [ -n "$ISAR" ]; then
       
   236     MLTEXT="$MLTEXT; Isar.main ();"
       
   237   else
       
   238     NICE=""
       
   239   fi
       
   240 fi
   228 fi
   241 
   229 
   242 export INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_PID ISABELLE_TMP ISABELLE_PROCESS_OPTIONS
   230 export INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_PID ISABELLE_TMP ISABELLE_PROCESS_OPTIONS
   243 
   231 
   244 if [ -f "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM" ]; then
   232 if [ -f "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM" ]; then
   245   $NICE "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM"
   233   "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM"
   246 else
   234 else
   247   $NICE "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM_BASE"
   235   "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM_BASE"
   248 fi
   236 fi
   249 RC="$?"
   237 RC="$?"
   250 
   238 
   251 [ -n "$ISABELLE_PROCESS_OPTIONS" ] && rm -f "$ISABELLE_PROCESS_OPTIONS"
   239 [ -n "$ISABELLE_PROCESS_OPTIONS" ] && rm -f "$ISABELLE_PROCESS_OPTIONS"
   252 rmdir "$ISABELLE_TMP"
   240 rmdir "$ISABELLE_TMP"