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

Abierto
#1,117 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
build-system, cli

Línea de trabajo

Comienza con la invocación de make y el comando de compilación mostrados en el informe, especialmente con el argumento -include-pch que hace referencia a stan/src/stan/model/model_header.hpp.gch. Reproduce el fallo por incompatibilidad del compilador y, después, rastrea dónde se muestra este error. Se considera terminado cuando la salida identifica la ubicación del PCH o lo recompila automáticamente, y el comportamiento ante el fallo está cubierto por una prueba.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
C++
Estrellas
240
Forks
105
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de stan-dev/cmdstan

Todos los issues de stan-dev/cmdstan

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.