src/HOL/Tools/Mirabelle/mirabelle.scala
changeset 74989 003f378b78a5
parent 74987 877f0c44d77e
child 75070 500a668f3ef5
equal deleted inserted replaced
74988:9fcf09cf7b36 74989:003f378b78a5
    90                       case List("mirabelle", action, "goal", goal_name, line, offset, cpu_ms) =>
    90                       case List("mirabelle", action, "goal", goal_name, line, offset, cpu_ms) =>
    91                         action + " goal." + String.format("%-5s", goal_name) + " " + String.format("%5sms", cpu_ms) + " " +
    91                         action + " goal." + String.format("%-5s", goal_name) + " " + String.format("%5sms", cpu_ms) + " " +
    92                           args.theory_name + " " + line + ":" + offset + "  "
    92                           args.theory_name + " " + line + ":" + offset + "  "
    93                       case _ => ""
    93                       case _ => ""
    94                     }
    94                     }
    95                   val body = Library.prefix_lines(prefix, lines) + "\n"
    95                   val body = (if (lines == "") prefix else Library.prefix_lines(prefix, lines)) + "\n"
    96                   val log_file = output_dir + Path.basic("mirabelle.log")
    96                   val log_file = output_dir + Path.basic("mirabelle.log")
    97                   File.append(log_file, body)
    97                   File.append(log_file, body)
    98                 case _ =>
    98                 case _ =>
    99               }
    99               }
   100             case _ =>
   100             case _ =>
   116     Scala_Project.here, args =>
   116     Scala_Project.here, args =>
   117   {
   117   {
   118     val build_options = Word.explode(Isabelle_System.getenv("ISABELLE_BUILD_OPTIONS"))
   118     val build_options = Word.explode(Isabelle_System.getenv("ISABELLE_BUILD_OPTIONS"))
   119 
   119 
   120     var options = Options.init(opts = build_options)
   120     var options = Options.init(opts = build_options)
       
   121     val mirabelle_dry_run = options.check_name("mirabelle_dry_run")
   121     val mirabelle_max_calls = options.check_name("mirabelle_max_calls")
   122     val mirabelle_max_calls = options.check_name("mirabelle_max_calls")
   122     val mirabelle_randomize = options.check_name("mirabelle_randomize")
   123     val mirabelle_randomize = options.check_name("mirabelle_randomize")
   123     val mirabelle_stride = options.check_name("mirabelle_stride")
   124     val mirabelle_stride = options.check_name("mirabelle_stride")
   124     val mirabelle_timeout = options.check_name("mirabelle_timeout")
   125     val mirabelle_timeout = options.check_name("mirabelle_timeout")
   125     val mirabelle_output_dir = options.check_name("mirabelle_output_dir")
   126     val mirabelle_output_dir = options.check_name("mirabelle_output_dir")
   158     -r INT       """ + mirabelle_randomize.description + " (default " + mirabelle_randomize.default_value + """)
   159     -r INT       """ + mirabelle_randomize.description + " (default " + mirabelle_randomize.default_value + """)
   159     -s INT       """ + mirabelle_stride.description + " (default " + mirabelle_stride.default_value + """)
   160     -s INT       """ + mirabelle_stride.description + " (default " + mirabelle_stride.default_value + """)
   160     -t SECONDS   """ + mirabelle_timeout.description + " (default " + mirabelle_timeout.default_value + """)
   161     -t SECONDS   """ + mirabelle_timeout.description + " (default " + mirabelle_timeout.default_value + """)
   161     -v           verbose
   162     -v           verbose
   162     -x NAME      exclude session NAME and all descendants
   163     -x NAME      exclude session NAME and all descendants
       
   164     -y           """ + mirabelle_dry_run.description + " (default " + mirabelle_dry_run.default_value + """)
   163 
   165 
   164   Apply the given ACTIONs at all theories and proof steps of the
   166   Apply the given ACTIONs at all theories and proof steps of the
   165   specified sessions.
   167   specified sessions.
   166 
   168 
   167   The absence of theory restrictions (option -T) means to check all
   169   The absence of theory restrictions (option -T) means to check all
   189       "o:" -> (arg => options = options + arg),
   191       "o:" -> (arg => options = options + arg),
   190       "r:" -> (arg => options = options + ("mirabelle_randomize=" + arg)),
   192       "r:" -> (arg => options = options + ("mirabelle_randomize=" + arg)),
   191       "s:" -> (arg => options = options + ("mirabelle_stride=" + arg)),
   193       "s:" -> (arg => options = options + ("mirabelle_stride=" + arg)),
   192       "t:" -> (arg => options = options + ("mirabelle_timeout=" + arg)),
   194       "t:" -> (arg => options = options + ("mirabelle_timeout=" + arg)),
   193       "v" -> (_ => verbose = true),
   195       "v" -> (_ => verbose = true),
   194       "x:" -> (arg => exclude_sessions = exclude_sessions ::: List(arg)))
   196       "x:" -> (arg => exclude_sessions = exclude_sessions ::: List(arg)),
       
   197       "y" -> (arg => options = options + ("mirabelle_dry_run=true")))
   195 
   198 
   196     val sessions = getopts(args)
   199     val sessions = getopts(args)
   197     if (actions.isEmpty) getopts.usage()
   200     if (actions.isEmpty) getopts.usage()
   198 
   201 
   199     val progress = new Console_Progress(verbose = verbose)
   202     val progress = new Console_Progress(verbose = verbose)