-
Notifications
You must be signed in to change notification settings - Fork 31.2k
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
esm: unflag --experimental-wasm-modules #57038
base: main
Are you sure you want to change the base?
Conversation
Review requested:
|
//cc @nodejs/loaders |
So I assume its semver major? |
Co-authored-by: Yagiz Nizipli <[email protected]>
Strictly speaking, this isn't semver major since it has no breaking semantics. But, we only have fully V8 support on 24 unless there is a backport of the V8 update. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #57038 +/- ##
==========================================
- Coverage 89.10% 89.10% -0.01%
==========================================
Files 665 665
Lines 193203 193196 -7
Branches 37220 37215 -5
==========================================
- Hits 172158 172146 -12
+ Misses 13771 13767 -4
- Partials 7274 7283 +9
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
The
notable-change
Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section. |
"experimental ES Module support for webassembly modules", | ||
&EnvironmentOptions::experimental_wasm_modules, | ||
kAllowedInEnvvar); | ||
AddOption("--experimental-wasm-modules", "", NoOp{}, kAllowedInEnvvar); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think "unflag an experimental feature" should start with switching the default value to be true
, and allowing turning the feature off with --no-experiemental-wasm-modules
, instead of making it a no-op directly.
BTW, if we are going to make this a no-op, EnvironmentOptions::experimental_wasm_modules
should be removed as it is not used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, if having WASM module enabled breaks something, it's useful to be able to disable it. We can make the falg a no-op in another major
Co-authored-by: Antoine du Hamel <[email protected]>
pr-url: https://github.com/nodejs/node/pull/57038 | ||
description: Wasm modules no longer require the `--experimental-wasm-modules` flag. | ||
--> | ||
|
||
> Stability: 1 - Experimental |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
> Stability: 1 - Experimental | |
> Stability: 1.2 - Release candidate |
Thanks for all the approvals it is great to see the interest in this. After further discussion, since this is still a Phase 3 Wasm specification, that implies it is still in experimental implementation status until it reaches Phase 4. While strictly speaking we can land experimental features unflagged in Node.js, the ESM Integraiton has already taken long enough that there is no need to rush something out the door here - so I will hold off on landing this for Node.js 24 and instead seek to land it for (hopefully) 25 instead where ideally we would be able to land under Phase 4 later in the year, or to then at least reconsider unflagging under Phase 3 if we feel it is in the interests of the project at that point for our users. |
We discussed at the collab summit and we realized its not semver major so it can land |
Thanks for clarifying the case here, I'll aim to land this then when the current design discussions on the ESM Integration proposal repo have been resolved (theres a few final PRs in progress and under discussion right now - https://github.com/WebAssembly/esm-integration/pulls). Hopefully these should resolve fairly soon, but it may be more than a few weeks yet too. |
This unflags
--experimental-wasm-modules
for Node.js 24, while keeping the implementation experimental for now.With #56919 landed, Node.js supports both source phase imports and instance phase imports to WebAssembly modules and for Wasm imports to JS, in line with the current Phase 3 WebAssembly ESM Integration proposal (https://github.com/webassembly/esm-integration).
By unflagging, this will enable build tools to target source phase imports for Node.js as an output format, providing immediate benefit to Wasm consumers in enabling more seamless interoperability between JS and Wasm modules.