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

Fix source mapping of generated cache wrapper calls #74987

Open
wants to merge 1 commit into
base: hl/use-cache-hanging-inputs-error-handling-bound-args
Choose a base branch
from

Conversation

unstubbable
Copy link
Contributor

@unstubbable unstubbable commented Jan 16, 2025

In the SWC transform we're now using the span of the original "use cache" function for the generated cache wrapper call, e.g. so that the captured timeout error stack can be source mapped correctly.

This also fixes the wrongly placed /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ marker for the generated cache wrapper statements.

Before:
before

After:
after

Closes https://linear.app/vercel/issue/NDX-675/

Copy link
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ijjk
Copy link
Member

ijjk commented Jan 16, 2025

Failing test suites

Commit: a6075ff

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/webpack-loader-conditions/webpack-loader-conditions.test.ts (PPR)

  • webpack-loader-conditions > should only run the test in turbopack
Expand output

● webpack-loader-conditions › should only run the test in turbopack

next build failed with code/signal 1

   98 |           if (code || signal)
   99 |             reject(
> 100 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  101 |             )
  102 |           else resolve()
  103 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)

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

@ijjk
Copy link
Member

ijjk commented Jan 16, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
buildDuration 23.2s 20.7s N/A
buildDurationCached 19.6s 16.6s N/A
nodeModulesSize 418 MB 418 MB ⚠️ +88 kB
nextStartRea..uration (ms) 498ms 495ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
5306-HASH.js gzip 54 kB 54 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.44 kB 5.44 kB N/A
bccd1874-HASH.js gzip 52.9 kB 52.9 kB
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 240 B 242 B N/A
main-HASH.js gzip 34.4 kB 34.4 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping 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 hl/fix-use-cache-wrapper-source-mapping Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.57 kB 4.57 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping 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 hl/fix-use-cache-wrapper-source-mapping Change
index.html gzip 523 B 523 B
link.html gzip 539 B 538 B N/A
withRouter.html gzip 520 B 520 B
Overall change 1.04 kB 1.04 kB
Edge SSR bundle Size
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 208 kB 208 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
middleware-b..fest.js gzip 671 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes Overall increase ⚠️
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 375 kB 375 kB ⚠️ +132 B
app-page-exp..prod.js gzip 130 kB 130 kB N/A
app-page-tur..prod.js gzip 143 kB 143 kB N/A
app-page-tur..prod.js gzip 139 kB 139 kB N/A
app-page.run...dev.js gzip 363 kB 363 kB ⚠️ +124 B
app-page.run..prod.js gzip 126 kB 126 kB N/A
app-route-ex...dev.js gzip 37.6 kB 37.6 kB
app-route-ex..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 39.2 kB 39.2 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB N/A
pages.runtim...dev.js gzip 27.7 kB 27.7 kB N/A
pages.runtim..prod.js gzip 21.9 kB 21.9 kB N/A
server.runti..prod.js gzip 916 kB 916 kB N/A
Overall change 948 kB 948 kB ⚠️ +256 B
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js hl/fix-use-cache-wrapper-source-mapping Change
0.pack gzip 2.09 MB 2.1 MB ⚠️ +5.93 kB
index.pack gzip 75.3 kB 74.7 kB N/A
Overall change 2.09 MB 2.1 MB ⚠️ +5.93 kB
Diff details
Diff for edge-ssr.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js

Diff too large to display

Diff for app-page-exp..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page.runtime.dev.js

Diff too large to display

Diff for app-page.runtime.prod.js

Diff too large to display

Diff for pages-turbo...time.prod.js

Diff too large to display

Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: a6075ff

@unstubbable unstubbable marked this pull request as ready for review January 16, 2025 14:57
@unstubbable unstubbable force-pushed the hl/use-cache-hanging-inputs-error-handling-bound-args branch from 4a21ed5 to b2f94fd Compare January 17, 2025 08:17
@unstubbable unstubbable force-pushed the hl/fix-use-cache-wrapper-source-mapping branch from 9c9e181 to 6f0c10b Compare January 17, 2025 08:18
@unstubbable unstubbable requested review from eps1lon and kdy1 January 17, 2025 08:22
Copy link
Member

@eps1lon eps1lon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thank you!

@unstubbable unstubbable force-pushed the hl/use-cache-hanging-inputs-error-handling-bound-args branch from b2f94fd to db1901a Compare January 18, 2025 18:39
@unstubbable unstubbable force-pushed the hl/fix-use-cache-wrapper-source-mapping branch from 6f0c10b to 89f3303 Compare January 18, 2025 18:39
@unstubbable unstubbable force-pushed the hl/use-cache-hanging-inputs-error-handling-bound-args branch from db1901a to 2973c5a Compare January 18, 2025 19:35
@unstubbable unstubbable force-pushed the hl/fix-use-cache-wrapper-source-mapping branch from 89f3303 to deabf24 Compare January 18, 2025 19:35
@unstubbable unstubbable force-pushed the hl/fix-use-cache-wrapper-source-mapping branch from deabf24 to 740ea0d Compare January 18, 2025 19:37
In the SWC transform we're now using the span of the original `"use
cache"` function for the generated cache wrapper call, e.g. so that the
captured timeout error stack can be source mapped correctly.

This also fixes the wrongly placed
`/*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/` marker for the generated
cache wrapper statements.
@unstubbable unstubbable force-pushed the hl/use-cache-hanging-inputs-error-handling-bound-args branch from 2973c5a to 1ac8aa4 Compare January 18, 2025 22:22
@unstubbable unstubbable force-pushed the hl/fix-use-cache-wrapper-source-mapping branch from 740ea0d to a6075ff Compare January 18, 2025 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
created-by: Next.js team PRs by the Next.js team. tests Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants