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.