Skip to content

[cppinterop] Upgrade to latest for cppyy migration#22728

Open
aaronj0 wants to merge 4 commits into
root-project:masterfrom
aaronj0:cppinterop-upgrade
Open

[cppinterop] Upgrade to latest for cppyy migration#22728
aaronj0 wants to merge 4 commits into
root-project:masterfrom
aaronj0:cppinterop-upgrade

Conversation

@aaronj0

@aaronj0 aaronj0 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Test and land the latest upgrade, required to rebase the cppyy migration PR on top

@aaronj0 aaronj0 requested a review from guitargeek June 29, 2026 12:18
@aaronj0 aaronj0 self-assigned this Jun 29, 2026
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 12h 34m 56s ⏱️
 3 876 tests  3 875 ✅ 0 💤 1 ❌
78 826 runs  78 824 ✅ 0 💤 2 ❌

For more details on these failures, see this check.

Results for commit eb97f99.

♻️ This comment has been updated with latest results.

@vgvassilev

Copy link
Copy Markdown
Member

@aaronj0, I believe we need to also move Box.h to ROOTSYS/etc

@aaronj0

aaronj0 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

@aaronj0, I believe we need to also move Box.h to ROOTSYS/etc

Yes, I have that obvious change and more patches in the pipeline.. (adapting to the new types, etc)
Will push all at once, when my local build is green

aaronj0 added 3 commits June 29, 2026 17:35
The latest CppInterOp upgrade introduces opaque-handle structs Cpp::ObjectRef, Cpp::DeclRef, and Cpp::InterpRef (CppInterOpTypes.h) to replace void*/typedef pointer arguments.
The latest CppInterOp upgrade changes UseExternalInterpreter
to also install a CppInteropDiagConsumer onto Cling's DiagnosticsEngine.
Rootcling later wraps the current diag client with CheckModuleBuildClient via
DiagnosticsEngine::setClient which deletes CppInterOp's previously-owned client.
This leads to CheckModuleBuildClient holding a dangling fChild pointer.

Without this patch, at cling::Interpreter::ShutDown:

  #0  0x0000000000000000
  #1  CheckModuleBuildClient::EndSourceFile  rootcling_impl.cxx:3517
  root-project#2  cling::Interpreter::ShutDown            Interpreter.cpp:590
  root-project#3  cling::Interpreter::~Interpreter        Interpreter.cpp:394

crashes. Since rootcling does not use CppInterOp, we can avoid registering the
interpreter with CppInterOp if we are running in rootcling.
@aaronj0 aaronj0 requested review from dpiparo and pcanal as code owners June 29, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants