more helpful "PCH file built from a different branch" message

Aperta
#1,117 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
build-system, cli

Direzione di ricerca

Inizia con l’invocazione di make e il comando di compilazione mostrati nel report, in particolare con l’argomento -include-pch che fa riferimento a stan/src/stan/model/model_header.hpp.gch. Riproduci il fallimento dovuto a una mancata corrispondenza del compilatore, quindi traccia dove viene restituito questo errore. Il lavoro è completo quando l’output identifica la posizione del PCH o lo ricostruisce automaticamente, e il comportamento in caso di errore è coperto da un test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement good first issue
Summary:

The PCH file built from a different branch error does not provide a hint on how to fix it. Add such a hint.

Description:

When I try to build with the wrong precompiled header (PCH), I get this:

~/github/stan-dev/cmdstan (develop)$ make ~/temp2/simple

--- Translating Stan model to C++ code ---
bin/stanc  --o=/Users/bcarpenter/temp2/simple.hpp /Users/bcarpenter/temp2/simple.stan

--- Compiling, linking C++ code ---
clang++ -std=c++1y -Wno-unknown-warning-option -Wno-tautological-compare -Wno-sign-compare -D_REENTRANT -Wno-ignored-attributes      -I stan/lib/stan_math/lib/tbb_2020.3/include    -O3 -I src -I stan/src -I lib/rapidjson_1.1.0/ -I lib/CLI11-1.9.1/ -I stan/lib/stan_math/ -I stan/lib/stan_math/lib/eigen_3.3.9 -I stan/lib/stan_math/lib/boost_1.78.0 -I stan/lib/stan_math/lib/sundials_6.1.1/include -I stan/lib/stan_math/lib/sundials_6.1.1/src/sundials    -DBOOST_DISABLE_ASSERTS          -c -include-pch stan/src/stan/model/model_header.hpp.gch -x c++ -o /Users/bcarpenter/temp2/simple.o /Users/bcarpenter/temp2/simple.hpp
error: PCH file built from a different branch ((clang-1316.0.21.2.5)) than the compiler ((clang-1400.0.29.102))
1 error generated.
make: *** [/Users/bcarpenter/temp2/simple] Error 1

This is great that it says what's wrong, but it would be even better if it suggested how to fix the problem. I'm pretty sure I need to just delete a .pch file, but I don't know where it's at. A recursive search didn't work:

~/github/stan-dev/cmdstan (develop)$ ls -R -l | grep pch
-rw-r--r--   1 bcarpenter  1595  3773 Aug 10 12:07 pchip.hpp
-rw-r--r--  1 bcarpenter  1595   340 Aug 10 12:07 pch.hpp
-rwxr-xr-x  1 bcarpenter  1595  1175 Aug 10 12:07 cppcheck.sh
-rw-r--r--   1 bcarpenter  1595    537 Aug 10 12:07 pch.hpp
-rw-r--r--   1 bcarpenter  1595   2717 Aug 10 12:07 pch.jam
-rw-r--r--   1 bcarpenter  1595   2848 Aug 10 12:07 pch.py
~/github/stan-dev/cmdstan (develop)$ 
Reproducible Steps:

See above, but to reproduce it, you need to have two compilers, one of which built the pch file and a different one to tickle this error.

Current Output:

See above.

Expected Output:

Some hint as to where the pch file is that I need to delete. Even better, just automatically delete and rebuild after detecting this error.

Additional Information:

There are a lot of pages where people brought up this problem on our forums or in issues. The advice in the first hit on the forums didn't work, which suggested just running make clean. Here's what I get:

~/github/stan-dev/cmdstan (develop)$ make clean
rm -f -r test
rm -f 
rm -f 
rm -f 
rm -f 
~/github/stan-dev/cmdstan (develop)$ make ~/temp2/simple

--- Compiling, linking C++ code ---
clang++ -std=c++1y -Wno-unknown-warning-option -Wno-tautological-compare -Wno-sign-compare -D_REENTRANT -Wno-ignored-attributes      -I stan/lib/stan_math/lib/tbb_2020.3/include    -O3 -I src -I stan/src -I lib/rapidjson_1.1.0/ -I lib/CLI11-1.9.1/ -I stan/lib/stan_math/ -I stan/lib/stan_math/lib/eigen_3.3.9 -I stan/lib/stan_math/lib/boost_1.78.0 -I stan/lib/stan_math/lib/sundials_6.1.1/include -I stan/lib/stan_math/lib/sundials_6.1.1/src/sundials    -DBOOST_DISABLE_ASSERTS          -c -include-pch stan/src/stan/model/model_header.hpp.gch -x c++ -o /Users/bcarpenter/temp2/simple.o /Users/bcarpenter/temp2/simple.hpp
error: PCH file built from a different branch ((clang-1316.0.21.2.5)) than the compiler ((clang-1400.0.29.102))
1 error generated.
make: *** [/Users/bcarpenter/temp2/simple] Error 1
Current Version:

v2.30.1

Lingua principale
C++
Stelle
240
Fork
105
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di stan-dev/cmdstan

Tutte le issue di stan-dev/cmdstan

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.