[
https://issues.apache.org/jira/browse/MADLIB-1000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15301876#comment-15301876
]
Ward commented on MADLIB-1000:
------------------------------
Hi Frank,
It works on CentOS 7 with GCC 5.3 and Clang 3.8. It fails with GCC 6.1 and
Intel 16.0.3 (different errors).
For the Intel error from above: sometimes Intel is a bit more strict in it's
implementation of the C++ standard. So it's not clear to me if this is a
compiler issue or is the code not strictly following the C++ standard. I'm not
enough of a C++ expert to tell the difference ;)
Ward
> Template error when compiling with Intel C++ 16.0.3
> ---------------------------------------------------
>
> Key: MADLIB-1000
> URL: https://issues.apache.org/jira/browse/MADLIB-1000
> Project: Apache MADlib
> Issue Type: Bug
> Components: Module: Regularized Regression
> Affects Versions: v1.9
> Reporter: Ward
>
> I've tried to compile MADlib 1.9 with PostgreSQL 9.4.7 using the Intel C++
> compiler 16.0.3 (latest version) on CentOS 7. It however fails with a
> template error:
> {code}
> [ 87%] Building CXX object
> src/ports/postgres/9.4/CMakeFiles/madlib_postgresql_9_4.dir/__/__/__/modules/regress/linear.cpp.o
> cd
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/easybuild_obj/src/ports/postgres/9.4
> &&
> /user/scratch/gent/vsc403/vsc40307/EB/swalot/software/icc/2016.3.210-GCC-5.3.0-2.26/compilers_and_libraries_2016.3.210/linux/bin/intel
> 64/icpc -Dmadlib_postgresql_9_4_EXPORTS
> -I/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/easybuild_obj/src/patch
> -isystem
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/easybuild_obj/third_party/src/EP_eigen
>
> -I/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src
>
> -I/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/ports/postgres
> -isystem /dev/shm/ward/install/software/P
> ostgreSQL/9.4.7-intel-2016.03-GCC-5.3-Python-2.7.11/include/postgresql/server
> -Wall -O0 -O2 -g -DNDEBUG -fPIC -o
> CMakeFiles/madlib_postgresql_9_4.dir/__/__/__/modules/regress/linear.cpp.o -c
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5
> .3-Python-2.7.11/incubator-madlib-master/src/modules/regress/linear.cpp
> compilation aborted for
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/sample/weighted_sample.cpp
> (code 2)
> make[2]: ***
> [src/ports/postgres/9.4/CMakeFiles/madlib_postgresql_9_4.dir/__/__/__/modules/sample/weighted_sample.cpp.o]
> Error 2
> make[2]: *** Waiting for unfinished jobs....
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_impl.hpp(428):
> error: no instance of overloaded function
> "madlib::dbal::ByteStream<StreamBuf, TypeTraits, true>::seek [with Stream
> Buf=madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type={char}, true>,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" matches the argument
> list
> argument types are: (unsigned long, const std::ios_base::seekdir)
> object type is:
> madlib::dbal::ByteStream<madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type, true>,
> madlib::dbconnector::postgres::TypeTrait
> s, true>
> inStream.template seek(begin + size, std::ios_base::beg);
> ^
> detected during:
> instantiation of "void madlib::dbal::DynamicStruct<Derived,
> Container, true>::bindToStream(madlib::dbal::DynamicStruct<Derived,
> Container, true>::ByteStream_type &) [with
> Derived=madlib::modules::regress::LinearRegressionAccum
> ulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer]" at line 161 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_proto.hpp"
> instantiation of class "madlib::dbal::DynamicStruct<Derived,
> Container, IsMutable> [with
> Derived=madlib::modules::regress::LinearRegressionAccumulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer, IsMu
> table=false]" at line 194
> instantiation of "void madlib::dbal::DynamicStructBase<Derived,
> madlib::dbal::DynamicStructRootContainer<Storage, TypeTraits>,
> IsMutable>::initialize() [with
> Derived=madlib::modules::regress::LinearRegressionAccumulator<madlib::MutableRootContainer>,
> IsMutable=false, Storage=madlib::dbconnector::postgres::MutableByteString,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" at line 31 of
>
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/LinearRegression_impl.hpp"
> instantiation of
> "madlib::modules::regress::LinearRegressionAccumulator<Container>::LinearRegressionAccumulator(madlib::modules::regress::LinearRegressionAccumulator<Container>::Init_type
> &) [with Container=madlib::MutableRootContainer]" at line 29 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/linear.cpp"
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_impl.hpp(428):
> error: no instance of overloaded function
> "madlib::dbal::ByteStream<StreamBuf, TypeTraits, true>::seek [with
> StreamBuf=madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type={char}, true>,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" matches the argument
> list
> argument types are: (unsigned long, const std::ios_base::seekdir)
> object type is:
> madlib::dbal::ByteStream<madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type, true>,
> madlib::dbconnector::postgres::TypeTraits, true>
> inStream.template seek(begin + size, std::ios_base::beg);
> ^
> detected during:
> instantiation of "void madlib::dbal::DynamicStruct<Derived,
> Container, true>::bindToStream(madlib::dbal::DynamicStruct<Derived,
> Container, true>::ByteStream_type &) [with
> Derived=madlib::modules::regress::RobustLinearRegressionAccumulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer]" at line 161 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_proto.hpp"
> instantiation of class "madlib::dbal::DynamicStruct<Derived,
> Container, IsMutable> [with
> Derived=madlib::modules::regress::RobustLinearRegressionAccumulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer, IsMutable=false]" at line 194
> instantiation of "void madlib::dbal::DynamicStructBase<Derived,
> madlib::dbal::DynamicStructRootContainer<Storage, TypeTraits>,
> IsMutable>::initialize() [with
> Derived=madlib::modules::regress::RobustLinearRegressionAccumulator<madlib::MutableRootContainer>,
> IsMutable=false, Storage=madlib::dbconnector::postgres::MutableByteString,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" at line 277 of
>
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/LinearRegression_impl.hpp"
> instantiation of
> "madlib::modules::regress::RobustLinearRegressionAccumulator<Container>::RobustLinearRegressionAccumulator(madlib::modules::regress::RobustLinearRegressionAccumulator<Container>::Init_type
> &) [with Container=madlib::MutableRootContainer]" at line 86 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/linear.cpp"
> /dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_impl.hpp(428):
> error: no instance of overloaded function
> "madlib::dbal::ByteStream<StreamBuf, TypeTraits, true>::seek [with
> StreamBuf=madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type={char}, true>,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" matches the argument
> list
> argument types are: (unsigned long, const std::ios_base::seekdir)
> object type is:
> madlib::dbal::ByteStream<madlib::dbal::ByteStreamHandleBuf<madlib::dbconnector::postgres::MutableByteString,
> madlib::dbconnector::postgres::ByteString::char_type, true>,
> madlib::dbconnector::postgres::TypeTraits, true>
> inStream.template seek(begin + size, std::ios_base::beg);
> ^
> detected during:
> instantiation of "void madlib::dbal::DynamicStruct<Derived,
> Container, true>::bindToStream(madlib::dbal::DynamicStruct<Derived,
> Container, true>::ByteStream_type &) [with
> Derived=madlib::modules::regress::HeteroLinearRegressionAccumulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer]" at line 161 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/dbal/DynamicStruct_proto.hpp"
> instantiation of class "madlib::dbal::DynamicStruct<Derived,
> Container, IsMutable> [with
> Derived=madlib::modules::regress::HeteroLinearRegressionAccumulator<madlib::MutableRootContainer>,
> Container=madlib::MutableRootContainer, IsMutable=false]" at line 194
> instantiation of "void madlib::dbal::DynamicStructBase<Derived,
> madlib::dbal::DynamicStructRootContainer<Storage, TypeTraits>,
> IsMutable>::initialize() [with
> Derived=madlib::modules::regress::HeteroLinearRegressionAccumulator<madlib::MutableRootContainer>,
> IsMutable=false, Storage=madlib::dbconnector::postgres::MutableByteString,
> TypeTraits=madlib::dbconnector::postgres::TypeTraits]" at line 479 of
>
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/LinearRegression_impl.hpp"
> instantiation of
> "madlib::modules::regress::HeteroLinearRegressionAccumulator<Container>::HeteroLinearRegressionAccumulator(madlib::modules::regress::HeteroLinearRegressionAccumulator<Container>::Init_type
> &) [with Container=madlib::MutableRootContainer]" at line 155 of
> "/dev/shm/ward/MADlib/1.9/intel-2016.03-GCC-5.3-Python-2.7.11/incubator-madlib-master/src/modules/regress/linear.cpp"
> {code}
> This code compiles fine with GCC or Clang, so I'm not sure if this is a
> problem in MADlib or a compiler bug. Can anyone shed some light on this?
> Update: JIRA seems to mess with the formatting of build log, so here is the
> full version:
> https://gist.github.com/wpoely86/db03c94997e528ca17d960dd7af3c771
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)