-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[ntuple] improve type name renormalization #19323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
e3747e0
to
3153961
Compare
Test Results 21 files 21 suites 3d 11h 37m 56s ⏱️ For more details on these failures, see this check. Results for commit 26d39e5. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small comment + a warning from the compiler
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The approach looks good to me. We need to add handling of the __1
inline namespace of libc++, and find a solution for the ATLAS DataVector
with suppressed template arguments.
Maybe related: https://its.cern.ch/jira/browse/ROOT-5862 |
3153961
to
b4d5353
Compare
c6e2dfa
to
3c71f5e
Compare
Add clarifications on type name normalization wrt. - type name resolution of stdlib types - treatment of C style fixed-size arrays. Both points follow implicitly from the specification of the supported C++ types but it is useful to add them explicitly to the type name normalization rules. Since in the process also bugs were discovered related to fixed-size arrays, we give this specification a bump in the patch version number.
Add different code path for renormalizing a demangled typeid name. Such type names come from RField<T>::TypeName(). In this case, the compiler has done already most of the normalization work and we don't need to go through ROOT meta. There are some parts ROOT meta does that we need to repeat for this case, e.g. dropping optional template arguments of stdlib containers.
29e2966
to
26d39e5
Compare
Add different code path for renormalizing a demangled typeid name. Such type names come from
RField<T>::TypeName()
. In this case, the compiler has done already most of the normalization work and we don't need to go through ROOT meta. More importantly, the result does not depend on the state of ROOT Meta, e.g. the set of loaded libraries.There are some parts ROOT meta does that we need to repeat for this case, e.g. dropping optional template arguments of stdlib containers.
Secondly, this PR clarifies and fixes normalization of C style fixed-size arrays.
Together, this makes the new patch version 1.0.0.2 of the spec and the anchor.
This PR fixes #19116