CL to Java - Part 3
Wednesday, July 7, 2004
In earlier postings ( here and here) I discussed some of the alternatives for working with a mixture of CL and Java code. By private email, David Lichteblau let me know of an alternative approach that he has been working on: Cloak - a JVM in CL. David has kindly sent me a copy of a presentation that goes into more detail about his effort. Some of the key differences with this approach to CL-Java interoperability are:
- A Lisp-based JVM allows you to directly load class files.
- By having the JVM implemented in CL, you can dump a JVM instance (something that current JVM's do not support).
- Unlike some of the alternatives that I covered in my previous postings, this approach avoids any IPC between the Java and the CL code, resulting in faster CL-Java-CL communication.
- Avoids memory management issues associated with two different language environments (e.g. - only 1 GC).
At this stage, David's JVM implementation is still incomplete and the main issue is performance. Still, his approach is an interesting and (yet another) alternative way to interoperate with Java code from CL.