src/Pure/Admin/build_history.scala
changeset 69304 1f4afcde3334
parent 69253 8bfa615ddde4
child 69366 b6dacf6eabe3
equal deleted inserted replaced
69303:51d8b4dbc61b 69304:1f4afcde3334
   112     afp_partition: Int = 0,
   112     afp_partition: Int = 0,
   113     isabelle_identifier: String = default_isabelle_identifier,
   113     isabelle_identifier: String = default_isabelle_identifier,
   114     ml_statistics_step: Int = 1,
   114     ml_statistics_step: Int = 1,
   115     components_base: String = "",
   115     components_base: String = "",
   116     fresh: Boolean = false,
   116     fresh: Boolean = false,
       
   117     hostname: String = "",
   117     nonfree: Boolean = false,
   118     nonfree: Boolean = false,
   118     multicore_base: Boolean = false,
   119     multicore_base: Boolean = false,
   119     multicore_list: List[(Int, Int)] = List(default_multicore),
   120     multicore_list: List[(Int, Int)] = List(default_multicore),
   120     arch_64: Boolean = false,
   121     arch_64: Boolean = false,
   121     heap: Int = default_heap,
   122     heap: Int = default_heap,
   174 
   175 
   175     val other_isabelle =
   176     val other_isabelle =
   176       Other_Isabelle(root, isabelle_identifier = isabelle_identifier,
   177       Other_Isabelle(root, isabelle_identifier = isabelle_identifier,
   177         user_home = user_home, progress = progress)
   178         user_home = user_home, progress = progress)
   178 
   179 
   179     val build_host = Isabelle_System.hostname()
   180     val build_host = proper_string(hostname) getOrElse Isabelle_System.hostname()
   180     val build_history_date = Date.now()
   181     val build_history_date = Date.now()
   181     val build_group_id = build_host + ":" + build_history_date.time.ms
   182     val build_group_id = build_host + ":" + build_history_date.time.ms
   182 
   183 
   183     var first_build = true
   184     var first_build = true
   184     for ((threads, processes) <- multicore_list) yield
   185     for ((threads, processes) <- multicore_list) yield
   400       var multicore_list = List(default_multicore)
   401       var multicore_list = List(default_multicore)
   401       var isabelle_identifier = default_isabelle_identifier
   402       var isabelle_identifier = default_isabelle_identifier
   402       var afp_partition = 0
   403       var afp_partition = 0
   403       var more_settings: List[String] = Nil
   404       var more_settings: List[String] = Nil
   404       var fresh = false
   405       var fresh = false
       
   406       var hostname = ""
   405       var init_settings: List[String] = Nil
   407       var init_settings: List[String] = Nil
   406       var arch_64 = false
   408       var arch_64 = false
   407       var nonfree = false
   409       var nonfree = false
   408       var output_file = ""
   410       var output_file = ""
   409       var rev = default_rev
   411       var rev = default_rev
   426     -N NAME      alternative ISABELLE_IDENTIFIER (default: """ + default_isabelle_identifier + """)
   428     -N NAME      alternative ISABELLE_IDENTIFIER (default: """ + default_isabelle_identifier + """)
   427     -P NUMBER    AFP partition number (0, 1, 2, default: 0=unrestricted)
   429     -P NUMBER    AFP partition number (0, 1, 2, default: 0=unrestricted)
   428     -U SIZE      maximal ML heap in MB (default: unbounded)
   430     -U SIZE      maximal ML heap in MB (default: unbounded)
   429     -e TEXT      additional text for generated etc/settings
   431     -e TEXT      additional text for generated etc/settings
   430     -f           fresh build of Isabelle/Scala components (recommended)
   432     -f           fresh build of Isabelle/Scala components (recommended)
       
   433     -h NAME      override local hostname
   431     -i TEXT      initial text for generated etc/settings
   434     -i TEXT      initial text for generated etc/settings
   432     -m ARCH      processor architecture (32=x86, 64=x86_64, default: x86)
   435     -m ARCH      processor architecture (32=x86, 64=x86_64, default: x86)
   433     -n           include nonfree components
   436     -n           include nonfree components
   434     -o FILE      output file for log names (default: stdout)
   437     -o FILE      output file for log names (default: stdout)
   435     -r REV       update to revision (default: """ + default_rev + """)
   438     -r REV       update to revision (default: """ + default_rev + """)
   453         "N:" -> (arg => isabelle_identifier = arg),
   456         "N:" -> (arg => isabelle_identifier = arg),
   454         "P:" -> (arg => afp_partition = Value.Int.parse(arg)),
   457         "P:" -> (arg => afp_partition = Value.Int.parse(arg)),
   455         "U:" -> (arg => max_heap = Some(Value.Int.parse(arg))),
   458         "U:" -> (arg => max_heap = Some(Value.Int.parse(arg))),
   456         "e:" -> (arg => more_settings = more_settings ::: List(arg)),
   459         "e:" -> (arg => more_settings = more_settings ::: List(arg)),
   457         "f" -> (_ => fresh = true),
   460         "f" -> (_ => fresh = true),
       
   461         "h:" -> (arg => hostname = arg),
   458         "i:" -> (arg => init_settings = init_settings ::: List(arg)),
   462         "i:" -> (arg => init_settings = init_settings ::: List(arg)),
   459         "m:" ->
   463         "m:" ->
   460           {
   464           {
   461             case "32" | "x86" => arch_64 = false
   465             case "32" | "x86" => arch_64 = false
   462             case "64" | "x86_64" => arch_64 = true
   466             case "64" | "x86_64" => arch_64 = true
   482 
   486 
   483       val results =
   487       val results =
   484         build_history(Options.init(), root, user_home = user_home, progress = progress, rev = rev,
   488         build_history(Options.init(), root, user_home = user_home, progress = progress, rev = rev,
   485           afp_rev = afp_rev, afp_partition = afp_partition,
   489           afp_rev = afp_rev, afp_partition = afp_partition,
   486           isabelle_identifier = isabelle_identifier, ml_statistics_step = ml_statistics_step,
   490           isabelle_identifier = isabelle_identifier, ml_statistics_step = ml_statistics_step,
   487           components_base = components_base, fresh = fresh, nonfree = nonfree,
   491           components_base = components_base, fresh = fresh, hostname = hostname, nonfree = nonfree,
   488           multicore_base = multicore_base, multicore_list = multicore_list, arch_64 = arch_64,
   492           multicore_base = multicore_base, multicore_list = multicore_list, arch_64 = arch_64,
   489           heap = heap.getOrElse(if (arch_64) default_heap * 2 else default_heap),
   493           heap = heap.getOrElse(if (arch_64) default_heap * 2 else default_heap),
   490           max_heap = max_heap, init_settings = init_settings, more_settings = more_settings,
   494           max_heap = max_heap, init_settings = init_settings, more_settings = more_settings,
   491           verbose = verbose, build_tags = build_tags, build_args = build_args)
   495           verbose = verbose, build_tags = build_tags, build_args = build_args)
   492 
   496