Skip to content

[ntuple] initial support for I/O rules on SoA classes - #23311

Merged
jblomer merged 6 commits into
root-project:masterfrom
jblomer:ntuple-soa-rules
Oct 8, 2026
Merged

jblomer merged 6 commits into
root-project:masterfrom
jblomer:ntuple-soa-rules

Conversation

@jblomer

@jblomer jblomer commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Adds support for rename and whole-object rules.

Part of #19230

@jblomer
jblomer requested review from enirolf, hahnjo and pcanal September 9, 2026 11:39
@jblomer jblomer self-assigned this Sep 9, 2026
@jblomer
jblomer requested a review from silverweed as a code owner September 9, 2026 11:39
Comment thread tree/ntuple/test/SoAFieldLinkDef.h Outdated
@github-actions

github-actions Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Test Results

    24 files      24 suites   3d 23h 5m 48s ⏱️
 3 882 tests  3 881 ✅ 0 💤 1 ❌
83 116 runs  83 115 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit 60be7b4.

♻️ This comment has been updated with latest results.

@hahnjo hahnjo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with some minor comments, and one general question: do we require users to create rename rules for "compatible" SoA layouts that have the same record field? In principle, I think we could detect this and "do the right thing"

Comment thread tree/ntuple/inc/ROOT/RField.hxx Outdated
Comment thread tree/ntuple/inc/ROOT/RField.hxx Outdated
Comment thread tree/ntuple/src/RFieldMeta.cxx
Comment thread tree/ntuple/test/ntuple_soa.cxx
Comment thread tree/ntuple/inc/ROOT/RField/RFieldSoA.hxx Outdated
Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
@jblomer
jblomer force-pushed the ntuple-soa-rules branch 3 times, most recently from 545a884 to 6ce0818 Compare October 7, 2026 22:09
@jblomer

jblomer commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

LGTM with some minor comments, and one general question: do we require users to create rename rules for "compatible" SoA layouts that have the same record field? In principle, I think we could detect this and "do the right thing"

You're right, we actually don't need the rename rules on the SoA types. Only on the underlying record types. I clarified this in the tests.

Add a new RRuleField internal base class containing the code dealing
with I/O customization rules. This class is initially used by RClassField
and will later be reused by RSoAField.
Adds support for rename and whole-object rules. Errors out when rules
with targets or sources are found.
... and remove the GetInMemoryClass() virtual method.
@jblomer
jblomer merged commit 69dd699 into root-project:master Oct 8, 2026
34 of 36 checks passed
@jblomer
jblomer deleted the ntuple-soa-rules branch October 8, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants