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
56
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
290
Contribute to Ruby (RubyKaigi 2022)
matz
0
180
Ruby_through_Reserved_Words.pdf
matz
0
120
Ruby after 25 years
matz
1
960
What is software made of?
matz
0
570
Streem
matz
8
3.5k
world-of-languages.pdf
matz
8
1.3k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
Lessons by WebAssembly app in production on CDN Edge Computing Service
tetsuharuohzeki
0
220
Modern Angular with the NGRX Signal Store New Rules for Your Architecture @BASTA! 2024 in Mainz
manfredsteyer
PRO
0
160
GraphQLの魅力を引き出すAndroidクライアント実装
morux2
3
830
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
Composing an API the *right* way (Droidcon New York 2024)
zsmb
2
170
2024 컴포즈 정원사
jisungbin
0
150
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
4
90k
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
680
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
220
開発を加速する共有Swift Package実践
elmetal
PRO
0
420
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
0
400
Data Contracts In Practice With Debezium and Apache Flink
gunnarmorling
0
100
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
242
11k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Docker and Python
trallard
39
3k
What's new in Ruby 2.0
geeforr
340
31k
Speed Design
sergeychernyshev
22
430
Into the Great Unknown - MozCon
thekraken
29
1.4k
For a Future-Friendly Web
brad_frost
174
9.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
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