Slide 1

Slide 1 text

Powered by Rabbit 3.0.1 mruby VM OSS Vision Ruby Association Yukihiro "Matz" Matsumoto @yukihiro_matz

Slide 2

Slide 2 text

Powered by Rabbit 3.0.1   mruby

Slide 3

Slide 3 text

Powered by Rabbit 3.0.1   Alternative Ruby Implementation

Slide 4

Slide 4 text

Powered by Rabbit 3.0.1   M-Ruby

Slide 5

Slide 5 text

Powered by Rabbit 3.0.1   Modular Ruby

Slide 6

Slide 6 text

Powered by Rabbit 3.0.1   eMbeddable Ruby

Slide 7

Slide 7 text

Powered by Rabbit 3.0.1   Memory efficient Ruby

Slide 8

Slide 8 text

Powered by Rabbit 3.0.1   Embeddable VM

Slide 9

Slide 9 text

Powered by Rabbit 3.0.1   Register Based Instruction Set Ruby Specialized Instructions Portable Instruction Set

Slide 10

Slide 10 text

Powered by Rabbit 3.0.1   Register vs Stack

Slide 11

Slide 11 text

Powered by Rabbit 3.0.1 Stack based Instructions PUSH 1 PUSH 2 ADD

Slide 12

Slide 12 text

Powered by Rabbit 3.0.1   Less Operands Smaller Instructions Highly Dependent Instruction Order

Slide 13

Slide 13 text

Powered by Rabbit 3.0.1 Register based Instructions LOADINT R1 1 LOADINT R2 2 ADD R1 R2

Slide 14

Slide 14 text

Powered by Rabbit 3.0.1   More Operands Longer Instructions Independent Instruction Order Easier to Peep-hole Optimize

Slide 15

Slide 15 text

Powered by Rabbit 3.0.1   # a (R1) = 42 LOADINT R2 42 MOVE R1 R2

Slide 16

Slide 16 text

Powered by Rabbit 3.0.1   # a (R1) = 42 LOADINT R1 42

Slide 17

Slide 17 text

Powered by Rabbit 3.0.1   Ruby Specialized Instructions

Slide 18

Slide 18 text

Powered by Rabbit 3.0.1   GETIV,GETCV,GETCONST SEND,SENDB SUPER EXCEPT,RESCUE,RAISEIF

Slide 19

Slide 19 text

Powered by Rabbit 3.0.1   Portable

Slide 20

Slide 20 text

Powered by Rabbit 3.0.1   Can be dumped in binary format

Slide 21

Slide 21 text

Powered by Rabbit 3.0.1   Used by mruby, mruby/c

Slide 22

Slide 22 text

Powered by Rabbit 3.0.1   Not easy to upgrade

Slide 23

Slide 23 text

Powered by Rabbit 3.0.1   Compile Once, Run Anywhere

Slide 24

Slide 24 text

Powered by Rabbit 3.0.1   Even on Keyboards

Slide 25

Slide 25 text

Powered by Rabbit 3.0.1   Sponsored by Salesforce.com

Slide 26

Slide 26 text

Powered by Rabbit 3.0.1   Sponsored by NaCl

Slide 27

Slide 27 text

Powered by Rabbit 3.0.1   Sponsored by GitHub Sponsors

Slide 28

Slide 28 text

Powered by Rabbit 3.0.1   Sponsored by Ruby Community

Slide 29

Slide 29 text

Powered by Rabbit 3.0.1   Thank you