Repository navigation
Eliminate per-entry reconcile assembly rerun at 100% typed-cache hits - #6562
Merged
Merged
Conversation
briansrls
added a commit
that referenced
this pull request
Jul 14, 2026
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Jul 14, 2026
…t path. Keep SharedTypecheckCaches C1-prep shell and process-wide atomic counter; wire main's reconcile_all_cache_hits and skip-parent-envs-on-hit through the shared mutex store. Co-authored-by: Cursor <cursoragent@cursor.com>
6 tasks
briansrls
added a commit
that referenced
this pull request
Jul 14, 2026
…rack A receipt, docs/plans/v1-run-stability-throughline.md): design the increment that shares cold typecheck computes across floor workers on Inc B's ModuleInterface/std.interface_summary boundary (#6543, landed neutral — denominat (#6561) * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * Fix CI: replace blocked cross-worker test with process-wide counter receipt. The shared-cache oracle depends on Rc→Arc migration (§4.1); land a C1-prep test that proves typecheck_compute_count accumulates across threads instead. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix SharedTypecheckCaches doc: Rc payloads are !Send until Arc migration. The C1-prep struct comment incorrectly implied Arc<Mutex<_>> is Send today; align with design §4.1 — cross-thread share lands after store-path Rc→Arc. Co-authored-by: Cursor <cursoragent@cursor.com> * Merge origin/main: resolve cli_run conflicts with #6562 reconcile fast path. Keep SharedTypecheckCaches C1-prep shell and process-wide atomic counter; wire main's reconcile_all_cache_hits and skip-parent-envs-on-hit through the shared mutex store. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac * WIP: Cross-worker typecheck share design increment — the OPEN 52% prize (Trac --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Summary
Track A resolve-split (#6535) priced
reconcile_assemblyat ~108s (29% of whole-corpus resolve) — assembly rerunning per entry even when every module was already intyped_module_cache. Two cuts:Always-on in-process share —
resolved_graph_memowas incorrectly gated onGUNBC_RESOLVED_GRAPH_CACHE_DIR; it is now the always-on ReferenceTier in front of the opt-in disk store. Same-subject re-resolves return the assembled graph by reference instead of re-running expand/rewire/emit.All-cache-hit reconcile fast path — when every module in a closure is already typed, skip the schedule-dispatch loop's
collect_parent_envsandbuild_variant_export_surface(both exist only to feed coldtypecheck_module) and jump straight to closure assembly viareconcile_all_cache_hits. Partial-hit dispatches still skipcollect_parent_envson per-module cache hits.Follows the normalize+ownership memo pattern from #6539 (docs/plans/v1-run-stability-throughline.md §1).
Test plan
RUSTFLAGS="-D warnings" cargo build -p v1-compiler --release— greencargo test -p v1-compiler-tests union_resolve_typechecks_each_node_once— greencargo test -p v1-compiler-tests typed_module_cache_matches_cold_oracle_in_every_order— greencargo test -p v1-compiler-tests union_view_result_equals_private_resolve_in_every_order— green