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

Streamlined process for single instruction proposals #857

Open
dtig opened this issue Aug 10, 2021 · 5 comments
Open

Streamlined process for single instruction proposals #857

dtig opened this issue Aug 10, 2021 · 5 comments
Labels
process Issues concerning the documents in the process directory.

Comments

@dtig
Copy link
Member

dtig commented Aug 10, 2021

In the SIMD sync last week @lars-t-hansen noted that our current proposals process is quite heavy weight for adding single instruction proposals. On the Web API front, we have some precedence for nominal PRs, but this is not as straightforward for additions to the core spec, because we would want spec text, tests, interpreter and engine implementations even if we streamline the process. One approach I can think of is to have a stronger design consensus in Phase 1 for smaller proposals, and condense the meat of Phase 2, Phase 3 (spec text, tests, implementation) into one vote. In theory, this can also happen now, i.e. as long as the requirements are met, there is no reason not to have subsequent votes for Phase 2, Phase 3, Phase 4 as long as the requirements are met. Opening this issue to gather thoughts/feedback to see what process improvements we can make in this case.

@devsnek
Copy link
Member

devsnek commented Aug 10, 2021

in TC39 we sometimes have proposals that jump from stage 0 to stage 2 directly, similarly to what you describe, because they meet the requirements and there is consensus. I think that could be reasonable in this venue as well.

@penzn
Copy link
Contributor

penzn commented Sep 17, 2021

Sorry, just found this, notification got lost in my inbox.

For simple proposals pretty much the entire English spec text can be covered in the initial presentation, which makes 0-1-2 trip mostly redundant. On the other hand, discussions at later stages can provide valuable feedback about the implementation. even if they technically can't affect the outcome - I think it is useful to get the feedback before the feature ships. Personally I feel like going directly to phase 2 is reasonable, but not sure we want to condense the latter phases.

@penzn
Copy link
Contributor

penzn commented Sep 21, 2021

Sorry, I went ahead and opened #880 to discuss this at a CG meeting. Also, do we want to apply this only to single-instruction proposals or any small proposals (for example there might be a few instructions doing related things)?

@lars-t-hansen
Copy link
Contributor

Multiple instructions in one proposal packet should be OK. I think the bar should be that the instructions don't do anything "interesting" other than add new, fairly obviously useful, operations into the existing semantic framework.

For example, adding the relaxed FMA instructions to the SIMD MVP would not be a good fit for the fast-track process - because relaxed SIMD would be a new thing in that context. But once we have incorporated relaxed SIMD into the semantic framework through the normal process, new relaxed instructions could be added through the fast-track process.

Of the proposals that have shipped, sign extension and saturated float-to-int conversions might have been fast-trackable. None of the pending proposals seem to fit. I think of the fast-track process as a tweak that will benefit SIMD in particular, as it will allow us to ship SIMD improvements continuously rather than holding back a proposal in the fear that we've forgotten to include something.

@dschuff
Copy link
Member

dschuff commented Sep 22, 2021

Another "small" proposal in-progress is extended-constexpr. In fact AFAIK the primary open question right now is how many new operations should be added. Maybe in that context, we could run the first batch through the full process and establish some kind of guideline for what we want the bar to be for new constexpr instructions. Then future additions could be fast-tracked.

@sunfishcode sunfishcode added the process Issues concerning the documents in the process directory. label Mar 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
process Issues concerning the documents in the process directory.
Projects
None yet
Development

No branches or pull requests

6 participants