2010年6月17日木曜日

今のJVMに欠けている物

原文: チャールズ=オリバー=ナター

今日ツイッターで、「JVM及びJDKが、あらゆるプログラミングにおいて真にイケてるプラットフォームになる為には未だ幾つかの欠陥が有る」と呟きました。沢山の人から「もっと詳しく」とせっつかれたので、ここに短く書き起こしておきます。勿論、これで全部という訳ではないのでしょうが、今日思いついたのはこれだけです。

2010年6月15日火曜日

JRubyのパフォーマンスの更なる向上を目指して

原文: チャールズ=オリバー=ナター

JVM上でJRubyが動く事の利点は折りに触れて述べてきました。JRubyのパフォーマンス数値はそこそこの結果を出しているのですが、多くの人々の期待に反して「抜群に素晴らしい」というものではありませんでした。詰まる所、他のRuby言語の実装に較べて良い結果を出したとしても、静的な型システムを用いる他のJVM言語には敵わないのでした。

しかし、それは今までの話し。

2010年5月12日水曜日

JRuby 1.5.0 リリースのお知らせ

原文:トム=エネボ

JRuby バージョン1.5.0


JRubyのバージョン1.5.0 のリリースを発表いたします。

ホームページ: http://www.jruby.org/
ダウンロード: http://www.jruby.org/download

今まで最長のリリース期間(凡そ五ヶ月)を経た今回のリリースは不具合の修正の数も最多になりました。加えて、以下に示す通り、多くの新しい機能も含んでいます。不具合の内訳としてはRubyのメソッドの細かい仕様の修正が殆どです。その点から申しますと、JRuby 1.4.0から1.5.0へのアップグレードは容易でしょう。また、「JRubyから暫く遠ざかっていた」と仰るあなたも、この機会に是非JRubyを今一度試してみて下さい。

2010年5月4日火曜日

JRuby 1.5.0.RC3 がリリースされました。

原文:トム=エネボ
JRuby 1.5.0.RC3 のリリースをお知らせします。

ホームページ: http://www.jruby.org/

ダウンロード: http://www.jruby.org/download


RC2以降に修正されたバグを以下に示します。


  • JRUBY-3742: Java native threads are not added to ThreadService.rubyThreadMap after being adopted.

  • JRUBY-4264: threadContextMap leaks RubyThread on death of adopted thread

2010年4月28日水曜日

JRuby 1.5.0.RC2 がリリースされました。

原文:トム=エネボ
JRuby 1.5.0.RC2 のリリースをお知らせします。恐らくこれが最後のRCになると思われます。

ホームページ: http://www.jruby.org/

ダウンロード: http://www.jruby.org/download

RC1のリリース以降に修正されたバグを以下に示します。


  • JRUBY-3153: IO rubyspec failures under IBM JDK6 Linux

  • JRUBY-3208: ant task api-docs runs out of memory, patch included

  • JRUBY-4677: Java exceptions can't be rescued with "rescue Exception"

  • JRUBY-4680: jirb_swing broken: JRuby picking wrong constructor, with no obvious work around

  • JRUBY-4704: "Java wrapper with no contents" error when subclassing a Runnable class in JRuby

  • JRUBY-4710: Problems importing classes in default package

  • JRUBY-4715: FFI::StructByValue missing layout and struct_class methods.

  • JRUBY-4721: FFI::Platform::CONF_DIR looks in wrong location for PPC Macs.

  • JRUBY-4724: Java class equality operator is order dependent

  • JRUBY-4725: to_java_object no longer exists

  • JRUBY-4729: System properties to set bindir and default rubygems paths

  • JRUBY-4730: Unix jruby-1.5.0.RC1 distro includes rubygems/default/jruby_native.rb without native launcher

  • JRUBY-4731: Mismatched default compilation prefix

  • JRUBY-4733: Allow compilation of Ruby files for a specificic JVM version

  • JRUBY-4734: Reduce "multiple Java method" warnings in unambiguous cases

  • JRUBY-4735: install-gems ant target should not count on successful installation of jruby-launcher

  • JRUBY-4737: Compatibility issue with Spring property from 1.4.0 to 1.5.0.RC1

  • JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1.5.0.RC1.tar.gz

  • JRUBY-4742: File::Stat throws a NPE when it doesn't find a file into a jar

  • JRUBY-4747: read_nonblock error with couchrest

  • JRUBY-4749: require 'rbconfig' fails on GAE because of NullPointerException

  • JRUBY-4750: ant-to-rake: task does not work when classpath is defined via taskdef's attribute

  • JRUBY-4751: Java call to RubyBignum.to_s() returns generic object representation

  • JRUBY-4754: NotImplementedError: the MD5() function is unimplemented on this machine

  • JRUBY-4757: addressable gem doesn't work with --fast

  • JRUBY-4760: File.open throws Errno::ENOENT when file inside jar is accessed using ".." (doubledot) in the path

  • JRUBY-4761: 1.9.2: Thread#backtrace

2010年4月15日木曜日

JRubyのバージョン1.5.0.RC1がリリースされました

原文:トム=エネボ

JRuby バージョン1.5.0.RC1


JRubyのバージョン1.5.0.RC1を発表いたします。

ホームページ: http://www.jruby.org/
ダウンロード: http://www.jruby.org/download

今まで最長のリリース期間(凡そ五ヶ月)を経た今回のリリースは不具合の修正の数も最多になりました。加えて、以下に示す通り、多くの新しい機能も含んでいます。不具合の内訳としてはRubyのメソッドの細かい仕様の修正が殆どです。その点から申しますと、JRuby 1.4.0から1.5.0.RC1へのアップグレードは容易でしょう。また、「JRubyから暫く遠ざかっていた」と仰るあなたも、この機会に是非JRubyを今一度試してみて下さい。以前あった不具合が解消されている可能性大です。1.5.0の正規リリースをより良い物にする為にどうぞご協力下さい。

2010年3月3日水曜日

JRubyの起動時間についてのヒント

原文: チャールズ=オリバー=ナター

JRubyはRuby言語の実装の中では一際起動が遅い事で悪名高くなってしまいました。一部は、JITの生成品がなくてブートストラップして動き出すまでに時間がかかってしまうJVMを使っているせいです。起動の際のボトルネックが報告されて原因が解明されればそれを除く努力を我々はしていますが、JRuby自体にも問題があります。起動の問題は、実は簡単な設定問題である事もしばしばです。JRubyの起動を早くするコツを幾つか見ていきましょう。

注意。JRuby自体の起動は、他のJVM言語に較べると結構いい線いっていますが、MatzのRuby(一般的には最も速い実装とは言えない)の起動は素晴らしく早いです。

クライアント用のJVMを使う


これが何と言っても一番手っ取り早い方法です。OpenJDKとSunのJDKを動かしているJVMであるHotSpotには、「クライアント用」と「サーバ用」の二種類のバックエンドがあります。「クライアント用」はバイトコードをコンパイルする時、最適化は最小限に、始めのうちにササッとやってしまうだけです。一方、「サーバ用」は大規模にしかも全体的に最適化をする訳ですが、これが出来るようになる時点に到着するには長い時間が掛かりますし、最適化の為には多くのリソースが必要です。