Skip to content
Snippets Groups Projects
Name Last commit Last update
EDG
Miscellanea
e-Knife
.gitignore
LICENSE
README.md

e-Knife: Erlang slicing with the Expression Dependence Graph

You can find more details and contact information at the project's homepage.

This project consists of three modules:

  • e-Knife: the frontend for the EDG, which implements the necessary tools to slice Erlang programs.
  • EDG: the generic library that implements the graph and slicing techniques.
  • Miscellaneous: various shared utilities.

Build

Requirements: Java >= 8, Erlang/OTP 24 and Apache Ant.

Just run ant and a jar will be built at ./dist/.

Build with another version of Erlang

Before running ant, replace the package com.ericsson.otp.erlang from e-Knife/src with the one from your Erlang distribution, at lib/jinterface-VERSION/java_src.

Your Erlang distribution will most likely be installed at /usr/lib/erlang or /usr/local/lib/erlang.

As an example:

pkg="com/ericsson/otp/erlang"
rm -rf e-Knife/src/$pkg
mv /usr/lib/erlang/lib/jinterface-1.12/java_src/$pkg e-Knife/src/$pkg

Run

You'll probably want to generate slices, so you should run e-Knife. Run it without args to obtain a list and explanation of arguments.

java -jar path/to/eknife.jar [args]

Importing into an IDE

You can treat each folder (EDG, e-Knife and Miscellanea) as a separate module, with the following dependencies:

  • e-Knife requires EDG and Miscellanea.
  • EDG requires Miscellanea.
  • Miscellanea has no dependencies.

License

This project is licensed under GNU Affero Public License (Version 3.0), with the exception of the jinterface files, placed under e-Knife/src/com/ericsson, which are the property of Ericsson AB and are licensed under the Apache License (Version 2.0).

You should have received a copy of the GNU Affero Public License along with this program. If not, see https://www.gnu.org/licenses.