equal
deleted
inserted
replaced
507 (out, err1, rc) |
507 (out, err1, rc) |
508 } |
508 } |
509 } |
509 } |
510 |
510 |
511 |
511 |
512 /* log files and corresponding heaps */ |
512 /* log files */ |
513 |
513 |
514 private val LOG = Path.explode("log") |
514 private val LOG = Path.explode("log") |
515 private def log(name: String): Path = LOG + Path.basic(name) |
515 private def log(name: String): Path = LOG + Path.basic(name) |
516 private def log_gz(name: String): Path = log(name).ext("gz") |
516 private def log_gz(name: String): Path = log(name).ext("gz") |
517 |
517 |
518 private val SESSION_PARENT_PATH = "\fSession.parent_path = " |
518 private val SESSION_PARENT_PATH = "\fSession.parent_path = " |
|
519 |
|
520 sealed case class Log_Info(stats: List[Properties.T], timing: Properties.T) |
|
521 |
|
522 def parse_log(text: String): Log_Info = |
|
523 { |
|
524 val lines = split_lines(text) |
|
525 val stats = Properties.parse_lines("\fML_statistics = ", lines) |
|
526 val timing = Properties.find_parse_line("\fTiming = ", lines) getOrElse Nil |
|
527 Log_Info(stats, timing) |
|
528 } |
|
529 |
|
530 |
|
531 /* sources and heaps */ |
519 |
532 |
520 private def sources_stamp(digests: List[SHA1.Digest]): String = |
533 private def sources_stamp(digests: List[SHA1.Digest]): String = |
521 digests.map(_.toString).sorted.mkString("sources: ", " ", "") |
534 digests.map(_.toString).sorted.mkString("sources: ", " ", "") |
522 |
535 |
523 private val no_heap: String = "heap: -" |
536 private val no_heap: String = "heap: -" |