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

On enabling post-MVP features by default #126

Open
dcodeIO opened this issue Sep 5, 2019 · 1 comment
Open

On enabling post-MVP features by default #126

dcodeIO opened this issue Sep 5, 2019 · 1 comment

Comments

@dcodeIO
Copy link

dcodeIO commented Sep 5, 2019

In a recent Binaryen PR the question of when to enable post-MVP features in tooling came up. In particular, since the mutable-global proposal had been finished meanwhile, the suggestion there was to enable the feature by default in Binaryen (and have a Default feature set to target finished features). On the AssemblyScript side, a good strategy seems to be to enable finished proposals by default as soon as our toolchain supports them in a stable manner, closely aligning with the standardization process. Until there is some sort of feature detection this also means: If a targeted engine supports more than the finished proposals, those must be explicitly enabled in tooling. Likewise, if a targeted engine supports less than the finished proposals, those must be explicitly disabled in tooling.

As suggested by @kripken I'm opening this issue so we can coordinate.

@tlively
Copy link
Member

tlively commented Sep 5, 2019

There seem to be two reasonable approaches here:

  1. Update the default feature sets in tools as proposals become standardized. Pros: less to think about for users targeting up-to-date, feature-complete engines. Cons: inconsistent across versions, so realistically users would need to explicitly enable features in their build systems anyway or make upgrades a headache.
  2. Keep MVP as the default feature set forever. Pros: consistent and predictable, easy to upgrade. Cons: Requires detailed knowledge of what features are supported, will become outdated eventually.

Both of these seem bad. Perhaps a middle ground would be to keep MVP as the default, but bundle features into "releases" so users could target "wasm2020" or something without having to know the details. We would still need a centralized caniwasm.com sort of thing to document what features or releases each engine supports, though.

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

No branches or pull requests

2 participants