BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Rubinius 2.0、Ruby 2.1を実装

Rubinius 2.0、Ruby 2.1を実装

原文(投稿日:2013/10/05)へのリンク

RubiniusチームがRubinius 2.0のリリースを発表した。最後にバージョン1.2.4(Ruby 1.8.7をサポート)がリリースされてから2年以上経つ。その後、Ruby 1.8は非サポートとなり、Ruby開発者は1.9から2.0へのアップデートを促されている。

Rubinius 2.0は次のRuby 2.1を完全にサポートする予定だ。そのリリース文によると、

2.0リリースで、Rubiniusは再びRubyの将来に焦点を合わせます。Rubinius 2.0はRuby 2.1との互換性を保つ予定です。MRIの2.1はまだリリースされていませんが、機能が完成するのに合わせて、Rubiniusは互換性を改善していきます。

今後、Rubiniusのリリースサイクルは大きく加速され、毎週新しいバージョンがリリースされる予定だ。

できるだけ迅速にアップデートをお届けするため、私たちはこのリリースプロセスに移行します。どんなにやるべきことがあろうとも、これで終わりということはありません。私たちはまだリリース準備ができていないように見えるかもしれません。きちんとリリースするのは苦痛です。そこで、私たちは次のアドバイスに従うことにします。「苦痛なことがあっても、苦痛を軽減するよう前に押し出そう」私たちのRuby 2.1互換性にはバグがあるでしょう。 [..]

目標は、Rubiniusコアにバージョン3.0からSemantic Versioningを付けることです。2.xから3.0までの期間、破壊的変更には細心の注意を払いますが、メリットがリスクを上回るときにはそれを取り込みます。

Rubinius 2.0では、マルチスレッドのサポートが大きく改善されている。Rubiniusはコンパイラが生成したバイトコードを実行するために仮想マシンを組み込んでおり、さらにそれを高速化するためにJITコンパイラも実装している(今のところは2-4倍の高速化だが、さらに加速する予定だ)。RubiniusはGIL (global interpreter lock) による制約がなく、ネイティブスレッドを実装しているため、Rubyコードは複数のコアとCPUを利用することができる。これはガベージコレクタにも恩恵があり、実行しているコードを部分的に並列に動かせる。RubiniusのBrian Shirai氏はこれに関して、Jesse Storimer氏によるインタビューで詳しく述べている。

この新しいリリースについて、InfoQはBrian氏と話す機会を得た。

InfoQ: Rubinius 2.0はまだ完成していないRuby 2.1との互換性を約束しています。Ruby 2.1のうちすでに実装されているのは何ですか?

私たちは2.1リリースに向けたMRIの開発を追いかけています。MRIチームは繰り返し、2.0と2.1の後方互換性を約束しています。私たちは大量の2.0 specをパスしています。これは基本的に、2.0の挙動は1.9からそれほど分かれいないことを意味しますが、挙動が変わっているものもたくさんあります。

要するに、私たちは2.1がリリースされたときに、できる限り2.1をサポートするつもりだということです。その間、あるいは深刻な競合がある場合には、2.1がリリースされるまで2.0の挙動を続けることになるでしょう。

InfoQ: Rubinius 2.0はWindowsをサポートしますか?

もちろん、Windowsサポートは私たちの要求リストにありますが、貧しいリソースをそれに割くほど切望されているのか、確認する必要があります。

InfoQ: 既存のアプリケーションやフレームワークはRubiniusでうまく動きますか? たとえば、Rails 4はRubiniusで動きますか? 

ご存じのように、Rails 4はRuby 2.0が望ましいと言っています。私たちはRails 4がRubiniusで動くことを期待しています。もし動かなければ、Rubiniusのバグでしょう(Railsにバグがあるかもしれませんが)。

Rubinius 2.0はrubini.usからダウンロードできる。使ってみてどうだったか、是非聞かせてほしい。

この記事に星をつける

おすすめ度
スタイル

BT