All Projects → m-kus → xeus-fift

m-kus / xeus-fift

Licence: MIT license
🍬 Jupyter kernels for Fift and FunC languages

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to xeus-fift

ton-client-rs
TON Labs SDK Client Library for Rust
Stars: ✭ 15 (-25%)
Mutual labels:  ton, telegram-open-network
Best Of Jupyter
🏆 A ranked list of awesome Jupyter Notebook, Hub and Lab projects (extensions, kernels, tools). Updated weekly.
Stars: ✭ 200 (+900%)
Mutual labels:  jupyter-kernels
Enterprise gateway
A lightweight, multi-tenant, scalable and secure gateway that enables Jupyter Notebooks to share resources across distributed clusters such as Apache Spark, Kubernetes and others.
Stars: ✭ 412 (+1960%)
Mutual labels:  jupyter-kernels
Irkernel
R kernel for Jupyter
Stars: ✭ 1,379 (+6795%)
Mutual labels:  jupyter-kernels
Ijava
A Jupyter kernel for executing Java code.
Stars: ✭ 614 (+2970%)
Mutual labels:  jupyter-kernels
Spylon Kernel
Jupyter kernel for scala and spark
Stars: ✭ 129 (+545%)
Mutual labels:  jupyter-kernels
Kernel gateway
Jupyter Kernel Gateway
Stars: ✭ 337 (+1585%)
Mutual labels:  jupyter-kernels
rk
The remote Jupyter kernel/kernels administration utility
Stars: ✭ 53 (+165%)
Mutual labels:  jupyter-kernels
Ocaml Jupyter
An OCaml kernel for Jupyter (IPython) notebook
Stars: ✭ 177 (+785%)
Mutual labels:  jupyter-kernels
Common Lisp Jupyter
A Common Lisp kernel for Jupyter along with a library for building Jupyter kernels.
Stars: ✭ 101 (+405%)
Mutual labels:  jupyter-kernels
Almond
A Scala kernel for Jupyter
Stars: ✭ 1,354 (+6670%)
Mutual labels:  jupyter-kernels
Xeus
Implementation of the Jupyter kernel protocol in C++
Stars: ✭ 693 (+3365%)
Mutual labels:  jupyter-kernels
Xeus Cling
Jupyter kernel for the C++ programming language
Stars: ✭ 2,038 (+10090%)
Mutual labels:  jupyter-kernels
Wolframlanguageforjupyter
Wolfram Language kernel for Jupyter notebooks
Stars: ✭ 542 (+2610%)
Mutual labels:  jupyter-kernels
Lfortran
Official mirror of https://gitlab.com/lfortran/lfortran. Please submit pull requests (PR) there. Any PR sent here will be closed automatically.
Stars: ✭ 220 (+1000%)
Mutual labels:  jupyter-kernels
Hydrogen
Run code interactively, inspect data, and plot. All the power of Jupyter kernels, inside your favorite text editor.
Stars: ✭ 3,763 (+18715%)
Mutual labels:  jupyter-kernels
Juniperkernel
R Kernel for Jupyter
Stars: ✭ 67 (+235%)
Mutual labels:  jupyter-kernels
Sos Notebook
Multi-language Jupyter Notebook
Stars: ✭ 118 (+490%)
Mutual labels:  jupyter-kernels
TONBUS
Telegram Open Network(TON)中文社区。Telegram 群组:https://t.me/ton_china
Stars: ✭ 15 (-25%)
Mutual labels:  ton
math-server-docker
The ideal multi-user Data Science server with Jupyterhub and RStudio, ready for Python, R and Julia languages.
Stars: ✭ 70 (+250%)
Mutual labels:  jupyter-kernels

Xeus-Fift

Build Status Docker Build Status made_with xeus Binder

Jupyter kernels for the Fift and FunC languages (and TVM assembler)

Xeus-Fift

Features

Fift kernel

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)

FunC kernel

  • 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 and print debug helper

FunC Workflow

  1. 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.
  2. You can define multiple functions in any cell, they will also be available from everywhere.
  3. 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.
  4. Alternatively, you can specify main function explicitly.
  5. You can omit return and trailing ; in the main code block - they will be added during the execution.
  6. Note, that every time you re-run a cell, all functions defined in this cell are being overwritten.

Examples

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

How to use

Run online!

Powered by awesome Binder: https://mybinder.org/v2/gh/atomex-me/xeus-fift/binder?filepath=func_cheat_sheet.ipynb

Run in docker

  1. Get the latest image from dockerhub (only when new releases are published)
docker pull atomex/xeus-fift
  1. 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
  1. Open the link from container output in your browser
  2. Save notebooks in the mapped folder in order not to loose them

Install .deb package

  1. Check out the latest release tag at https://github.com/atomex-me/xeus-fift/releases
  2. 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
  1. Check that Jupyter is now supporting Fift and FunC kernels
jupyter kernelspec list

Install from sources

  1. Ensure the following packages are installed: libssl-dev zlib1g-dev uuid-dev
  2. 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
  1. Check that Jupyter is now supporting Fift and FunC kernels
jupyter kernelspec list
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].