# e-Knife: Erlang slicing with the Expression Dependence Graph You can find more details and contact information at the project's [homepage](https://kaz.dsic.upv.es/e-knife/). 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: ```bash 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.