As discovered during the discussion: #23093 (comment), classes that are in the PCH but do not have a dictionary apparently lose their comments. All other cases works fine (fully interpreted via declaration on the command line or loaded via a file or coming from a pcm).
Note: There is intentionally no dictionary requested of ROOT::Experimental::RHistEngine<unsigned char>.
For example with a build (using commit 34f12c3) with runtime_cxxmodules:BOOL=ON we get:
root [0] auto cl = TClass::GetClass("ROOT::Experimental::RHistEngine<unsigned char>")
(TClass *) 0x887935180
root [1] cl->GetListOfDataMembers()->ls()
OBJ: TListOfDataMembers TListOfDataMembers List of TDataMembers for a class : 0
OBJ: TDataMember fAxes : 0 at: 0x88793c000
OBJ: TDataMember fBinContents : 0 at: 0x88793c140
OBJ: TDataMember fSnapshot ! : 0 at: 0x88793c280
OBJ: TDataMember SupportsWeightedFilling : 0 at: 0x88793c3c0
root [2]
use
auto cl = TClass::GetClass("ROOT::Experimental::RHistEngine<unsigned char>");
cl->GetListOfDataMembers()->ls();
to reproduce.
On the other with a build with runtime_cxxmodules:BOOL=OFF we get:
MAC-148901:master-untouched (hahnjo-hist-snapshot-pause) pcanal$ root.exe -b -l
root [0] auto cl = TClass::GetClass("ROOT::Experimental::RHistEngine<unsigned char>")
(TClass *) 0x90d895680
root [1] cl->GetListOfDataMembers()->ls()
OBJ: TListOfDataMembers TListOfDataMembers List of TDataMembers for a class : 0
OBJ: TDataMember fAxes : 0 at: 0x90d74d7c0
OBJ: TDataMember fBinContents : 0 at: 0x90d74d680
OBJ: TDataMember fSnapshot : 0 at: 0x90d74d900
OBJ: TDataMember SupportsWeightedFilling : 0 at: 0x90d74da40
Where the different is:
OBJ: TDataMember fSnapshot ! : 0 at: 0x88793c280
which has the correct comment (!)
vs
OBJ: TDataMember fSnapshot : 0 at: 0x90d74d900
Using a simplistic class:
struct ABC {
int i; // persistent
int j; //! transient
};
You can load this class via the command line or via a header file and it will work in all builds. If the same definition is copy/pasted inside hist/histv7/inc/ROOT/RHistEngine.hxx, it will present the same behavior as in the original report.
As discovered during the discussion: #23093 (comment), classes that are in the PCH but do not have a dictionary apparently lose their comments. All other cases works fine (fully interpreted via declaration on the command line or loaded via a file or coming from a pcm).
Note: There is intentionally no dictionary requested of
ROOT::Experimental::RHistEngine<unsigned char>.For example with a build (using commit 34f12c3) with
runtime_cxxmodules:BOOL=ONwe get:use
to reproduce.
On the other with a build with
runtime_cxxmodules:BOOL=OFFwe get:Where the different is:
which has the correct comment (
!)vs
Using a simplistic class:
You can load this class via the command line or via a header file and it will work in all builds. If the same definition is copy/pasted inside
hist/histv7/inc/ROOT/RHistEngine.hxx, it will present the same behavior as in the original report.