Skip to content
README.md 1.82 KiB
Newer Older
Carlos Galindo's avatar
Carlos Galindo committed
# e-Knife: Erlang slicing with the Expression Dependence Graph

Carlos Galindo's avatar
Carlos Galindo committed
You can find more details and contact information at the project's [homepage](https://kaz.dsic.upv.es/e-knife/).
Carlos Galindo's avatar
Carlos Galindo committed

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.

## 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.