您现在的位置:诗歌范文 > 西方诗歌

Clojure Hacking Guide

时间:2019-08-13 11:27   编辑:本站

	Clojure Hacking Guide

这题目起的哗众取宠,其实只是想介绍下怎么查看Clojure动态生成的字节码,这对分析Clojure的内部实现很重要。 第一步,下载最新的并解压,并导入到你喜欢的IDE。

其次,下载并解压。 第三,删除源码中的包。 clojure并不是引用asm的jar包,而是将asm的源码合并到clojure中,并且删除一些只会在调试阶段用到的package和class,保留使用asm的最小源码集合,这可能是处于防止asm不同版本的jar包冲突以及缩小clojure大小的考虑。

第四,将源码拷入clojure的源码中,并将包包括子包整体重名名为。 第五步,修改Clojure源码,加入TraceClassVisitor的适配器,用于跟踪字节码生成,这需要修改类中的两个compile方法,找到类似这样的代码,将cv修改为TraceClassVisitor:TraceClassVisitor的第二个参数指定将跟踪到的字节码输出到哪里,这里简单地输出到标准输出方便查看。 第六步,接下来可以尝试下我们修改过的clojure怎么动态生成字节码,启动REPL,启动阶段就会输出一些字节码信息,主要预先加载的一些标准库函数,如中的函数等,REPL启动完毕,随便输入一个表达式都将看到生成的字节码输出类似。