Crafter.Build/tests
catbot 96d1df9233
All checks were successful
CI / build-test-release (pull_request) Successful in 11m50s
fix: atomic-rename host-cache PCMs to close concurrent-build race
Two crafter-build invocations sharing XDG_CACHE_HOME used to clobber each
other's writes to <cache>/<target>-<march>/std.pcm and the
Crafter.Build-*.pcm modules: each LoadProject path wrote directly to the
final path, so a reader could see a half-written file and die with
"malformed or corrupted precompiled file: 'can't skip to bit X from Y'"
(issue #14). Every BuildStdPcm / EnsureCrafterBuildPcms write now goes via
<final>.tmp.<pid>.<seq> and atomic-renames into place; concurrent writers
always see either the old or the new file, never torn bytes. The mingw-on-
Linux std.cppm copy is per-PID for the same reason. Adds a regression test
(ConcurrentCacheRace) that races four LoadProject() calls against a cold
scratch cache — reproduces the race 5/5 without the fix and passes 5/5
with it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 16:36:45 +00:00
..
ConcurrentCacheRace fix: atomic-rename host-cache PCMs to close concurrent-build race 2026-05-30 16:36:45 +00:00
DependencyLink test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
HelloWorld new tests 2026-05-27 19:45:05 +02:00
ModuleInterface test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
RunSingleTestExit test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
ShaderCompile test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
StandardArgs test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
StaticLib test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
TestRunnerSpec test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
VariantId test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00
WasiBrowserRuntime test: broaden self-test coverage beyond the compile smoke test 2026-05-27 19:38:18 +00:00