Fre*_*ind 13 jvm scala bytecode
我想知道scala如何生成字节代码,它是否使用像ASM这样的库?或者只是将二进制文件写入.class文件以获得性能?
小智 31
从2.10开始,Scala编译器使用ASM 4发出字节码,支持-target:jvm-1.5,-target:jvm-1.6和-target:jvm-1.7
后端的实现方面描述如下:
字节码发射器(GenASM,下面链接的源)访问由前一阶段构建的控制流图(CFG),并使用Streaming ASM API直接发出类文件:
https://github.com/scala/scala/blob/master/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala
这就是现在的工作方式.在实验可能性领域,我一直在研究发射的实验性字节码更快,部分原因是它跳过构建CFG并直接访问Scala抽象语法树(然后使用Tree ASM API在内存中构建类文件).详细信息:
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |