BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Ruby エンタープライズエディション,新リリースより Ruby 1.8.7 へ移行

Ruby エンタープライズエディション,新リリースより Ruby 1.8.7 へ移行

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

Phusion社が Ruby エンタープライズエディションの新バージョン 1.8.7-20090928 をリリースした。過去のリリースではすべて Ruby 1.8.6 をベースとしていたが,今回は新たに Ruby 1.8.7 をオリジナルとして採用している。 Ruby 1.8.7 が公開されてからかなりの期間がたっているのに,今なぜ切り替えるのだろうか? Phusion はこの問いに対して,リリース発表で次のように述べている。

私たちは当初,1.8.7 に変更しようと思っていませんでした。1.8.7 で導入された数々の非互換性に関する問題は,たくさんの人々が指摘するところです。他の Ruby 実装者たちが 1.8.7 をボイコットしていることも知っていました。しかし今,その流れが変わったのです。Rail 3.0 は 1.8.7 より前の Ruby バージョンのサポートを終了する予定ですし,JRuby も最近になって 1.8.7 のサポートを決定しました。また OS X Snow Leopard や Linux の各種ディストリビューションも 1.8.7 を搭載します。私たちのもとにも,コミュニティから 1.8.7 ベースのバージョンへの要求がたくさん寄せられました。

今回のリリースに関する他のニュースとしては,Brent Roman 氏の MBARI パッチの統合によるパフォーマンス向上とメモリ使用量の軽減がある。またマルチスレッド時の処理速度を向上する Joe Damato,Aman Gupta 両氏によるパッチが,選択可能な実験的機能の位置付けで搭載されている。

これらのパッチがもたらす改善は,どの程度のものだろうか? 今回の Ruby エンタープライズエディションリリースは Twitter においてテストされているが,Evan Weaver 氏のレポートにもあるようにスループットの面でかなりの改善が確認されている。Evan はまた "Ruby は -O2 あるいは -O3 (速度に関する最適化) よりも -Os (サイズに関する最適化) でコンパイルした方が速度が向上する。" と報告している。"[Phusion の] Hongli の指摘によれば,Ruby は実行局所性に乏しいため,インストラクションキャッシュに格納できるサイズに縮小することが最も効果的なのだ。"

InfoQ では Ruby エンタープライズエディション開発チームに対して,新バージョンへのアップグレードによる問題点があるか確認した。Phusion の Ninh Bui 氏がこれに答えてくれた。

そうですね,1.8.6 と 1.8.7 の互換性の問題を別とすれば,tcmalloc – 私たちが使っているメモリアロケータです – がまだ,snow leopard では動作していないようです。

Ninh の同僚である Hongli Lai 氏は次のように述べている。

Xen サポートに関していくつか問題があります。REE を Xen 上で動作させたときに,いくつかの警告メッセージ(無害なものですが)が表示されています。将来のリリースでは,Xen 専用のコンパイルフラグを使用してこの問題を解決しようと考えています。また 1.8.6 と 1.8.7 の非互換性の問題に関して言えば,それはセマンティックの変更,例えばメソッドの戻り値が Array から Enumerable に変更されたり,標準ライブラリのクラスが微妙に変更されたりしたことに起因しています。

これらの変更はコミュニティに受け入れられてきていますので,非互換性の問題について,私は心配してはいません。
Ruby エンタープライズエディションの新しいエディションは www.rubyenterpriseedition.com で入手可能だ。

この記事に星をつける

おすすめ度
スタイル

BT