Skip to content

alexander-penev/xeus-clang-repl

 
 

Repository files navigation

Try it online

To try out xeus-clang-repl interactively in your web browser, just click on the binder link:

Binder

Xeus-Clang-REPL

Clone the repository locally and execute ./run-docker.sh

Description

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

Installation

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

Try it online (for developers)

To try out xeus-clang-repl interactively in your web browser, just click on the binder link (Warning! This is Nightly build):

Binder

Alt text

Documentation

To get started with using xeus-clang-repl, The Documentation work is under Development.

Dependencies

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

License

This software is licensed under the Apache License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 55.8%
  • C++ 27.1%
  • CMake 9.4%
  • Dockerfile 7.1%
  • Other 0.6%