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
49
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
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
290
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
420
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
13
4.3k
Next.js App Router
quramy
14
2.3k
Going beyond Apache Parquet's default settings
xhochy
0
150
Amazon Aurora Serverless v2が意外と高かった話と、AWS Database Migration Serviceの話
satoshi256kbyte
1
110
TypeScriptで使いやすいOpenAPIの書き方
yukimochi_dwango
1
580
FoodGram
iseruuuuu
0
230
Timeline エディター拡張入門
yucchiy
0
450
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
610
チーム立ち上げにAWSを活用したらClaudeさんに褒められた話
mkdev10
3
230
Featured
See All Featured
The Cult of Friendly URLs
andyhume
74
5.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
47k
Building Applications with DynamoDB
mza
88
5.7k
Into the Great Unknown - MozCon
thekraken
15
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
How to name files
jennybc
65
94k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
81
44k
In The Pink: A Labor of Love
frogandcode
138
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
What the flash - Photography Introduction
edds
64
11k
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