Conversation
genevb
left a comment
There was a problem hiding this comment.
Hi, @veprbl . I understood @perevbnlgov was working on the transition of macros for ROOT6. Did this get discussed with him?
Thanks,
-Gene
I am only aware of what's discussed in threads https://github.com/star-bnl/star-sw/pulls?q=author%3Aperevbnlgov+ . There was no private discussion. If discussion is needed, it can happen here, I suppose. |
| class StMessMgr; | ||
| #if !defined(__CINT__) || defined(__MAKECINT__) | ||
|
|
||
| #pragma cling load("StUtilities") |
There was a problem hiding this comment.
So... I did a search for documentation on this feature of cling... and only was able to find the load pragma in their github repo under tests...
https://github.com/root-project/cling
Regardless,... this appears to solve the problem, enabling the necessary libraries to be preloaded. I think you could also achieve this by loading libraries in the standard rootlogon.C. But this would be more general (and allows individual users to implement their own root logons).
There was a problem hiding this comment.
Yes, rootlogon.C, might be possible, but, if it can work without the "secret sauce", I prefer that)
cling needs to have libraries loaded before running a macro. This disables the #include statements when ACLiC is not used. Currently, cling can't parse those headers: there seems to be an issue with how forward declarations interract with "$clingAutoload$". Fortunately, the "#pragma load" takes care of the headers, like in ROOT5, so things just work.
When tested on 6.24/06 the libraries seem to be loaded automagically. On CI we use 6.16, and that seems to not work. Or it could be that it uses RTLD_NOW. Let's try to add missing libraries manually.
6fe82a9 to
4477fbf
Compare
|
Last call for comments? |
cling needs to have libraries loaded before running a macro.
This disables the #include statements when ACLiC is not
used. Currently, cling can't parse those headers: there seems to be an
issue with how forward declarations interract with
$clingAutoload$. Fortunately, the#pragma loadtakes care of theheaders, like in ROOT5, so things just work.