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

Poisoning Rubinius: the _why and how

brixen
November 13, 2010
79

Poisoning Rubinius: the _why and how

RubyConf 2010 talk about Rubinius, Potion and Poison, an interpretation of _why's Potion programming language.

brixen

November 13, 2010
Tweet

Transcript

  1. Toy [noun]: A technological product which is simple and fun

    to use, and which may be criticized by some people as being weak and not suitable for serious work. Monday, November 15, 2010
  2. Source → Parser → Compiler → Virtu script class name

    Exclaimer superclass nil method blurt Abstract Syntax Tree Monday, November 15, 2010
  3. Virtual Machine [ :push_literal, “_why ”, :push_local, :blurb, ...] r

    → Compiler → Virtual Machine Stack IP = 0 Instruction Sequence Monday, November 15, 2010
  4. Virtual Machine [ :push_literal, “_why ”, :push_local, :blurb, ...] r

    → Compiler → Virtual Machine Stack IP = 0 Instruction Sequence “_why ” Monday, November 15, 2010
  5. Virtual Machine [ ..., :push_local, :blurb, :allow_private, :send_st...] r →

    Compiler → Virtual Machine Stack IP = 2 Instruction Sequence “_why ” Monday, November 15, 2010
  6. Virtual Machine [ ..., :push_local, :blurb, :allow_private, :send_st...] r →

    Compiler → Virtual Machine Stack IP = 2 Instruction Sequence “_why ” “rocks” Monday, November 15, 2010
  7. Virtual Machine [ ..., :send_stack, :to_s, 0, :push_literal, “!”, :str...]

    r → Compiler → Virtual Machine Stack IP = 5 Instruction Sequence “_why ” “rocks” Monday, November 15, 2010
  8. Virtual Machine [ ..., :push_literal, “!”, :string_build, 3, :ret] r

    → Compiler → Virtual Machine Stack IP = 8 Instruction Sequence “_why ” “rocks” Monday, November 15, 2010
  9. Virtual Machine [ ..., :push_literal, “!”, :string_build, 3, :ret] r

    → Compiler → Virtual Machine Stack IP = 8 Instruction Sequence “_why ” “rocks” “!” Monday, November 15, 2010
  10. Virtual Machine [ ..., :string_build, 3, :ret] r → Compiler

    → Virtual Machine Stack IP = 10 Instruction Sequence “_why ” “rocks” “!” Monday, November 15, 2010
  11. Virtual Machine [ ..., :string_build, 3, :ret] r → Compiler

    → Virtual Machine Stack IP = 10 Instruction Sequence “_why rocks!” Monday, November 15, 2010