<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-07-07 14:47 GMT+02:00 David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
On Thu, Jul 07, 2016 at 12:45:14PM +0200, Nicolas Cellier wrote:<br>
&gt;<br>
&gt; 2016-07-06 4:04 GMT+02:00 Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; Hi All,<br>
&gt; &gt;<br>
&gt; &gt; On Tue, Jul 5, 2016 at 8:06 AM, Nicolas Cellier &lt;<br>
&gt; &gt; <a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 2016-07-05 15:40 GMT+02:00 marcel.taeumel &lt;<a href="mailto:Marcel.Taeumel@hpi.de">Marcel.Taeumel@hpi.de</a>&gt;:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; &gt;&gt; --<br>
&gt; &gt;&gt;&gt; &gt;&gt; View this message in context:<br>
&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; <a href="http://forum.world.st/Poll-Who-is-interested-in-thinking-about-or-already-contributing-to-a-64-bit-OpenSmalltalk-VM-for-Wi-tp4904953.html" rel="noreferrer" target="_blank">http://forum.world.st/Poll-Who-is-interested-in-thinking-about-or-already-contributing-to-a-64-bit-OpenSmalltalk-VM-for-Wi-tp4904953.html</a><br>
&gt; &gt;&gt;&gt; &gt;&gt; Sent from the Squeak VM mailing list archive at Nabble.com.<br>
&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Hi Nicolas,<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; Hi Marcel,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; if we target Cygwin as a build environment, this might be worth noticing:<br>
&gt; &gt;&gt;&gt; <a href="https://cygwin.com/faq.html#faq.programming.64bitporting" rel="noreferrer" target="_blank">https://cygwin.com/faq.html#faq.programming.64bitporting</a><br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; As currently generated, the Spur Vm for 64 bits expects sizeof(long) == 8.<br>
&gt; &gt;&gt; So it is cygwin64 x86_64 compatible, but not so much MSVC... (or<br>
&gt; &gt;&gt; mingw-w64 variants...)<br>
&gt; &gt;&gt; IMO, this is the easiest target. then we could inquire about alternate<br>
&gt; &gt;&gt; compilers.<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; This is great to hear.  So there is a model where sizeof(long) == 8?  If<br>
&gt; &gt; that&#39;s so, we should target it.  There&#39;s a /lot/ of work to do if we have<br>
&gt; &gt; to support the Win64 sizeof(long) == 4 model.<br>
&gt; &gt;<br>
&gt; snip...<br>
&gt;<br>
&gt; After inquiring a bit more, that&#39;s not going to be that easy...<br>
&gt; Yes, x86_64-pc-cygwin-gcc.exe is LP64 and Spur64 compatible, but it lacks<br>
&gt; all the interfaces used by platforms/win32 (like _fmode _O_BINARY etc...)<br>
&gt; On the other hand, x86_64-w64-mingw32-gcc.exe has all the required win32<br>
&gt; interfaces but is thus LLP64.<br>
&gt;<br>
&gt; Thus, either we use cygwin, switch to a unix architecture, and loose a<br>
&gt; bunch of win32 specific features (Direct3D etc...). But how to provide the<br>
&gt; interface to window manager/GUI?<br>
<br>
</div></div>Also, on Windows, FilePlugin uses HANDLE rather than (FILE *) for all<br>
references to file operations.<br>
<span class=""><br>
&gt; Or we take the longer path to get VMMaker work on LLP64 (sizeof long == 4,<br>
&gt; sizeof(long) &lt; sizeof(char *)).<br>
<br>
</span>That would be the right thing to do. Assuming that a long is large enough<br>
to hold a pointer is wrong. But it would not be easy or quick to make the<br>
changes. Updates to platforms/Cross would be needed, so it affects more<br>
than just the win32 tree.<br>
<br>
Dave<br>
<br></blockquote><div>Hi Dave,<br></div><div>I&#39;ve started the LLP64 compatibility changes on master branch.<br></div><div>It&#39;s not so hard if we stick to the sq* types.<br></div><div>Then there will be a bunch of VMMaker (long) usage to revise.<br><br></div><div>cheers<br></div><div><br></div></div><br></div></div>