To try out xeus-clang-repl interactively in your web browser, just click on the binder link:
Clone the repository locally and execute ./run-docker.sh
xeus-clang-repl
integrates clang-repl with the xeus protocol and is a platform for C++ usage in Jupyter Notebooks. The demo developed in this repository shows a Python - CPP integraton in Jupyter Notebooks, where variables can be transfered between Python and CPP.
Disclaimer: this work is highly experimental and might not work beyond the examples provided
To ensure that the installation works, it is preferable to install xeus-clang-repl
in a
fresh environment. It is also needed to use a
miniforge or
miniconda installation because with the full
anaconda you may have a conflict with the zeromq library
You will first need to install dependencies
mamba install cmake cxx-compiler nlohmann_json cppzmq xtl jupyterlab clangdev=14 cxxopts pugixml -c conda-forge
Note: Use a mamba environment with python version >= 3.11 for fetching clang-versions
The safest usage is to create an environment named xeus-clang-repl
mamba create -n `xeus-clang-repl`
source activate `xeus-clang-repl`
git clone https://github.com/llvm/llvm-project
git checkout -b release/15.0x
git apply patches/llvm/clang15-D127284.patch
mkdir build
cd build
cmake -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" ../llvm
make -j n
cd ..
git clone https://github.com/compiler-research/xeus-clang-repl.git
mkdir build
cd build
cmake ../ -DClang_DIR=/usr/lib/llvm-15/build/lib/cmake/clang\
-DLLVM_DIR=/usr/lib/llvm-15/build/lib/cmake/llvm
make -j n
To try out xeus-clang-repl interactively in your web browser, just click on the binder link (Warning! This is Nightly build):
To get started with using xeus-clang-repl
, The Documentation work is under Development.
xeus-clang-repl
depends on
xeus-clang-repl |
xtl |
clang |
pugixml |
cppzmq |
cxxopts |
nlohmann_json |
dirent (windows only) |
---|---|---|---|---|---|---|---|
~0.1.0 | >=0.7.0,<0.8.0 | >=16,<17 | ~1.8.1 | ~4.3.0 | >=3.0.0 | >=3.6.1,<4.0 | >=2.3.2,<3 |
This software is licensed under the Apache License
. See the LICENSE
file for details.