-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Remove TMath dependencies from TTimestamp.cxx #466
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
|
Starting build on |
9474b9e to
080e804
Compare
|
Hm, could you clarify a little more? |
|
Starting build on |
2 similar comments
|
Starting build on |
|
Starting build on |
|
Hi, Vassil. Having Vc types in TMath required me to link TTimeStamp.cxx with -lVc, and TTimeStamp is in Core (doesn't need to link with Vc at the moment) |
|
Starting build on |
|
Btw, what's with all these builds starting so many times? |
|
I will investigate this tomorrow. It seems a bug if we depend on Vc types there. |
|
Hi, |
|
I am confused. I don't see how TMath.h depends on Vc and why you need to link against Vc. @dpiparo, one disadvantage of using functions from STL by qualified names is Vc. This doesn't allow users that include Vc (or any other vectorization library using the ADL pattern) to vectorize their code. I do not like duplicating constants lib Pi all over the place. Let's discuss that in person. |
|
It doesn't yet. It's a problem we encountered when GSoC candidates started working on vectorizing functions in TMath. |
|
Which in the end can be solved having the vectorized implementations in a separate header file, but that may mean replicating code, so... whatever you think is best. There's actually another file with the same problem in io/io: TFileCacheRead.cxx |
|
I think this is a layering violation in general. I am in favor of breaking it (Core shouldn't need things from Math). However, we should solve the problem with duplicating code because we want to disentangle them. The Pi constant (among with others in Math, I assume) which is needed in Core should go in some form in code (like other constants in RtypesCore.h). |
|
Hi, There is already a TMathBase.h that could be used for that. That said. It might make sense to keep TMath.h as is and to introduce TMathVec.h which has the extra dependency and is use in code that expects/wants to support vector code. Cheers, |
|
So let's move at least the Pi constant in TMathBase.h. I feel that introducing TMathVec.h would be reasonable if we have blockers in TMath.h. Otherwise it would seem that we diverge for no reason. |
This way when we introduce dependencies in TMath that require linkage (f.e. Vc) it won't suppose a problem for libCore.