bin/isabelle-process
changeset 51948 cb5dbc9a06f9
parent 51938 cf9c8d8d8939
child 51952 4517ceb545c1
equal deleted inserted replaced
51947:3301612c4893 51948:cb5dbc9a06f9
    56 
    56 
    57 ## process command line
    57 ## process command line
    58 
    58 
    59 # options
    59 # options
    60 
    60 
    61 ISAR=false
    61 ISAR=""
    62 PROOFGENERAL=""
    62 PROOFGENERAL=""
    63 SECURE=""
    63 SECURE=""
    64 WRAPPER_SOCKET=""
    64 WRAPPER_SOCKET=""
    65 WRAPPER_FIFOS=""
    65 WRAPPER_FIFOS=""
    66 MLTEXT=""
    66 MLTEXT=""
    74   case "$OPT" in
    74   case "$OPT" in
    75     I)
    75     I)
    76       ISAR=true
    76       ISAR=true
    77       ;;
    77       ;;
    78     P)
    78     P)
    79       ISAR=true
       
    80       PROOFGENERAL=true
    79       PROOFGENERAL=true
    81       ;;
    80       ;;
    82     S)
    81     S)
    83       SECURE=true
    82       SECURE=true
    84       ;;
    83       ;;
   208 
   207 
   209 ML_SYSTEM_BASE=$(echo "$ML_SYSTEM" | cut -f1 -d-)
   208 ML_SYSTEM_BASE=$(echo "$ML_SYSTEM" | cut -f1 -d-)
   210 
   209 
   211 [ -n "$MODES" ] && MLTEXT="Unsynchronized.change print_mode (append [$MODES]); $MLTEXT"
   210 [ -n "$MODES" ] && MLTEXT="Unsynchronized.change print_mode (append [$MODES]); $MLTEXT"
   212 
   211 
   213 [ -n "$SECURE" ] && MLTEXT="$MLTEXT Secure.set_secure ();"
   212 [ -n "$SECURE" ] && MLTEXT="$MLTEXT; Secure.set_secure ();"
   214 
   213 
   215 NICE="nice"
   214 NICE="nice"
   216 
   215 
   217 if [ -n "$WRAPPER_SOCKET" ]; then
   216 if [ -n "$WRAPPER_SOCKET" ]; then
   218   MLTEXT="$MLTEXT; Isabelle_Process.init_socket \"$WRAPPER_SOCKET\";"
   217   MLTEXT="$MLTEXT; Isabelle_Process.init_socket \"$WRAPPER_SOCKET\";"
   220   splitarray ":" "$WRAPPER_FIFOS"; FIFOS=("${SPLITARRAY[@]}")
   219   splitarray ":" "$WRAPPER_FIFOS"; FIFOS=("${SPLITARRAY[@]}")
   221   [ "${#FIFOS[@]}" -eq 2 ] || fail "Expected IN:OUT fifo specification"
   220   [ "${#FIFOS[@]}" -eq 2 ] || fail "Expected IN:OUT fifo specification"
   222   [ -p "${FIFOS[0]}" ] || fail "Bad input fifo: ${FIFOS[0]}"
   221   [ -p "${FIFOS[0]}" ] || fail "Bad input fifo: ${FIFOS[0]}"
   223   [ -p "${FIFOS[1]}" ] || fail "Bad output fifo: ${FIFOS[1]}"
   222   [ -p "${FIFOS[1]}" ] || fail "Bad output fifo: ${FIFOS[1]}"
   224   MLTEXT="$MLTEXT; Isabelle_Process.init_fifos \"${FIFOS[0]}\" \"${FIFOS[1]}\";"
   223   MLTEXT="$MLTEXT; Isabelle_Process.init_fifos \"${FIFOS[0]}\" \"${FIFOS[1]}\";"
   225 elif [ "$ISAR" = true ]; then
   224 else
   226   if [ -z "$ISABELLE_PROCESS_OPTIONS" ]; then
   225   if [ -z "$ISABELLE_PROCESS_OPTIONS" ]; then
   227     ISABELLE_PROCESS_OPTIONS="$ISABELLE_TMP/options"
   226     ISABELLE_PROCESS_OPTIONS="$ISABELLE_TMP/options"
   228     "$ISABELLE_TOOL" options -x "$ISABELLE_PROCESS_OPTIONS" || fail "Failed to retrieve options"
   227     "$ISABELLE_TOOL" options -x "$ISABELLE_PROCESS_OPTIONS" || fail "Failed to retrieve options"
   229   fi
   228   fi
       
   229   if [ "$INPUT" != RAW_ML_SYSTEM ]; then
       
   230     MLTEXT="Options.load_default () handle _ => exit 2; $MLTEXT"
       
   231   fi
   230   if [ -n "$PROOFGENERAL" ]; then
   232   if [ -n "$PROOFGENERAL" ]; then
   231     MLTEXT="$MLTEXT; ProofGeneral.init ();"
   233     MLTEXT="$MLTEXT; ProofGeneral.init ();"
       
   234   elif [ -n "$ISAR" ]; then
       
   235     MLTEXT="$MLTEXT; Isar.main ();"
   232   else
   236   else
   233     MLTEXT="$MLTEXT; Isar.main ();"
   237     NICE=""
   234   fi
   238   fi
   235 else
       
   236   NICE=""
       
   237 fi
   239 fi
   238 
   240 
   239 export INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_PID ISABELLE_TMP ISABELLE_PROCESS_OPTIONS
   241 export INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_PID ISABELLE_TMP ISABELLE_PROCESS_OPTIONS
   240 
   242 
   241 if [ -f "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM" ]; then
   243 if [ -f "$ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM" ]; then