<div class="__aliyun_email_body_block"><div  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun"><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;">&gt;&nbsp;<span  style="color: rgb(0, 0, 0); font-family: Tahoma, Arial, STHeiti, SimSun; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Thanks!&nbsp; All those references are interesting (and depressing).</span></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun; color: rgb(0, 0, 0); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;">Programming on Windows is depressing indeed.</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;">I found that IO routines (eg. <span  style="font-family: monospace; color: rgb(178, 24, 24); background-color: rgb(255, 255, 255);">call-with-input-file,&nbsp;<span  style="font-family: monospace; color: rgb(178, 24, 24); background-color: rgb(255, 255, 255);">call-with-output-file</span></span>) in S7 Scheme does not support unicode path while it works on windows.</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;">It means if a user's name is in unicode, S7 Scheme will not work properly on Windows. Because the path on Windows would be: C:/Users/[Username]/Documents/xxx.scm</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;">Goldfish Scheme add tbox as a dependency to solve the problem of cross platform without dive into the boring Windows API.</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun;"><a  href="https://github.com/tboox/tbox" target="_blank">https://github.com/tboox/tbox</a></span></div><div  style="clear: both;"><br ></div><div  style="clear: both;">There are three reason why I choose tbox to add glue routines to S7 Scheme for Goldfish Scheme:</div><div  style="clear: both;">1. cross platform (Linux/macOS/Windows)</div><div  style="clear: both;">2. zero dependency</div><div  style="clear: both;">3. almost available everywhere because xmake is almost available everywhere</div><div  style="clear: both;"><br ></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;">&gt;&nbsp;<span  style="color: rgb(0, 0, 0); font-family: Tahoma, Arial, STHeiti, SimSun; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">I think there might be a typo in the patch you sent: _MSC_V</span></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun; color: rgb(0, 0, 0); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeiti, SimSun; color: rgb(0, 0, 0); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Yes. Your correction is correct. Sorry that I have not generate the patch by the diff command line tool.</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;">Why not host S7 on Github, and setup continuous integration in Linux, Windows, macOS using different compilers?</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;"><br ></span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;">In this way, community developers can create pull request much more easier.</span></div><div  style="clear: both;"><span  style="font-family: Tahoma, Arial, STHeitiSC-Light, SimSun;"><br ></span></div><blockquote  _quote="1" style="margin-right: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Tahoma, Arial, STHeiti, SimSun; font-size: 14px; color: rgb(0, 0, 0);"><div  style="clear: both;">------------------------------------------------------------------</div><div  style="clear: both;">From:bil &lt;bil@ccrma.Stanford.EDU&gt;</div><div  style="clear: both;">Send Time:2024 Nov. 21 (Thu.) 03:38</div><div  style="clear: both;">To:"沈达"&lt;da@liii.pro&gt;</div><div  style="clear: both;">Cc:cmdist&lt;cmdist@ccrma.Stanford.EDU&gt;</div><div  style="clear: both;">Subject:Re: [CM] s7_complex does not compile for MSVC</div><div  style="clear: both;"><br ></div>Thanks!&nbsp; All those references are interesting (and depressing).<br >I think there might be a typo in the patch you sent: _MSC_V<br >for _MSC_VER? Here's my current guess (with 2 clang++ cases so<br >I can switch back and forth more easily):<br ><br >#if __TINYC__ || _MSC_VER || (__clang__ &amp;&amp; __cplusplus)<br > &nbsp; /* _MSC_VER (and clang++??) should also set HAVE_COMPLEX_NUMBERS to 0 <br >*/<br > &nbsp; typedef double s7_complex;<br >#else<br > &nbsp; #if __cplusplus /* only __GNUC__ */<br > &nbsp; &nbsp; #include &lt;complex&gt;<br > &nbsp; &nbsp; #ifdef __GNUC__<br > &nbsp; &nbsp; &nbsp; typedef std::complex&lt;s7_double&gt; s7_complex;<br > &nbsp; &nbsp; #else<br > &nbsp; &nbsp; &nbsp; using s7_complex = std::complex&lt;double&gt;;<br > &nbsp; &nbsp; &nbsp; /* sort of works in clang++ but there are many more problems */<br > &nbsp; &nbsp; #endif<br > &nbsp; #else<br > &nbsp; &nbsp; #include &lt;complex.h&gt;<br > &nbsp; &nbsp; typedef double complex s7_complex;<br > &nbsp; #endif<br >#endif</blockquote><div  style="line-height: 20px; clear: both;"><br ></div></div></div>