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

[webdev] Generate auto-switching combined build for dart2js and dart2wasm output #2296

Open
parlough opened this issue Dec 5, 2023 · 4 comments

Comments

@parlough
Copy link
Member

parlough commented Dec 5, 2023

I'm not exactly sure at what layer this should be in, but webdev seems like an most appropriate place. Happy to hear what other's think! Perhaps it does make sense directly as a dart subcommand, not sure.

Building on dart-lang/sdk@0df58fc and eventually dart-lang/build#3621:

I think webdev should have a release mode that generates output with both dart2js (dart compile js) and dart2wasm (dart compile wasm). Then it should generate a JS script which chooses between them based on browser capabilities.

Developers can technically do this themselves, but I imagine it will be common enough that it's worth having some built-in functionality to do so.

Perhaps for a while, this can be a separate mode from the existing --release, but eventually I'd expect this to be the default.

\cc @kevmoo @jakemac53 For general thoughts, including about where this functionality could live.

@jakemac53
Copy link
Contributor

jakemac53 commented Dec 6, 2023

This probably has to be a part of the build package explicitly, because usually we don't support compiling the same app with multiple compilers (as a part of a single build). We could though, and I had just yesterday started some informal conversations regarding how we should do the switching too, as a part of dart-lang/build#3621 :).

@mit-mit
Copy link
Member

mit-mit commented May 28, 2024

Functionally I think we'd want something like this:

  • webdev serve: Do DDC compilation + serve up result
  • webdev build: Do dart2js & dart2wasm compilation; plus bundle up in some out folder with bootstrapping logic that selects between JS and Wasm in the browser.

wdyt @jakemac53 @kevmoo ?

@jakemac53
Copy link
Contributor

That seems pretty reasonable, and I was looking into doing this before, but I need good direction from the dart2js/wasm teams on how to implement the JS/Wasm switching.

@kevmoo
Copy link
Member

kevmoo commented May 28, 2024

@jakemac53 – @eyebrowsoffire has figured this out for Flutter. We should look to share logic as much as possible!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants