Specifying lockdown behavior
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, wasm
Direzione di ricerca
Start with the component invariants section of design/mvp/Explainer.md and CanonicalABI.md, then review JS-API issue #686 and the removal in #705. Determine where lockdown semantics and failures during ToComponentValue and lowering should be specified; done means the location and behavior are agreed and the relevant specification is updated.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Component invariants state:
Components define a "lockdown" state that prevents continued execution after a trap. This both prevents continued execution with corrupt state and also allows more-aggressive compiler optimizations (e.g., store reordering). This was considered early in Core WebAssembly standardization but rejected due to the lack of clear trapping boundary. With components, each component instance is given a mutable "lockdown" state that is set upon trap and implicitly checked at every execution step by component functions. Thus, after a trap, it's no longer possible to observe the internal state of a component instance.
I don't see anything in CanonicalABI.md about this, does this still need to be specified? There was a may_enter flag that was removed in #705.
I'm asking because the JS-API (#686) needs to care about lockdown semantics, and I wasn't sure if it should define it in the JS-API or in CanonicalABI.md.
For the JS-API, it'd be great to fuse the destructuring of JS values (ToComponentValue) with the lowering of the component value into linear memory. However, destructuring a JS value can fail (type mismatches) and also lowering the component value can fail (OOBs). So ideally we could have both kinds of failures lead to a lockdown of the component such that it's not observable what happened to the internal wasm state.
If this is just missing, I can add it to CanonicalABI.md, I think that's the right place for it.
- Lingua principale
- WebAssembly
- Stelle
- 1.4k
- Fork
- 130
- Merge medio
- 2g 23h
- PR unite (30g)
- 14
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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/component-model
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
WebAssembly/component-model#609 · 2 commenti · 1 reazione ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
WebAssembly/component-model#724 · 10 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
WebAssembly/component-model#695 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
WebAssembly/component-model#694 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
WebAssembly/component-model#677 · 1 commento ·
Tutte le issue di WebAssembly/component-model
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
doctrine/collections#554 · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
receptron/mulmoterminal#2264 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openfoodfacts/robotoff#1957 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
django-tastypie/django-tastypie#1702 ·