Python-C++ Bindings Meeting
Discussion on developments in Python-C++ bindings surrounding the Cppyy project, and broader interactive C++ as a service based on the CppInterOp project.
New participant: PP
## Roundtable
Aaron:
* presentation and tutorial on CppInterop on EuroLLVM in Dublin, Ireland
* CppInterOp upgrade landed in ROOT
* Working on cppyy upgrade in ROOT with Vipul and Jonas
Jonas:
* Nothing to report, worked on RooFit features for the upcoming ROOT 6.40
Vipul:
* Worked on the overload resolution, let's talk about some expected behavior
in corner cases later in the meeting
Vassil:
* Looked more again into the cppyy upgrade for ROOT
* Working on the diagnostics system, type getting with a "fast" and "slow"
path
* Added tracing system to CppInterOp. Since everything is done with opaque
pointers that can only be used in in the context of the CppInterOp API, we
can trace everything that happens. This is useful for producing
reproducers, and also to get performance summaries.
* Adding guard rails for AI development, e.g. address sanitizer builds,
CLAUDE.md, reviewer personalities, and other CI additions.
Silia:
* Wrapped up interface changes of the ROOT data loader for 6.40
* Next preparing for CHEP and working on examples with Martin, Anna, and
people from NGT
Emery (CTC):
* Back after 3 weeks
* Working on the unordered map iterator problem
* It would be helpful to get some pointers on where to look for where to fix it
* Vassil: do you want to organize a hacking session on this?
* Emery: should be easy to figure out, I just need to know where to look
* (ten minutes of technical discussions on this are following)
* Benefitted from Vassils tracer when rebasing on top of the newest libinterop fork
Discussion with Vipul:
Some cases that would give you errors with the new overload resolution:
* foo(int) and foo(float) overloads called with Python string now don't resolve
* foo(int*) and foo(float*) overloads will give you ambiguity error now,
instead of picking the random first overload
* Vassil: should we have a backwards compatibility mode that picks the
first overload?
* Jonas: not clear yet. It depends on how much these patterns are used in
the wild. Running the ROOT and CMSSW CI with the new overload
resolution would tell us more.
* Discussion on foo(std::size_t) and foo(std::complex<double>)