GitHub - atgreen/openldk: 用于 Common Lisp 中的 Java 的即时编译器和运行时

主要观点: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”例外。
阅读 9
0 条评论