Clojure编译器如何生成JVM字节码?

use*_*340 7 java compiler-construction compilation clojure

Clojure编译器(它只是一个jar/java应用程序)用什么库/ api来生成JVM字节码?我很好奇,因为字节码是在运行时由java而不是javac生成的,所以它是一个输出jvm字节码的java程序.

noi*_*ith 6

Clojure使用一个名为ASM的Java库来生成字节码.lib的一部分的一个分支嵌入到clojure项目中:https://github.com/clojure/clojure/tree/master/src/jvm/clojure/asm

  • 它实际上是 ASM 的一个子集。作为 Clojure 1.6 的一部分,该子集最近在 master 中更新为 ASM 4.1。 (2认同)