Reflection-based Python-C++ language bindings: cppyy - Integrate the Cling backend into PyPy/cppyy
- Mentors
- wlav
- Organization
- CERN SFT
For the purpose of High Energy Physics (HEP) Experiments, the framework required should be able to support the scale and complexity of HEP codes. cppyy is such a framework that provides a fully automated, run time, language bridge between Python and C++. For cppyy, both the implementations - CPython (the default byte-code Python interpreter written in C) and PyPy (a Python interpreter written in Python language) - support CINT, an interpreter for C/C++ for rapid development. Moreover, the CPython version also supports Cling. Cling is an interactive C++ interpreter, built on the top of Clang/LLVM that provides a high-performance alternative to the C++ interpreter in ROOT called CINT.
The purpose of this project is (1) to integrate the Cling back-end into PyPy implementation; while (2) ensuring maximum reuse of existing code on both CPython/cppyy and PyPy/cppyy implementations for better compatibility and maintenance; and (3) implement a method for distribution of Clang modules with the standard Python distribution tools using pip, the Python Packaging Authority recommended tool for managing and installing packages.