Allow reference types as long as not used by the initialization function?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia in src/lib.rs, intorno alla configurazione di wasm_reference_types e reference_types mostrata nell’issue, quindi traccia il modo in cui viene convalidata la funzione di inizializzazione. Definisci il completamento come la possibilità di consentire i tipi di riferimento nel modulo, segnalando un errore solo se l’inizializzazione li utilizza, e verifica sia l’inizializzazione sia l’uso successivo del modulo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I have a WASM module that uses reference types, but the initialization function (some pure precomputation) doesn't use them. Currently, wizer categorically fails with
Error: reference types support is not enabled (at offset 0x31ef)
However, when I apply this patch
diff --git a/src/lib.rs b/src/lib.rs
index f2ceb94..7f5adc9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -623,7 +623,7 @@ impl Wizer {
config.wasm_simd(self.wasm_simd.unwrap_or(DEFAULT_WASM_SIMD));
// Proposals that we should add support for.
- config.wasm_reference_types(false);
+ config.wasm_reference_types(true);
config.wasm_threads(false);
Ok(config)
@@ -642,7 +642,7 @@ impl Wizer {
multi_value: self.wasm_multi_value.unwrap_or(DEFAULT_WASM_MULTI_VALUE),
// Proposals that we should add support for.
- reference_types: false,
+ reference_types: true,
simd: self.wasm_simd.unwrap_or(DEFAULT_WASM_SIMD),
threads: false,
tail_call: false,
everything works fine, both initialization and later usage of the WASM module (including reference types).
Would it make sense to allow reference types a priori, and instead error when instructions related to reference types are encountered during initialization? I could take a stab at a PR if this makes sense.
- Lingua principale
- Rust
- Stelle
- 1.1k
- Fork
- 64
- 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 bytecodealliance/wizer
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
bytecodealliance/wizer#130 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
bytecodealliance/wizer#153 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
bytecodealliance/wizer#126 ·
-
Monotonic clock offsettingAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
bytecodealliance/wizer#125 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 32/100
bytecodealliance/wizer#105 · 1 commento ·
Tutte le issue di bytecodealliance/wizer
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
trezor/trezor-firmware#7997 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
oxidecomputer/management-gateway-service#506 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
scylladb/nodejs-rs-driver#566 ·
I maintainer di solito rispondono entro 1 giorno
-
A-ABI needs-triage relnotes relnotes-needs-review relnotes-tracking-issue T-lang T-libs T-opsem
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno