Embedding API changes
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- wasm
- Ambito
- compilers
Direzione di ricerca
The requested work is an update to the explainer's appendix; start by reading the existing embedding API and exception-handling extension described there. Done means the appendix sketches SUSPEND, cont_resume, host-function suspensions, payload and parameter-type requirements, and the stated JS API and JSPI consequences.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It would be good to update the explainer with a sketch of how we expect the embedding API given in the appendix to be extended.
Taking inspiration from how the embedding API is extended for exception handling, we can add a new kind of result from func_invoke, SUSPEND a, where a is a continuation address. We can also add a new function cont_resume that behaves exactly like func_invoke, except that it takes a continuation address instead of a function address. Finally, we can allow host functions to result in suspensions, just like we allow them to result in throws. The suspensions need to be able to carry payloads and need to record the types of the parameters necessary to resume the suspending continuation.
This set of changes are sufficient to allow the JS API spec to specify that an error should be thrown when calling an export results in SUSPEND a. It is also sufficient to specify JSPI in terms of core stack switching by having JSPI suspending import wrappers return suspensions to Wasm carrying the suspending promises as payloads and having JSPI promising export wrappers call func_invoke, receive SUSPEND a, then schedule the future resumption of the continuation via cont_resume once the extracted suspending promise is resolved.
- Lingua principale
- WebAssembly
- Stelle
- 216
- Fork
- 19
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di WebAssembly/stack-switching
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
WebAssembly/stack-switching#156 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
WebAssembly/stack-switching#145 · 4 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
WebAssembly/stack-switching#144 · 4 commenti ·
-
JSPI integrationAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
WebAssembly/stack-switching#131 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
WebAssembly/stack-switching#128 · 6 commenti ·
Tutte le issue di WebAssembly/stack-switching
Issue simili
-
self-host checker: E021 bound check reads an untyped literal at i32, not the type the call bindsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
JakeChampion/lang#11055 ·
I maintainer di solito rispondono entro 1 giorno
-
codegen: memref.collapse_shape in an mlir! block leaves an affine.apply that is never loweredApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno