Repository navigation
Measure 11.46x faster warm native compilation with complete replay - #2414
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Repeated compilation dominates this native nine-stage checker fixture: the unchanged GCC build takes seconds while both complete native word checks take milliseconds. This opt-in experiment uses ccache object reuse, fresh linking and fresh native execution, reducing the measured local build-and-replay median from 2.753 s to 0.240 s (11.46×). A fresh cache fill takes 2.942 s; this is a repeat-build benefit, not a whole selected-replay or first-use speedup.
The source engine is unchanged
research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp, pinned with its JSON header and upstream notice. The two exact RAW6 fixtures come from our #2373 atb52f87f5355ad9f02ca4ac4395117655ac1b19c7(the #1188 baseline and Sagar Thakrar's #2115 deferred-undo word). Every timed sample runs all 1,327 columns, nine stages, signed-prefix bills and 18 omitted-bridge controls per word. All native receipt fields compare, except elapsed time and the exact input path after binding it to the complete consumed payload hash. Reference and cached object hashes agree within each run.Ccache preprocessor mode uses content-based compiler checks, no sloppiness/remote storage and a fresh toolchain-content profile. Source and transitive-header changes preserving both size and mtime cause misses and mathematical rejection. Compile-option and profile changes cause misses; restored inputs hit; a corrupt private cache entry is rebuilt. A wrong word still fails after a hit. The seven actual controls run through the compiler/cache/executable chain.
Validation performed:
BENCHMARK.jsonrecords individual measurements, cache counters, commands and execution hashes. The standard registered command intentionally performs Python/input checks only; README gives the separate full native command. No production entry point, frozen source, selected certificate or kappa changes. Complete PR2373 legality/exporter/5/9/11-stage integration and production end-to-end timing remain open.One fresh random draw selected verifier-engineering / replay-runtime / source-bound reuse, refined to this one measured boundary without rerolling. Canonical main remains
0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2, priority revision 4. Final overlap covered 617 open PRs and 1,140 Discussion records with complete pagination and no warnings. Coordination: #2408.Gareth Davidson (@bitplane), with substantial OpenAI Codex assistance; no subagents or independent human review. Native checker lineage (DaysSky, Dylan Crow and predecessor cohort work), Sagar Thakrar's construction and ccache's existing implementation are credited in NOTICE.md. This is a measured integration experiment, not a new cache algorithm or mathematical construction.