Ward created MADLIB-1000:
----------------------------
Summary: 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
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?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)