[spectec] SpecTec interpreter: array.new_data and array.init_data fail on arrays of v128
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- wasm
- Ambito
- testing
Direzione di ricerca
Inizia nell’interprete SpecTec da inv_zbytes e confronta la sua gestione dei valori vettoriali con quella di inv_cbytes, che già inoltra V128 a inv_vbytes. Esegui spectec specification/wasm-3.0/*.spectec --interpreter con il modulo fornito; il lavoro è completato quando sia array.new_data sia array.init_data restituiscono i valori di lane attesi senza ArgMismatch.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
(module
(type $av (array (mut v128)))
(data $d "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f")
(func (export "new") (result i32)
(i32x4.extract_lane 3 (array.get $av (array.new_data $av $d (i32.const 0) (i32.const 1)) (i32.const 0))))
(func (export "init") (result i32)
(local $x (ref $av))
(local.set $x (array.new_default $av (i32.const 1)))
(array.init_data $av $d (local.get $x) (i32.const 0) (i32.const 0) (i32.const 1))
(i32x4.extract_lane 1 (array.get $av (local.get $x) (i32.const 0)))))
(assert_return (invoke "new") (i32.const 0x0f0e0d0c))
(assert_return (invoke "init") (i32.const 0x07060504))
The reference interpreter passes. spectec specification/wasm-3.0/*.spectec --interpreter fails both:
$ARRAY.NEW_DATA: Backend_interpreter.Exception.ArgMismatch("inv_nbytes: [V128, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]")
array.new_data-num and array.init_data-num decode the segment with $zbytes_(zt, c). In the interpreter, inv_zbytes handles I8 and I16 and passes everything else to inv_nbytes, which has no V128 case. inv_cbytes already sends V128 to inv_vbytes; inv_zbytes needs the same case.
Tested at 340650f.
- Lingua principale
- WebAssembly
- Stelle
- 3.5k
- Fork
- 540
- Merge medio
- 1g 4h
- PR unite (30g)
- 19
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/spec
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
WebAssembly/spec#2287 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
WebAssembly/spec#2284 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
WebAssembly/spec#2281 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 67/100
WebAssembly/spec#2289 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
WebAssembly/spec#2288 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di WebAssembly/spec
Issue simili
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
writerslogic/holographic-memory#93 ·
I maintainer di solito rispondono entro 1 giorno
-
area: app type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ExpidetGames/code-reviewer#585 ·
I maintainer di solito rispondono entro 1 giorno
-
area:backend bug performance
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
berntpopp/kidney-genetics-db#336 ·
I maintainer di solito rispondono entro 1 giorno
-
engine-rs P3 review-deferral wasm
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
maniator/verticopolis#1154 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
hivecommons/hive#13219 ·
I maintainer di solito rispondono entro 1 giorno