--- a/src/Pure/Build/build.scala Fri Aug 08 20:34:38 2025 +0200
+++ b/src/Pure/Build/build.scala Fri Aug 08 21:28:22 2025 +0200
@@ -299,17 +299,27 @@
dirs: List[Path] = Nil,
fresh: Boolean = false,
strict: Boolean = false
- ): Int = {
+ ): Results = {
val selection = Sessions.Selection.session(logic)
- val rc =
- if (!fresh && build(options, selection = selection,
- build_heap = build_heap, no_build = true, dirs = dirs).ok) Process_Result.RC.ok
+
+ def test_build(): Results =
+ build(options, selection = selection,
+ build_heap = build_heap, no_build = true, dirs = dirs)
+
+ def full_build(): Results = {
+ progress.echo("Build started for Isabelle/" + logic + " ...")
+ build(options, selection = selection, progress = progress,
+ build_heap = build_heap, fresh_build = fresh, dirs = dirs)
+ }
+
+ val results =
+ if (fresh) full_build()
else {
- progress.echo("Build started for Isabelle/" + logic + " ...")
- build(options, selection = selection, progress = progress,
- build_heap = build_heap, fresh_build = fresh, dirs = dirs).rc
+ val results0 = test_build()
+ if (results0.ok) results0 else full_build()
}
- if (strict && rc != Process_Result.RC.ok) error("Failed to build Isabelle/" + logic) else rc
+
+ if (strict && !results.ok) error("Failed to build Isabelle/" + logic) else results
}
--- a/src/Pure/Build/export.scala Fri Aug 08 20:34:38 2025 +0200
+++ b/src/Pure/Build/export.scala Fri Aug 08 21:28:22 2025 +0200
@@ -659,11 +659,11 @@
/* build */
if (!no_build) {
- val rc =
+ val results =
progress.interrupt_handler {
Build.build_logic(options, session_name, progress = progress, dirs = dirs)
}
- if (rc != Process_Result.RC.ok) sys.exit(rc)
+ if (!results.ok) sys.exit(results.rc)
}
--- a/src/Pure/ML/ml_console.scala Fri Aug 08 20:34:38 2025 +0200
+++ b/src/Pure/ML/ml_console.scala Fri Aug 08 21:28:22 2025 +0200
@@ -53,11 +53,11 @@
// build logic
if (!no_build && !raw_ml_system) {
val progress = new Console_Progress()
- val rc =
+ val results =
progress.interrupt_handler {
Build.build_logic(options, logic, build_heap = true, progress = progress, dirs = dirs)
}
- if (rc != Process_Result.RC.ok) sys.exit(rc)
+ if (!results.ok) sys.exit(results.rc)
}
val session_background =