~/talk

Garnet.js: Implementing the YARV Virtual Machine

Talkat RubyConf 2026 · 2026-07-14..07-16· [ruby, javascript]
slides:none on file

Built a TypeScript YARV interpreter that interprets Ruby (does not transpile) and targets Node and browsers, emitting and executing YARV bytecode with a stack VM model. Uses the Prism parser compiled to WASM and Onigmo regex in WASM, wraps Ruby objects as RValue, implements ~107 YARV instructions, and is ~80 KB compressed. It already ran the entire Phlex test suite and many Ruby compatibility tests, handles Ruby’s complex argument calling conventions, and implements much of the stdlib though some nodes and libraries remain unfinished.

AI-written summary · about

  1. 0:00Welcome
  2. 2:27Ruby history and YARV
  3. 10:32YARV bytecode compilation
  4. 16:27Garnet.js purpose
  5. 19:12Ruby objects in Garnet.js
  6. 21:17Ruby syntax edge cases
  7. 29:19Contributing to Garnet.js
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.