Vipul Cariappa

Intern

email: vipulcariappa[at]gmail[dot]com

Education: B.Tech in Computer Science Engineering, Ramaiah University of Applied Sciences, India

Ongoing project: On-Demand Parsing in Clang
A typical C++ translation unit often includes a substantial number of header files, while only a limited subset of the declarations and definitions contained within those headers is actually utilized. Despite this, modern compilers such as Clang eagerly parse the entirety of the included code. This approach leads to unnecessary computational overhead, resulting in increased compilation time and higher memory consumption.
The objective of this project is to design and implement a mechanism within the Clang compiler that defers the parsing of function and class definitions until the point at which they are first required. By introducing this form of on-demand parsing, the compiler can avoid processing unused code paths, thereby improving efficiency.

Project Proposal: URL

Mentors: Vassil Vassilev, Aaron Jomy

Ongoing project: Adopting CppInterOp in cppyy
cppyy is a Python library that provides fully automatic, dynamic Python-C++ bindings using the cling based C++ interpreter/incremental compiler. Cling itself is based on the LLVM toolchain. Compiler Research maintains its own fork of cppyy. The main motivation of this fork is to directly use the LLVM’s clang-REPL for C/C++ interpreter/incremental compiler. This reduces the burden on the developers to maintain a separate fork of LLVM like the cling interpreter. The Compiler Research’s cppyy fork’s migration to using the upstream clang-REPL is an ongoing effort. The migration is incomplete, and many tests fail in the Compiler Research’s fork. I aim to fix as many failing tests as possible to complete the transition to use the clang-REPL compiler backend.
Once the migration to use the clang-REPL backend is complete, I plan on implementing a multi-language Jupyter Kernel on top of xeus-cpp. This multi-language kernel will support using both C++ and Python for code execution and will provide the ability for the users to seamlessly use symbols defined in each other.

Project Proposal: URL

Mentors: Vassil Vassilev, Aaron Jomy, Wim Lavrijsen, Jonas Rembser

Presentations



On-Demand Parsing in Clang, Slides, Team Meeting, 24 June 2026
Progress December: Adopting CppInterOp in cppyy, Slides, Team Meeting, 18 December 2024
Adopting CppInterOp in cppyy, Slides, Team Meeting, 11 September 2024