This site is obsolete. Please visit https://tigress.wtf.
Binary distributions of Tigress are available for 3 platforms: Linux x86/64, Darwin x86/64, and Linux ArmV7 (Raspberry Pi 3). Always download the latest (unstable) version since that's the most stable one. 😑
The FAQ explains why we don't post the Tigress source code on this website. We are happy to share the code with you if you are a researcher at a university or a research lab and we have done so many times in the past. Send us email to request the decryption key. If you are a student, please ask your professor/advisor to make the request for you.
Keep in mind that in order for the source to make any sense you will have to be fluent in both OCaml and CIL. Generally speaking, it is much easier to understand what Tigress does by examining input/output-pairs (remember, Tigress is C source to source, so this is easy to do) than to try to read the Tigress source code.
We are happy to consider feature requests that fit in with the Tigress architecture and philosophy.
Tigress is free to use for research purposes but if you want to use Tigress in a commercial setting you may need a license from the University of Arizona. Send us email and we will put you in touch with the university's licensing department.
Tigress Version 2 (Purple Nurple)
Version | Mac OS X | Linux | Source | Release Notes |
---|---|---|---|---|
Unstable | x86/64 |
x86/64
ArmV7 (experimental) |
Source | Release notes |
2.2 | x86/64 |
x86/64
ArmV7 (experimental) |
Release notes | |
2.1 | x86/64 |
x86/64
ArmV7 (experimental) |
Release notes | |
2.0 | x86/64 | x86/64 | Release notes |
Tigress Version 1 (Orange is the New Hack)
Version | Mac OS X | Linux | Source | Release Notes |
---|---|---|---|---|
1.3 | x86/64 | x86/64 | Release notes | |
1.2 | x86/64 | x86/64 | Release notes | |
1.1 | x86/64 | x86/64 | Release notes | |
1.0 | x86/64 | x86/64 |
Tigress Version 0 (White Byte)
Version | Mac OS X | Linux | Source | Release Notes |
---|---|---|---|---|
0.9 | x86/64 | x86/64 |
Installation
- Make sure you have the following installed:
- gcc (or a drop-in replacement such as clang)
- perl
- bash
- Unpack:
unzip tigress-ARCH-x86_64-VERSION.zip
- Move the tigress-VERSION where you want it, for example
mv tigress-VERSION /home/bob/bin
- Set the TIGRESS_HOME environment variable to the directory
in which the tigress binary resides, and add this directory
to your path. I.e., if your shell is csh, do
setenv TIGRESS_HOME /home/bob/bin/tigress-VERSION setenv PATH "$PATH":/home/bob/bin/tigress-VERSION rehash
and if your shell is bash doexport TIGRESS_HOME=/home/bob/bin/tigress-VERSION export PATH=$PATH:/home/bob/bin/tigress-VERSION
- Try it out!
- Like this on Linux:
cd /home/bob/bin/tigress-VERSION/ tigress --Environment=x86_64:Linux:Gcc:4.6 --Transform=Virtualize --Functions=main --out=result.c test2.c gcc -o result result.c ./result
- And like this on MacOS:
cd /home/bob/bin/tigress-VERSION/ tigress --Environment=x86_64:Darwin:Clang:5.1 --Transform=Virtualize --Functions=main --out=result.c test2.c gcc -o result result.c ./result
- Like this on Linux:
- Some useful commands:
tigress --help : Show this message tigress --install : Show how to install Tigress tigress --test : Show how to run tests to ensure proper installation tigress --options : Show complete list of options to tigress tigress --license : Display the tigress license tigress --bibtex : See how to cite us tigress --apple : How to get past some Darwin issues tigress --version : Show the current Tigress version - Tigress comes with a suite of simple test cases that you can run to ensure
proper installation on your platform:
> cd $TIGRESS_HOME > unzip simple-tests.zip > cd simple > make
Please report if any tests fail on your system.
Issues
Tigress is currently only compiled for 64-bit Darwin and Linux. We would like to provide Tigress on more platforms, but, in order to do this, we need access to compilers for such systems. It would be great if someone could please donate/give us access to 32-bit Linux and 32- and 64-bit Windows systems (with cygwin, gcc, and ocaml installed)!
Installation from Source
- Make sure you have the following installed:
- gcc (or a drop-in replacement such as clang)
- OCaml 3.12.1
- perl
- bash
- openssl
- gawk
- gsed
- Decrypt:
> openssl enc -d -aes-256-cbc -pass pass:PASSPHRASE -in tigress-src-unstable.zip.aes -out tigress-src-unstable.zip
The PASSPHRASE should have been sent to you in a separate email. - Unpack:
unzip tigress-src-unstable.zip
If your awk/sed is not called gawk/gsed, edit tigress/distribution/exec/makefile. - To build, type:
cd tigress make unpackCIL make config make tigress_full
- The binaries should be built in the bin directory. Set
setenv TIGRESS_HOME /PATH_TO/tigress/bin/tigress-unstable setenv PATH /PATH_TO/tigress/bin/tigress-unstable:$PATH rehash
orexport TIGRESS_HOME=/PATH_TO/tigress/bin/tigress-unstable export PATH=$PATH:/PATH_TO/tigress/bin/tigress-unstable