|
From: Ivan A. C. <iva...@gm...> - 2016-09-20 11:33:17
|
Hello. I rebuilt from scratch with version 14.0. 25431.01 and the test suite passed. On Sep 16, 2016 6:39 PM, "Luigi Ballabio" <lui...@gm...> wrote: > Thanks for the confirmation (and for hunting down the issue on the MS > site). > > Given that it's this one place, I think I'll apply the patch anyway. I'd > try to avoid the test suite failing out of the box for some people, given > that not everybody can update their compilers at will... > > Luigi > > > On Fri, Sep 16, 2016 at 2:27 PM Ivan A. Cherkasov < > iva...@gm...> wrote: > >> Hello, Luigi. >> >> The testsuite succeeded with your patch on “Version 14.0.25422.01 Update >> 3”: >> >> 1>------ Build started: Project: testsuite, Configuration: Release x64 >> ------ >> … >> 1> Testing observable settings... >> >> >> 1> Testing adaptive Runge Kutta... >> >> 1> Testing matrix exponential based on ode.. >> … >> 1> >> 1> Test module "Master Test Suite" has passed with: >> 1> 646 test cases out of 646 passed >> 1> 1002058 assertions out of 1002058 passed >> 1> >> ========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped >> ========== >> >> So, supposedly, it is indeed the “Issue 3 Potential miscompilation of >> code-calling functions that resemble std::min/std::max on floating point >> values.” (https://msdn.microsoft.com/en-us/library/mt752379.aspx, Bugs >> that are fixed in version 14.0.25425.01, released on 08/02/2016). >> >> Personally, I wouldn’t recommend applying this patch to the master given >> that std::max is used in many places in QuantLib, and it seems that this is >> a VC compiler issue (I don’t recall having issues building 1.8 with GCC). >> >> I will try to get VC updated and check if the issue disappears. >> >> Thanks for looking into that. >> On Sep 14, 2016 6:13 PM, "Luigi Ballabio" <lui...@gm...> >> wrote: >> >>> Ivan, >>> please try the attached patch and check if it fixes the test failure. >>> >>> Thanks, >>> Luigi >>> >>> >>> >>> On Wed, Sep 14, 2016 at 10:49 AM Luigi Ballabio < >>> lui...@gm...> wrote: >>> >>>> It seems so. Anyway, I seem to have worked around the problem, but I'm >>>> not in the office this morning. Stay tuned... >>>> >>>> >>>> On Wed, Sep 14, 2016 at 10:45 AM Peter Caspers <pca...@gm...> >>>> wrote: >>>> >>>>> Hi Luigi, >>>>> >>>>> not your fault, our subconscious mind presses these ok-buttons for us… >>>>> >>>>> Does it mean the problem only occurs in a specific version of VC14? In >>>>> particular not in the latest? >>>>> >>>>> Regards >>>>> Peter >>>>> >>>>> On 12 Sep 2016, at 15:27, Luigi Ballabio <lui...@gm...> >>>>> wrote: >>>>> >>>>> Peter, Ivan, >>>>> I could reproduce the errors on a virtual machine running VC14. >>>>> I'll try to find some time to work on this, too. >>>>> >>>>> Also, I'll share a life lesson I learned last week. If you ever >>>>> reproduce an error like the above, and then the compiler tells you that an >>>>> update is available, for the love of all that's holy DON'T update. If you >>>>> do so, the error will disappear and your virtual machine will spend the >>>>> best part of a Friday restoring the previous version of the compiler while >>>>> you call yourself all sorts of names. Just saying. >>>>> >>>>> Later, >>>>> Luigi >>>>> >>>>> >>>>> On Fri, Sep 9, 2016 at 5:03 PM Ivan A. Cherkasov < >>>>> iva...@gm...> wrote: >>>>> >>>>>> One more observation I wanted to share: >>>>>> >>>>>> with /fp:strict /fp:except compile flags (https://msdn.microsoft.com/ >>>>>> en-us/library/e7s85ffb.aspx) I’m getting build errors. >>>>>> >>>>>> command line: >>>>>> >>>>>> ^C:\TMP\QL18_VC2015_MK3\QUANTLIB-1.8\QL\EXPERIMENTAL\ >>>>>> FINITEDIFFERENCES\DYNPROGVPPINTRINSICVALUEENGINE.CPP >>>>>> /c /IC:\BIN\BOOST_1_61_0 /I. /Zi /nologo /W3 /WX- /O2 /Ob2 /Ot /D >>>>>> NDEBUG /D WIN32 /D _LIB /D _SCL_SECURE_NO_DEPRECATE /D >>>>>> _CRT_SECURE_NO_DEPRECATE /D _MBCS /GF /Gm- /EHsc /MD /GS /Gy /fp:strict >>>>>> /fp:except /Zc:wchar_t /Zc:forScope /Zc:inline /GR >>>>>> /Fo".\BUILD\VC140\X64\RELEASE\\" /Fd".\BUILD\VC140\X64\RELEASE\QUANTLIB.PDB" >>>>>> /Gd /TP C:\TMP\QL18_VC2015_MK3\QUANTLIB-1.8\QL\EXPERIMENTAL\ >>>>>> FINITEDIFFERENCES\DYNPROGVPPINTRINSICVALUEENGINE.CPP >>>>>> >>>>>> build errors: >>>>>> >>>>>> … >>>>>> >>>>>> 1> dynprogvppintrinsicvalueengine.cpp >>>>>> 1>C:\Program Files (x86)\Microsoft Visual Studio >>>>>> 14.0\VC\include\xcomplex(646): error C2131: expression did not evaluate to >>>>>> a constant (compiling source file ql\experimental\finitedifferences\ >>>>>> hestonrndcalculator.cpp) >>>>>> 1> C:\Program Files (x86)\Microsoft Visual Studio >>>>>> 14.0\VC\include\xcomplex(646): note: failure was caused by an undefined >>>>>> arithmetic operation (compiling source file ql\experimental\ >>>>>> finitedifferences\hestonrndcalculator.cpp) >>>>>> 1> ql\experimental\finitedifferences\hestonrndcalculator.cpp(110): >>>>>> note: see reference to function template instantiation >>>>>> 'std::complex<double> std::log<double>(const std::complex<double> &)' being >>>>>> compiled >>>>>> >>>>>> … >>>>>> >>>>>> 1>C:\Program Files (x86)\Microsoft Visual Studio >>>>>> 14.0\VC\include\xcomplex(232): error C2131: expression did not evaluate to >>>>>> a constant (compiling source file ql\math\modifiedbessel.cpp) >>>>>> 1> C:\Program Files (x86)\Microsoft Visual Studio >>>>>> 14.0\VC\include\xcomplex(232): note: failure was caused by an undefined >>>>>> arithmetic operation (compiling source file ql\math\modifiedbessel.cpp) >>>>>> 1> C:\Program Files (x86)\Microsoft Visual Studio >>>>>> 14.0\VC\include\xcomplex(253): note: see reference to function template >>>>>> instantiation '_Ty std::_Fabs<double>(const std::complex<double> &,int *)' >>>>>> being compiled >>>>>> 1> with >>>>>> >>>>>> ... >>>>>> >>>>>> and so on. >>>>>> >>>>> >>>>> |