|
From: Luigi B. <lui...@gm...> - 2016-09-20 12:33:32
|
Thank you. On Tue, Sep 20, 2016 at 1:33 PM Ivan A. Cherkasov < iva...@gm...> wrote: > 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. >>>>>>> >>>>>> >>>>>> |