mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
1e94ca0711
Introduce a new canonicalisation pass that forces a small set of exponential-dataflow-prone instructions (SelectInst plus the FShl and FShr intrinsic patterns) to be stored into a dedicated local variable. Without this, expanding their value into C expressions during decompilation can blow up into exponential path enumeration on real binaries. This is a temporary workaround. A more principled split of pathological dataflows is planned and will replace this pass.
rev.ng python package
This python package provides classes that can be used to represent, serialize and deserialize rev.ng models.
It also contains other modules related to various revng CLI tools.
How to install
You probably want to install this package in a virtualenv:
python -m venv <virtualenv_dir>
source <virtualenv_dir>/bin/activate
Installation
To build and install from source:
pip install .
Creating redistributable packages
This command will create a redistributable package in dist:
python setup.py bdist_wheel
The package can be installed using pip:
pip install dist/revng*.whl