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.
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
- Install 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, you can runZ3_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"
Yes:
python3 client.py -p 12345 \
--warmup-file log/viper_program/<test-name>/<some-small-file.vpr> \
--benchmark log/viper_program/<test-name>* \
--benchmark-report report
- Requests are welcome! Please send them to Arshavir