Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Path to Phase 4

Abierto
#198 9 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
20/100
Tipo de issue
Documentación
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
javascript, wasm

Línea de trabajo

Empieza revisando la rama upstream-rebuild y los elementos que aún no están marcados en las listas TODO de Core, JS-API, Interpreter y Misc. El issue señala la prosa de especificación sin terminar, las restricciones de wait/notify, el formato y la generación de pruebas .wast-to-JS como áreas que se deben inspeccionar. Se considera terminado cuando se hayan resuelto los TODO restantes y se haya determinado si el trabajo actualizado debe unificarse con main.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

The current main branch has become miserably out of date. We now have a rebased version of (most of) the threads specification living in a new branch (and I'm very grateful for @ioannad's invaluable help here). I've also passed over this branch to excise some long-standing bugs (e.g. https://github.com/WebAssembly/threads/issues/195) and other TODOs.

I'm using this issue to track my progress towards getting Threads phase 4-ready, since the only remaining bar facing the proposal's standardisation is full specification text. My intention is to start out doing this work in the upstream-rebuild branch, although I'm sure we'll have a conversation about how to update main at some point.

Core document TODOs:

  • generalise binary encoding to allow LEBs
  • give text descriptions for wait and notify
  • describe behaviour of the wait' (suspend) administrative instruction
  • fix tearing behaviour of float and SIMD non-atomics
  • describe the behaviour of the concurrent host
    • todo: finish writing prose / evaluate alternative formalisations
    • todo: fully remove old host state particle
  • extend configurations to hold multiple threads
  • fix shared memory bounds checks in instantiation
  • rebase in the axiomatic constraints of the relaxed memory model
    • todo: predicates should be coinductive
      • todo: work out why sphinx is rendering negative space weirdly
    • todo: auxiliary functions
    • todo: finish writing prose
  • extend these constraints to describe wait/notify queue behaviour
  • link the above constraints to the actions emitted in the operational semantics
    • todo: syntax for coinductives
  • formatting - add line breaks where the PDF overflows

JS-API document TODOs:

  • check with an expert whether I got the JS-API rebase correct
  • integrate with growable SharedArrayBuffer
  • final inline todos

Interpreter TODOs:

  • rebase the interpreter into the new branch
    • syntax
    • single-thread semantics
    • fix cmpxchg wrapping behaviour (#195)
    • green threads and wait/notify implementations (#194)
  • collect together the tests from the other WIP branches
  • update .wast -> JS test generation tool to handle thread and wait

Misc TODOs:

  • re-unify with main(?)
  • update the spec render
  • check whether any other documents need updating
  • final inline TODO sweep
Lenguaje dominante
WebAssembly
Estrellas
769
Forks
54
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de WebAssembly/threads

Todos los issues de WebAssembly/threads

Issues similares

Más issues de Compilers

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.