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
59
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
300
Contribute to Ruby (RubyKaigi 2022)
matz
0
180
Ruby_through_Reserved_Words.pdf
matz
0
120
Ruby after 25 years
matz
1
980
What is software made of?
matz
0
580
Streem
matz
8
3.6k
world-of-languages.pdf
matz
8
1.3k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
Pythonによるイベントソーシングへの挑戦と現状に対する考察 / Challenging Event Sourcing with Python and Reflections on the Current State
nrslib
3
1.2k
pytest プラグインを開発して DRY に自動テストを書こう
inuatsu
2
260
Cancel Next.js Page Navigation: Full Throttle
ypresto
1
160
AWS CDKを用いたセキュアなCI/CDパイプラインの構築 / Build a secure CI/CD pipeline using AWS CDK
seike460
PRO
3
600
CSC509 Lecture 01
javiergs
PRO
1
210
Remix × Cloudflare Pages × Sentry 奮闘記 / remix-pages-sentry
nkzn
1
400
◯◯エンジニアになった理由
gessy0129
PRO
0
640
個人開発で使ってるやつを紹介する回
yohfee
1
700
Cloud Adoption Framework にみる組織とクラウド導入戦略
tomokusaba
2
450
CSC509 Lecture 03
javiergs
PRO
0
140
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
240
"Swarming" をコンセプトに掲げるアジャイルチームのベストプラクティス
boykush
2
240
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
The Mythical Team-Month
searls
218
43k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.8k
Design by the Numbers
sachag
278
19k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Web Components: a chance to create the future
zenorocha
310
42k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Automating Front-end Workflow
addyosmani
1365
200k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
46
4.9k
Visualization
eitanlees
143
15k
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