Repository navigation
ci: serialize TypeScript web worker fixtures - #4462
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
⏭️ Performance benchmarks were skippedPerf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to To run them on this PR, do any of the following, then push a commit (or re-run CI):
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 8 reviews per rolling hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe nextest configuration adds a single-thread test group for TypeScript web workers. Matching ChangesTypeScript web worker test scheduling
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This change limits concurrency for four memory-intensive TypeScript web worker fixture gates while leaving other TypeScript web tests unchanged. The targeted configuration and full test gate are clean, so no actionable merge-blocking risk remains. Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Binary size checks passed✅ 7 passed
Generated by |
## Summary - restore alias and enum memoization only in the project-scale candidate scans in impls_for_type_cached and resolve_within_depth - keep the memo-free AliasOnlyFacts constructor at Facts::project, infer/obligations.rs, method_resolution.rs, and interface_requires_inner - make provable_subtype an InferenceContext method so the body facts and canonical cache are structurally paired at every call - correct the one-shot context documentation and document the Salsa re-entrancy-window caveat for scan-local memos This is the focused correction for the BoundaryML#4461 post-merge audit. It restores repeated alias-head lookup reuse without widening memoization to the four one-shot sites. ## Fresh back-to-back A/B Both refs were measured consecutively in the same shell and target cache with profiling disabled. Both workloads used exactly five one-compile samples: cargo bench -p baml_tests --bench compiler_benchmark -- compile_ --sample-count 5 --sample-size 1 Environment: Rust 1.93.0, CARGO_BUILD_JOBS=8, BAML_PROFILE=0. | benchmark | canary 07c118b, 5 samples | candidate 0eb5f09, 5 samples | median delta | | --- | ---: | ---: | ---: | | compile_baml_tests_project | 2.180 s (2.144-2.351 s) | 2.133 s (2.122-2.295 s) | -47 ms (-2.2%) | | compile_empty_project | 497.5 ms (485.8-499.9 ms) | 485.6 ms (478.2-488.5 ms) | -11.9 ms (-2.4%) | No earlier baseline values are reused. Canary 07c118b was the exact BoundaryML#4461 tip when this branch and A/B began; BoundaryML#4462 landed afterward and changes only nextest scheduling configuration. ## Validation - cargo check -p baml_compiler2_hir_ty - focused nextest: 384/384 passed for baml_type, baml_compiler2_hir, and baml_compiler2_hir_ty with all features - strict all-target/all-feature Clippy passed for those packages; workspace commit-hook Clippy also passed - cargo fmt --all -- --check and git diff --check - exact pinned full gate: 3,748/3,748 passed, 24 skipped, 50 slow in 1,375.321 s - doctests clean; no unreferenced snapshots and no snapshots to review Full gate command: CARGO_BUILD_JOBS=8 rustup run 1.93.0 cargo insta test --test-runner nextest -p baml_tests -p baml_cli -p baml_lsp2_actions -p baml_lsp2_actions_tests -p baml_surface --all-features --unreferenced=reject <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Improvements** * Improved type inference consistency across assignments, pattern matching, flow narrowing, and catch-arm analysis. * Enhanced handling of aliases and enum variants during type resolution. * Repeated type checks are now more efficient, helping reduce unnecessary compiler work. * Existing subtype, union, coverage, and narrowing behavior remains consistent while benefiting from more centralized analysis. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
Why
Each workerd import can peak at roughly 7-8 GiB. The four outer vitest_workers fixture gates could overlap, multiplying that peak and causing host OOMs. Serializing only those four outer gates preserves inner fixture behavior while bounding aggregate memory.
Verification
Base: fdd05ac
Head: 2b22fbd
Summary by CodeRabbit