Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mruby VM
Search
Yukihiro Matsumoto
July 04, 2023
Programming
0
50
mruby VM
RubyKaigi 2023 LT
The internal of the mruby VM (in 5 minutes)
Yukihiro Matsumoto
July 04, 2023
Tweet
Share
More Decks by Yukihiro Matsumoto
See All by Yukihiro Matsumoto
30 Years of Ruby
matz
0
220
Contribute to Ruby (RubyKaigi 2022)
matz
0
160
Ruby_through_Reserved_Words.pdf
matz
0
110
Ruby after 25 years
matz
1
870
What is software made of?
matz
0
540
Streem
matz
8
3.4k
world-of-languages.pdf
matz
8
1.2k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1.1k
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
7
1.2k
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
410
Escolhendo (ou não) o melhor ORM para o seu projeto
andreiacsilva
1
160
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
130
RubyGems on ruby.wasm
kateinoigakukun
0
130
The test code generator using static analysis and LLM
mikik0
1
170
Powerfully Typed TypeScript
euxn23
4
1.7k
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
2k
勉強会4_アップデートされたAssistantsAPIを試す
milky04
0
110
The Final Frontier of Web Development: React Server Components vs Jakarta EE
ivargrimstad
0
150
The grand strategy of Ruby Parser
yui_knk
5
320
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Atom: Resistance is Futile
akmur
260
25k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
84
45k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Typedesign – Prime Four
hannesfritz
36
2.1k
Thoughts on Productivity
jonyablonski
60
3.9k
KATA
mclloyd
16
12k
How GitHub (no longer) Works
holman
305
140k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
The Language of Interfaces
destraynor
151
23k
How to train your dragon (web standard)
notwaldorf
75
5.2k
Transcript
Powered by Rabbit 3.0.1 mruby VM OSS Vision Ruby Association
Yukihiro "Matz" Matsumoto @yukihiro_matz
Powered by Rabbit 3.0.1 mruby
Powered by Rabbit 3.0.1 Alternative Ruby Implementation
Powered by Rabbit 3.0.1 M-Ruby
Powered by Rabbit 3.0.1 Modular Ruby
Powered by Rabbit 3.0.1 eMbeddable Ruby
Powered by Rabbit 3.0.1 Memory efficient Ruby
Powered by Rabbit 3.0.1 Embeddable VM
Powered by Rabbit 3.0.1 Register Based Instruction Set Ruby
Specialized Instructions Portable Instruction Set
Powered by Rabbit 3.0.1 Register vs Stack
Powered by Rabbit 3.0.1 Stack based Instructions PUSH 1 PUSH
2 ADD
Powered by Rabbit 3.0.1 Less Operands Smaller Instructions Highly
Dependent Instruction Order
Powered by Rabbit 3.0.1 Register based Instructions LOADINT R1 1
LOADINT R2 2 ADD R1 R2
Powered by Rabbit 3.0.1 More Operands Longer Instructions Independent
Instruction Order Easier to Peep-hole Optimize
Powered by Rabbit 3.0.1 # a (R1) = 42
LOADINT R2 42 MOVE R1 R2
Powered by Rabbit 3.0.1 # a (R1) = 42
LOADINT R1 42
Powered by Rabbit 3.0.1 Ruby Specialized Instructions
Powered by Rabbit 3.0.1 GETIV,GETCV,GETCONST SEND,SENDB SUPER EXCEPT,RESCUE,RAISEIF
Powered by Rabbit 3.0.1 Portable
Powered by Rabbit 3.0.1 Can be dumped in binary
format
Powered by Rabbit 3.0.1 Used by mruby, mruby/c
Powered by Rabbit 3.0.1 Not easy to upgrade
Powered by Rabbit 3.0.1 Compile Once, Run Anywhere
Powered by Rabbit 3.0.1 Even on Keyboards
Powered by Rabbit 3.0.1 Sponsored by Salesforce.com
Powered by Rabbit 3.0.1 Sponsored by NaCl
Powered by Rabbit 3.0.1 Sponsored by GitHub Sponsors
Powered by Rabbit 3.0.1 Sponsored by Ruby Community
Powered by Rabbit 3.0.1 Thank you