~/talk

Some Assembly Required

Talkat RubyConf 2021 · 2021-11-08..11-10· [ruby]

Builds a pure Ruby JIT called TenderJIT that actually emits x86 machine bytes with an assembler library fisk, writes them into executable memory and calls them, and patches Ruby internals using fiddle and odinflex to install a jit_func. Shows a working pipeline that turns YARV instruction sequences into machine code, records a benchmark (interpreted ~10s vs jitted ~4s) and demos setting a jit to return 42, proving the approach works end to end.

AI-written summary · about

  1. 0:00Start
  2. 6:04Fibonacci Benchmark
  3. 8:40Generate Machine Code
  4. 9:39ERB Template
  5. 11:41Stack Machine
  6. 14:20Register Machine
  7. 15:29x86 Instructions
  8. 20:29Access Instruction From Ruby
  9. 20:56Mini YARV
  10. 22:52Integrate Virtual Stack
  11. 24:03Execution Example
  12. 24:46Refactor To a Method
  13. 26:45Update Virtual Stack
  14. 29:17CFP: Control Frame Pointer One per stack frame
  15. 29:45ISeq: Instruction Sequence One per "executable code"
~/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.