-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[cxxmodules] Also load TreePlayer to fix TDataFrame tests. #1328
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
Conversation
Without modules, many STL and libc headers are automatically provided by ROOT via the attached ROOT PCH. This means that we don't need to have autloading or explicit includes for STL or libc headers when running with the PCH attached. This leads to making user code like this working in ROOT: ```C++ // no includes here that provides assert int foo() { assert(false); } ``` However, as the modules don't come with this big PCH, we are now suddenly in the situation where we can't resolve things such as `assert`. We also can't rely on the normal autoloading of ROOT as those declarations were actually never autoloaded, but just provided by the PCH. To simulate this behavior with modules, we automatically load those headers that we expect to have in the ROOT PCH (which are probably the STL and libc headers).
If we preload the core modules that can contain complex.h, we break a lot of tests that name variables or template arguments I.
It seems automatically loading TreePlayer when TDataFrame is used without the appropriate include never worked. This was previously fixed by just adding TreePlayer (which contains TDF) to the PCH. As always, let's recreate this hack with modules to make restore the old behavior with modules turned on.
Starting build on |
@phsft-bot build with flags -Druntime_cxxmodules=On |
Starting build on |
Build failed on mac1012/native. Errors:
And 10 more |
Build failed on centos7/gcc49. Errors:
Warnings:
And 7 more |
Build failed on slc6/gcc62. Errors:
Warnings:
And 7 more |
Build failed on slc6/gcc62. Errors:
Warnings:
And 7 more |
Build failed on slc6/gcc49. Errors:
Warnings:
And 7 more |
@phsft-bot build just on slc6/gcc62 with flags -Druntime_cxxmodules=On -Dctest_test_exclude_none=On |
Starting build on |
Build failed on slc6/gcc62. Errors:
Warnings:
And 7 more |
We first need to fix the dependencies that TreePlayer is built before we try to load it. |
That would require building quite a lot of root... |
EDIT: Nvm, that would be the same principle with a horrible implementation. |
Depends on: #1317, adds only one other commit: