16:55
-
17:15
-
17:15
Day 1
Building Interactive C/C++ workflows in Jupyter through clang-repl
<p>C++ remains central to high-performance and scientific computing, yet interactive workflows for the language have historically been fragmented or unavailable. Developers rely on REPL-driven exploration, rapid iteration, rich visualisation, and debugging, but C++ lacked incremental execution, notebook integration, browser-based execution, and JIT debugging. With the introduction of <a href="https://clang.llvm.org/docs/ClangRepl.html">clang-repl</a>, LLVM now provides an upstream incremental compilation engine built on Clang, the IncrementalParser, and the ORC JIT.</p>
<p>This talk presents how the Project Jupyter, Clang/clang-repl, and Emscripten communities collaborated to build a complete, upstream-aligned interactive C++ environment. <a href="https://github.com/compiler-research/xeus-cpp">Xeus-Cpp</a> embeds clang-repl as a native C/C++ Jupyter kernel across Linux, macOS, and Windows, enabling widgets, plots, inline documentation, and even CUDA/OpenMP use cases. <a href="https://compiler-research.org/xeus-cpp-wasm/lab/index.html">Xeus-Cpp-Lite</a> extends this model to the browser via WebAssembly and JupyterLite, compiling LLVM and Clang to WASM and using wasm-ld to dynamically link shared wasm modules generated per cell at runtime.</p>
<p>To complete the workflow, Xeus-Cpp integrates LLDB-DAP through clang-repl’s out-of-process execution model, enabling breakpoints, stepping, variable inspection, and full debugging of JIT-generated code directly in JupyterLab.</p>
<p>The talk will detail how clang-repl, ORC JIT, wasm-ld, LLDB, and LLDB-DAP come together to deliver a modern, sustainable interactive C++ workflow on both desktop and browser platforms, with live demonstrations of native and WebAssembly execution along the way.</p>
<p><strong>LLVM Components Involved :</strong> clang, clang-repl, orc jit, wasm-ld, lldb, lldb-dap.</p>
<p><strong>Target Audience :</strong> Researchers, Educators, Students, C/C++ Practitioners</p>
<p><strong>Note :</strong> Please make sure to check out the demos/links added to the Resource section. These demos would be shown live in the talk.</p>