Da Vinci MachineあるいはMulti Language Virtual Machineとは、
サン・マイクロシステムズによるプロジェクトで、Java仮想マシン(JVM)に動的言語のサポートを
追加する拡張のプロトタイプを開発するものであった。
当時、JVM上では動的言語を実行できていたが、このプロジェクトのゴールは、
動的言語の実装を容易にし、パフォーマンスを良くすることであった。
このプロジェクトはJSR 292 (Supporting Dynamically Typed Languages on the Java Platform)のリファレンス実装であった。
↑Nutter, Charles(2008年9月11日).“A First Taste of InvokeDynamic”.2008年9月13日閲覧。“I managed to successfully wire InvokeDynamic directly into JRuby's dispatch process! Such excitement! The code is already in JRuby's trunk, and will ship with JRuby 1.1.5 (though it obviously will be disabled on JVMs without InvokeDynamic).”
↑Rose, John(2009年4月22日).“progress: indy.patch -> JDK7”.2009年4月30日閲覧。“The majority of indy.patch has entered the JDK7 VM at my workgroup's integration repo, today at about 4:00AM PDT:”
↑Nutter, Charles(2008年9月11日).“A First Taste of InvokeDynamic”.2008年2月6日閲覧。“The dirty secret of several JVM implementations, Hotspot included, is that there's a separate heap (or a separate generation of the heap) used for special types of data like class definitions, class metadata, and sometimes bytecode or JITted native code. And it couldn't have a scarier name: The Permanent Generation. Except in rare cases, objects loaded into the PermGen are never garbage collected (because they're supposed to be permanent, get it?) and if not used very, very carefully, it will fill up(...)”