
JVM上のLISPの検討
この記事は、Lispに興味のあるJava開発者を対象にしています。現在JVM上で利用できる、Lispの異なる方言について検討し、Lispのプログラミング方法とLispプログラミングに固有の問題を速習できるようになっています。最後に、LispコードをJavaシステムに組み込む方法について述べます。

この記事は、Lispに興味のあるJava開発者を対象にしています。現在JVM上で利用できる、Lispの異なる方言について検討し、Lispのプログラミング方法とLispプログラミングに固有の問題を速習できるようになっています。最後に、LispコードをJavaシステムに組み込む方法について述べます。

この記事は JRuby と Swing を使ったシンプルな ObjectSpace ブラウザを実装するサンプルアプリケーションをベースに進めていきます。ObjectSpace はシステム内のすべてのオブジェクトにアクセスする手段を提供してくれる Ruby のモジュールです。
Rubyの互換実装は活発に開発されている。 IronRubyの開発スピードは目を見張るものがあり、7月にはバージョン1.0がリリースされるだろう。さらには、JRuby1.3.1は重要なバグ修正が施され、MacRubyは継続的開発が続き、MagLevはパーサを独自実装してきている。
JRuby 1.3が現在利用可能になっており、それによりパフォーマンスの改善とGoogle AppEngineとの互換性がもたらされた。そのほかの改善作業も続いており、ruby2javaコンパイラの最初のバージョンが現在利用可能である。また、InvokeDynamicのサポートが次のバージョンのJavaのビルドに含まれようとしている。
Joe Damato氏による新しいパッチはheap stackを利用してRuby 1.8.xのグリーンスレッドの効率を改善する。コンテキストスイッチの度ごとにスタック全体をコピーする代わりに、そのパッチは異なるスタックの交換だけを行う。Ryan Davis氏は効率的なプロファイリングのためにzenprofileとevent_hookをリリースした。さらに、MacRubyのLLVMを用いた事前コンパイラに関する作業が開始されている。
Microsoft ResearchはCLRアセンブリのメタデータやデバッグファイルを操作するため、コンパイラや他のプログラミングツールによって使用される一連のライブラリを含む、Common Compiler Infrastructure: Metadata (CCI)およびCCI: Code and ASTプロジェクトをオープンソースにした。CCI: MetadataコンポーネントはSystem.Reflectionを組み込み、CCI: Code and ASTはSystem.CodeDomを組み込む。
同じソースコードの最適化されたビルドと最適化されていないビルドは、それぞれ異なるデッドロックになる可能性があることを、数年前Eric Lippert氏は述べた。
RubyConf '08では、Ruby VMについての講演が数多くおこなわれた。その内容は実装技術の詳細に踏み込んだものから実装のデモ、Rubyのパフォーマンスの概要まで多岐にわたるものだった。