feat: optimize dynamic entry facade chunks by merging with common chunks when they are captured by common chunks#7486
Conversation
How to use the Graphite Merge QueueAdd the label graphite: merge to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
1eb6763 to
47bc505
Compare
✅ Deploy Preview for rolldown-rs canceled.
|
✅ Deploy Preview for rolldown-rs canceled.
|
CodSpeed Performance ReportMerging #7486 will not alter performanceComparing Summary
Footnotes |
196ea01 to
0588142
Compare
Benchmarks Rust |
00404a0 to
a9c63e9
Compare
a9c63e9 to
92c4920
Compare
92c4920 to
0fed809
Compare
related to #7486, we need to update the symbol usage after linking stage when merge dynamic chunks to common chunk
related to #7486, we need to update the symbol usage after linking stage when merge dynamic chunks to common chunk
bcda2c1 to
dbde4a3
Compare
0fed809 to
4520460
Compare
8649da9 to
4883c75
Compare
7a4db2b to
73b5a6e
Compare
f17246c to
f873b46
Compare
f873b46 to
890cedf
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 23 out of 23 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
890cedf to
202cf1e
Compare
|
I wonder if we can reuse the optimization for |
The first focused on merging common chunks into a dynamic entry chunk, while the second focused on merging dynamic entry chunks into common chunks. The first focused on module assignment; it reduced chunks by pushing modules that should belong to a new common chunk into existing entry chunks, whereas the second focused on chunk merging (the module is already assigned). Also, the first optimization did not involve any tree-shake status update. I split them up to improve code maintenance and make it easier to review. I will try to merge the two-pass optimization into a single pass in the future. |
202cf1e to
6c34bec
Compare
6c34bec to
e2c0063
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
e2c0063 to
b3730cb
Compare
|
@sapphi-red I have addressed all the issues you raised. I am going to merge it to avoid further conflicts. Feel free to point out any other issues. I will fix them in future pr. |
b3730cb to
d4f0b36
Compare
Merge activity
|
## [1.0.0-beta.57] - 2025-12-24 ✨ TypeScript Project References Support - Rolldown now supports TypeScript project references when manually specifying a `tsconfig` - See more details: https://rolldown.rs/options/tsconfig 💥 Rename `__export` to `__exportAll` - Update `rolldown-plugin-dts` to the latest version for compatibility ### 💥 BREAKING CHANGES - tsconfig: enable project references support in manual mode (#7545) by @shulaoda ### 🚀 Features - add `CANNOT_CALL_NAMESPACE` warning (#7636) by @sapphi-red - add import path for unresolved import diagnostics (#7625) by @sapphi-red - optimize dynamic entry facade chunks by merging with common chunks when they are captured by common chunks (#7486) by @IWANABETHATGUY ### 🐛 Bug Fixes - rename `__export` to `__exportAll` to be compatible with `cjs-module-lexer` (#7640) by @IWANABETHATGUY - strip UTF-8 BOM when using text loader (#7635) by @sapphi-red - rolldown_plugin_replace: avoid crashing with invalid delimiters (#7621) by @sapphi-red ### 🚜 Refactor - export all filter functions (#7622) by @sxzz - allow multiple help messages in diagnostics (#7624) by @sapphi-red ### 📚 Documentation - add README.md to packages/rolldown (#7556) by @Copilot ### ⚡ Performance - use fsevents on macOS for file watching (#7596) by @sapphi-red ### 🧪 Testing - handle re-exports of external modules in CJS format (#7641) by @IWANABETHATGUY - update integration to use vite's rolldown-canary branch (#7633) by @shulaoda ### ⚙️ Miscellaneous Tasks - docs: fix Netlify ignore condition to detect docs changes across all PR commits (#7637) by @Copilot - deps: update rollup submodule for tests to v4.54.0 (#7630) by @sapphi-red - skip benchmarks for PRs with 'graphite: merge-when-ready' label (#7631) by @Boshen - deps: update esbuild for tests to 0.27.2 (#7629) by @sapphi-red - fix "update-test-dependencies" workflow (#7628) by @sapphi-red - deps: update test262 submodule for tests (#7626) by @sapphi-red - deps: update dependency oxlint to v1.35.0 (#7623) by @renovate[bot] Co-authored-by: shulaoda <[email protected]>

related to #5726, #4905