Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

rubyconf 2007 - Rubinius 1.0

5,564 views

Published on

The Rubinius 1.0 presented at RubyConf 2007

Published in: Technology, Education
  • Finally found a service provider which actually supplies an essay with an engaging introduction leading to the main body of the exposition Here is the site ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/39pMlLF ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

rubyconf 2007 - Rubinius 1.0

  1. 1. Evan Phoenix - RubyConf 2007
  2. 2. Evan Phoenix - RubyConf 2007
  3. 3. Last things first, first things last. What is the endgame? In a word.. Evan Phoenix - RubyConf 2007
  4. 4. Total Evan Phoenix - RubyConf 2007
  5. 5. Total world Evan Phoenix - RubyConf 2007
  6. 6. Total world domination Evan Phoenix - RubyConf 2007
  7. 7. For Ruby! Evan Phoenix - RubyConf 2007
  8. 8. 375 days ago... In a galaxy far far away... (aka Denver) Evan Phoenix - RubyConf 2007
  9. 9. Evan Phoenix - RubyConf 2007
  10. 10. Evan Phoenix - RubyConf 2007
  11. 11. The end of Sydney The beginning of Rubinius Evan Phoenix - RubyConf 2007
  12. 12. Enormous progress Evan Phoenix - RubyConf 2007
  13. 13. class Rubinius < Smalltalk # form include Ruby::Syntax # function include Ruby::Behavior # elbow grease include Google.search(“crazy cs papers”) end Evan Phoenix - RubyConf 2007
  14. 14. CS Nerd Attack Mode! (blitznerdo) Evan Phoenix - RubyConf 2007
  15. 15. Generational Garbage Collection! (with heap compaction) Evan Phoenix - RubyConf 2007
  16. 16. Bytecode execution! Evan Phoenix - RubyConf 2007
  17. 17. Stackless! (uses no C stack) Evan Phoenix - RubyConf 2007
  18. 18. Self-hosted kernel and compiler! Evan Phoenix - RubyConf 2007
  19. 19. Pre-compiled files! (.rbc) Evan Phoenix - RubyConf 2007
  20. 20. Builtin packaging! (.rba == .jar) Evan Phoenix - RubyConf 2007
  21. 21. Oh my! Evan Phoenix - RubyConf 2007
  22. 22. Audience Participation Evan Phoenix - RubyConf 2007
  23. 23. Runtime and Kernel Evan Phoenix - RubyConf 2007
  24. 24. 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
  25. 25. 1.8 Evan Phoenix - RubyConf 2007
  26. 26. 84,516 lines of C 0 lines of Ruby Evan Phoenix - RubyConf 2007
  27. 27. 1.9 Evan Phoenix - RubyConf 2007
  28. 28. 128,786 lines of C 0 lines of Ruby Evan Phoenix - RubyConf 2007
  29. 29. IronRuby (pre-alpha1) Evan Phoenix - RubyConf 2007
  30. 30. 48,282 lines of .cs 0 lines of Ruby Evan Phoenix - RubyConf 2007
  31. 31. JRuby 1.0.2 Evan Phoenix - RubyConf 2007
  32. 32. 114,507 lines of .java 0 lines of Ruby Evan Phoenix - RubyConf 2007
  33. 33. Rubinius Evan Phoenix - RubyConf 2007
  34. 34. 25,398 lines of C 13,946 lines of Ruby Evan Phoenix - RubyConf 2007
  35. 35. 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
  36. 36. Junior High Analysis Evan Phoenix - RubyConf 2007
  37. 37. 1.8 and 1.9 Ruby for C programmers Evan Phoenix - RubyConf 2007
  38. 38. JRuby Ruby for Java programmers Evan Phoenix - RubyConf 2007
  39. 39. IronRuby Ruby for C# programmers Evan Phoenix - RubyConf 2007
  40. 40. Rubinius Ruby for Ruby programmers Evan Phoenix - RubyConf 2007
  41. 41. Evan Phoenix - RubyConf 2007
  42. 42. Eating your own dog food == Feedback loop Evan Phoenix - RubyConf 2007
  43. 43. Optimized Rubinius kernel / VM == Optimization for all Ruby code Evan Phoenix - RubyConf 2007
  44. 44. Evan Phoenix - RubyConf 2007
  45. 45. You’re a Ruby developer, I’m a Ruby developer Evan Phoenix - RubyConf 2007
  46. 46. Of the rubists, by the rubists, for the rubists Evan Phoenix - RubyConf 2007
  47. 47. Evan Phoenix - RubyConf 2007
  48. 48. Road, rubber, all that jazz. Evan Phoenix - RubyConf 2007
  49. 49. Faster in 24 of 31 tests (yarv micro benchmarks against 1.8) Evan Phoenix - RubyConf 2007
  50. 50. Moving quickly Evan Phoenix - RubyConf 2007
  51. 51. so why isn’t it done? Evan Phoenix - RubyConf 2007
  52. 52. Architecture/design is quite important Evan Phoenix - RubyConf 2007
  53. 53. but hard to create in a vacuum Evan Phoenix - RubyConf 2007
  54. 54. Mistakes were made. Evan Phoenix - RubyConf 2007
  55. 55. “Practice makes perfect” -- Ryan Davis (RubyConf 2007) Evan Phoenix - RubyConf 2007
  56. 56. “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
  57. 57. -Ofun Evan Phoenix - RubyConf 2007
  58. 58. Rarely a burden, always a treat. Evan Phoenix - RubyConf 2007
  59. 59. Community Evan Phoenix - RubyConf 2007
  60. 60. 57 committers 17 with 20 or more commits 36 with 100+ lines changed Evan Phoenix - RubyConf 2007
  61. 61. Weekend patchers & Code junkies alike Evan Phoenix - RubyConf 2007
  62. 62. Free flowing commit bit Evan Phoenix - RubyConf 2007
  63. 63. Marcus Crafter Pat Eyler David Waite Shane Becker Evan Phoenix - RubyConf 2007
  64. 64. Eric Hodel Adam Gardiner Brian Ford Kevin Clark Evan Phoenix - RubyConf 2007
  65. 65. Wilson Bilkovich Ryan Davis Yehuda Katz Evan Phoenix - RubyConf 2007
  66. 66. Abigail Phoenix John Hornbeck (official wife) Fog (official mascot) Eero Saynatkari Evan Phoenix - RubyConf 2007
  67. 67. Thanks EY! Evan Phoenix - RubyConf 2007
  68. 68. Evan Phoenix <evan@fallingsnow.net> Evan Phoenix - RubyConf 2007
  69. 69. Evan Phoenix - RubyConf 2007
  70. 70. 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
  71. 71. C extensions can misbehave Evan Phoenix - RubyConf 2007
  72. 72. 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
  73. 73. Time lost to segfaults 1.8 rubinius 200 200 150 100 70 50 30 10 6 2 1 3 5 Evan Phoenix - RubyConf 2007
  74. 74. Memory usage Evan Phoenix - RubyConf 2007
  75. 75. • 1.8 garbage collector is simple, but too simple. • Rubinius uses modern techniques to decrease memory usage and increase throughput Evan Phoenix - RubyConf 2007
  76. 76. Fork you! Evan Phoenix - RubyConf 2007
  77. 77. In 1.8... • Start up a program. • Require all your code. • fork() the process. • Watch your memory double. Evan Phoenix - RubyConf 2007
  78. 78. 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
  79. 79. Memory change per additional instance 1 2 3 4 1.8 rubinius Evan Phoenix - RubyConf 2007
  80. 80. Thank You! Evan Phoenix - RubyConf 2007

×