Cl-kawa: Scheme on Java on Common Lisp
github.com
github.com
I am a fan.
If you compile to an implemenation's assembler (even where that possible) you don't really compile into Lisp anymore. And really the Lisp compiler is going to do a better job at generating machine code.
"We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." -- Guy Steele
On Java itself, when CLOS, a dog-ancient system for Common Lisp it's enough to support the Java class/method/object system by itself tells a lot on how great CL can be, even with SBCL which is the top tier free (as in freedom) interpreter/compiler out there.
On performance, well, who knows; remember that PyPy itself back in the day was written in Python itself and it ran things much faster than the vanilla Python interpreter.
Clojure is a different case, because when you already are on the JVM anyway, then Clojure is still infinitely better than no Lisp at all. It's not the same as putting the JVM somewhere where it wasn't before and where it's not actually needed.
Regarding LLM-usage, the bulk of OpenLDK was written without the use of LLMs. But recently I let Claude loose on the code to fix a few remaining problems blocking kawa. Claude also upleveled the Java support from Java 8 to Java 21.
I wrote a couple of blog entries related to this work that might be of interest. One was around how I had to use the MOP to optimize method dispatch in CLOS for clojure: https://atgreen.github.io/repl-yell/posts/clos-mop-dispatch/
https://en.wikipedia.org/wiki/Chiikawa
It's a portmanteau of "Chiisai" (small) and "Kawaii" (cute).