Skip to content

psg-mit/leto

Repository files navigation

Leto

The implementation of the Leto algorithm is available in this repository.

Building With Vagrant

Using Vagrant will allow you to build Leto within a VM that contains all of the (outdated) dependencies it needs. This is the easiest way to install Leto.

Dependencies

For the Vagrant install you will need:

  • Vagrant
  • VirtualBox

Building

To build with Vagrant run vagrant up. This will generate a VM based on Debian 8 with all of the required dependencies for building and running Leto. Note that this will take a while to complete.

Running Under Vagrant

To run Leto under Vagrant, run vagrant up (if you haven't already from the build step) followed by vagrant ssh. The Leto source and benchmarks will be within the /vagrant folder. Note that this folder is shared with the host operating system, so local changes to Leto will affect the VM and vice versa. See the "Running Leto" section at the bottom of this file for how to run the system once you've sshed into the VM.

After you are done, run vagrant halt or vagrant suspend to stop the VM (see the Vagrant documentation for the difference between these two). If you want to delete everything, run vagrant destroy. vagrant up will bring the VM back up again, rebuilding if necessary (i.e., you used vagrant destroy instead of halt or suspend).

Building Leto From Scratch

Building Leto from scratch is NOT recommended. Getting the proper versions of dependencies is key as there appear to be compatibility issues between new versions of bisonc++ and clang.

Dependencies

Leto depends on the following software. It is known to work with the versions in parenthesis. With the exception of z3, these are all the current versions in the Debian Jessie package repository.

  • bisonc++ (4.09.02)
  • GNU cpp (4.9.2-10)
  • clang (3.5.0-10)
  • flexc++ (2.01.00)
  • GNU Make (4.0)
  • python3 (3.4.2)
  • z3 (4.5.0)

Compiling Leto

To build the system, run make from the src directory. If all goes well you will end up with a binary named leto in the src directory.

If the build process complains about not being able to find z3++.h be sure you installed the z3 development headers. You may have to build z3 from source to get these (the Debian package omits these headers, for example).

Running Leto

See USAGE.mkd for information on running Leto.