Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubinius

 Rubinius

Обзор Rubinius для коллег из Fun-box

Ilya Vassilevsky

April 02, 2013
Tweet

More Decks by Ilya Vassilevsky

Other Decks in Programming

Transcript

  1. Сделать самый лучший интерпретатор Ruby • многопоточный • экономный в

    памяти • быстрый • понятный • по фэн-шую • максимально использовать Ruby = • = привлечь сообщество Цель
  2. История 2006 Попытка выпилить GIL 2007 Engine Yard (50/50) 2008-05

    Поддержка Rails и RubyGems 2008-11 Сократили с 5 до 2 человек 2012-03 Evan Phoenix Brian Ford Dirkjan Bussink
  3. Kernel (core + stdlib) Компилятор Debugger Profiler Remote Agent Виртуальная

    машина • C++ • Real threads • GIL* • Optimistic locks • JIT (LLVM) • GC Структура
  4. Lock around C extension 1 thread = 1 C extension

    FFI All the Things! C extensions
  5. Rubinius vs. MRI Commits 20 340 30 166 Ruby 612

    218 584 118 C 484 435 243 974 C++ 104 081 .h 75 123 42 583 XML 5 835 22 747 Bash 57 586 3 194 Yacc 11 755 8 933 Lisp 2 122
  6. ...beautiful, well documented and easy to understand code. Reading it

    was like walking around a nicely manicured garden… everything was very perfectly organized and carefully arranged like a series of elegant flowerbeds. In comparison, reading the MRI C source code at times felt like trekking through the Brazilian rainforest at night! Pat Shaughnessy о коде Rubinius
  7. Executable specification for Ruby rubyspec.org MSpec • селективное выполнение тестов

    • другая реализация общих контекстов • больше хелперов RubySpec
  8. 1. cd YOUR_PROJECT 2. rvm use rbx --install 3. rm

    Gemfile.lock 4. bundle 5. rake 6. Сообщить обо всех ошибках 1 patch ⇒ commit access Как помочь
  9. Rubini.us JRuby vs. Rubinius First impression of Rubinius internals Contributing

    to Rubinius Rubinius’ Pure-Ruby Internals Rubinius, What's Next? Больше информации