<div dir="ltr"><div dir="ltr">Hi Eliot,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 26 oct. 2020 à 03:52, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="auto"><div dir="ltr">Hi Nicolas,</div><div dir="ltr"><br><blockquote type="cite">On Oct 25, 2020, at 2:49 PM, Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span><div dir="ltr"><div>Hi Yoshiki, Eliot,</div><div>I confirm the problem, 32 bit linux build fails, on x86 too. it appears on travis log:</div><div><a href="https://travis-ci.org/github/OpenSmalltalk/opensmalltalk-vm/jobs/738800749" target="_blank">https://travis-ci.org/github/OpenSmalltalk/opensmalltalk-vm/jobs/738800749</a></div><div><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2780">In file included from /usr/include/features.h:367:0,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2781">                 from /usr/include/pthread.h:21,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2782">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:62,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2783">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2784">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/aio.c:35:</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2785">/usr/include/stdio.h:781:12: error: conflicting types for ‘fseeko’</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2786"> extern int __REDIRECT (fseeko,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2787">            ^</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2788">In file included from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16:0,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2789">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/aio.c:35:</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2790">/home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:109:22: note: previous declaration of ‘fseeko’ was here</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2791"> #define fseek(s,o,w) fseeko(s,o,w)</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2792">                      ^</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2793">In file included from /usr/include/features.h:367:0,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2794">                 from /usr/include/pthread.h:21,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2795">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:62,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2796">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2797">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/aio.c:35:</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2798">/usr/include/stdio.h:784:18: error: conflicting types for ‘ftello’</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2799"> extern __off64_t __REDIRECT (ftello, (FILE *__stream), ftello64);</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2800">                  ^</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2801">In file included from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16:0,</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2802">                 from /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/aio.c:35:</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2803">/home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:108:18: note: previous declaration of ‘ftello’ was here</span></div></pre><pre id="gmail-m_-2664522066995742814gmail-log"><div><span id="gmail-m_-2664522066995742814gmail-0-2804"> #define ftell(s) ftello(s)</span></div></pre></div></div></span></div></blockquote><div><br></div>Right.  These macros have to go.  They are examples of the counter argument to Tobias’s “include sqConfig.h first” suggestion and shows why it can’t work.  C headers don’t provide encapsulation, therefore a hack (such as the above define) which works in one release may break in another.<div><br></div></div></blockquote><div>+1. In the meantime, I have published a simple workaround that works,</div><div><a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1fde5ab77f6b4ef677014676e7925a4005471bc5">https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1fde5ab77f6b4ef677014676e7925a4005471bc5</a></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div></div><div>a) we have to change our client code to adapt to the platform, not the other way around. We can do this with macros, but they must come *after* system headers not before.</div><div><br></div><div>b) this implies that at the very least HAS_CONFIG_H must be defined in the compiler command line either as -UHAS_CONFIG_H, -DHAS_CONFIG_H, or my preference  -DHAS_CONFIG_H=0 or   -DHAS_CONFIG_H=1 since</div><div>#if HAS_CONFIG_H</div><div>is more concise and precise than</div><div><br></div><div>#ifdef HAS_CONFIG_H/#if defined( HAS_CONFIG_H)</div><div><br></div><div>c) I have realized (thanks David) that static line functions are often better than macros. They’re more powerful and more debuggable (in the debug build).<br><br></div></div></blockquote><div>OK, let's use modern C features</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><blockquote type="cite"><div dir="ltr"><span><div dir="ltr"><div><pre id="gmail-m_-2664522066995742814gmail-log"><div>Makefile:252: recipe for target 'aio.o' failed</div></pre><div><br></div><div>We are doing horrible things with C macro : #define ftell(s) ftello(s) because ftell is a different function with its own signature.<br></div><div>If we include stdio.h AFTER this macro, then we are causing big trouble mixing the signatures...</div><div>We can cheat as long as we do not get caught... It seems to me that we are caught red-handed!<br></div><div>Compilation appears to pass on x64 linux.<br></div></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le dim. 25 oct. 2020 à 21:59, Yoshiki Ohshima <<a href="mailto:Yoshiki.Ohshima@acm.org" target="_blank">Yoshiki.Ohshima@acm.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr"><div dir="ltr">Hi Eliot,<div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 24, 2020 at 5:45 PM Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:large">Hi Yoshiki,<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 24, 2020 at 2:00 PM Yoshiki Ohshima <<a href="mailto:Yoshiki.Ohshima@acm.org" target="_blank">Yoshiki.Ohshima@acm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr">Hi Eliot,<div><br></div><div>For <span style="color:rgb(0,0,0);font-family:arial,sans-serif">build.linux64ARMv8/squeak.</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif">cog.spur/build.debug, i get the following error. I think I followed the steps in the instructions, including running updateSCCSVersion and mvm. How can I fix it?</span></div></div></blockquote><div><br></div><div style="font-size:large">I don't understand.  It's there:</div><div style="font-size:large"><br></div><div style="font-size:large">$ git remote get-url origin</div><div style="font-size:large"><a href="https://github.com/OpenSmalltalk/opensmalltalk-vm.git" target="_blank">https://github.com/OpenSmalltalk/opensmalltalk-vm.git</a></div><div style="font-size:large">$ git status</div><div style="font-size:large">On branch Cog</div><div style="font-size:large">Your branch is up-to-date with 'origin/Cog'.</div><div style="font-size:large">$ git log spur64src/vm/cogitARMv8.c</div><div style="font-size:large">commit 883fab5c30cff36aeb93129030e8f7bfa692a697</div><div style="font-size:large">Author: Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></div><div style="font-size:large">Date:   Sat Oct 17 19:27:21 2020 -0700</div><div style="font-size:large"><br></div><div style="font-size:large">etc</div><div style="font-size:large"><br></div><div style="font-size:large">maybe you're on a different branch?</div></div></div></div></div></blockquote><div><br></div><div>The last commit (two commits) on the  branch I am working with is like this:</div><div><br></div><div>





<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">commit 4f54eed845a8daef7681d17c01f004c3a7b50c9d</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(157,32,111)"><span style="font-variant-ligatures:no-common-ligatures">Author: Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>></span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">Date: <span>  </span>Fri Oct 23 22:46:36 2020 </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(203,36,24)">+0200</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>    </span>Fix <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/531" target="_blank">https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/531</a></span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>    </span>The return type of `currentUTCMicroseconds` was lost.</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>    </span>For some reason, the cygwin/mingw takes this compilation path</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>    </span>`#else // _WIN32_WINNT >= _WIN32_WINNT_WIN8`</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">commit efb4b1c82fd81798221d9811faa65f7bfb9c71be</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(157,32,111)"><span style="font-variant-ligatures:no-common-ligatures">Author: Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">Date: <span>  </span>Tue Oct 20 19:01:17 2020 </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(203,36,24)">-0700</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>    </span>Add stdio.h to sqWin32NewNet.c for its debug printing.</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span style="font-variant-ligatures:no-common-ligatures"></span><br></p><p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px">And I do see 883fab5c30cff36 in the ancestor chain.  Maybe a macro name like __arm64__ or __arm_something__ is missing or different?</p><p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><br></p></div><div>For the composition input problem, I have a hacky version of code that makes it not crash.  It comes down to the line:</div><div><br></div>





<div><span style="font-family:Menlo;font-size:11px;font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)"><span>  </span></span><span style="color:rgb(203,36,24);font-family:Menlo;font-size:11px;font-variant-ligatures:no-common-ligatures">/* 24-bit UCS */</span></div><div>-  if ((keysym & 0xff000000) == 0x01000000) return keysym & 0x00ffffff;<br>+  if ((keysym & 0xff000000) == 0x01000000) {<br>+    return 0; // keysym & 00x00ffffff;<br>+  }<br></div><div><br></div><div>I cannot tell when it gets "24-bit UCS" as keysym... keysym often does not store a code point like that, if I'm not mistaken.</div><div><br></div><div>There are other problems which I believe I introduced while ago to misunderstood a debugging macro DCONV_FPRINTF(), which adds stderr as the first argument but many calls to it were adding stderr by themselves. </div><div><br></div></div>-- <br><div dir="ltr">-- Yoshiki<div><br></div></div></div>
</blockquote></div>
</span></div></blockquote></div></div></blockquote></div></div>