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
65
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
360
Contribute to Ruby (RubyKaigi 2022)
matz
0
200
Ruby_through_Reserved_Words.pdf
matz
0
120
Ruby after 25 years
matz
1
1.2k
What is software made of?
matz
0
620
Streem
matz
8
3.7k
world-of-languages.pdf
matz
8
1.3k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
令和トラベルにおけるコンテンツ生成AIアプリケーション開発の実践
ippo012
1
170
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
4
820
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
4
1.1k
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
5
2.6k
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
160
Swift Testingのモチベを上げたい
stoticdev
2
250
フロントエンドのチューニングに挑戦してみる
jdkfx
0
110
‘무차별 LGTM~👍’만 외치던 우리가 ‘고봉밥 코드 리뷰’를?
hannah0731
0
420
Boost Your Web Performance with Hyperdrive
chimame
1
210
高セキュリティ・高耐障害性・サブシステム化。そして2億円
tasukulab280
2
490
Introduction to C Extensions
sylph01
3
140
Jasprが凄い話
hyshu
0
260
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Gamification - CAS2011
davidbonilla
80
5.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
GraphQLとの向き合い方2022年版
quramy
44
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
590
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Language of Interfaces
destraynor
156
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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