Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Turbopack] try to avoid cloning AST during code generation, pass final_read_hint #75853

Merged
merged 1 commit into from
Feb 14, 2025

Conversation

sokra
Copy link
Member

@sokra sokra commented Feb 10, 2025

What?

  • try to avoid cloning AST during code generation, pass final_read_hint
  • fix tree shake ident on code generation

Closes PACK-3971

Copy link
Member Author

sokra commented Feb 10, 2025

@sokra sokra requested a review from mischnic February 10, 2025 09:37
@sokra sokra changed the title try to avoid cloning AST during code generation, pass final_read_hint [Turbopack] try to avoid cloning AST during code generation, pass final_read_hint Feb 10, 2025
@sokra sokra marked this pull request as ready for review February 10, 2025 09:44
@ijjk
Copy link
Member

ijjk commented Feb 10, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
buildDuration 25.9s 24.8s N/A
buildDurationCached 23.8s 21.2s N/A
nodeModulesSize 393 MB 393 MB
nextStartRea..uration (ms) 633ms 696ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
5271-HASH.js gzip 55.4 kB 55.4 kB N/A
6228c9d4-HASH.js gzip 56.9 kB 56.9 kB N/A
7048.HASH.js gzip 168 B 168 B
8377-HASH.js gzip 5.46 kB 5.46 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 244 B 246 B N/A
main-HASH.js gzip 34.9 kB 34.9 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB
Overall change 1.88 kB 1.88 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
_app-HASH.js gzip 194 B 194 B
_error-HASH.js gzip 193 B 192 B N/A
amp-HASH.js gzip 513 B 511 B N/A
css-HASH.js gzip 342 B 342 B
dynamic-HASH.js gzip 1.84 kB 1.84 kB N/A
edge-ssr-HASH.js gzip 265 B 264 B N/A
head-HASH.js gzip 363 B 360 B N/A
hooks-HASH.js gzip 393 B 390 B N/A
image-HASH.js gzip 4.59 kB 4.59 kB N/A
index-HASH.js gzip 268 B 266 B N/A
link-HASH.js gzip 2.35 kB 2.35 kB
routerDirect..HASH.js gzip 328 B 326 B N/A
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 325 B 325 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.72 kB 3.72 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
_buildManifest.js gzip 749 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
index.html gzip 523 B 522 B N/A
link.html gzip 539 B 536 B N/A
withRouter.html gzip 520 B 518 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
edge-ssr.js gzip 130 kB 130 kB N/A
page.js gzip 214 kB 214 kB
Overall change 214 kB 214 kB
Middleware size
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
middleware-b..fest.js gzip 677 B 671 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.6 kB 31.6 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
app-page-exp...dev.js gzip 395 kB 395 kB
app-page-exp..prod.js gzip 133 kB 133 kB
app-page-tur..prod.js gzip 145 kB 145 kB
app-page-tur..prod.js gzip 141 kB 141 kB
app-page.run...dev.js gzip 382 kB 382 kB
app-page.run..prod.js gzip 129 kB 129 kB
app-route-ex...dev.js gzip 39.4 kB 39.4 kB
app-route-ex..prod.js gzip 25.7 kB 25.7 kB
app-route-tu..prod.js gzip 25.7 kB 25.7 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route.ru...dev.js gzip 41 kB 41 kB
app-route.ru..prod.js gzip 25.5 kB 25.5 kB
dist_client_...dev.js gzip 356 B 356 B
dist_client_...dev.js gzip 349 B 349 B
pages-api-tu..prod.js gzip 9.72 kB 9.72 kB
pages-api.ru...dev.js gzip 11.8 kB 11.8 kB
pages-api.ru..prod.js gzip 9.72 kB 9.72 kB
pages-turbo...prod.js gzip 22 kB 22 kB
pages.runtim...dev.js gzip 31.6 kB 31.6 kB
pages.runtim..prod.js gzip 22 kB 22 kB
server.runti..prod.js gzip 61.2 kB 61.2 kB
Overall change 1.68 MB 1.68 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/remove-ast-on-code-gen Change
0.pack gzip 2.12 MB 2.12 MB N/A
index.pack gzip 77.3 kB 77.4 kB ⚠️ +115 B
Overall change 77.3 kB 77.4 kB ⚠️ +115 B
Diff details
Diff for 5271-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Commit: 3835913

@ijjk
Copy link
Member

ijjk commented Feb 10, 2025

Failing test suites

Commit: a707c15

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/persistent-caching/persistent-caching.test.ts (PPR)

  • persistent-caching > should persistent cache loaders
Expand output

● persistent-caching › should persistent cache loaders

expect(received).toBe(expected) // Object.is equality

Expected: "Timestamp = 1739535590488"
Received: "Timestamp = 1739535609703"

  55 |       const browser = await next.browser('/pages')
  56 |       // TODO Persistent Caching for webpack dev server is broken
> 57 |       expect(await browser.elementByCss('main').text()).toBe(pagesTimestamp)
     |                                                         ^
  58 |       await browser.close()
  59 |     }
  60 |   })

  at Object.toBe (e2e/persistent-caching/persistent-caching.test.ts:57:57)

Read more about building and testing Next.js in contributing.md.

pnpm test-start test/production/graceful-shutdown/index.test.ts

  • Graceful Shutdown > production (standalone mode) > should not accept new requests during shutdown cleanup > when there is no activity
Expand output

● Graceful Shutdown › production (standalone mode) › should not accept new requests during shutdown cleanup › when there is no activity

expect(received).toEqual(expected) // deep equality

- Expected  - 1
+ Received  + 1

  Array [
-   0,
    null,
+   "SIGTERM",
  ]

  233 |
  234 |         // App finally shuts down
> 235 |         expect(await appKilledPromise).toEqual([0, null])
      |                                        ^
  236 |         expect(app.exitCode).toBe(0)
  237 |       })
  238 |     })

  at Object.toEqual (production/graceful-shutdown/index.test.ts:235:40)

Read more about building and testing Next.js in contributing.md.

@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from c1e492c to a1ebcb1 Compare February 10, 2025 09:58
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from a1ebcb1 to c54844d Compare February 11, 2025 07:46
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from c54844d to bbd66d1 Compare February 11, 2025 08:11
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from bbd66d1 to 858e1e2 Compare February 11, 2025 08:45
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 858e1e2 to cda583d Compare February 11, 2025 08:58
@sokra sokra force-pushed the sokra/take-cell branch 2 times, most recently from 4064535 to 56d3714 Compare February 11, 2025 09:26
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from cda583d to 98baa7e Compare February 11, 2025 09:26
@sokra sokra changed the base branch from sokra/take-cell to graphite-base/75853 February 11, 2025 17:14
@sokra sokra force-pushed the graphite-base/75853 branch from 56d3714 to 69bf830 Compare February 11, 2025 17:14
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 98baa7e to 3bd0baa Compare February 11, 2025 17:14
@sokra sokra changed the base branch from graphite-base/75853 to canary February 11, 2025 17:15
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 3bd0baa to 51a7297 Compare February 11, 2025 17:15
Copy link

graphite-app bot commented Feb 12, 2025

Merge activity

  • Feb 12, 3:39 AM EST: Graphite disabled "merge when ready" on this PR due to: a merge conflict with the target branch; resolve the conflict and try again..

@mischnic mischnic force-pushed the sokra/remove-ast-on-code-gen branch from 51a7297 to 7892c4e Compare February 12, 2025 12:37
@sokra sokra changed the base branch from canary to sokra/fix-ident February 12, 2025 16:49
@timneutkens timneutkens force-pushed the sokra/remove-ast-on-code-gen branch from e5d78c7 to fcb5010 Compare February 13, 2025 12:32
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from fcb5010 to cf5d4f6 Compare February 13, 2025 12:41
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from cf5d4f6 to d134fce Compare February 14, 2025 05:12
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from d134fce to 3248ba6 Compare February 14, 2025 05:26
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 3248ba6 to 7a926ec Compare February 14, 2025 08:37
@sokra sokra force-pushed the sokra/fix-ident branch 2 times, most recently from 0fb7fb4 to 13d574c Compare February 14, 2025 09:04
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 7a926ec to 1ae58e2 Compare February 14, 2025 09:05
@mischnic mischnic changed the base branch from sokra/fix-ident to graphite-base/75853 February 14, 2025 09:37
@mischnic mischnic force-pushed the graphite-base/75853 branch from 13d574c to 7d46333 Compare February 14, 2025 09:37
@mischnic mischnic force-pushed the sokra/remove-ast-on-code-gen branch from 1ae58e2 to 35ec58d Compare February 14, 2025 09:37
@mischnic mischnic changed the base branch from graphite-base/75853 to canary February 14, 2025 09:38
@mischnic mischnic force-pushed the sokra/remove-ast-on-code-gen branch 2 times, most recently from 3835913 to 23838d2 Compare February 14, 2025 10:43
@sokra sokra force-pushed the sokra/remove-ast-on-code-gen branch from 23838d2 to a707c15 Compare February 14, 2025 12:03
@timneutkens timneutkens merged commit d910a6c into canary Feb 14, 2025
126 of 128 checks passed
@timneutkens timneutkens deleted the sokra/remove-ast-on-code-gen branch February 14, 2025 13:07
devjiwonchoi pushed a commit that referenced this pull request Feb 14, 2025
…al_read_hint (#75853)

### What?

* try to avoid cloning AST during code generation, pass final_read_hint
* fix tree shake ident on code generation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
created-by: Turbopack team PRs by the Turbopack team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants