SlideShare ist ein Scribd-Unternehmen logo
1 von 68
Downloaden Sie, um offline zu lesen
RCUY2010

                           Everything Rubinius

                                   Brian Ford
                            brixen on {twitter IRC gmail}



Friday, October 29, 2010
http://www.flickr.com/photos/veganstraightedge


Friday, October 29, 2010
Friday, October 29, 2010
Rubinius runs Ruby




Friday, October 29, 2010
Web
                           rubini.us

              Github
                           github.com/evanphx/rubinius

              IRC
                           #rubinius


Friday, October 29, 2010
in dog years,

                           Rubinius is ~28 yrs old




Friday, October 29, 2010
Rubinius

                           how does it work?




Friday, October 29, 2010
Source → Parser → Compil




Friday, October 29, 2010
Source → Parser → Compiler → Virtu




Friday, October 29, 2010
Source → Parser → Compiler → Virtu


                                   script



                                    class


                           name     superclass   method

                           RCUY       nil        name



Friday, October 29, 2010
Source → Parser → Compiler → Virtual Machin




Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                         Stack




                           IP = 12

          [ ..., :push_literal, “RCUY”, :push_local, :name, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                         Stack
                                         “RCUY”




                           IP = 12

          [ ..., :push_literal, “RCUY”, :push_local, :name, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                         Stack
                                         “RCUY”




                                         IP = 14

          [ ..., :push_literal, “RCUY”, :push_local, :name, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                         Stack
                                         “RCUY”

                                          2010




                                         IP = 14

          [ ..., :push_literal, “RCUY”, :push_local, :name, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                          Stack
                                          “RCUY”

                                              2010




                                    IP = 17

          [ ..., :allow_private, :send_stack, :to_s, 0, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                          Stack
                                          “RCUY”

                                          “2010”




                                    IP = 17

          [ ..., :allow_private, :send_stack, :to_s, 0, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                           Stack
                                           “RCUY”

                                           “2010”




                                            IP = 20

          [ ..., :send_stack, :to_s, 0, :string_build, 2, ...]

           Instruction Sequence

Friday, October 29, 2010
r → Compiler → Virtual Machine → JIT → Gar

                                           Stack
                                          “RCUY2010”




                                             IP = 20

          [ ..., :send_stack, :to_s, 0, :string_build, 2, ...]

           Instruction Sequence

Friday, October 29, 2010
→ Virtual Machine → JIT → Garbage Collector




Friday, October 29, 2010
→ Virtual Machine → JIT → Garbage Collector




Friday, October 29, 2010
→ Virtual Machine → JIT → Garbage Collector




Friday, October 29, 2010
chine → JIT → Garbage Collector




Friday, October 29, 2010
chine → JIT → Garbage Collector


                           script
                                          year
                                      #<Time 0x2>


                                  name
                               “RCUY2010”



                                     conference
                                    #<RCUY 0x1>




Friday, October 29, 2010
chine → JIT → Garbage Collector

                                                    script
                           script
                                          year
                                      #<Time 0x2>


                                  name
                               “RCUY2010”



                                     conference
                                    #<RCUY 0x1>




Friday, October 29, 2010
chine → JIT → Garbage Collector

                                                    script   name
                           script
                                          year
                                      #<Time 0x2>


                                  name
                               “RCUY2010”



                                     conference
                                    #<RCUY 0x1>




Friday, October 29, 2010
chine → JIT → Garbage Collector

                           script   name conference




Friday, October 29, 2010
it’s not working




Friday, October 29, 2010
Backtraces




Friday, October 29, 2010
Backtraces




Friday, October 29, 2010
Debugger




Friday, October 29, 2010
Debugger




Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Profiler




Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Issue Tracker




Friday, October 29, 2010
Issue Tracker




Friday, October 29, 2010
Documentation




Friday, October 29, 2010
Documentation




Friday, October 29, 2010
But wait, there’s more...

                           coming soon




Friday, October 29, 2010
full Ruby concurrency




Friday, October 29, 2010
support for 1.9




Friday, October 29, 2010
speeeeeed




Friday, October 29, 2010
Microsoft®   Windows™




Friday, October 29, 2010
Muchísimas gracias a

                           Luis Lavena




Friday, October 29, 2010
But wait, there’s more...




Friday, October 29, 2010
let’s talk about


                           inspiration



Friday, October 29, 2010
Friday, October 29, 2010
Rubinius has inspired

                                rubyspec
                                   FFI
                                  rapa


Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
Friday, October 29, 2010
if you help us,
                           Rubinius can be the
                           most awesome Ruby
                             platform in the
                                 universe


Friday, October 29, 2010
who will commit to
                            using Rubinius as
                           the default Ruby for
                                one day?



Friday, October 29, 2010
Thank you

          ¡Muchas gracias a todos!


Friday, October 29, 2010

Weitere ähnliche Inhalte

Andere mochten auch

Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard
 
Engine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard
 
Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Engine Yard
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to RubyEngine Yard
 
Rails Hosting and the Woes
Rails Hosting and the WoesRails Hosting and the Woes
Rails Hosting and the WoesEngine Yard
 
St Charles ©Tytel Mkt
St Charles ©Tytel MktSt Charles ©Tytel Mkt
St Charles ©Tytel Mktjtytel
 

Andere mochten auch (6)

Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard Partner Program 2014
Engine Yard Partner Program 2014
 
Engine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture Enhancements
 
Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
Rails Hosting and the Woes
Rails Hosting and the WoesRails Hosting and the Woes
Rails Hosting and the Woes
 
St Charles ©Tytel Mkt
St Charles ©Tytel MktSt Charles ©Tytel Mkt
St Charles ©Tytel Mkt
 

Ähnlich wie Everything Rubinius

RubyConf UY 2010
RubyConf UY 2010RubyConf UY 2010
RubyConf UY 2010Brian Ford
 
Concurrency
ConcurrencyConcurrency
Concurrencyehuard
 
2010 08-19-30 minutes of python
2010 08-19-30 minutes of python2010 08-19-30 minutes of python
2010 08-19-30 minutes of pythonKang-Min Wang
 
Compiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitCompiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitSencha
 
Derailed chef update-oct2010
Derailed chef update-oct2010Derailed chef update-oct2010
Derailed chef update-oct2010jtimberman
 
Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profilingbergel
 
Concurrency
ConcurrencyConcurrency
Concurrencyehuard
 
Presentation to wdim_students
Presentation to wdim_studentsPresentation to wdim_students
Presentation to wdim_studentsScott Motte
 
Hacking for Fun
Hacking for FunHacking for Fun
Hacking for Funamerine
 

Ähnlich wie Everything Rubinius (10)

RubyConf UY 2010
RubyConf UY 2010RubyConf UY 2010
RubyConf UY 2010
 
Concurrency
ConcurrencyConcurrency
Concurrency
 
2010 08-19-30 minutes of python
2010 08-19-30 minutes of python2010 08-19-30 minutes of python
2010 08-19-30 minutes of python
 
Compiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitCompiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKit
 
Derailed chef update-oct2010
Derailed chef update-oct2010Derailed chef update-oct2010
Derailed chef update-oct2010
 
Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profiling
 
OpenStack SDForum
OpenStack SDForumOpenStack SDForum
OpenStack SDForum
 
Concurrency
ConcurrencyConcurrency
Concurrency
 
Presentation to wdim_students
Presentation to wdim_studentsPresentation to wdim_students
Presentation to wdim_students
 
Hacking for Fun
Hacking for FunHacking for Fun
Hacking for Fun
 

Mehr von Engine Yard

6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Simplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentSimplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentEngine Yard
 
The Tao of Documentation
The Tao of DocumentationThe Tao of Documentation
The Tao of DocumentationEngine Yard
 
Innovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceInnovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceEngine Yard
 
High Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedHigh Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedEngine Yard
 
Release Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionRelease Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionEngine Yard
 
JRuby Jam Session
JRuby Jam Session JRuby Jam Session
JRuby Jam Session Engine Yard
 
Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Engine Yard
 
JRuby: Apples and Oranges
JRuby: Apples and OrangesJRuby: Apples and Oranges
JRuby: Apples and OrangesEngine Yard
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a LanguageEngine Yard
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby SystemsEngine Yard
 

Mehr von Engine Yard (12)

6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Simplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentSimplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS Environment
 
The Tao of Documentation
The Tao of DocumentationThe Tao of Documentation
The Tao of Documentation
 
Innovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceInnovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a Service
 
High Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedHigh Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. Threaded
 
Release Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionRelease Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment Friction
 
JRuby Jam Session
JRuby Jam Session JRuby Jam Session
JRuby Jam Session
 
Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel
 
JRuby: Apples and Oranges
JRuby: Apples and OrangesJRuby: Apples and Oranges
JRuby: Apples and Oranges
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a Language
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby Systems
 
Geemus
GeemusGeemus
Geemus
 

Everything Rubinius