You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
t27c frontier: a cold walk fills the gen-hash cache with parallel workers before deciding (hot reload H10) #8846
When the walk is cold: the H1 cache key holds the t27c binary's bytes, so after every t27c rebuild, and on every CI run (spec-guards runs frontier --list on the base), t27c frontier regenerates all four backends of every spec, one spec at a time.
Measured: 55-68 s at load ~20 earlier today; 16.5 s at load ~7 now.
Change
A helper:gen_cached(p, tc) holds the four lines that read, compute and store a spec's gen hashes. They are moved out of decide() unchanged, and decide() calls the helper.
frontier --list from a cold cache prints the same output with T27_SUITE_JOBS=1 and with the default, and fills the same number of cache entries.
A cold walk is at least 2x faster with the default on this Mac.
gen_hash_cache.t27 and suite_jobs.t27 name the warm-up.
Hand-written foreign lines do not grow.
Boundary
specs/verified/gen_hash_cache.t27
User Scenarios
Given a cold gen-hash cache and a rebuilt t27c binary, when t27c frontier --list runs with the default T27_SUITE_JOBS, then the warm-up phase populates the cache in parallel using par_in_order before the serial decide() walk begins.
Given a cold gen-hash cache, when t27c frontier --list runs with T27_SUITE_JOBS=1 and with the default jobs setting, then both executions produce identical output and fill the same number of cache entries.
Requirements
FR-001: The helper gen_cached(p, tc) MUST extract the four lines that read, compute, and store a spec's gen hashes from decide() unchanged, and decide() MUST call this helper.
FR-002: Before the decision walk, a warm-up phase MUST invoke gen_cached for every spec using par_in_order with suite_jobs() workers (8 MiB stacks).
FR-003: The cache key, gen_cache_use, and gen_cache_store rules MUST remain unchanged.
FR-004: specs/verified/gen_hash_cache.t27 MUST name the warm-up behavior in its specification.
FR-005: specs/verified/suite_jobs.t27 MUST name the warm-up behavior in its specification.
FR-006: Hand-written foreign lines in the codebase MUST NOT grow as a result of this change.
Activity
t27c frontier fills the gen-hash cache with parallel workers before d…