主要观点:OpenLDK 是用 Common Lisp 实现的 Java 即时编译器和运行时环境,能将 Java 字节码转换为 Lisp 再编译为本地机器码执行,实现 Java 与 Common Lisp 的无缝集成。
关键信息:
- 关键特征:翻译 Java 字节码为 Lisp、编译为本地代码、与 CLOS 集成、利用 OpenJDK 运行时库。
- 用例:用于在 SBCL 中使用特定 Java 库,无需额外 Java 运行时环境。
- 要求:仅在 SBCL 和 Linux 中测试,需设置 JAVA_HOME 环境变量和 LDK_CLASSPATH 环境变量,使用 ocicl 进行包管理。
- 工作原理:读取类和 jar 文件并转换为 Lisp 代码,Java 类映射到 CLOS 类,方法首次调用时生成 CLOS 定义和存根,调用时编译器生成机器码。
- 调试:设置 LDK_DEBUG 环境变量可生成调试信息,包括跟踪字节码编译等。
- 状态:基本程序可运行,代码未优化,未实现部分 Java 8 后的类文件支持等功能。
重要细节: - 如
demo
类在转换后有相应的 CLOS 定义和方法存根等。 - 测试结果显示预期通过数、意外失败数等。
- 作者是 Anthony Green,遵循 GNU 通用公共许可证并有“CLASSPATH”例外。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。