ruby / ruby/ruby.wasm

Ruby Head compatibility

未关闭
#556 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Ruby
星标
875
派生
68
平均合并
9 天 5 小时
30 天内合并 PR
1

描述

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.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

使用 ruby.wasm 2.7.0 重现这两个失败,先从 tempfile.rb 和 digest/sha1 的 require 示例开始。检查所引用的 tempfile 和 digest pull request 以及 Ruby 提交,然后将行为与 Ruby 3.3 进行比较。当两个库都能在 WebAssembly head 构建中成功加载时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
ruby, wasm
领域
operating-systems
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。