Jupyter kernels for the Fift and FunC languages (and TVM assembler)
Aside from the convenient Jupyter interactive workflow this kernel provides:
- Syntax highlighting
- Words autocomplete via
Tab
(including those which are included or defined by you) - In-place docstrings via
Shift+Tab
(for words defined in FiftBase and TVM pdf files)
- Syntax highlighting including (non)const methods and pseudo-namespaces
- Autoindentation
- Autocomplete by
Tab
using keywords and global functions - Inspect function signature by
Shift+Tab
- Extra:
#include
macro andprint
debug helper
- At the top-level of each cell you can use
#include "path/to/file"
macro to load functions from a.fc
file. They will be available throughout the notebook. - You can define multiple functions in any cell, they will also be available from everywhere.
- At the end of the cell (using separate cell is recommended) you can write piece of code not wrapped by a function definition. It will be automatically used as
main
body. Such code cannot be accessed from another cell. - Alternatively, you can specify
main
function explicitly. - You can omit
return
and trailing;
in the main code block - they will be added during the execution. - Note, that every time you re-run a cell, all functions defined in this cell are being overwritten.
Return constant
<<< 2 + 2
>>> 4
Return variable
<<< int i = 42
>>> 42
Return function result
<<< int sum(int a, int b) { return a + b; }
... sum(2, 2)
>>> 4
Print variables
<<< int i = 1;
... int j = 2;
... print(i);
... print(j);
>>> 2 1
Powered by awesome Binder: https://mybinder.org/v2/gh/atomex-me/xeus-fift/binder?filepath=func_cheat_sheet.ipynb
- Get the latest image from dockerhub (only when new releases are published)
docker pull atomex/xeus-fift
- Create container using verified docker image:
docker run --rm -it -p 127.0.0.1:8888:8888 -v $(pwd):/home/jupyter/notebooks atomex/xeus-fift
- Open the link from container output in your browser
- Save notebooks in the mapped folder in order not to loose them
- Check out the latest release tag at https://github.com/atomex-me/xeus-fift/releases
- Download and install the package
wget https://github.com/atomex-me/xeus-fift/releases/download/0.1.0/xeus-fift_0.1.0-1_amd64.deb -P /tmp/
sudo dpkg -i /tmp/xeus-fift_0.1.0-1_amd64.deb
- Check that Jupyter is now supporting Fift and FunC kernels
jupyter kernelspec list
- Ensure the following packages are installed:
libssl-dev zlib1g-dev uuid-dev
- Get the sources, build and install
git clone https://github.com/atomex-me/xeus-fift
cd xeus-fift
mkdir build
cd build
cmake ..
make xeus-fift
sudo make install
- Check that Jupyter is now supporting Fift and FunC kernels
jupyter kernelspec list