ってことだったのか!(おそらく)
というのも、以前、Rubinius GemstoneのOODBがJRubyとRubiniusをサポート を読んだとき、JRuby と Rubinius があるのになんで Matz Ruby や YARV への言及がないんだろうと疑問に思って、くしくも Matz にっきにも関連して、
Gemstoneといえば昔一世を風靡したOODBMS。これがJRubyやRubiniusから使えるようになる、という話。私はその頃ObjectStoreを使ってたけど。
待て。JavaとのコネクションでなんでもできるJRubyは分かるが Rubiniusが出てて、なんで本家Rubyが対象にならないのか。不思議。
http://www.rubyist.net/~matz/20070807.html#p06
といった指摘があったのを見ても、(“昔一世を…”とか、例によって Smalltalk 関連のものを“過去のもの”であるかのようにことさらに書かんでよろしい!とか軽くムカツキつつもw)たしかにそのとおりだと自分も似たよう印象を持った記憶があるのですが、最近、MagLev についてひととおり調べてから id:ogijun の はてなブックマーク - Giles Bowkett: JRuby and Rubinius Under Gemstone のタイトルを見たとき(本文は読んでいないw)、はたと気がついてようやく謎が解けました。
そう。ここで大切なのは、JRuby や Rubinius において、その Ruby 処理系が Java や Ruby で 書かれていることなんだな、と。
つまり、GemStone は自社の OODB を使える独自拡張の Java VM を持っているので Java で書かれた JRuby は問題なし。Rubinius のほうはちょっとやっかいだけれども、当時としては Rubinius/Shotgun VM を GemStone OODB 向けに拡張することで似たようなことができる、というわけ。今は GemStone Smalltalk VM を Ruby 向けに拡張した MagLev があるので、Rubinius の Ruby で書かれた Ruby 処理系の部分を MagLev Ruby VM 向けに改変してしまえば問題なし。
だから、C で書かれた Matz Ruby や YARV は蚊帳の外となっているのはそういう意味だったわけですね。と、納得できたしだい。