Anonymous | Login | Signup for a new account | 2024-11-25 07:03 MSK |
Main | My View | View Issues | Change Log | Roadmap | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||
0000813 | [ALGLIB] Optimization | minor | always | 2018-04-24 11:06 | 2018-04-27 16:06 | ||
Reporter | rmanthorpe | View Status | public | ||||
Assigned To | SergeyB | ||||||
Priority | normal | Resolution | fixed | Platform | |||
Status | resolved | OS | |||||
Projection | none | OS Version | |||||
ETA | none | Fixed in Version | 3.14.0 | Product Version | 3.13.0 | ||
Target Version | 3.14.0 | Product Build | |||||
Summary | 0000813: FIXED: minlmoptimize enters an infinite loop when fvec throws an exception on Windows x64 | ||||||
Description |
In recent versions of MSVC setjmp/longjmp used by ALGLIB internally interferes with throw/catch also used by ALGLIB to catch user exceptions. MSVC does not support longjmp() out of catch() clause (even though jump itself seems to be legitimate). Code starts looping forever. New version of ALGLIB exception handling code better separates these two strategies, so no eternal loop takes place. === ORIGINAL MESSAGE =================================================== The example below should exit with status 1 but never completes on Windows x64 using Visual Studio 2015 Update 3. It works as expected on Windows x86 and Linux. test.cpp --------------------------------------------------------------- #include "optimization.h" void callback(const alglib::real_1d_array&, alglib::real_1d_array&, void*) { throw 0; } int main() { alglib::minlmstate state; alglib::real_1d_array x; x.setlength(1); alglib::minlmcreatev(1, x, 1e-5, state); try { alglib::minlmoptimize(state, &callback); } catch(...) { return 1; } return 0; } |
||||||
Steps To Reproduce | |||||||
Additional Information | |||||||
Programming language | C++ | ||||||
Attached Files | |||||||
|
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |