Dear all,<br><br>Now ecl compiles without threads support under win32. Here is what I did:<br><br>1. After I took a closer look I found that the real problem is "ERROR" IS defined, so I added #undef ERROR in the "no threads" branch and compiled it again. Now there was only one error building ecl-min.exe<br><br>cinit.obj : error LNK2019: unresolved external symbol __ecl_w32_exception_filter<br>@4 referenced in function _si_simple_toplevel<br><span id="_editor_bookmark_start_4" style="display: none; line-height: 0px;">‍</span><br>2. After a bit code reading, I found that cinit.c includes stack.h's try/catch macros, which is defined as:<br><br>#if defined(_MSC_VER)<br># define ECL_CATCH_ALL_BEGIN(the_env) do {            \<br>    const cl_env_ptr __the_env = (the_env);            \<br>    _try {                            \<br>    const cl_env_ptr __the_env = (the_env);            \<br>    if (ecl_frs_push(__the_env,ECL_PROTECT_TAG) == 0) {<br># define ECL_CATCH_ALL_IF_CAUGHT } else {<br># define ECL_CATCH_ALL_END }}                        \<br>    _except(_ecl_w32_exception_filter(GetExceptionInformation())) \<br>    { (void)0; }                            \<br>    ecl_frs_pop(__the_env); } while(0)<br><span id="_editor_bookmark_start_5" style="display: none; line-height: 0px;">‍</span>...<br><br>However, _ecl_w32_exception_filter<span id="_editor_bookmark_start_138" style="display: none; line-height: 0px;">‍</span> is defined in unixint.c like this:<br><br>#ifdef ECL_WINDOWS_THREADS<br>static LPTOP_LEVEL_EXCEPTION_FILTER old_W32_exception_filter = NULL;<br><br>LONG WINAPI<br>_ecl_w32_exception_filter(struct _EXCEPTION_POINTERS* ep)<br>{<br>...<br><span id="_editor_bookmark_start_139" style="display: none; line-height: 0px;">‍</span><br>So no wonder it isn't defined. Since my goal is to support emscripten, there is no need to implement a fake _ecl_w32_exception_filter, so I just changed the _exception(...) part into _except(1) and then ecl.exe was produced.<br><br>I've played around a bit and didn't find anything wrong. Ctrl-C also works: it terminates the program normally without crash. That means the win32 crash bug (Issue 8) may be related to _ecl_w32_exception_filter<span id="_editor_bookmark_start_268" style="display: none; line-height: 0px;">‍</span>.<br><br>Any thoughts about this?<br><br><div>- Rujia<br><br></div>