Biweekly meeting: C++ Modules in ROOT

Europe/Zurich
Oksana Shadura (University of Nebraska Lincoln (US)), Vasil Georgiev Vasilev (Institute for Advanced Physical Studies (BG))

Attendance: David, Oksana, Vassil

Vassil: No news from Richard on the performance troubles. I have submitted to Bruno a OSX OpenGL issue for (cxxmodules=ON). I have done mostly work for CMSSW. We have enabled 3 new modules for DataFormats. David will maybe report a little more on this. The major blocker at the moment was the missing modulemap file for CLHEP and the error when merging two definitions coming from ThreeVector.h. We managed to work it around by reordering includes until we get the CLHEP modulemap file. I think I have fixed the issue where we have an error such as:
Compiling LCG dictionary: tmp/slc7_amd64_gcc820/src/DataFormats/Luminosity/src/DataFormatsLuminosity/a/DataFormatsLuminosity_xr.cc
CondFormatsL1TObjects_xr dictionary forward declarations' payload:16:192: error: enumeration previously declared with nonfixed underlying type
  ...__attribute__((annotate("$clingAutoload$CondFormats/L1TObjects/interface/L1GtBoard.h"))) L1GtPsbQuad : unsigned int;
                                                                                              ^
/cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_1_CXXMODULE_X_2020-02-18-2300/src/CondFormats/L1TObjects/interface/L1GtDefinitions.h:38:6: note: previous declaration is here
enum L1GtPsbQuad {

Here the enum L1GtPsbQuad is forward declared by ROOT and it is also present in a module. We have a special patch to ignore these errors which did not take into account that the declaration might come from a module file. This should be fixed now.

Thanks to Oksana, we have landed the boost modulemap and we will see if that's useful in CMSSW.

 

Oksana: Asked Raphael for the cmssw modulemap and we have the adjusted modulemap. It should work with cmssw. The tests Raphael wrote passed so things should be ok. Incremental builds do not work we should look into this.

I wonder if the CLHEP modulemap should be contributed to the externals. David: modulemaps should be automatically generated. Vassil: that might be tricky.

 

David: I have fixed a HLT Reco missing dependency. The failure in DataFormats/PatCandidates (looks like missing dependency). I still see the error Vassil reported as fixed.

Priorities: Fix the enum issue and incremental builds.

AOB: Next meeting in two weeks.

There are minutes attached to this event. Show them.
    • 14:00 14:30
      Updates 30m
      Speakers: Oksana Shadura (University of Nebraska Lincoln (US)), Vasil Georgiev Vasilev (Institute for Advanced Physical Studies (BG))
    • 14:30 15:00
      Round table 30m