Skip to content

Conversation

@linev
Copy link
Member

@linev linev commented May 4, 2020

Replace includes by forward declarations were class definitions not required.
In places where includes may be required by user code keep it under R__LESS_INCLUDES definition.
RooFit changes extracted into #5542 - there was need for rebase after recent changes

@phsft-bot
Copy link

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

@phsft-bot
Copy link

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

Failing tests:


#include "RtypesCore.h"
#include <stdarg.h>
#include "Rtypes.h"
Copy link
Member

Choose a reason for hiding this comment

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

That is incorrect. RtypesCore.h allows us to include this header in -fno-rtti context.

In general, I am not quite sure if we should be doing such a header cleanup...

Copy link
Member Author

Choose a reason for hiding this comment

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

I put here Rtypes.h to also access RConfigure.h immediately, but ok - one can do it explicitly. I will change it.

// //
//////////////////////////////////////////////////////////////////////////

#include "Rtypes.h"
Copy link
Member

Choose a reason for hiding this comment

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

Likewise.

@linev linev force-pushed the less_includes3 branch from 90f8cd9 to 3b9ddc3 Compare May 4, 2020 18:57
@phsft-bot
Copy link

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

@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.

Failing tests:

@phsft-bot
Copy link

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

@phsft-bot
Copy link

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

Errors:

  • [2020-05-05T09:57:03.459Z] CMake Error at /build/workspace/root-pullrequests-build/rootspi/jenkins/root-build.cmake:914 (message):

@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-05-05T09:57:05.855Z] CMake Error at /home/sftnight/build/workspace/root-pullrequests-build/rootspi/jenkins/root-build.cmake:914 (message):

@hageboeck
Copy link
Member

@linev
I tried to resolve the conflicts on github. The editing mode is actually nice, but I'm not sure if this merge commit that now appeared is what we want. It probably makes sense to squash this into the roofit commit of your branch.

@linev
Copy link
Member Author

linev commented May 5, 2020

@hageboeck Do you want to rebase PR against master? If yes, I can do it

@linev
Copy link
Member Author

linev commented May 5, 2020

@hageboeck Lets do better. I can apply roofit changes as separate PR. And then rebase this one

@phsft-bot
Copy link

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

Errors:

  • [2020-05-05T10:06:28.916Z] CMake Error at C:/build/workspace/root-pullrequests-build/rootspi/jenkins/root-build.cmake:914 (message):

@phsft-bot
Copy link

Build failed on ROOT-fedora29/python3.
Running on root-fedora29-3.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Failing tests:

@linev linev force-pushed the less_includes3 branch from 9798b00 to 59510f4 Compare May 6, 2020 07:07
@phsft-bot
Copy link

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

@phsft-bot
Copy link

Build failed on ROOT-fedora29/python3.
Running on root-fedora29-3.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Failing tests:

@linev linev force-pushed the less_includes3 branch from 59510f4 to ab826c9 Compare May 7, 2020 16:13
@phsft-bot
Copy link

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

@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.

Failing tests:

@phsft-bot
Copy link

Build failed on ROOT-fedora29/python3.
Running on root-fedora29-2.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Failing tests:

@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.

Failing tests:

@linev
Copy link
Member Author

linev commented May 11, 2020

@phsft-bot build

@phsft-bot
Copy link

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

@linev linev force-pushed the less_includes3 branch from ab826c9 to a361721 Compare May 13, 2020 20:49
@phsft-bot
Copy link

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

#include "TDirectory.h"
#include "TList.h"
#include "RConfigure.h"
// #include "TList.h" // included in TDirectory.h
Copy link
Member

Choose a reason for hiding this comment

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

But it is just directly here, so we ought to keep it.

Copy link
Member Author

Choose a reason for hiding this comment

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

See TDirectory.h - "TList.h" included only without R__LESS_INCLUDES. Means in the dev build TList is just forward declarations. I just want to avoid same construct here.

TVirtualPad *GetSelectedPad() const { return fSelectPad; }
Int_t GetNclasses() const { return fClasses->GetSize(); }
Int_t GetNtypes() const { return fTypes->GetSize(); }
Int_t GetNclasses() const;
Copy link
Member

Choose a reason for hiding this comment

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

Why make that change?

Copy link
Member Author

Choose a reason for hiding this comment

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

Because TList.h is not included with R__LESS_INLCUDES - see my previous comment

Copy link
Member

Choose a reason for hiding this comment

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

I see. This illustrate a trade off: small speedup at parsing time (removing the the include of TList.h for the (rare?) file that uses TROOT but not TList) vs a small performance increase (for the code that uses GetNclasses and GetNtypes).

Whether one is better than the other is .. well .. hard to know (and in probably in both case the actual performance change is likely indistinguishable) .. I would probably not have made that change but reverting it is also probably not worth it.

Copy link
Member Author

Choose a reason for hiding this comment

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

@pcanal Should I revert these changes in TROOT.h?

Copy link
Member

Choose a reason for hiding this comment

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

Up to you in the end. I slightly lean for revert but not if it is too much hassle.

Copy link
Member Author

Choose a reason for hiding this comment

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

I prefer to keep changes. These methods are not crucial for performance.

@linev linev merged commit 8dc556f into root-project:master May 28, 2020
@linev linev deleted the less_includes3 branch May 28, 2020 18:38
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.

5 participants