Slide 1

Slide 1 text

RUBINIUS 2.0 AND NIKITA BRIAN FORD @brixen EURUKO12

Slide 2

Slide 2 text

THANK YOU

Slide 3

Slide 3 text

EXCITEMENT ENTHUSIASM

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

RUBINIUS

Slide 6

Slide 6 text

RBX — RUBY

Slide 7

Slide 7 text

PARSER

Slide 8

Slide 8 text

DYNAMIC LANGUAGE SYSTEM

Slide 9

Slide 9 text

FANCY ATOMY

Slide 10

Slide 10 text

OBJECT MEMORY GC

Slide 11

Slide 11 text

PRECISE GENERATIONAL

Slide 12

Slide 12 text

LLVM

Slide 13

Slide 13 text

INLINE

Slide 14

Slide 14 text

CONCURRENT PARALLEL

Slide 15

Slide 15 text

C-API

Slide 16

Slide 16 text

SMALL SYSTEMS

Slide 17

Slide 17 text

PRIMITIVES

Slide 18

Slide 18 text

class Array def [] Ruby.primitive :array_aref raise PrimitiveFailure, "Array#[] primitive failed" end end

Slide 19

Slide 19 text

class Array : public Object { private: Fixnum* total_; // slot Tuple* tuple_; // slot public: attr_accessor(total, Fixnum); attr_accessor(tuple, Tuple); }

Slide 20

Slide 20 text

class Array : public Object { // Ruby.primitive :array_aref Object* aref(STATE, Fixnum* idx); }

Slide 21

Slide 21 text

COMPILED METHODS

Slide 22

Slide 22 text

TEMPLATE FOR COMPUTATION

Slide 23

Slide 23 text

instruction send_method(literal) [ receiver -- value ] => send flush_ip(); Object* recv = stack_top(); InlineCache* cache = reinterpret_cast(literal); SET_ALLOW_PRIVATE(false); Arguments args(cache->name, recv, Qnil, 0, 0); Object* ret = cache->execute(state, call_frame, args); (void)stack_pop(); CHECK_AND_PUSH(ret); end

Slide 24

Slide 24 text

STACK REGISTER

Slide 25

Slide 25 text

VMMETHOD

Slide 26

Slide 26 text

class OneArgument { public: static bool call(STATE, VMMethod* vmm, StackVariables* scope, Arguments& args) { if(args.total() != 1) return false; scope->set_local(0, args.get_argument(0)); return true; } };

Slide 27

Slide 27 text

Slide 28

Slide 28 text

DEBUG PROFILE MONITOR

Slide 29

Slide 29 text

Slide 30

Slide 30 text

HELP US

Slide 31

Slide 31 text

DYNAMIC LANGUAGE

Slide 32

Slide 32 text

FEAR

Slide 33

Slide 33 text

REFINEMENTS

Slide 34

Slide 34 text

IMPOVERISHED TOOLS

Slide 35

Slide 35 text

INSIGHT

Slide 36

Slide 36 text

in-sight noun the capacity to gain an accurate and deep intuitive understanding of a person or thing

Slide 37

Slide 37 text

LIGHT TABLE CHRIS GRANGER

Slide 38

Slide 38 text

WRITE & RUN CODE

Slide 39

Slide 39 text

COMPILED METHODS DATABASE

Slide 40

Slide 40 text

TYPE PROFILE

Slide 41

Slide 41 text

def plus(a, b) a + b end

Slide 42

Slide 42 text

COVERAGE HEAT MAP

Slide 43

Slide 43 text

FEATURE TOUR

Slide 44

Slide 44 text

INCREMENTAL OPTIMIZATION

Slide 45

Slide 45 text

ARCHITECTURE

Slide 46

Slide 46 text

rbx server client GUI

Slide 47

Slide 47 text

rbx server client GUI rbx server rbx server

Slide 48

Slide 48 text

rbx server client GUI rbx server rbx server GUI

Slide 49

Slide 49 text

EMBER.JS

Slide 50

Slide 50 text

NIKITA

Slide 51

Slide 51 text

DANKJEWEL