blaise/scripts
Graeme Geldenhuys 3ff19c0a00 fix(incremental): propagate cache staleness to dependents of edited units
When a unit's source content changed, it was correctly recompiled from a warm
--unit-cache, but a cached unit that USES it kept its cached interface and was
imported in the cached-iface phase — which runs BEFORE source-recompiled units
are analysed.  Importing the cached dependent then failed to resolve a type
defined only by the not-yet-analysed dependency, raising EImportError (empty
message), e.g. editing blaise.codegen.driver and rebuilding the whole compiler
warm broke on blaise.frontend.opts (TBackendKind unresolved).  The same
corrupted warm cache also produced an intermittent SIGSEGV in the e2e runner.

uUnitLoader now tracks units taken via the source path (FSourceLoadedNames).
In the cached path, after recursing into a unit's interface-use dependencies,
if any dependency was source-loaded the cached iface is discarded and the unit
is recompiled from source too, so it is analysed after its dependency.
Post-order DFS makes this transitive.

fixpoint-warmcache.sh now edits a dependency unit's content between its two
builds (previously two clean fills that never exercised staleness propagation);
it FAILS on the pre-fix compiler and PASSES on the fixed one.
2026-06-24 07:40:30 +01:00
..
BOOTSTRAP.adoc tooling: rolling-bootstrap script for development-checkout builds 2026-06-03 08:05:16 +01:00
fixpoint-native-internal.sh chore(phase3): deprecate QBE in help text, guard internal linker, document toolchain 2026-06-19 18:16:46 +01:00
fixpoint-native.sh feat: add native fixpoint verification script 2026-06-10 14:02:01 +01:00
fixpoint-warmcache.sh fix(incremental): propagate cache staleness to dependents of edited units 2026-06-24 07:40:30 +01:00
fixpoint.sh feat(backend): default to native backend; fix codegen bugs exposed by the switch 2026-06-19 04:27:41 +01:00
rolling-bootstrap.sh fix(linker,bootstrap): error on missing RTL; carry RTL with correct name 2026-06-24 07:40:30 +01:00