Improve interpreter spec test coverage
Los mantenedores suelen responder en 1 día
@stevenfontanella ya está trabajando en esto.
Desde el 3/2/2026.
- #8058 de @stevenfontanella — fusionado
- #8076 de @stevenfontanella — fusionado
- #8086 de @stevenfontanella — fusionado
- #8222 de @stevenfontanella — fusionado
- #8233 de @stevenfontanella — fusionado
- #8234 de @stevenfontanella — fusionado
- #8254 de @stevenfontanella — fusionado
- #8270 de @stevenfontanella — fusionado
- #8357 de @stevenfontanella — fusionado
- #8380 de @stevenfontanella — fusionado
- #8396 de @stevenfontanella — fusionado
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Failing spec tests as of November:
test/spec/
- const.wast,
- linking.wast,
- unreached-invalid.wast,
- elem.wast,
test/spec/threads (to be upstreamed into testsuite from the threads repo), ported in #8418.
- atomic.wast
- deeply_nested.wast
- LB_atomic.wast
- LB.wast
- MP_atomic.wast
- MP.wast
- nested.wast
- SB_atomic.wast
- SB.wast
- simple.wast
- thread.wast
- unlinkable.wast
- wait_notify.wast
test/spec/testsuite/
- address.wast, # 64-bit offset allowed by memory64
- array_new_elem.wast, # Failure to parse element segment item abbreviation
- binary.wast, # Missing data count section validation
- call_indirect64.wast, # Failure to parse element segment abbreviation
- comments.wast, # Issue with carriage returns being treated as newlines
- const.wast, # Hex float constant not recognized as out of range
- conversions.wast, # Promoted NaN should be canonical
- data.wast, # Fail to parse data segment offset abbreviation
- elem.wast, # Requires modeling empty declarative segments
- f32.wast, # Adding -0 and -nan should give a canonical NaN
- f64.wast, # Adding -0 and -nan should give a canonical NaN
- float_exprs.wast, # Adding 0 and NaN should give canonical NaN
- float_misc.wast, # Rounding wrong on f64.sqrt
- func.wast, # Duplicate parameter names not properly rejected
- global.wast, # Fail to parse table
- if.wast, # Requires more precise unreachable validation
- imports.wast, # Missing validation of missing function on instantiation
- proposals/threads/imports.wast, # Missing memory type validation on instantiation
- linking.wast, # Missing function type validation on instantiation
- memory.wast, # Requires wast
module definitionsupport - proposals/threads/memory.wast, # Missing memory type validation on instantiation
- memory64-imports.wast, # Missing validation on instantiation
- annotations.wast, # String annotations IDs should be allowed
- id.wast, # Empty IDs should be disallowed
- instance.wast, # Requires wast
module definitionsupport - table64.wast, # Requires wast
module definitionsupport - table_grow.wast, # Incorrect table linking semantics in interpreter
- tag.wast, # Non-empty tag results allowed by stack switching
- try_table.wast, # Requires try_table interpretation
- local_init.wast, # Requires local validation to respect unnamed blocks
- ref_func.wast, # Requires rejecting undeclared functions references
- ref_is_null.wast, # Requires ref.null wast constants
- ref_null.wast, # Requires ref.null wast constants
- return_call_indirect.wast, # Requires more precise unreachable validation
- select.wast, # Requires ref.null wast constants
- table.wast, # Requires support for table default elements
- unreached-invalid.wast, # Requires more precise unreachable validation
- array.wast, # Requires support for table default elements
- br_if.wast, # Requires more precise branch validation
- br_on_cast.wast, # Requires host references to not be externalized i31refs
- br_on_cast_fail.wast, # Requires host references to not be externalized i31refs
- extern.wast, # Requires ref.host wast constants
- i31.wast, # Requires support for table default elements
- ref_cast.wast, # Requires host references to not be externalized i31refs
- ref_test.wast, # Requires host references to not be externalized i31refs
- struct.wast, # Duplicate field names not properly rejected
- type-rec.wast, # Missing function type validation on instantiation
- type-subtyping.wast, # ShellExternalInterface::callTable does not handle subtyping
- call_indirect.wast, # Bug with 64-bit inline element segment parsing
- memory64.wast, # Requires wast
module definitionsupport - imports0.wast, # Missing memory type validation on instantiation
- imports2.wast, # Missing memory type validation on instantiation
- imports3.wast, # Missing memory type validation on instantiation
- linking0.wast, # Missing memory type validation on instantiation
- linking3.wast, # Fatal error on missing table.
- i16x8_relaxed_q15mulr_s.wast, # Requires wast
eithersupport - i32x4_relaxed_trunc.wast, # Requires wast
eithersupport - i8x16_relaxed_swizzle.wast, # Requires wast
eithersupport - relaxed_dot_product.wast, # Requires wast
eithersupport - relaxed_laneselect.wast, # Requires wast
eithersupport - relaxed_madd_nmadd.wast, # Requires wast
eithersupport - relaxed_min_max.wast, # Requires wast
eithersupport - simd_const.wast, # Hex float constant not recognized as out of range
- simd_conversions.wast, # Promoted NaN should be canonical
- simd_f32x4.wast, # Min of 0 and NaN should give a canonical NaN
- simd_f32x4_arith.wast, # Adding inf and -inf should give a canonical NaN
- simd_f32x4_rounding.wast, # Ceil of NaN should give a canonical NaN
- simd_f64x2.wast, # Min of 0 and NaN should give a canonical NaN
- simd_f64x2_arith.wast, # Adding inf and -inf should give a canonical NaN
- simd_f64x2_rounding.wast, # Ceil of NaN should give a canonical NaN
- simd_i32x4_cmp.wast, # UBSan error on integer overflow
- simd_i32x4_arith2.wast, # UBSan error on integer overflow
- simd_i32x4_dot_i16x8.wast, # UBSan error on integer overflow
- token.wast, # Lexer should require spaces between strings and non-paren tokens
- Lenguaje dominante
- WebAssembly
- Estrellas
- 8.6k
- Forks
- 892
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 79
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de WebAssembly/binaryen
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
WebAssembly/binaryen#9185 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
WebAssembly/binaryen#9135 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Medio día Aptitud para principiantes 76/100
WebAssembly/binaryen#9018 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
WebAssembly/binaryen#9186 ·
Los mantenedores suelen responder en 1 día
-
LoopInvariantCodeMotion: `struct.new` is hoisted out of a loop, so all iterations share one objectAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
WebAssembly/binaryen#9184 ·
Los mantenedores suelen responder en 1 día