Interactive Erlang Notebook
IErlang is an Erlang language kernel for IPython. It allows users to use IPython's Notebook frontend, except where IPython executes python code, IErlang can execute erlang code and compile and execute erlang modules.
This is on top of all of IPython's other frontend features like Markdown rendering, HTML rendering, saving notebooks for later use and even the ability to view IErlang Notebooks in IPython's NBViewer
Requirements:
- Python 2.7 in your
$PATH
- Erlang installed with
erl
andescript
in your$PATH
virtualenv
installedrebar
installedcurl
installed
Installation
You need only do the following to get started:
For Python 2.7.*
$ make demo
For Python 3.4.*
$ make demo3
This will do the following:
- Get all Python deps and patch IPython for IErlang support
- Get all Erlang deps and compile them
- Compile IErlang
- Start up an IErlang Notebook, loading a demo in your browser
Usage
Other make
targets are also provided. Some notes about these:
make clean
will remove the Python virtual environment as well as the compiled Erlang modules (ebin/*.beam
).- If you just want to clean the Erlang files and leave the Python virtual
environment in place, you may use
make erlclean
(orrebar clean
, of course). - You don't have to start with the demo; you can be placed into the IPython web
view of the
notebooks
directory where you can create new notebooks easily. Just use themake py2notebook
target. - If you would like to run the demo again, but don't want to recompile
everything, you may use the
make demo-no-deps
target.
Notes
Disclaimer
The development of this language kernel for IPython is at it's very early stages. This is Alpha. Take with a large pinch of salt. No sugar necessary, because it's pretty damn sweet! :)
IPython Workaround
Please note: in order to use IErlang, it is required to patch one of IPython's files. In IPython 2.0.0, this does not affect the usage of the original IPython.
Feedback
I am eager to receive feedback from anyone who has attempted to use IErlang. I would love to hear some thoughts on how to improve IErlang.