src/Pure/Tools/ci_profile.scala
changeset 63387 3395fe5e3893
parent 63385 370cce7ad9b9
child 63401 28cc90b0e9c2
equal deleted inserted replaced
63386:0d6adf2d5035 63387:3395fe5e3893
    17   {
    17   {
    18     val value = Isabelle_System.getenv_strict(name)
    18     val value = Isabelle_System.getenv_strict(name)
    19     println(name + "=" + Outer_Syntax.quote_string(value))
    19     println(name + "=" + Outer_Syntax.quote_string(value))
    20   }
    20   }
    21 
    21 
    22   private def build(options: Options): Build.Results =
    22   private def build(options: Options): (Build.Results, Time) =
    23   {
    23   {
    24     val progress = new Console_Progress(true)
    24     val progress = new Console_Progress(true)
    25     progress.interrupt_handler {
    25     val start_time = Time.now()
       
    26     val results = progress.interrupt_handler {
    26       Build.build_selection(
    27       Build.build_selection(
    27         options = options,
    28         options = options,
    28         progress = progress,
    29         progress = progress,
    29         clean_build = true,
    30         clean_build = true,
    30         verbose = true,
    31         verbose = true,
    32         dirs = include,
    33         dirs = include,
    33         select_dirs = select,
    34         select_dirs = select,
    34         system_mode = true,
    35         system_mode = true,
    35         selection = select_sessions _)
    36         selection = select_sessions _)
    36     }
    37     }
       
    38     val end_time = Time.now()
       
    39     (results, end_time - start_time)
    37   }
    40   }
    38 
    41 
    39   private def load_properties(): JProperties =
    42   private def load_properties(): JProperties =
    40   {
    43   {
    41     val props = new JProperties()
    44     val props = new JProperties()
    83 
    86 
    84     print_section("BUILD")
    87     print_section("BUILD")
    85     println(s"Build for Isabelle id $isabelle_id")
    88     println(s"Build for Isabelle id $isabelle_id")
    86     pre_hook(args)
    89     pre_hook(args)
    87 
    90 
    88     val results = build(options)
    91     val (results, elapsed_time) = build(options)
    89 
    92 
    90     print_section("TIMING")
    93     print_section("TIMING")
    91 
    94 
    92     val groups = results.sessions.map(results.info).flatMap(_.groups)
    95     val groups = results.sessions.map(results.info).flatMap(_.groups)
    93     for (group <- groups)
    96     for (group <- groups)
    94       println(s"Group $group: " + compute_timing(results, Some(group)).message_resources)
    97       println(s"Group $group: " + compute_timing(results, Some(group)).message_resources)
    95     println("Overall: " + compute_timing(results, None).message_resources)
    98 
       
    99     val total_timing = compute_timing(results, None).copy(elapsed = elapsed_time)
       
   100     println("Overall: " + total_timing.message_resources)
    96 
   101 
    97     if (!results.ok) {
   102     if (!results.ok) {
    98       print_section("FAILED SESSIONS")
   103       print_section("FAILED SESSIONS")
    99 
   104 
   100       for (name <- results.sessions) {
   105       for (name <- results.sessions) {