summaryrefslogtreecommitdiff
path: root/pkg/perp
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-11-17 14:48:05 -0800
committerMichael Forney <mforney@mforney.org>2019-11-17 15:24:25 -0800
commitf4720910b9b72bd1fe2aaa82cf6a38e226d5e149 (patch)
tree773f1c9ea2fa5375243a4cb065c8345f0730a5cf /pkg/perp
parent564557663b9c36612df603e36e4c7a679e82c51b (diff)
Update ninja requirement to 1.8.0 and don't bother with atomic outputs
Since ninja 1.8.0[0] and samurai 0.2[1], output mtime is always recorded after a job succeeds, and outputs are considered dirty if the recorded mtime is older than any input. This means that even if a command partially writes its output then fails (for example, if run with stdout redirected to a file), it will still get re-run during the next build. This means that outputs no longer have to be written atomically (i.e. renamed into place) in order to ensure a correct build, and we can drop the idiom `command >$out.tmp && mv $out.tmp $out`. [0] https://github.com/ninja-build/ninja/commit/04d886b11041bb59d01df794cce7a1e8cad2250d [1] https://github.com/michaelforney/samurai/commit/799bc5a4719b90a1026c129b55b92c0bccf97eeb
Diffstat (limited to 'pkg/perp')
-rw-r--r--pkg/perp/gen.lua6
1 files changed, 3 insertions, 3 deletions
diff --git a/pkg/perp/gen.lua b/pkg/perp/gen.lua
index 7d0dd246..cfb09fc2 100644
--- a/pkg/perp/gen.lua
+++ b/pkg/perp/gen.lua
@@ -10,13 +10,13 @@ sub('tools.ninja', function()
exe('mksysstr', {'lasagna/sysstr/mksysstr.c'})
end)
-rule('outvec', '$outdir/mk_outvec >$out.tmp && mv $out.tmp $out')
+rule('outvec', '$outdir/mk_outvec >$out')
build('outvec', '$outdir/outvec_STDOUT.h', {'|', '$outdir/mk_outvec'})
-rule('rlimit', '$outdir/mk_rlimit >$out.tmp && mv $out.tmp $out')
+rule('rlimit', '$outdir/mk_rlimit >$out')
build('rlimit', '$outdir/rlimit_defs.c.in', {'|', '$outdir/mk_rlimit'})
-rule('sysstr', '$outdir/mksysstr $type >$out.tmp && mv $out.tmp $out')
+rule('sysstr', '$outdir/mksysstr $type >$out')
build('sysstr', '$outdir/sysstr_errno.c.in', {'|', '$outdir/mksysstr'}, {type='errno'})
build('sysstr', '$outdir/sysstr_signo.c.in', {'|', '$outdir/mksysstr'}, {type='signo'})