aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2026-03-04 20:28:58 -0600
committerCalvin Rose <calsrose@gmail.com>2026-03-04 20:28:58 -0600
commitcd1ab0c036c8d2ad5afd858558a242c3d17b004c (patch)
treece95a22b2a10322ef41a2164a656eb4f33da6b52
parentUse try instead of edefer for error handling in build rules. (diff)
Ensure error on build failure instead of silent failure.HEADmaster
-rw-r--r--spork/build-rules.janet5
1 files changed, 5 insertions, 0 deletions
diff --git a/spork/build-rules.janet b/spork/build-rules.janet
index f4d6ffe..dec585d 100644
--- a/spork/build-rules.janet
+++ b/spork/build-rules.janet
@@ -108,6 +108,7 @@
(++ work-count))
needs-build)
(each target targets (needs-build? target))
+ (var bad-return false)
(default n-workers 1)
(defn worker
@@ -136,6 +137,7 @@
:bad)))
(when (= :bad result)
+ (set bad-return true)
(each o (get rule :outputs [])
(protect (os/rm o)))
(repeat n-workers (ev/give q nil))
@@ -156,6 +158,9 @@
(put fibers fib fib))
(wait-for-fibers super fibers)
+ (if bad-return
+ (error "failed to build"))
+
targets-built)
(defn- gettarget [rules target]