A JIT compiler and runtime for Java implemented in Common Lisp, enabling Java library integration within Lisp environments.
OpenLDK is a JIT compiler and runtime for Java that is implemented entirely in Common Lisp. It translates Java bytecode into Common Lisp, which is then compiled into native machine code, allowing Java code to run within a Lisp environment. This solves the problem of integrating Java libraries into Common Lisp projects without needing a separate Java runtime.
Common Lisp developers who need to use specific Java libraries within their Lisp-based workflows, or those interested in language interoperability between Java and Lisp.
Developers choose OpenLDK because it provides a seamless way to integrate Java libraries directly into Common Lisp environments, eliminating the need for out-of-process Java runtimes and enabling tight interoperability through CLOS class mapping.
A JIT Compiler and Runtime for Java in Common Lisp
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maps Java classes to CLOS classes, enabling direct interoperability between Java and Common Lisp codebases, as shown in the translation examples in the README.
Executes Java bytecode within the Lisp environment, eliminating the need for an out-of-process Java runtime, which simplifies deployment for Lisp-centric workflows.
Uses method stubs that compile on-demand, supporting incremental compilation and reducing initial load times for large codebases like ABCL bootstrapping.
Utilizes OpenJDK's core runtime libraries under the GNU Classpath Exception, ensuring compatibility with standard Java libraries without licensing issues.
Explicitly stated as not competitive with modern Java implementations, with unoptimized code, making it unsuitable for performance-sensitive applications.
Missing key Java features like bytecode verification, which could impact security and correctness in some scenarios, as admitted in the README.
Only tested with SBCL on Linux, restricting its use in other Common Lisp implementations or operating systems, adding porting barriers.