PA-datalog is a modified LogicBlox v3 engine, intended for use in program analysis projects. The maintainers of the project are the PLaST group at the University of Athens.

To download and use the engine binary (Linux/x86_64) you must accept the LogicBlox Software License Agreement (Academic/Research/Non-Commercial Use) .



Installation

Installation (.tar.gz archive)

To install PA-datalog from the .tar.gz archive, unzip its contents to a directory, e.g. /opt/lb/pa-datalog. The following libraries are required: tcmalloc, protobuf, Boost, CppUnit. For example, in Ubuntu 15.10, the dependencies of PA-datalog can be installed with the following command:

sudo apt-get install libtcmalloc-minimal4 libgoogle-perftools4 protobuf-compiler libprotobuf-dev \
          libprotobuf-java libboost-date-time1.58.0 libboost-filesystem1.58.0 libboost-iostreams1.58.0 \
          libboost-program-options1.58.0 libboost-date-time1.58.0 libboost-system1.58.0 libboost-thread1.58.0 \
          libcppunit-1.13-0v5

Note: in Fedora 27, protobuf and Boost are already provided in the tar.gz archive and need not be installed.

Installation (.deb package)

To install the .deb package in Ubuntu (e.g. pa-datalog_0.5-1wily.deb), use:

sudo dpkg -i pa-datalog_0.5-1wily.deb
sudo apt-get install -f

Setup

To make the binaries of PA-datalog available for use in the shell:

  1. Set JAVA_HOME to an appropriate location for Java:

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
  2. Source the lb-env-bin.sh script in your shell to set required paths:

    source /opt/lb/pa-datalog/lb-env-bin.sh