BT

Windowsインストーラや、1.8.7サポート、新しい組み込みAPIを追加したJRuby 1.4RC1がリリースされた

| 作者: Werner Schuster , 翻訳者 能仁 信亮 投稿日 2009年10月13日. 推定読書時間: 1分未満 |

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

JRuby 1.4 Release Candidate 1が利用可能となった(すべてのJRuby 1.4 RC1バージョンへのリンク)。
JRuby 1.4 RC1のリリースノートによると以前InfoQでもとりあげたRuby 1.8.7サポートと新しいJava統合サポートを含む多数の改良が含まれている。

Windowsユーザは新しいJRubyインストーラを気に入るかもしれない。これは.exeファイルとしてJRuby 1.4ダウンロードページから入手できる。

アプリケーションにJRubyをスクリプティングのために組み込みたい開発者や、JRubyをJavaのコードから単純に利用したい開発者向けに、Red Bridgeもしくはorg.jruby.embedと共に動作する新しいAPIが利用可能だ。この新しい組み込みAPIは将来のJRubyのバージョンでJRubyのJavaEmbedUtilsを置き換えることになるかもしれない。
Red Bridgeの作者である原田洋子氏は次のように説明している

JRuby 1.4.0RC1では、ユーザはJRubyのJavaEmbedUtilsとRed Bridgeのどちらを使うべきか混乱するかもしれません。新しいユーザは、間違いなくRed Bridgeを使うべきです。なぜなら、使いやすくパワフルだからです。[..] 現在のところ、JavaEmbedUtilsは、他の組み込みに関するインターフェースと同じように、どのように非推奨にできるかを探る議論の渦中にあります。JavaEmbedUtilsとその他のAPIはJRuby Rackを含む多くのパッケージで利用されてきました。ですので、それらを非推奨にするのは影響が大きいのです。

Red Bridgeは、JRubyの複数の呼び出しをまたいで、ローカル変数をどのように参照するかといった、他の組み込みAPIが抱えるいくつかの問題を解決する。新しいorg.jruby.embed.ScriptingContainerのドキュメントには次のように書かれている。

3つ目の例では、複数の評価をまたいでローカル変数をどのように保持するかを説明している。この機能はJRubyのBSFエンジンをシミュレートする。Rubyの文脈でいうと、ローカル変数は評価が終了した後に生き残るべきではない。よって、この振る舞いはオプションであり、ユーザは、コンテナがインスタンス化される際に、LocalVariableBehvior.PERSISTENTを指定しなければならない。

(例)

ScriptingContainer container = new ScriptingContainer(LocalVariableBehavior.PERSISTENT);
container.runScriptlet("p = 42");
container.runScriptlet("puts #{p}");

LocalVariableBehavior.PERSISTENTを指定しなければ、変数pは、2つ目のcontainer.runScriptletの呼び出しでは利用できない。従ってこのようなユースケースでは、ローカル変数のかわりにグローバル変数を使う必要がある。

JRuby 1.4 RC1を試してみて、リリース版に修正を盛り込むべきリグレッションを報告するのには、今は最適な時期だ。

最後にJRubyがどのように動いているのか興味があるのであれば、R.J. Lorimer氏のJRuby's internalsシリーズを読んでみるとよい。最新の記事では、JRuby JITを取り上げている

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT