Speaker
Description
The ROOT Python interfaces are a cornerstone of HENP analysis workflows, enabling rapid development while retaining access to high-performance C++ code. In this contribution, we present a major upcoming update to the backend powering the dynamic C++ bindings generation, based on the new CppInterOp library.
For ROOT users, this migration translates directly into a better experience: faster bindings creation in several cases, reduced memory consumption, and improved correctness when using advanced C++ language features. The new backend relies more directly on the Clang API to understand C++ semantics directly, eliminating a number of long-standing issues caused by heuristic approaches and string-based type manipulation. This will also make it easier to support upcoming C++ language features and implement sophisticated Pythonizations.
Beyond immediate gains, this work prepares ROOT's Python interfaces for future evolution. By supporting both Cling and Clang-REPL via CppInterOp, the new Python interface backend aligns with ongoing efforts towards a transparent migration from Cling to Clang-REPL in ROOT, while continuing to support existing user code.
Furthermore, our work showcases the latest developments in CppInterOp, enabling cutting-edge R&D in the domain of language bindings by providing better encapsulation of C++ reflection via Clang.
We describe the motivation for the updated ROOT Python bindings migration, highlight user-visible improvements in performance and memory usage, and demonstrate how the new backend strengthens ROOT as a future-proof framework for HENP data analysis in Python.