ruby.wasm icon indicating copy to clipboard operation
ruby.wasm copied to clipboard

Ruby Head compatibility

Open palkan opened this issue 1 year ago • 3 comments

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

  • [ ] Tempfile vs. /dev/null: https://github.com/ruby/tempfile/pull/38

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 🤔

  • [ ] Fails to require digest/sha1: https://github.com/ruby/digest/pull/71
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.

palkan avatar Nov 13 '24 20:11 palkan

I've bisected the second problem (digest): https://github.com/ruby/ruby/commit/0619312bb53cb64dedbfbf30eafd3a708b72588e

palkan avatar Nov 15 '24 01:11 palkan

Thanks! I've made patches for those issues: https://github.com/ruby/tempfile/pull/38, https://github.com/ruby/digest/pull/71

kateinoigakukun avatar Nov 15 '24 21:11 kateinoigakukun

wow this is awesome, any news about when a new release can be cut for head? I noticed that "https://cdn.jsdelivr.net/npm/@ruby/ruby-head-wasm-wasi/dist/ruby-head-wasm-wasi.wasm" is still pointing at 3.3

SamSaffron avatar Dec 02 '24 21:12 SamSaffron