JavaをCommon Lispで動かすOpenLDK、7言語を1つの式でつなぐ
OpenLDK: Bringing the Java World into Common Lisp
OpenLDKはJavaバイトコードをCommon Lispに変換し、SBCLがネイティブコードへコンパイルするJITランタイム。JavaオブジェクトはLispと同じプロセスとヒープに住み、JavaクラスはCLOSクラスになる。KotlinやScala、ClojureなどのソースをLisp式の中に直接埋め込め、7言語を1つの式で連鎖させることも可能。初期化済みのSpring BootアプリをLispイメージに保存し、約84ミリ秒で再起動できる。
JavaのクラスがCLOSクラスになる。LispはKotlinで書かれたメソッドの周囲にメソッドを追加できる。Clojureの関数はfuncallに渡せるものになる。Java自身のコンパイラがSBCLの中で動く。