Skip to content

[IO] Deprecate TStreamerElement::ESTLtype in favor of ROOT::ESTLType#7234

Closed
eguiraud wants to merge 2 commits into
root-project:masterfrom
eguiraud:deprecate_streamelem_stltype
Closed

[IO] Deprecate TStreamerElement::ESTLtype in favor of ROOT::ESTLType#7234
eguiraud wants to merge 2 commits into
root-project:masterfrom
eguiraud:deprecate_streamelem_stltype

Conversation

@eguiraud

@eguiraud eguiraud commented Feb 17, 2021

Copy link
Copy Markdown
Contributor

I don't know if this is desirable or not, but I figured I would raise the issue. TStreamerElement::ESTLtype duplicates ROOT::ESTLType exactly, but with a lower-case t in type. It confused me when I found this out (and it turns out that I forgot to update TStreamerElement::ESTLtype when I updated ROOT::ESTLType).

I could not find any usage of TStreamerElement::ESTLType in ROOT, and ROOT compiles just fine without the enum, but just in case someone out there is using it, I'm proposing to deprecate it in 6.24 and remove it in 6.26.

Feel free to close this PR if you don't think this makes sense.

UPDATE:

after discussion with @pcanal we decided that deprecation/removal is the right thing to do, and I extended the patch to TDictionary and TClassEdit. TBufferJSON had some usage of TClassEdit::ESTLType which has now been substituted with ROOT::ESTLType.

UPDATE 2:

Since gcc 5 (the system compiler on Ubuntu 16) does not support deprecation of enumerators, I'm proposing to disable R__DEPRECATED for that gcc version (it was already disabled for gcc 5.1 and 5.2 due to a different issue).

@eguiraud eguiraud force-pushed the deprecate_streamelem_stltype branch from cfe48af to 4880869 Compare February 17, 2021 16:19
@eguiraud eguiraud requested a review from linev February 17, 2021 16:19
@eguiraud eguiraud self-assigned this Feb 17, 2021
@eguiraud

Copy link
Copy Markdown
Contributor Author

What the heck ubuntu16 😑

@eguiraud

Copy link
Copy Markdown
Contributor Author

gcc 5.3, used in Ubuntu 16, does not support __attribute__((deprecated)) in that position: https://godbolt.org/z/jz1ove

@eguiraud eguiraud force-pushed the deprecate_streamelem_stltype branch from 3d1be6b to 42cc0ec Compare February 17, 2021 16:59
@eguiraud

Copy link
Copy Markdown
Contributor Author

Mmmmh ok I have to figure out where std::is_same<unsigned int, std::underlying_type<TDictionary::ESTLType>::type>::value; comes from in PyROOT.

@eguiraud eguiraud force-pushed the deprecate_streamelem_stltype branch from 42cc0ec to 1c26638 Compare February 23, 2021 11:16
@eguiraud eguiraud marked this pull request as draft June 28, 2022 15:13
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
A few classes have redundant declarations of `ESTLType` or `ESTLtype`
enums, that over time have been centralized in `ROOT::ESTLType`.
This patch deprecates usage of the historical copies in favor of the
common `ROOT::ESTLType`.

To do:
- PyROOT uses TDictionary::ESTLType somewhere, might be in cppyy's core
The latter enumerators are now deprecated.
@guitargeek guitargeek force-pushed the deprecate_streamelem_stltype branch from 1c26638 to ab7e598 Compare January 16, 2024 22:27
@phsft-bot

Copy link
Copy Markdown

Starting build on ROOT-performance-centos8-multicore/soversion, ROOT-ubuntu2204/nortcxxmod, ROOT-ubuntu2004/python3, mac12arm/cxx20, windows10/default
How to customize builds

@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@root-project root-project deleted a comment from phsft-bot Jan 16, 2024
@guitargeek

Copy link
Copy Markdown
Contributor

I have updated the PR by rebasing on master, refreshing the version in the deprecation macros, and dropping the GCC 5 workaround because the minimum supported version is GCC 8 anyway:
https://root.cern/install/dependencies/

@eguiraud

Copy link
Copy Markdown
Contributor Author

❤️

@github-actions

Copy link
Copy Markdown

Test Results

     9 files       9 suites   1d 22h 8m 43s ⏱️
 2 490 tests  2 447 ✅ 0 💤  43 ❌
21 378 runs  21 089 ✅ 0 💤 289 ❌

For more details on these failures, see this check.

Results for commit ab7e598.

@pcanal

pcanal commented Jan 23, 2024

Copy link
Copy Markdown
Member

It looks like we need a companion roottest PR.

@guitargeek

Copy link
Copy Markdown
Contributor

Replaced by #15487.

@guitargeek guitargeek closed this May 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants