RustLiSA
An abstract interpretation-based static analyzer for Rust built upon LiSA (Library for Static Analysis)
🛠 Build
RustLiSA comes as a Gradle 6.6 project.
Development is done in Eclipse. You need to:
- install the Gradle IDE Pack plugin through the Eclipse Marketplace; from the eclipse menu bar:
- Help
- Eclipse Marketplace...
- Search for Gradle IDE Pack 3.8
- Install Gradle IDE Pack 3.8
- import the project into the eclipse workspace as a Gradle project.
- run
cp ./rust-lisa/gradle.properties.example ./rust-lisa/gradle.properties
add fill with the informations required - run the
./rust-lisa/gradlew build
Run the project with Java 11.
Note: in order to have gradle run you must run the project necessary with Java 11 and no greater version.
⚙️ Run
To run the project by using Eclipse you can use Run as Java application in Eclipse and passing a path to a Rust file as first argument.
The result will be put under the output
folder, which will have all the enabled reports and a .dot file with the LiSA-CFG
You can run other gradle task with
./rust-lisa/gradlew -q :tasks --all
🎯 Contribute
Before every commit it is necessary to open a new branch with
git checkout -b <branch-name>
then you can start committing on that branch. Once you have finished, you first need to run
./rust-lisa/gradlew build
./rust-lisa/gradlew spotlessApply
and commit every change made to the files.
After that, you can open a Pull Request, marking the reviewers and adding tags about the PR, also with a short description.
🚀 Next steps
- complete compilation from Rust constructs to LiSA control-flow graph nodes
- complete
semantics
methods of Rust control-flow graph nodes - integrate APRON for numerical analyses