Qilin
1.0.0


配x Qilin的文档正在开发中。
存储库托管Qilin,这是一个新的Java指针分析框架,用于支持细粒度的上下文敏感性。有关技术详细信息,请参阅我们的Ecoop'22论文。
instanceof匹配)。artifact/qilin.py中使用的api subprocess.run )。该存储库包含一个submodule ,其中包含一组Qilin的现实世界现成的基准测试。如果要在这些基准测试中运行Qilin,请使用以下命令获取Qilin源代码:
$ git clone --recurse-submodules https://github.com/QilinPTA/Qilin.git
如果您以普通方式克隆Qilin,则仍然可以使用下面的命令下载以下基准:
$ git submodule update --init
我们使用Gradle作为构建自动化工具。要构建Qilin,请使用
$ ./run.sh
该脚本包含生成Qilin-VERSION-SNAPSHOT.jar的命令,将自动移动到artifact/ 。
对于想在IDE中构建Qilin的用户,请参阅此页面。
您可以通过其命令行接口(例如, driver.Main )或库使用Qilin。对于正在从事Java指针分析的研究人员,我们提供了整个脚本,基准(例如, DaCapo2006 )和JDK artifact/ 。
要测试Qilin,您可以直接做:
$ cd artifact
$ python3 run.py antlr ci -print
上面的命令将通过上下文不敏感的指针分析分析antlr ,并在屏幕上显示一些指标。
我们计划优化run.py脚本,以使其帮助信息更加用户友好。
| 关于Qilin | 设置指南 | 用户指南 | 开发人员指南 |
|---|---|---|---|
| 引入Qilin-它的作用以及我们如何设计 | 逐步设置指南以构建Qilin | Qilin的命令行选项,并以示例运行Qilin | 详细的技术文档以及如何将Qilin用作工具的LIB或在Qilin中编写自己的分析 |
总是欢迎捐款。 Qilin是一个开源项目,我们希望它对整个研究社区有用。如果您有一个新功能或一个错误修复程序,您想在官方代码存储库中看到,请在Github上在Github上打开合并请求,并对您所做的工作进行简短描述。
Qilin是根据GPL V2.1许可证获得许可的,请参见许可证文件。