rb_loader: metacall gem not available in distributable - Ruby cannot call other languages via metacall()
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 68/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Domain
- build-system, release
Research direction
Start by running metacall simulation/issue_rb_gem/repro.py and inspect works.rb, fails.rb, target.py, and repro.py to reproduce the missing gem on Windows and Linux. Trace how rb_loader assembles each distributable and verify that the metacall Ruby gem is included. Done means the failing Ruby caller works in both distributables while the existing callee case remains working.
Written by the indexing model from the issue text.
Description
When a Ruby finction uses require 'metacall' to call other language via metacall(), it fails with:
LoadError: cannot load such file -- metacall
This happens on both the Windows installer and the Linux Docker distributable. The metacall Ruby gem is not bundled with rb_loader.
Ruby as a callee (being called from Python/Node) works fine.
Ruby as a caller (calling out to another language) is broken.
Files: https://github.com/avik22835/polyglot-intel/tree/main/simulation/issue_rb_gem
- works.rb - plain Ruby function, no require metacall
- fails.rb - Ruby function with require 'metacall', calls Python via metacall()
- target.py - Python function being called
- repro.py - driver, runs both cases
Run with :
metacall simulation/issue_rb_gem/repro.py
Output on Windows:
Output on Linux:
Expected:
The metacall gem should be bundled with rb_loader so Ruby finctions can call other languages via metacall() in cross-language call chains.
- Dominant language
- C
- Stars
- 1.8k
- Forks
- 266
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 14
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from metacall/core
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
metacall/core#964 · 1 comment ·
Maintainers usually reply within 1 day
-
pre-push hook empties VERSION when the clone has no tagsPossibly taken @vedant21-oss claimed this 18 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
metacall/core#939 · 3 comments ·
Maintainers usually reply within 1 day
-
TOCTOU race condition vulnerability!Possibly taken @akshatchitransh claimed this 1 day ago. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
metacall/core#961 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 Half a day Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Go Port Race Conditions on MacOSPossibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
metacall/core#942 · 3 comments ·
Maintainers usually reply within 1 day
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
`table_create()` crashes when an `hccalloc()` for the option table failsPossibly taken @marinelay claimed this today. Opentype: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug severity: low
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
AlessandroSangiuliano/Uros#950 ·
-
vim.text.indent(): expandtab fails on single-tab blank lines and CRLF blank lines reset old_indent to 0Possibly taken A pull request linked to this issue is open or already merged. Openlua
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day