https://github.com/viperproject/viper_client
https://github.com/viperproject/viper_client
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/viperproject/viper_client
- Owner: viperproject
- Created: 2020-03-24T14:59:53.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-06-29T11:30:47.000Z (almost 3 years ago)
- Last Synced: 2025-01-19T15:23:21.327Z (over 1 year ago)
- Language: Python
- Size: 31.3 KB
- Stars: 3
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# README #
This client app written in Python3 demonstrates how Viper API can be used for submitting verification tasks to the ViperServer and receiving the resulting stream of Json objects.
### What is this repository for? ###
We used to use Nailgun for launching a persistent JVM for Viper. With ViperServer, we don't need Nailgun anymore.
Use cases (list not exhaustive):
* Collecting statistics
* Black box testing of ViperServer
### How do I get set up? ###
* Install [ViperServer](https://bitbucket.org/viperproject/viperserver).
* Install Python 3 (preferably with VirtualEnv: `python3 -m venv env`).
* Install pip for Python 3: `env/bin/python3 -m ensurepip --default-pip`.
* Run `env/bin/pip install -r requirements.txt`
* Start ViperServer by running `sbt run` (from the root directory of ViperServer). Alternatively, if you downloaded a [Viper Server release](https://github.com/viperproject/viperserver/releases), you can run `Z3_EXE=viper_tools/z3/bin/z3 java -Xss1024m -Xmx4024m -jar viper_tools/backends/viperserver.jar`.
* Usage: `env/bin/python3 ./client.py -p 50424 -f /Users/wi/eth/phd_proj/trclo/repo/trclo_mark.vpr -v silicon -x="--disableCaching"`
### Can I use this tool to benchmark Viper? ###
Yes:
```bash
python3 client.py -p 12345 \
--warmup-file log/viper_program// \
--benchmark log/viper_program/* \
--benchmark-report report
```
### Who do I talk to? ###
* Requests are welcome! Please send them to [Arshavir](mailto:ter-gabrielyan@inf.ethz.ch)