--- a/src/Pure/Admin/build_doc.scala Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Admin/build_doc.scala Sun Aug 10 22:11:50 2025 +0200
@@ -39,8 +39,7 @@
progress.echo("Build started for sessions " + commas_quote(selection.sessions))
val build_results =
- Build.build(options, selection = selection, progress = progress, max_jobs = max_jobs)
- if (!build_results.ok) error("Build failed")
+ Build.build(options, selection = selection, progress = progress, max_jobs = max_jobs).check
progress.echo("Build started for documentation " + commas_quote(documents))
val deps = Sessions.load_structure(options + "document").selection_deps(selection)
--- a/src/Pure/Build/build.scala Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Build/build.scala Sun Aug 10 22:11:50 2025 +0200
@@ -98,6 +98,11 @@
lazy val unfinished: List[String] = sessions.iterator.filterNot(apply(_).ok).toList.sorted
+ def check: Results =
+ if (ok) this
+ else if (unfinished.isEmpty) error("Build failed")
+ else error("Build failed with unfinished session(s): " + commas(unfinished))
+
override def toString: String = rc.toString
}
--- a/src/Pure/Build/build_benchmark.scala Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Build/build_benchmark.scala Sun Aug 10 22:11:50 2025 +0200
@@ -34,8 +34,7 @@
val options1 = options.string.update("build_engine", Build.Engine.Default.name)
val selection =
Sessions.Selection(requirements = true, sessions = List(benchmark_session(options)))
- val res = Build.build(options1, selection = selection, progress = progress, build_heap = true)
- if (!res.ok) error("Failed building requirements")
+ Build.build(options1, selection = selection, progress = progress, build_heap = true).check
}
def run_benchmark(options: Options, progress: Progress = new Progress): Unit = {
--- a/src/Pure/Thy/document_build.scala Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Thy/document_build.scala Sun Aug 10 22:11:50 2025 +0200
@@ -597,8 +597,7 @@
progress.interrupt_handler {
val build_results =
Build.build(options, selection = Sessions.Selection.session(session),
- dirs = dirs, progress = progress)
- if (!build_results.ok) error("Failed to build session " + quote(session))
+ dirs = dirs, progress = progress).check
if (output_sources.isEmpty && output_pdf.isEmpty) {
progress.echo_warning("No output directory")