ついにアルファ版が公開されたようです。
GemStone/S64(組み込みの OODB 機能を持つ GemStone 社製 Smalltalk 処理系。MagLev と呼ばれる Ruby 処理系のベースになっている…)が 64bit OS でしか動かないということなので、新しく VMware イメージをこしらえてみました(Debian lenny を使用)。なかなか動かせず難儀していたのですが、単純に割り当てメモリをケチっていたためのメモリ不足だったようで、増やしてやったらすんなり動作しました。
とりあえず動かせるようにはなったので、目玉の永続化機能とかは華麗にスルーして、さっそく恒例のフィボナッチで対決。
$ cat fib.rb class Integer def fib return self if self < 2 (self-2).fib + (self-1).fib end end n = ARGV[0].to_i start = Time.now res = n.fib puts res, (Time.now - start).to_s + " sec"
単純な再帰なので Smalltalk VM ベースの MagLev は強いです。
$ maglev start startnetldi[Info]: Starting GemStone network server "gs64ldi". startnetldi[Info]: GemStone server 'gs64ldi' has been started. startstone[Info]: Starting Stone repository monitor "maglev". startstone[Info]: GemStone server 'maglev' has been started. $ maglev-ruby -v fib.rb 39 maglev 0.6 (ruby 1.8.6) (2009-11-20 rev 22578-1067) [x86_64-linux] 63245986 6.317193 sec
$ ruby -v fib.rb 39 ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux] 63245986 208.395008 sec
$ ruby1.9 -v fib.rb 39 ruby 1.9.1p243 (2009-07-16 revision 24175) [x86_64-linux] 63245986 19.335945162 sec