Ruby Head compatibility
palkan opened this issue · 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: ruby/tempfile#38
This commit broke loading tempfile.rb: ruby/ruby@136cbf0
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
: ruby/digest#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.
I've bisected the second problem (digest): ruby/ruby@0619312
Thanks! I've made patches for those issues: ruby/tempfile#38, ruby/digest#71
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