More Related Content Similar to Poisoning Rubinius: The _why and How (20) Poisoning Rubinius: The _why and How18. 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
21. what if you knew
nothing
about programming?
Monday, November 15, 2010
45. Source → Parser → Compiler → Virtu
script
class
name
Exclaimer
superclass
nil
method
blurt
Abstract Syntax Tree
Monday, November 15, 2010
48. Virtual Machine
[ :push_literal, “_why ”, :push_local, :blurb, ...]
r → Compiler → Virtual Machine
Stack
IP = 0
Instruction Sequence
Monday, November 15, 2010
49. Virtual Machine
[ :push_literal, “_why ”, :push_local, :blurb, ...]
r → Compiler → Virtual Machine
Stack
IP = 0
Instruction Sequence
“_why ”
Monday, November 15, 2010
50. Virtual Machine
[ ..., :push_local, :blurb, :allow_private, :send_st...]
r → Compiler → Virtual Machine
Stack
IP = 2
Instruction Sequence
“_why ”
Monday, November 15, 2010
51. Virtual Machine
[ ..., :push_local, :blurb, :allow_private, :send_st...]
r → Compiler → Virtual Machine
Stack
IP = 2
Instruction Sequence
“_why ”
“rocks”
Monday, November 15, 2010
52. 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
53. Virtual Machine
[ ..., :push_literal, “!”, :string_build, 3, :ret]
r → Compiler → Virtual Machine
Stack
IP = 8
Instruction Sequence
“_why ”
“rocks”
Monday, November 15, 2010
54. Virtual Machine
[ ..., :push_literal, “!”, :string_build, 3, :ret]
r → Compiler → Virtual Machine
Stack
IP = 8
Instruction Sequence
“_why ”
“rocks”
“!”
Monday, November 15, 2010
55. Virtual Machine
[ ..., :string_build, 3, :ret]
r → Compiler → Virtual Machine
Stack
IP = 10
Instruction Sequence
“_why ”
“rocks”
“!”
Monday, November 15, 2010
56. Virtual Machine
[ ..., :string_build, 3, :ret]
r → Compiler → Virtual Machine
Stack
IP = 10
Instruction Sequence
“_why rocks!”
Monday, November 15, 2010