rubyconf 2007 - Rubinius 1.0

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    5 Favorites

    rubyconf 2007 - Rubinius 1.0 - Presentation Transcript

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

    + evanphxevanphx, 3 years ago

    custom

    3889 views, 5 favs, 1 embeds more stats

    The Rubinius 1.0 presented at RubyConf 2007

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3889
      • 3888 on SlideShare
      • 1 from embeds
    • Comments 0
    • Favorites 5
    • Downloads 85
    Most viewed embeds
    • 1 views on http://ig.gmodules.com

    more

    All embeds
    • 1 views on http://ig.gmodules.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories