Python-C++ Bindings Meeting

Europe/Zurich
Aaron Jomy (CERN)
Description

Discussion on developments in Python-C++ bindings surrounding the Cppyy project, and broader interactive C++ as a service based on the CppInterOp project.

Zoom Meeting ID
67024200187
Host
Aaron Jomy
Passcode
41781462
Useful links
Join via phone
Zoom URL

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>)

There are minutes attached to this event. Show them.
    • 16:00 16:30
      Round Table 30m
    • 16:30 17:00
      AOB 30m