-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
v6-30 Backport cling fixes for CMS #14358
v6-30 Backport cling fixes for CMS #14358
Conversation
Starting build on |
Build failed on ROOT-ubuntu2204/nortcxxmod. Errors:
|
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.
if tests pass, we can merge.
Unfortunately the commits do not even compile with some scary error
Can this be some difference between LLVM 13 and 16 that's causing it? @vgvassilev |
Nice we need to re-solve this for 6.30... |
AutoloadLibraryMU(const std::string &Library, const llvm::orc::SymbolNameVector &Symbols) | ||
: MaterializationUnit(getSymbolFlagsMap(Symbols), nullptr), fLibrary(Library), fSymbols(Symbols) | ||
AutoloadLibraryMU(const TClingCallbacks &cb, const std::string &Library, const llvm::orc::SymbolNameVector &Symbols) | ||
: MaterializationUnit({getSymbolFlagsMap(Symbols), nullptr}), fCallbacks(cb), fLibrary(Library), fSymbols(Symbols) |
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.
: MaterializationUnit({getSymbolFlagsMap(Symbols), nullptr}), fCallbacks(cb), fLibrary(Library), fSymbols(Symbols) | |
: MaterializationUnit(getSymbolFlagsMap(Symbols), nullptr), fCallbacks(cb), fLibrary(Library), fSymbols(Symbols) |
How about that one.
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.
Let me try
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 build finishes fine on my machine, I have updated the commit
Build failed on windows10/default. Errors:
|
Test Results 9 files 9 suites 1d 11h 20m 11s ⏱️ For more details on these failures, see this check. Results for commit d4f8f6a. ♻️ This comment has been updated with latest results. |
33307cb
to
583c720
Compare
Starting build on |
thanks for the backport, I have started CMSSW tests here cms-sw#195 |
Hi @smuzaffar , thanks for your promptness! We discovered there was a small wrinkle preventing proper compilation in 6.30, I have uploaded an updated commit which should work properly literally a few minutes ago. EDIT: I checked on the linked CMSSW PR and it seems the right version of the commit was picked, so should be fine. |
Build failed on ROOT-ubuntu2204/nortcxxmod. Failing tests: |
Ok now it compiles but we get the following error in the new test input_line_49:1:21: error: unknown type name 'ROOT_7459'
int ROOT_7459 = 42; ROOT_7459++;
^
input_line_49:1:30: error: expected unqualified-id
int ROOT_7459 = 42; ROOT_7459++; |
Build failed on windows10/default. Failing tests: |
I would like to point out that this is a backport of a very generic fix, which works very well with llvm16, which is not in the branch 6.30. A solution of the issue reported by CMS was already made available in December: if you want, this is a more refined version of that. |
Somehow the parsing seems broken. We should probably try using EDIT: Parsing is broken because |
Seems like an easy test, let me try that 👍 |
583c720
to
4504241
Compare
Starting build on |
At least on my machine substituting |
We need to land that change in the master for consistency reasons. |
Good point! I will then separate this change from the original commit and create a separate commit that we can forward-port to master |
The llvm9 JIT issued callbacks when a symbol was missing and we reacted on it by loading the relevant library. In root-project/root@9b2041e3 we have kept the logic but now the JIT started querying more often even for symbols which are okay to be missing. In turn that leads to scanning all libraries causing performance issues. This patch tries to limit this functionality only in contexts where automatic loading is allowed.
Co-authored-by: Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
Symbol lookup is a quite expensive operation and might result in JIT compilation and library loading. Co-authored-by: Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
This reverts commit 329fb5a.
This allows us to avoid generating symbols in libCore for these constants keeping the same amount of open calls at ROOT startup time.
`TInterpreter::Declare` does not support issuing statements on the global scope, while `TInterpreter::ProcessLine` does. This test was first introduced in a development version of ROOT (6.31), where the upgrade to LLVM16 was already in place. In that scenario, clang supports global scope statements (thanks to changes made for clang-repl). Applying the test to ROOT 6.30 uncovered the problem, since the clang of LLVM13 does not support global scope statements. Fix the test by using `ProcessLine` instead of `Declare` which does the intended thing independently from the ROOT version. Co-authored-by: Vassil Vassilev <vasil.georgiev.vasilev@cern.ch>
4504241
to
d4f8f6a
Compare
Starting build on |
@vgvassilev The test now passes on all platforms. Let me know what you think about the commit and if we can merge this PR |
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.
LGTM!
be7addb
into
root-project:v6-30-00-patches
Dear @smuzaffar , also thanks to your help, we converged. This PR merged the changes that for us are an improvement wrt the fix provided in December 2023. This the commit we would propose to CMS for the CMSSW 14 release: would you be so kind to give it another try to verify once again the code works as expected for CMS? |
@dpiparo , thanks for the backport. CMSSW tests via cms-sw#195 for this change look good. I just have opened cms-sw/cmsdist#8949 to integrate latest v6-30-00-patches changes in to CMSSW 14.0.X |
Starting build on |
Build failed on ROOT-ubuntu2204/nortcxxmod. Failing tests: |
Build failed on ROOT-performance-centos8-multicore/soversion. Failing tests: |
Backports of #14287 and #14352