

今のところはまだ C 言語で書かれている Rubinius VM ですが（将来的には、Squeak Smalltalk の VM と似たような感じで、C 言語に直訳可能な Ruby のサブセットにより書き換えられる予定とか）、すでに Smalltalk ばりの面白い機能をいろいろと備えています。

たとえば、Smalltalk では thisContext という第六の擬変数により実行中のコンテキスト（いうまでもなく、Smalltalk ではこんなものもオブジェクト…）を得ることが可能ですが、Rubinius でも MethodContext.current という式で同じ情報にアクセスできます。





Squeak Smalltalk thisContext class thisContext method class

Squeak Smalltalk 版 Object >> inc | sender varIdx | sender := thisContext sender. varIdx := (sender method at: sender pc - 2 ) \\ 16 + 1 . ^sender tempAt: varIdx put: (sender tempAt: varIdx) + 1 | a | a := 4 . a inc. ^a