Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

More precise livenes analysis for locals under Asyncify

Aperta
#9,038 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
cpp, wasm
Ambito
compilers

Direzione di ricerca

Inizia in src/passes/Asyncify.cpp, al TODO intorno alle righe 1597–1599, e analizza il Binaryen issue #3739 collegato e il pull request di Emscripten che lo ha motivato. Determina come la liveness dopo una chiamata sospensiva dovrebbe influire sul salvataggio di externref locals; il lavoro è completato quando i riferimenti morti vengono omessi e il comportamento supportato di Asyncify rimane corretto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I've been trying to add an externref to emscripten here:
https://github.com/emscripten-core/emscripten/pull/26964

And its failing with: Fatal: Asyncify does not yet support non-number types, like references (see https://github.com/WebAssembly/binaryen/issues/3739).

Rather than push to land the fix to #3739, I think my particulur use case might be fixed by resolving this TODO in Asyncify:
https://github.com/WebAssembly/binaryen/blob/3029fbb717390af5d49914ba635b5458dd1c6efa/src/passes/Asyncify.cpp#L1597-L1599

The externref I'm using is not live after the call to the suspending function, so it should not need to be saved or restored.

How hard would it be to fix that TODO? Presumably it would make Asyncify in general more efficient?

Lingua principale
WebAssembly
Stelle
8.6k
Fork
892
Merge medio
1g 18h
PR unite (30g)
79

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di WebAssembly/binaryen

Tutte le issue di WebAssembly/binaryen

Issue simili

Altre issue su Compilers

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.