evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
225 stars 95 forks source link

check version of the Boost.PP detected at library configure time with the version found at user code compile time #161

Closed evaleev closed 4 years ago

ryanmrichard commented 4 years ago

Using tarball libint-2.7.0-beta.1-test-mpqc3.tgz

toolchain.cmake:

set(SPACK_ROOT /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell)
set(CMAKE_C_COMPILER "${SPACK_ROOT}/gcc-9.2.1/gcc-8.3.0-y3pfafsmcq7k35yfrt5lgpgqn2ssbiru/bin/gcc")
set(CMAKE_CXX_COMPILER "${SPACK_ROOT}/gcc-9.2.1/gcc-8.3.0-y3pfafsmcq7k35yfrt5lgpgqn2ssbiru/bin/g++")
set(CMAKE_PREFIX_PATH "${SPACK_ROOT}/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu"
)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)

configure with cmake -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=${PWD}/toolchain.cmake

configures and installs fine. configure.log

Try to build Integrals with more-or-less the same toolchain file (it adds libint to the prefix path as well as MPI/BLAS paths and a GitHub token) and the result is an error about exponent having no digits compile.log.

The preprocessed result of line 627 (the line starting the macro which leads to the first error) is here. The problem appears to be variable names like 3overlap.

ryanmrichard commented 4 years ago

FWIW I tried libint-2.6.0 with Boost 1.70 and had the same problem. I also tried libint-2.7.1-beta.1 with Boost 1.50 and the packaged boost and the error persists. Just got done trying the boost in Ubuntu's package repo (vs Spack's), which is still 1.67, still no dice. Just tried system GCC (9.2.1) same problem.

evaleev commented 4 years ago

None of the error messages make sense, e.g. in

/home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-9.2.1/gcc-8.3.0-y3pfafsmcq7k35yfrt5lgpgqn2ssbiru/bin/g++  -DMADNESS_DISABLE_WORLD_GET_DEFAULT=1 -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -Dintegrals_EXPORTS -I/home/ryan/CLionProjects/Integrals -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/property_types-src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/libchemist-src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/sde-src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/utilities-src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/cereal-src/include -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/bphash-src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/src -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-build/src -I/home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-build/external/source/eigen -I/home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-build/external/source/btas -isystem /home/ryan/libint/libint-2.7.0-beta.1/install/include -isystem /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/external/src/madness/src -isystem /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-build/external/build/madness/src -isystem /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/mpich-3.3.2-sefon6qqcwe62gac2cuxlnmxsz7h4a3m/include -isystem /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-build/external/build/madness/src/madness/world -isystem /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/external/src/madness/src/madness/world  -g -fPIC   -std=c++17 -o CMakeFiles/integrals.dir/integrals/edipole_integral.cpp.o -c /home/ryan/CLionProjects/Integrals/integrals/edipole_integral.cpp
In file included from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/aux_/integral_wrapper.hpp:22,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/int.hpp:20,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/lambda_fwd.hpp:23,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/aux_/na_spec.hpp:18,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/or.hpp:24,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/iterator/interoperable.hpp:11,
                 from /home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/iterator/iterator_facade.hpp:11,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/src/TiledArray/pmap/pmap.h:31,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/src/TiledArray/pmap/blocked_pmap.h:29,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/src/TiledArray/policies/dense_policy.h:30,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/tiledarray-src/src/tiledarray.h:33,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/libchemist-src/libchemist/types.hpp:2,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/libchemist-src/libchemist/orbital_space.hpp:4,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/property_types-src/property_types/types.hpp:4,
                 from /home/ryan/CLionProjects/Integrals/cmake-build-debug/_deps/property_types-src/property_types/ao_integrals/emultipole.hpp:2,
                 from /home/ryan/CLionProjects/Integrals/integrals/emultipole_integrals.hpp:3,
                 from /home/ryan/CLionProjects/Integrals/integrals/edipole_integral.cpp:1:
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/engine.impl.h:629:44: error: exponent has no digits
       (BOOST_PP_NBODY_OPERATOR_INDEX_LIST, BOOST_PP_NBODY_BRAKET_RANK_LIST,
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/util/generated/libint2_iface.h:26,
                 from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.h:43,
                 from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/cxxapi.h:29,
                 from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.hpp:24,
                 from /home/ryan/CLionProjects/Integrals/integrals/nwx_libint/nwx_libint.hpp:3,
                 from /home/ryan/CLionProjects/Integrals/integrals/edipole_integral.cpp:2:
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/engine.impl.h:629:44: error: exponent has no digits
       (BOOST_PP_NBODY_OPERATOR_INDEX_LIST, BOOST_PP_NBODY_BRAKET_RANK_LIST,
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/engine.impl.h:629:44: error: exponent has no digits
       (BOOST_PP_NBODY_OPERATOR_INDEX_LIST, BOOST_PP_NBODY_BRAKET_RANK_LIST,
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/engine.impl.h:629:44: error: exponent has no digits
       (BOOST_PP_NBODY_OPERATOR_INDEX_LIST, BOOST_PP_NBODY_BRAKET_RANK_LIST,
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/ryan/spack/opt/spack/linux-ubuntu19.10-broadwell/gcc-8.3.0/boost-1.70.0-rwjkqksoi5njsmx2adz7ojb56ltvo5fu/include/boost/mpl/aux_/integral_wrapper.hpp:22 includes boost/preprocessor/cat.hpp, not /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/engine.impl.h ... the rest does not make sense. I suggest you try a different compiler (do you have cland install) in hope of actually getting an error message that makes sense. There is no need to actually recompile everything, just replace the compiler in the compiler invocation for edipole_integral.cpp and it should be able at least get to the compilation stage and hopefully produce either no error or a more informative error.

An alternative is to get me instructions on how to reproduce (detailed ... those simply don't exist for NWX) or better yet get me a container .

This is not easily reproducible since each of these releases has been hammered in many settings and I've never seen messages like these. Smells like evil macroses went bad.

ryanmrichard commented 4 years ago

LLVM 9.0 gives:

In file included from /home/ryan/CLionProjects/Integrals/integrals/edipole_integral.cpp:2:
In file included from /home/ryan/CLionProjects/Integrals/integrals/nwx_libint/nwx_libint.hpp:3:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.hpp:24:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/cxxapi.h:41:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.h:1010:
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:276:38: error: no member named '_0_Overlap_0_x' in 'Libint_t'
            result += primdata_[p12]._0_Overlap_0_x[0] *
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:277:38: error: no member named '_0_Overlap_0_y' in 'Libint_t'
                      primdata_[p12]._0_Overlap_0_y[0] *
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:278:38: error: no member named '_0_Overlap_0_z' in 'Libint_t'
                      primdata_[p12]._0_Overlap_0_z[0];
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:284:38: error: no member named '_aB_s___0___ElecPot_s___0___Ab__up_0' in 'Libint_t'
            result += primdata_[p12].LIBINT_T_S_ELECPOT_S(0)[0];
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.h:31:38: note: expanded from macro 'LIBINT_T_S_ELECPOT_S'
#define LIBINT_T_S_ELECPOT_S(mValue) _aB_s___0___ElecPot_s___0___Ab__up_##mValue
                                     ^
<scratch space>:19:1: note: expanded from here
_aB_s___0___ElecPot_s___0___Ab__up_0
^
In file included from /home/ryan/CLionProjects/Integrals/integrals/edipole_integral.cpp:2:
In file included from /home/ryan/CLionProjects/Integrals/integrals/nwx_libint/nwx_libint.hpp:3:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.hpp:24:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/cxxapi.h:41:
In file included from /home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.h:1010:
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
      BOOST_PP_NBODYENGINE_MCR3, 3,
      ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: use of undeclared identifier 'overlap'
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: use of undeclared identifier 'overlap'
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: use of undeclared identifier 'overlap'
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: use of undeclared identifier 'overlap'
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: invalid suffix 'overlap' on integer constant
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: invalid suffix 'overlap' on integer constant
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: invalid suffix 'overlap' on integer constant
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: expected expression
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:628:7: error: invalid suffix 'overlap' on integer constant
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [CMakeFiles/integrals.dir/build.make:63: CMakeFiles/integrals.dir/integrals/edipole_integral.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/integrals.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
ryanmrichard commented 4 years ago

I'm not sure how to reproduce it (other than be on my machine) since the Integrals repo seems to compile fine for others using similar toolchains.

ryanmrichard commented 4 years ago

Here's something potentially useful, up until this point I had been using the lmax = 4 asset. If I use the lmax = 6 asset it compiles (with the original compiler settings)

evaleev commented 4 years ago

This is useful. Now please generate preprocessed source. It should be possible to figure out why struct Members are missing. My suspicion is that you might have another libint installed somewhere else ....

On Mon, Feb 17, 2020, 10:16 AM Ryan Richard notifications@github.com wrote:

LLVM 9.0 gives:

/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:276:38: error: no member named '_0_Overlap_0_x' in 'Libintt' result += primdata[p12]._0_Overlap_0_x[0] *


/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:277:38: error: no member named '_0_Overlap_0_y' in 'Libint_t'
                      primdata_[p12]._0_Overlap_0_y[0] *
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:278:38: error: no member named '_0_Overlap_0_z' in 'Libint_t'
                      primdata_[p12]._0_Overlap_0_z[0];
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2/./engine.impl.h:284:38: error: no member named '_aB_s___0___ElecPot_s___0___Ab__up_0' in 'Libint_t'
            result += primdata_[p12].LIBINT_T_S_ELECPOT_S(0)[0];
                      ~~~~~~~~~~~~~~ ^
/home/ryan/libint/libint-2.7.0-beta.1/install/include/libint2.h:31:38: note: expanded from macro 'LIBINT_T_S_ELECPOT_S'
#define LIBINT_T_S_ELECPOT_S(mValue) _aB_s___0___ElecPot_s___0___Ab__up_##mValue
                                     ^
<scratch space>:37:1: note: expanded from here
_aB_s___0___ElecPot_s___0___Ab__up_0

—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<https://github.com/evaleev/libint/issues/161?email_source=notifications&email_token=AAQXIZ3CTZIEWWN7CTRTXZLRDKS3DA5CNFSM4KVQFNYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL6YN6Y#issuecomment-587040507>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQXIZ7BMZLJGM5QKJZMYITRDKS3DANCNFSM4KVQFNYA>
.
ryanmrichard commented 4 years ago

@evaleev I see you responded to the email version of the message. I had edited the message on GitHub to include the full error, which suggests its the same problem again.

evaleev commented 4 years ago

mpqc3-specific asset does not include support for 1-e integrals.