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)

Reply via email to