Page MenuHomeHEPForge

Build failure with Pythia8 version 310
Closed, ResolvedPublic

Description

Reported on the dev mailing list on 7th August by Dmitri Konstantinov.

Last week, Pythia8-310 was released, and while it comes with several changes to the Pythia8 interface, it has caused build failures for EvtGen in LCG builds. To provide you with more context and evidence of the issue, I have inlined it here.

[  3%] Building CXX object src/CMakeFiles/objlib.dir/EvtGen.cpp.o
/tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/src/EvtGenExternal/EvtPythiaEngine.cpp: In member function 'virtual void EvtPythiaEngine::initialise()':
/tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/src/EvtGenExternal/EvtPythiaEngine.cpp:131:63: error: cannot convert 'std::unique_ptr<EvtPythiaRandom>::pointer' {aka 'EvtPythiaRandom*'} to 'Pythia8::RndmEnginePtr' {aka 'std::shared_ptr<Pythia8::RndmEngine>'}
  131 |         _genericPythiaGen->setRndmEnginePtr( _evtgenRandom.get() );
      |                                              ~~~~~~~~~~~~~~~~~^~
      |                                                               |
      |                                                               std::unique_ptr<EvtPythiaRandom>::pointer {aka EvtPythiaRandom*}
In file included from /tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/EvtGenExternal/EvtPythiaEngine.hh:36,
                 from /tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/src/EvtGenExternal/EvtPythiaEngine.cpp:23:
/tmp/dkonst/install/dev4/MCGenerators/pythia8/310/x86_64-centos7-gcc11-opt/include/Pythia8/Pythia.h:143:40: note:   initializing argument 1 of 'bool Pythia8::Pythia::setRndmEnginePtr(Pythia8::RndmEnginePtr)'
  143 |   bool setRndmEnginePtr( RndmEnginePtr rndmEnginePtrIn)
      |                          ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/src/EvtGenExternal/EvtPythiaEngine.cpp:132:61: error: cannot convert 'std::unique_ptr<EvtPythiaRandom>::pointer' {aka 'EvtPythiaRandom*'} to 'Pythia8::RndmEnginePtr' {aka 'std::shared_ptr<Pythia8::RndmEngine>'}
  132 |         _aliasPythiaGen->setRndmEnginePtr( _evtgenRandom.get() );
      |                                            ~~~~~~~~~~~~~~~~~^~
      |                                                             |
      |                                                             std::unique_ptr<EvtPythiaRandom>::pointer {aka EvtPythiaRandom*}
In file included from /tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/EvtGenExternal/EvtPythiaEngine.hh:36,
                 from /tmp/dkonst/build/generators/evtgen-2.2.0/src/evtgen/2.2.0/src/EvtGenExternal/EvtPythiaEngine.cpp:23:
/tmp/dkonst/install/dev4/MCGenerators/pythia8/310/x86_64-centos7-gcc11-opt/include/Pythia8/Pythia.h:143:40

I also engaged in an email exchange with the Pythia8 author to better understand the changes and how they may be affecting EvtGen. However, it appears that EvtGen requires some updates to be compatible with the latest Pythia8 version (see the thread below)

Could you please look into the compatibility issues between EvtGen and Pythia8-310 and consider releasing a new version of EvtGen that works also with the latest Pythia8 release?