lballabio / QuantLib

The QuantLib C++ library
http://quantlib.org
Other
5.32k stars 1.79k forks source link

Issue in compiling Quantlib-1.9.2 on Solaris Sun C++ 5.12 SunOS_sparc with Boost 1.62.0 #223

Closed shail27385 closed 7 years ago

shail27385 commented 7 years ago

i am trying to compile Quantlib-1.9.2 build on Solaris with Boost 1.62.0 using CC: Sun C++ 5.12 SunOS_sparc 2011/11/16 and i get the below error

source='gaussianlhplossmodel.cpp' object='gaussianlhplossmodel.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../../../config/depcomp \ /bin/sh ../../../libtool --tag=CXX --mode=compile CC -DHAVE_CONFIG_H -I. -I../../../ql -I../../.. -I../../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -mt -m64 -G -features=extensions -template=no%extdef -fast -xO2 -xsafe=mem -features=rtti -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 Kpic -c -o gaussianlhplossmodel.lo gaussianlhplossmodel.cpp libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../../ql -I../../.. -I../../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -mt -m64 -G -features=extensions -template=no%extdef -fast -xO2 -xsafe=mem -features=rtti -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 Kpic -c gaussianlhplossmodel.cpp -KPIC -DPIC -o .libs/gaussianlhplossmodel.o "../../../ql/math/array.hpp", line 602: Warning (Anachronism): Formal argument x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 609: Warning (Anachronism): Formal argument __x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 616: Warning (Anachronism): Formal argument x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 623: Warning (Anachronism): Formal argument __x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 630: Warning (Anachronism): Formal argument __x of type double()(double,double) in call to std::ptr_fun<double, double, double>(double()(double,double)) is being passed extern "C" double(*)(double,double). "../../../ql/experimental/math/multidimquadrature.hpp", line 199: Error: Could not find a match for QuantLib::GaussianQuadMultidimIntegrator::operator()(const boost::function<double(const std::vector&)>&) const. "../../../ql/experimental/math/multidimquadrature.hpp", line 212: Error: Could not find a match for QuantLib::GaussianQuadMultidimIntegrator::integrate(const boost::function<double(const std::vector&)>&) const. "../../../ql/experimental/math/multidimquadrature.hpp", line 229: Error: Could not find a match for QuantLib::GaussianQuadMultidimIntegrator::integrate(const boost::function<QuantLib::Disposable<std::vector>(const std::vector&)>&) const. "../../../ql/experimental/math/multidimquadrature.hpp", line 229: Error: QuantLib::GaussianQuadMultidimIntegrator::integrate(const boost::function<double(const std::vector&)>&) const already had a body defined. "../../../ql/experimental/math/latentmodel.hpp", line 125: Error: Cannot return QuantLib::Disposable<std::vector> from a function that should return double. 5 Error(s) and 5 Warning(s) detected. make[3]: [gaussianlhplossmodel.lo] Error 1 make[3]: Leaving directory `/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-1.9.2/ql/experimental/credit' make[2]: [all-recursive] Error 1 make[2]: Leaving directory /scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-1.9.2/ql/experimental' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-1.9.2/ql' make: *** [all] Error 2

I ran configure file as mentioned below. ./configure --with-boost-include=/scratch/build/8.0.2/CAP/BOOSTPREV/include --with-boost-lib=/scratch/build/8.0.2/CAP/BOOSTPREV/lib

Please help me in getting this issue resolved.

Regards Shailesh Kumar

lballabio commented 7 years ago

It's probably an incompatibility with the Sun compiler. As a workaround, try removing the affected files gaussianlhplossmodel.hpp and gaussianlhplossmodel.cpp from ql/experimental/credit/Makefile.am so that they don't get compiled. You might have to do the same with multidimquadrature.hpp and multidimquadrature.cpp inql/experimental/math/Makefile.am.

We'll try to automate this in the next release. May you confirm that we can check for the Sun C++ compiler by checking if the __SUNPRO_CC macro is defined?

shail27385 commented 7 years ago

Yes __SUNPRO_CC macro is defined as below

define __SUNPRO_CC 0x5120

lballabio commented 7 years ago

May you check out the suncc branch from the git repo (or download it from https://github.com/lballabio/QuantLib/tree/suncc) and try if that version of the code works for you?

shail27385 commented 7 years ago

Hi Luigi, Thanks for your response. I tired compiling code as mentioned from suncc branch from git repo. Got few compilation issues which i resolved by including the header file in the below files.

include \<string> in ql/time/date.hpp

include in ql/experimental/averageois/averageoiscouponpricer.hpp

include in ql/experimental/finitedifferences/fdmhestonfwdop.hpp

include in ql/experimental/math/fireflyalgorithm.hpp

Post the above correction, i am stuck at the below issue. Screenshot attached.

libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../../ql -I../../.. -I../../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c basketgeneratingengine.cpp -KPIC -DPIC -o .libs/basketgeneratingengine.o "../../../ql/math/array.hpp", line 602: Warning (Anachronism): Formal argument x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 609: Warning (Anachronism): Formal argument __x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 616: Warning (Anachronism): Formal argument x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 623: Warning (Anachronism): Formal argument __x of type double()(double) in call to std::ptr_fun<double, double>(double()(double)) is being passed extern "C" double()(double). "../../../ql/math/array.hpp", line 630: Warning (Anachronism): Formal argument x of type double()(double,double) in call to std::ptr_fun<double, double, double>(double()(double,double)) is being passed extern "C" double(*)(double,double). "../../../ql/time/dategenerationrule.hpp", line 66: Warning: Identifier expected instead of "}". "../../../ql/termstructures/volatility/swaption/swaptionvolcube.hpp", line 113: Warning: QuantLib::SwaptionVolatilityCube::shiftImpl hides the virtual function QuantLib::SwaptionVolatilityStructure::shiftImpl(const QuantLib::Date&, const QuantLib::Period&) const. "/opt/SunProd/studio12u3/solarisstudio12.3-148921-22/prod/include/CC/stlport4/stl/_algo.c", line 1181: Error: Formal argument y of type const QuantLib::Settings::DateProxy& in call to std::less::operator()(const QuantLib::Settings::DateProxy&, const QuantLib::Settings::DateProxy&) const is being passed const QuantLib::Date. "/opt/SunProd/studio12u3/solarisstudio12.3-148921-22/prod/include/CC/stlport4/stl/_algo.h", line 510: Where: While instantiating "std::__upper_bound<const QuantLib::Date, QuantLib::Settings::DateProxy, std::less, long>(const QuantLib::Date, const QuantLib::Date, const QuantLib::Settings::DateProxy&, std::less, long)". "/opt/SunProd/studio12u3/solarisstudio12.3-148921-22/prod/include/CC/stlport4/stl/_algo.h", line 510: Where: Instantiated from non-template code. 1 Error(s) and 7 Warning(s) detected. make[3]: [basketgeneratingengine.lo] Error 1 make[3]: Leaving directory `/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/pricingengines/swaption' make[2]: [all-recursive] Error 1 make[2]: Leaving directory /scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/pricingengines' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql'

ql_solaris_issue

QL_error_on_Solaris.docx

lballabio commented 7 years ago

Does <cmath> work if you include it instead of <math.h>? The former would be preferred.

I'll look into the other error.

lballabio commented 7 years ago

May you try pulling out the suncc branch again and try it without your later modifications?

shail27385 commented 7 years ago

I tried compiling code with the latest code from suncc branch from git repo. Currently stuck at Issue 9 in file QuantLib-suncc/ql/utilities/dataparsers.cpp

Got few compilation issues which i resolved by including the few lines as mentioned below.

  1. File QuantLib-suncc/ql/experimental/averageois/averageoiscouponpricer.cpp Line added: using std::log;

  2. File path: QuantLib-suncc/ql/experimental/exoticoptions/analytictwoassetcorrelationengine.cpp Correction: removed special character. Screenshot attached.

  3. File path: QuantLib-suncc/ql/experimental/math/particleswarmoptimization.cpp Line added: #include \ using std::sqrt;

  4. File path: QuantLib-suncc/ql/processes/blackscholesprocess.cpp Line added: #include \ using std::exp;

  5. File path: QuantLib-suncc/ql/processes/gsrprocess.cpp Line added: #include \ using std::sqrt;

  6. File path: QuantLib-suncc/ql/processes/ gsrprocesscore.cpp Line added: #include \ using std::exp; using std::pow;

  7. File path: QuantLib-suncc/ql/termstructures/volatility/smilesection.cpp Line added: #include \ using std::fabs;

  8. File path: QuantLib-suncc/ql/utilities/ dataformatters.cpp Line added: #include \

  9. File path: QuantLib-suncc/ql/utilities/dataparsers.cpp

Issue:
source='dataparsers.cpp' object='dataparsers.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../../config/depcomp \ /bin/sh ../../libtool --tag=CXX --mode=compile CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c -o dataparsers.lo dataparsers.cpp libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c dataparsers.cpp -KPIC -DPIC -o .libs/dataparsers.o "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 278: Error: Ambiguous partial specialization for boost::detail::stream_char_common, boost::detail::stream_char_common<boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::stream_char_common<std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: While specializing "boost::detail::deduce_source_char". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 278: Error: Ambiguous partial specialization for boost::detail::stream_char_common, boost::detail::stream_char_common<boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::stream_char_common<std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: While specializing "boost::detail::deduce_source_char". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/mpl/if.hpp", line 45: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Where: While specializing "boost::mpl::if_c<0, boost::detail::extract_char_traits<char, short>, boost::detail::extract_char_traits<char, std::string>>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. 8 Error(s) detected. make[2]: [dataparsers.lo] Error 1 make[2]: Leaving directory `/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/utilities' make[1]: [all-recursive] Error 1 make[1]: Leaving directory `/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql' make: *** [all] Error 2 root@ofss222910:/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql#

ql_solaris_issue_2 Latest_Quantlib_on_Solaris.docx

lballabio commented 7 years ago

What is the special character that you removed?

lballabio commented 7 years ago

Also, there shouldn't be anything in ql/utilities/dataformatters.cpp that requires <iostream>. What was the error in that file?

shail27385 commented 7 years ago

 is present in the starting of the file /scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/experimental/exoticoptions/analytictwoassetcorrelationengine.cpp

Latest_Quantlib_on_Solaris.docx contains screenshot for all issues. Attaching it again.

specialcharacter

Latest_Quantlib_on_Solaris.docx

shail27385 commented 7 years ago

Error in ql/utilities/dataformatters.cpp given below. Screenshot attached.

Line 31: Error : The type "std::ostream " is incomplete.. .... ...

dataformatters_issue

lballabio commented 7 years ago

May you try again now? Thanks.

shail27385 commented 7 years ago

I tried with the latest code. I got the last issue reported earlier in file dataparsers.cpp.

Making all in utilities make[2]: Entering directory /scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/utilities' source='dataformatters.cpp' object='dataformatters.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../../config/depcomp \ /bin/sh ../../libtool --tag=CXX --mode=compile CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c -o dataformatters.lo dataformatters.cpp libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c dataformatters.cpp -KPIC -DPIC -o .libs/dataformatters.o libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c dataformatters.cpp -o dataformatters.o >/dev/null 2>&1 source='dataparsers.cpp' object='dataparsers.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../../config/depcomp \ /bin/sh ../../libtool --tag=CXX --mode=compile CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c -o dataparsers.lo dataparsers.cpp libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../ql -I../.. -I../.. -I/scratch/build/8.0.2/CAP/BOOSTPREV/include -fast -xO2 -xbuiltin -xsafe=mem -xprefetch -fsimple=2 -xtarget=ultra -features=rtti -features=extinl -m64 -library=stlport4 -features=tmplife -features=tmplrefstatic -xcode=pic32 -c dataparsers.cpp -KPIC -DPIC -o .libs/dataparsers.o "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 278: Error: Ambiguous partial specialization for boost::detail::stream_char_common<std::string>, boost::detail::stream_char_common<boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::stream_char_common<std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: While specializing "boost::detail::deduce_source_char<std::string>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 278: Error: Ambiguous partial specialization for boost::detail::stream_char_common<std::string>, boost::detail::stream_char_common<boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::stream_char_common<std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: While specializing "boost::detail::deduce_source_char<std::string>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 406: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/mpl/if.hpp", line 45: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Where: While specializing "boost::mpl::if_c<0, boost::detail::extract_char_traits<char, short>, boost::detail::extract_char_traits<char, std::string>>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Where: Specialized in boost::detail::lexical_cast_stream_traits<std::string, short>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 428: Error: Ambiguous partial specialization for boost::detail::extract_char_traits<char, std::string>, boost::detail::extract_char_traits<boost::detail::Char, boost::container::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>> and boost::detail::extract_char_traits<boost::detail::Char, std::basic_string<boost::detail::Char, boost::detail::Traits, boost::detail::Alloc>>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: While specializing "boost::detail::lexical_cast_stream_traits<std::string, short>". "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/detail/converter_lexical.hpp", line 464: Where: Specialized in boost::detail::lexical_converter_impl<short, std::string>. "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast/try_lexical_convert.hpp", line 196: Where: Instantiated from boost::conversion::detail::try_lexical_convert<short, std::string>(const std::string &, short&). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/lexical_cast.hpp", line 41: Where: Instantiated from boost::lexical_cast<short, std::string>(const std::string &). "/scratch/build/8.0.2/CAP/BOOSTPREV/include/boost/date_time/format_date_parser.hpp", line 72: Where: Instantiated from non-template code. 8 Error(s) detected. make[2]: *** [dataparsers.lo] Error 1 make[2]: Leaving directory/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql/utilities' make[1]: [all-recursive] Error 1 make[1]: Leaving directory `/scratch/build/8.0.2/CAP/LIBRARY_BUILD/QUANTLIB_LATEST/QuantLib-suncc/ql' make: [all] Error 2 root@ofss222910:â¦NTLIB_LATEST/QuantLib-suncc/ql#

lballabio commented 7 years ago

What if you comment out lines 34 and 35 of dataparsers.cpp:

#include <boost/algorithm/string/case_conv.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>

as well as the whole DateParser::parseFormatted method? (Including its declaration in dataparsers.hpp)

shail27385 commented 7 years ago

Post commenting out the suggested include and the method, compilation successfully completes.

lballabio commented 7 years ago

May you try the current version? Thanks!

shail27385 commented 7 years ago

Thanks Luigi for your support.

The current version of code gets compiled successfully without any code modification.

Is the problematic piece of code deprecated (commented) or fixed?

Can i treat this version as a fix on Quantlib 1.9.2 ?

lballabio commented 7 years ago

Thank you for the assistance. I'll merge the code into master later today.

The date-parsing code was commented for the time being.

The suncc branch was based on the upcoming QuantLib 1.10, which contains new stuff compared to 1.9.2. If you want to backport the fixes to 1.9.2, you can use git to cherry-pick and move the corresponding changes to a new branch starting from the QuantLib-v1.9.2 tag.