• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
rubyconf 2007 - Rubinius 1.0
 

rubyconf 2007 - Rubinius 1.0

on

  • 7,294 views

The Rubinius 1.0 presented at RubyConf 2007

The Rubinius 1.0 presented at RubyConf 2007

Statistics

Views

Total Views
7,294
Views on SlideShare
7,292
Embed Views
2

Actions

Likes
4
Downloads
90
Comments
0

2 Embeds 2

http://ig.gmodules.com 1
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    rubyconf 2007 - Rubinius 1.0 rubyconf 2007 - Rubinius 1.0 Presentation Transcript

    • Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • Last things first, first things last. What is the endgame? In a word.. Evan Phoenix - RubyConf 2007
    • Total Evan Phoenix - RubyConf 2007
    • Total world Evan Phoenix - RubyConf 2007
    • Total world domination Evan Phoenix - RubyConf 2007
    • For Ruby! Evan Phoenix - RubyConf 2007
    • 375 days ago... In a galaxy far far away... (aka Denver) Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • The end of Sydney The beginning of Rubinius Evan Phoenix - RubyConf 2007
    • Enormous progress Evan Phoenix - RubyConf 2007
    • class Rubinius < Smalltalk # form include Ruby::Syntax # function include Ruby::Behavior # elbow grease include Google.search(“crazy cs papers”) end Evan Phoenix - RubyConf 2007
    • CS Nerd Attack Mode! (blitznerdo) Evan Phoenix - RubyConf 2007
    • Generational Garbage Collection! (with heap compaction) Evan Phoenix - RubyConf 2007
    • Bytecode execution! Evan Phoenix - RubyConf 2007
    • Stackless! (uses no C stack) Evan Phoenix - RubyConf 2007
    • Self-hosted kernel and compiler! Evan Phoenix - RubyConf 2007
    • Pre-compiled files! (.rbc) Evan Phoenix - RubyConf 2007
    • Builtin packaging! (.rba == .jar) Evan Phoenix - RubyConf 2007
    • Oh my! Evan Phoenix - RubyConf 2007
    • Audience Participation Evan Phoenix - RubyConf 2007
    • Runtime and Kernel Evan Phoenix - RubyConf 2007
    • kernel noun a softer, usually edible part of a nut, seed, or fruit stone contained within its hard shell. • the seed and hard husk of a cereal, esp. wheat. • [in sing. ] the central or most important part of something : this is the kernel of the argument. • the most basic level or core of an operating system of a computer, responsible for resource allocation, file management, and security. • [as adj. ] Linguistics denoting a basic unmarked linguistic string. Evan Phoenix - RubyConf 2007
    • 1.8 Evan Phoenix - RubyConf 2007
    • 84,516 lines of C 0 lines of Ruby Evan Phoenix - RubyConf 2007
    • 1.9 Evan Phoenix - RubyConf 2007
    • 128,786 lines of C 0 lines of Ruby Evan Phoenix - RubyConf 2007
    • IronRuby (pre-alpha1) Evan Phoenix - RubyConf 2007
    • 48,282 lines of .cs 0 lines of Ruby Evan Phoenix - RubyConf 2007
    • JRuby 1.0.2 Evan Phoenix - RubyConf 2007
    • 114,507 lines of .java 0 lines of Ruby Evan Phoenix - RubyConf 2007
    • Rubinius Evan Phoenix - RubyConf 2007
    • 25,398 lines of C 13,946 lines of Ruby Evan Phoenix - RubyConf 2007
    • NOT Ruby Ruby 150,000 125,000 100,000 75,000 50,000 25,000 0 1.8 1.9 ironruby jruby rubinius Evan Phoenix - RubyConf 2007
    • Junior High Analysis Evan Phoenix - RubyConf 2007
    • 1.8 and 1.9 Ruby for C programmers Evan Phoenix - RubyConf 2007
    • JRuby Ruby for Java programmers Evan Phoenix - RubyConf 2007
    • IronRuby Ruby for C# programmers Evan Phoenix - RubyConf 2007
    • Rubinius Ruby for Ruby programmers Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • Eating your own dog food == Feedback loop Evan Phoenix - RubyConf 2007
    • Optimized Rubinius kernel / VM == Optimization for all Ruby code Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • You’re a Ruby developer, I’m a Ruby developer Evan Phoenix - RubyConf 2007
    • Of the rubists, by the rubists, for the rubists Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • Road, rubber, all that jazz. Evan Phoenix - RubyConf 2007
    • Faster in 24 of 31 tests (yarv micro benchmarks against 1.8) Evan Phoenix - RubyConf 2007
    • Moving quickly Evan Phoenix - RubyConf 2007
    • so why isn’t it done? Evan Phoenix - RubyConf 2007
    • Architecture/design is quite important Evan Phoenix - RubyConf 2007
    • but hard to create in a vacuum Evan Phoenix - RubyConf 2007
    • Mistakes were made. Evan Phoenix - RubyConf 2007
    • “Practice makes perfect” -- Ryan Davis (RubyConf 2007) Evan Phoenix - RubyConf 2007
    • “A person who never made a mistake never tried anything new” -- Albert Einstein “You will do foolish things, but do this with enthusiasm” -- Collete Evan Phoenix - RubyConf 2007
    • -Ofun Evan Phoenix - RubyConf 2007
    • Rarely a burden, always a treat. Evan Phoenix - RubyConf 2007
    • Community Evan Phoenix - RubyConf 2007
    • 57 committers 17 with 20 or more commits 36 with 100+ lines changed Evan Phoenix - RubyConf 2007
    • Weekend patchers & Code junkies alike Evan Phoenix - RubyConf 2007
    • Free flowing commit bit Evan Phoenix - RubyConf 2007
    • Marcus Crafter Pat Eyler David Waite Shane Becker Evan Phoenix - RubyConf 2007
    • Eric Hodel Adam Gardiner Brian Ford Kevin Clark Evan Phoenix - RubyConf 2007
    • Wilson Bilkovich Ryan Davis Yehuda Katz Evan Phoenix - RubyConf 2007
    • Abigail Phoenix John Hornbeck (official wife) Fog (official mascot) Eero Saynatkari Evan Phoenix - RubyConf 2007
    • Thanks EY! Evan Phoenix - RubyConf 2007
    • Evan Phoenix <evan@fallingsnow.net> Evan Phoenix - RubyConf 2007
    • Evan Phoenix - RubyConf 2007
    • Backtraces! An exception has occurred: User requested termination with Control-C (Interrupt) Backtrace: Readline.readline at kernel/core/readline.rb:52 main.__script__ at lib/bin/sirb.rb:78 main.load at kernel/core/compile.rb:78 main.require at kernel/core/compile.rb:129 Array#each at kernel/core/array.rb:526 Integer(Fixnum)#times at kernel/core/integer.rb:19 Array#each at kernel/core/array.rb:526 main.require at kernel/core/compile.rb:112 Array#each at kernel/core/array.rb:526 Integer(Fixnum)#times at kernel/core/integer.rb:19 Array#each at kernel/core/array.rb:526 main.require at kernel/core/compile.rb:111 main.__script__ at kernel/loader.rb:159 Evan Phoenix - RubyConf 2007
    • C extensions can misbehave Evan Phoenix - RubyConf 2007
    • VALUE test_segfault(VALUE self) { // Get a pointer to address 4. char *i = (char*)4; // Attempt to read from address 4 // which is definitely not allowed. x = *i; // Never get this far. return Qnil; } Raises an exception! Segfault detected in function 0x90a00 (accessing 0x4) (MemorySegmentionError) SomeExtension#test_segfault at extensions/test/test.c main.__script__ at extensions/test/test.rb:38 main.load at kernel/core/compile.rb:95 main.__script__ at kernel/loader.rb:122 Evan Phoenix - RubyConf 2007
    • Time lost to segfaults 1.8 rubinius 200 200 150 100 70 50 30 10 6 2 1 3 5 Evan Phoenix - RubyConf 2007
    • Memory usage Evan Phoenix - RubyConf 2007
    • • 1.8 garbage collector is simple, but too simple. • Rubinius uses modern techniques to decrease memory usage and increase throughput Evan Phoenix - RubyConf 2007
    • Fork you! Evan Phoenix - RubyConf 2007
    • In 1.8... • Start up a program. • Require all your code. • fork() the process. • Watch your memory double. Evan Phoenix - RubyConf 2007
    • In Rubinius... • Start up a program. • Require all your code. • fork() the process. • Watch (virtually) NO change in the memory footprint! Evan Phoenix - RubyConf 2007
    • Memory change per additional instance 1 2 3 4 1.8 rubinius Evan Phoenix - RubyConf 2007
    • Thank You! Evan Phoenix - RubyConf 2007