src/Pure/Admin/build_history.scala
changeset 65293 a53a5ae88205
parent 64909 8007f10195af
child 65296 a71db30f3b2d
equal deleted inserted replaced
65292:e3bd1e7ddd23 65293:a53a5ae88205
   205         Build_Log.Log_File(log_path.base.implode, build_result.out_lines).parse_build_info()
   205         Build_Log.Log_File(log_path.base.implode, build_result.out_lines).parse_build_info()
   206 
   206 
   207 
   207 
   208       /* output log */
   208       /* output log */
   209 
   209 
       
   210       val store = Sessions.store()
       
   211 
   210       val meta_info =
   212       val meta_info =
   211         Build_Log.Prop.multiple(Build_Log.Prop.build_tags, build_tags) :::
   213         Build_Log.Prop.multiple(Build_Log.Prop.build_tags, build_tags) :::
   212         Build_Log.Prop.multiple(Build_Log.Prop.build_args, build_args1) :::
   214         Build_Log.Prop.multiple(Build_Log.Prop.build_args, build_args1) :::
   213         List(
   215         List(
   214           Build_Log.Prop.build_group_id -> build_group_id,
   216           Build_Log.Prop.build_group_id -> build_group_id,
   220           Build_Log.Prop.isabelle_version -> isabelle_version)
   222           Build_Log.Prop.isabelle_version -> isabelle_version)
   221 
   223 
   222       val ml_statistics =
   224       val ml_statistics =
   223         build_info.finished_sessions.flatMap(session_name =>
   225         build_info.finished_sessions.flatMap(session_name =>
   224           {
   226           {
   225             val session_log = isabelle_output_log + Path.explode(session_name).ext("gz")
   227             val database = isabelle_output + store.database(session_name)
   226             if (session_log.is_file) {
   228             val log_gz = isabelle_output + store.log_gz(session_name)
   227               Build_Log.Log_File(session_log).parse_session_info(ml_statistics = true).
   229 
   228                 ml_statistics.map(props => (Build_Log.SESSION_NAME -> session_name) :: props)
   230             val properties =
   229             }
   231               if (database.is_file) {
   230             else Nil
   232                 using(SQLite.open_database(database))(db =>
       
   233                   Sessions.Session_Info.read_build_log(
       
   234                     store, db, session_name, ml_statistics = true)).ml_statistics
       
   235               }
       
   236               else if (log_gz.is_file) {
       
   237                 Build_Log.Log_File(log_gz).
       
   238                   parse_session_info(session_name, ml_statistics = true).ml_statistics
       
   239               }
       
   240               else Nil
       
   241             properties.map(props => (Build_Log.SESSION_NAME -> session_name) :: props)
   231           })
   242           })
   232 
   243 
   233       val heap_sizes =
   244       val heap_sizes =
   234         build_info.finished_sessions.flatMap(session_name =>
   245         build_info.finished_sessions.flatMap(session_name =>
   235           {
   246           {