Code Insight: Rubinius 2.0 and Nikita

A8e44ce1b57c2689d5a7172d15df42b5?s=47 brixen
June 07, 2012

Code Insight: Rubinius 2.0 and Nikita

Presented at Euruko12 discussing features of the Rubinius 2.0 virtual machine and Nikita application.

A8e44ce1b57c2689d5a7172d15df42b5?s=128

brixen

June 07, 2012
Tweet

Transcript

  1. RUBINIUS 2.0 AND NIKITA BRIAN FORD @brixen EURUKO12

  2. THANK YOU

  3. EXCITEMENT ENTHUSIASM

  4. None
  5. RUBINIUS

  6. RBX — RUBY

  7. PARSER

  8. DYNAMIC LANGUAGE SYSTEM

  9. FANCY ATOMY

  10. OBJECT MEMORY GC

  11. PRECISE GENERATIONAL

  12. LLVM

  13. INLINE

  14. CONCURRENT PARALLEL

  15. C-API

  16. SMALL SYSTEMS

  17. PRIMITIVES

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

    failed" end end
  19. class Array : public Object { private: Fixnum* total_; //

    slot Tuple* tuple_; // slot public: attr_accessor(total, Fixnum); attr_accessor(tuple, Tuple); }
  20. class Array : public Object { // Ruby.primitive :array_aref Object*

    aref(STATE, Fixnum* idx); }
  21. COMPILED METHODS

  22. TEMPLATE FOR COMPUTATION

  23. instruction send_method(literal) [ receiver -- value ] => send flush_ip();

    Object* recv = stack_top(); InlineCache* cache = reinterpret_cast<InlineCache*>(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
  24. STACK REGISTER

  25. VMMETHOD

  26. 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; } };
  27. <PLAY>

  28. DEBUG PROFILE MONITOR

  29. <PLAY>

  30. HELP US

  31. DYNAMIC LANGUAGE

  32. FEAR

  33. REFINEMENTS

  34. IMPOVERISHED TOOLS

  35. INSIGHT

  36. in-sight noun the capacity to gain an accurate and deep

    intuitive understanding of a person or thing
  37. LIGHT TABLE CHRIS GRANGER

  38. WRITE & RUN CODE

  39. COMPILED METHODS DATABASE

  40. TYPE PROFILE

  41. def plus(a, b) a + b end

  42. COVERAGE HEAT MAP

  43. FEATURE TOUR

  44. INCREMENTAL OPTIMIZATION

  45. ARCHITECTURE

  46. rbx server client GUI

  47. rbx server client GUI rbx server rbx server

  48. rbx server client GUI rbx server rbx server GUI

  49. EMBER.JS

  50. NIKITA

  51. DANKJEWEL