Skip to content

[WIP] Applying modernize-use-override #6007

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

Closed
wants to merge 3 commits into from

Conversation

bernhardmgruber
Copy link
Contributor

@bernhardmgruber bernhardmgruber commented Jul 8, 2020

  • applied clang-tidy modernize-use-override on some targets
  • replaced ClassDef by ClassDefOverride where VC complained while building Tree

@phsft-bot
Copy link

Can one of the admins verify this patch?

@bernhardmgruber
Copy link
Contributor Author

On the formatting: I tried to clang-format after running clang-tidy, but it seemed that ROOT is not properly formatted itself. There have been too many whitespace changes. So I did not run clang-format anywhere.

@amadio
Copy link
Member

amadio commented Jul 9, 2020

Try git clang-format master on your branch. That should only change what you already modified. The reason clang-format is not run in all the code at once is to avoid having lots of whitespace changes that will make backporting fixes more painful later.

@bernhardmgruber
Copy link
Contributor Author

I just pasted that in powershell thinking that surly that would not work on Windows. Surprisingly it did! :D

@bernhardmgruber bernhardmgruber changed the title [WIP] Applying modernize-use-override on Tree [WIP] Applying modernize-use-override Jul 9, 2020
@hageboeck
Copy link
Member

override, links, formatting in one PR? I guess that's too much.
I expect that people will get a lot of merge conflicts on the branches they are working on when rebasing.

Further, some sub-projects use different formatting, so a global clang-format is maybe not the right thing to do. I personally have the IDE fix only the lines that have been worked on, so it gets the job done more slowly.

@bernhardmgruber
Copy link
Contributor Author

override, links, formatting in one PR? I guess that's too much.
I expect that people will get a lot of merge conflicts on the branches they are working on when rebasing.

The symlinks are already part of a different PR, but this PR depends on that one. I will rebase it away once the referred PR is accepted.
I just formatted the lines that clang-tidy touched, as @amadio suggested. I only ran a git clang-format master and later a git clang-format HEAD~1. But you are right, it's a lot of changes. Should I remove the formatting from the PR?

Further, some sub-projects use different formatting, so a global clang-format is maybe not the right thing to do. I personally have the IDE fix only the lines that have been worked on, so it gets the job done more slowly.

I used the .clang-format files within the ROOT working copy. My IDE should have formatted only a few lines where I manually changed the ClassDef into ClassDefOverride.

@hageboeck
Copy link
Member

👍 for the links, I guess.

There's a few headers that are getting generated, are these working OK?

It's actually less file than I thought which have been touched. My rebasing would probably not be impacted by this.

@eguiraud
Copy link
Contributor

eguiraud commented Jul 9, 2020

Wow, love this!

Random unsolicited feedback: ROOT convention for commit messages is to use the imperative mood and start with a capital letter (we are not alone), and it might be useful to split the changes in different commits per repo subdirectories (tree, roofit, hist, math...) in case parts of this need to be reverted later for whatever reason.

@pcanal
Copy link
Member

pcanal commented Jul 9, 2020

clang-format is "wrong" for ROOT header files. It does not support the align the function member name that we have been using since the start of the project. And indeed large "white space" only changes should be in their own PR.

In this case, this means that (unfortunately) the work to add override includes not only "remove virtual, add override" but also add (by hand) white space to replace the virtual ('by hand' because the virtual is before the return type and the new space need to be after the return type). I/We appreciate your PR and your help with that :)

@Axel-Naumann
Copy link
Member

Axel-Naumann commented Jul 9, 2020

Could you check make dist still gives working headers in the tar file's include/ directory after this PR?

Apply clang-tidy modernize-use-override check.
Replace ClassDef by ClassDefOverride where VC complained while building Tree.
Run git clang-format HEAD~1.
@bernhardmgruber
Copy link
Contributor Author

clang-format is "wrong" for ROOT header files. It does not support the align the function member name that we have been using since the start of the project. And indeed large "white space" only changes should be in their own PR.

I temporarily turned on declaration alignment and ran clang-format. Unfortunately, member functions are also not perfectly aligned in ROOT and that confuses clang-format.

If aligning member function names is a desire, I suggest to consider trailing return types. It's beautiful! And you there is also a clang-tidy check to rewrite all signatures.

@bernhardmgruber
Copy link
Contributor Author

I removed the dependence on the symlink PR because there seems to be more to it. That should make this PR lighter.

@bernhardmgruber
Copy link
Contributor Author

Could you check make dist still gives working headers in the tar file's include/ directory after this PR?

I think this becomes obsolete now that I dropped the symlinks.

TObject *After(const TObject *obj) const;
TObject *First() const;
TObject *Last() const;
TObject * Before(const TObject *obj) const override;
Copy link
Member

Choose a reason for hiding this comment

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

If I recall correctly the coding convention says:

Suggested change
TObject * Before(const TObject *obj) const override;
TObject *Before(const TObject *obj) const override;

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Probably, I do not remember it by heart. That's what clang-format should be for, so my IDE just formats while typing and I do not need to worry about anything.

Addressing the issue at hand, it seems like combining

AlignConsecutiveDeclarations: true
PointerAlignment: Right

does not give the expected results. It seems like clang-format needs a fix here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I gave it a quick try, but it seems that issue is more complicated to fix in clang-format. There is even a FIXME in the code stating:

  // FIXME: Currently we don't handle properly the PointerAlignment: Right
  // The * and & are not aligned and are left dangling. Something has to be done
  // about it, but it raises the question of alignment of code like:
  //   const char* const* v1;
  //   float const* v2;
  //   SomeVeryLongType const& v3;

Copy link
Member

Choose a reason for hiding this comment

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

clang-format cannot be configured to replay ROOT's old coding style. The new one is supported (but is waiting for #2298 to become documented...)

@Axel-Naumann
Copy link
Member

@phsft-bot build

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@Axel-Naumann
Copy link
Member

Axel-Naumann commented Aug 5, 2020

My guess: ClassDef needs to be changed to become ClassDefOverride for all classes that use override, or else warnings (you hinted at that already).

In general I'm not sure how much we actually benefit from dressing this old code with some new clothes, also given the extensiveness of this change, which will create conflicts when backporting changes across this commit. Could we have a discussion on the benefit/cost ratio? @bernhardmgruber - what's your arguments?

@phsft-bot
Copy link

Build failed on ROOT-fedora31/noimt.
Running on root-fedora-31-2.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:9: error: ‘void ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:11: error: ‘double ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:29:35.942Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override

Warnings:

  • [2020-08-05T11:26:40.166Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.166Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.166Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.166Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.166Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.167Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.167Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.167Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.167Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:26:40.167Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 390 more

@phsft-bot
Copy link

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-2.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:32:04.813Z] FAILED: math/mathcore/CMakeFiles/MathCore.dir/src/Fitter.cxx.o
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:32:05.176Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:9: error: ‘void ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override

And 3 more

Warnings:

  • [2020-08-05T11:29:11.040Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.040Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.040Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:29:11.041Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 430 more

@phsft-bot
Copy link

Build failed on mac1015/cxx17.
Running on macphsft20.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:68: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:68: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:36:22.078Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:68: error: only virtual member functions can be marked 'override'

Warnings:

  • [2020-08-05T11:32:56.853Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:56.853Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:56.853Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:56.853Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.430Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/meta/inc/TClassGenerator.h:40:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.430Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/meta/inc/TClassGenerator.h:40:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.430Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/meta/inc/TClassGenerator.h:40:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.430Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/meta/inc/TClassGenerator.h:40:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.430Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TObjectTable.h:71:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:32:57.431Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/core/cont/inc/TObjectTable.h:71:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 2547 more

@phsft-bot
Copy link

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on ROOT-performance-centos7-multicore/default.
Running on olhswep22.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override
  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override
  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:9: error: ‘void ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override
  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:11: error: ‘double ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override
  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override
  • [2020-08-05T11:37:16.360Z] /data/sftnight/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked override, but does not override

Warnings:

  • [2020-08-05T11:35:54.140Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.140Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.140Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.140Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:35:54.141Z] /data/sftnight/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 388 more

@phsft-bot
Copy link

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:52:45.261Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:52:45.261Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:52:45.262Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:9: error: ‘void ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:52:45.262Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:11: error: ‘double ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:52:45.262Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T11:52:45.262Z] /home/sftnight/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override

Warnings:

  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:50:12.368Z] /home/sftnight/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 390 more

@phsft-bot
Copy link

Build failed on mac1014/python3.
Running on macphsft17.dyndns.cern.ch:/build/jenkins/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T11:56:53.567Z] FAILED: math/mathcore/CMakeFiles/G__MathCore.dir/G__MathCore.cxx.o
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:68: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:68: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:53.845Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:68: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:55.590Z] FAILED: math/mathcore/CMakeFiles/MathCore.dir/src/Fitter.cxx.o
  • [2020-08-05T11:56:55.883Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:52: error: only virtual member functions can be marked 'override'
  • [2020-08-05T11:56:55.883Z] /build/jenkins/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:68: error: only virtual member functions can be marked 'override'

And 10 more

Warnings:

  • [2020-08-05T11:55:25.177Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:25.177Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:25.177Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:25.177Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TArrayL64.h:55:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.004Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TExMap.h:81:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.004Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TExMap.h:81:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.004Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TExMap.h:81:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.004Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TExMap.h:81:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.004Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TObjectTable.h:71:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T11:55:26.005Z] /build/jenkins/workspace/root-pullrequests-build/root/core/cont/inc/TObjectTable.h:71:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 2418 more

@phsft-bot
Copy link

Build failed on ROOT-ubuntu16/nortcxxmod.
Running on sft-ubuntu-1604-4.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T13:02:34.123Z] FAILED: /usr/bin/ccache /usr/bin/c++ -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/v7/inc -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc -Iinclude -I/mnt/build/workspace/root-pullrequests-build/root/core/unix/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clingutils/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/textinput/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/thread/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/zip/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/rint/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/meta/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/gui/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/cont/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/foundation/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/base/inc -Iginclude -I/mnt/build/workspace/root-pullrequests-build/root/core/imt/inc -Iexternals/mnt/build/workspace/root-pullrequests-build/install/include -UNDEBUG -fdiagnostics-color=always -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -DNDEBUG -fPIC -std=c++11 -MD -MT math/mathcore/CMakeFiles/G__MathCore.dir/G__MathCore.cxx.o -MF math/mathcore/CMakeFiles/G__MathCore.dir/G__MathCore.cxx.o.d -o math/mathcore/CMakeFiles/G__MathCore.dir/G__MathCore.cxx.o -c math/mathcore/G__MathCore.cxx
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:129:9: error: ‘void ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/LogLikelihoodFCN.h:164:11: error: ‘double ROOT::Fit::LogLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:130:9: error: ‘void ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:34.124Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h:173:11: error: ‘double ROOT::Fit::PoissonLikelihoodFCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<double>]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:36.665Z] FAILED: /usr/bin/ccache /usr/bin/c++ -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/unix/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clingutils/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/textinput/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/thread/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/zip/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/rint/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/clib/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/meta/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/gui/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/cont/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/foundation/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/base/inc -Iginclude -I/mnt/build/workspace/root-pullrequests-build/root/math/mathcore/v7/inc -I/mnt/build/workspace/root-pullrequests-build/root/core/imt/inc -isystem externals/mnt/build/workspace/root-pullrequests-build/install/include -UNDEBUG -fdiagnostics-color=always -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -DNDEBUG -fPIC -std=c++11 -MD -MT math/mathcore/CMakeFiles/MathCore.dir/src/Fitter.cxx.o -MF math/mathcore/CMakeFiles/MathCore.dir/src/Fitter.cxx.o.d -o math/mathcore/CMakeFiles/MathCore.dir/src/Fitter.cxx.o -c /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/src/Fitter.cxx
  • [2020-08-05T13:02:36.665Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:124:9: error: ‘void ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::Gradient(const double*, double*) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override
  • [2020-08-05T13:02:36.665Z] /mnt/build/workspace/root-pullrequests-build/root/math/mathcore/inc/Fit/Chi2FCN.h:154:11: error: ‘double ROOT::Fit::Chi2FCN<DerivFunType, ModelFunType>::DoDerivative(const double*, unsigned int) const [with DerivFunType = ROOT::Math::IBaseFunctionMultiDimTempl<double>; ModelFunType = ROOT::Math::IParametricFunctionMultiDimTempl<Vc_1::Vector<double, Vc_1::VectorAbi::Sse> >]’ marked ‘override’, but does not override

And 10 more

Warnings:

  • [2020-08-05T12:59:48.270Z] /mnt/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TApplication.h:163:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'ShowMembers' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBenchmark.h:56:4: warning: 'Streamer' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  • [2020-08-05T12:59:48.271Z] /mnt/build/workspace/root-pullrequests-build/build/include/TBuffer3D.h:121:4: warning: 'IsA' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

And 558 more

@Axel-Naumann
Copy link
Member

We cannot merge this as is. @bernhardmgruber what do you want to do with this? Can we close this, discuss, and then do what we converged on? I don't think this "monster PR" :-) will survive without conflicts for long, and it still needs a ton of work.

@bernhardmgruber
Copy link
Contributor Author

My guess: ClassDef needs to be changed to become ClassDefOverride for all classes that use override, or else warnings (you hinted at that already).

AFAIK I tried to apply this already in many places.

In general I'm not sure how much we actually benefit from dressing this old code with some new clothes, also given the extensiveness of this change, which will create conflicts when backporting changes across this commit. Could we have a discussion on the benefit/cost ratio?

Well, that raises an even more general question: if there is little commitment to touch/refactor/maintain old code, what is your long term strategy for these parts of ROOT then? Will these old codes be deprecated/removed then? Code rot is a fact and it gets only worse over time. And so far I have the feeling ROOT will still be there in the next decade or the one after. And if these codes stay around than they should be maintained and improved occasionally.

Of course maintenance takes resources. And I know that nobody ever has time to do it. But leaving everything as is in the face of possible improvements also has a cost that we pay be doing nothing. For this particular PR, if I jump into a header file, I do not know which methods are overriding something from a base class. But this knowledge helps me when reading new code. Now I pay the cost for having to look this information up in the inheritance hierarchy.

In recent years we are lucky enough to even have automatic refactoring tools. They are far from perfect. But they are good. And applying them has very little cost for a moderate benefit. So I think at least those automatic refactorings should be applied to old code. Regular manual refactoring of production code would be even better, but I know I live in a dream world here ;)

There is also the broken window theory, stating that code with bad quality encourages people working on it to also tolerate new code to be bad. I just started here in ROOT and I already heard from a few people that ROOT code is bad and I should have low expectations. So if we would improve the old code just a little we could also improve this mindset by a bit 👍

So please consider to apply at least automatic refactorings!

We cannot merge this as is. @bernhardmgruber what do you want to do with this? Can we close this, discuss, and then do what we converged on? I don't think this "monster PR" :-) will survive without conflicts for long, and it still needs a ton of work.

@hageboeck mentioned somewhere to me that he would prefer to have smaller PRs just targeting subparts of ROOT, even if the changes are simple/automatic. I guess I could break up the PR into smaller pieces. And maybe just focus on the parts I am involved with the most. However, I would like to see clang-tidy checks enabled on the entire code at some point. So we can raise the quality bar just a little bit more.

@hageboeck
Copy link
Member

hageboeck commented Aug 7, 2020

Backporting / Could we have a discussion on the benefit/cost ratio?

I assume that the cost of backporting is not too high. @Axel-Naumann?
Backports will often be bug fixes, and these will often be only in the implementation. I guess it's rather rare that there are big changes in the headers. If this assumption is true, we can have the overrides in old code.

Maybe also something to be discussed in the team meeting.

What I would do personally, though, is to leave formatting out of the game. I set up my IDE to do formatting on lines I work on, but it leaves the rest untouched. That improves diffs a lot. Just imagine what somebody would see who wants to diff last Fridays ROOT against today's.
Along the same lines, imagine what happens if somebody rebases their dev branch on top of the formatting changes. That will be a hell of a merge session. If it's just overrides that appear in function declarations, it's probably a fair game.

@Axel-Naumann
Copy link
Member

Let's discuss on Monday during the team meeting. Would be great if you can make it, @bernhardmgruber !

@bernhardmgruber
Copy link
Contributor Author

In today's team meeting we discussed this PR and reached the following conclusion:

  • This PR is too big and the many changes will hinder backporting.
  • To avoid the many formatting changes, I shall apply this clang-tidy fix and leave the virtual keyword, so the function names do not move.
  • No clang-format.
  • For this and future automatic refactorings, we will focus on the newer parts of ROOT, which are in .hxx files and source files starting with 'R' (with some exceptions).
  • We will try these refactorings on parts of ROOT first, like the Tree library.
  • I will close this PR and open a new one with a new changeset.

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.

7 participants