Skip to content

Will continuous feature-enabling truly remain a continuous issue? #252

@workingjubilee

Description

@workingjubilee

I am not sure what the goal is here for wasm32 targets as to what they should be expected to support. The decision in #158 proposes this is a continuous issue, but people often use Web technologies because they are... relatively stable. In practice, code that is recompiled to a new featureset will tend to break tools that interoperate with it unless those tools are expecting the new output. New flags that enable compatibility with these new features are somewhat useless to the actual compiler user if those flags are passed inside a wrapper tool and the wrapper tool stops passing new flags (due to e.g. not being updated as-recently). One can argue those wrapper tools are poorly designed, but people often use them because they are not compiler engineers who have all the extension features for (sometimes several) instruction set architectures floating around in their head, so they enjoy using something that "just works" because it precalculates the needed features or whatnot.

And sometimes I have to furrow my brow and squint a bit to remember what features are what, too.

I do think things like lime1 will relieve the pressure quite a bit, but is there an intended "endgame" here? It may help in making it clear, if that "endgame" is obviously years off, that people who buy the ticket are in for quite a ride. I don't really mind communicating to people that they need to prepare for excitement if they build on certain wasm32 targets, especially if they choose to not build on things like e.g. wasm32lime1, but it does feel slightly wrong to just say "well, wasm32 is just going to change forever". That can't be the case, can it?

This goal can be quite vaguely stated, I think, as I'm definitely not looking for a hard, promised direction or timeframe. I'm guessing it's something like "wasm32 as a target platform will continue to evolve until it can support a full ecosystem that is functionally a peer to JS (on the Web) and C (on the server) alike, which means it must develop, at minimum, things like GC integration and multithreading powers, but may extend to varied and diverse capabilities that are seen as needed, as they arise, and these can be expected to be implicitly enabled in targets"?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions