- Prerequisite:
- python 3.6+
- It is preferable to have a dedicated virtualenv for this project:
$ git clone <this repo>
$ cd Tyrell
$ mkdir venv
$ python3 -m venv venv
$ source venv/bin/activate
- Make an editable install with
pip
. This would automatically handles package dependencies. One of our dependency,z3-solver
, takes a long time to build. Please be patient.
$ pip install -e ".[dev]"
$ python setup.py sdist # for package
- Test whether the installation is successful
$ parse-tyrell-spec example/toy.tyrell
- Run all unit tests
$ python -m unittest discover .
- Create a distribution tarball
$ python setup.py sdist
Tarball will be available at dist/tyrell-<version>.tar.gz
- Build HTML documentations
$ cd docs
$ make html
Documentations will be available at docs/_build/html/index.html
References
- Yu Feng, Ruben Martins, Osbert Bastani, Isil Dillig. Program Synthesis using Conflict-Driven Learning. PLDI'18.
- Yu Feng, Ruben Martins, Jacob Van Geffen, Isil Dillig, Swarat Chaudhuri. Component-based Synthesis of Table Consolidation and Transformation Tasks from Examples. PLDI'17
- Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, Thomas W. Reps. Component-Based Synthesis for Complex APIs. POPL'17