ruby / ruby/ruby.wasm

Ruby Head compatibility

Abierto
#556 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Ruby
Estrellas
875
Forks
68
Merge medio
9 d 5 h
PR fusionados (30 d)
1

Descripción

I'm actively experimenting with the head Ruby builds (mostly due to #555) and collecting some compatibility
issues compared to 3.3 release here.

Gem/lib versions:

  • ruby_wasm: 2.7.0
  • js: 2.7.0

This commit broke loading tempfile.rb: https://github.com/ruby/ruby/commit/136cbf04419acf993357701e54712f921a294355

require "tempfile"

# => 'File#initialize': No such file or directory @ rb_sysopen - /dev/null (Errno::ENOENT)

Not sure how to properly handle /dev/null in Wasm, though; maybe, we should return nil for IO::NULL and check for nil-ness whenever it's used 🤔

require "digest/sha1"

#=> <internal:/usr/local/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require': rb_digest_wrap_metadata not found (LoadError)
<internal:/usr/local/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
eval:3:in '<main>'
-e:in 'Kernel.eval'

Worked fine in 3.3.

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Reproduce los dos fallos con ruby.wasm 2.7.0, empezando por los ejemplos de require para tempfile.rb y digest/sha1. Revisa los pull requests referenciados de tempfile y digest y el commit de Ruby; después, compara el comportamiento con Ruby 3.3. Se considera terminado cuando ambas bibliotecas se cargan correctamente en el build de WebAssembly actual.

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

Evaluación

Stack tecnológico
ruby, wasm
Área
operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.