[Vm-dev] Re: [Poll] Who is interested in, thinking about, or already contributing to a 64-bit OpenSmalltalk VM for Windows?

David T. Lewis lewis at mail.msen.com
Thu Jul 7 12:47:25 UTC 2016


On Thu, Jul 07, 2016 at 12:45:14PM +0200, Nicolas Cellier wrote:
>  
> 2016-07-06 4:04 GMT+02:00 Eliot Miranda <eliot.miranda at gmail.com>:
> 
> >
> > Hi All,
> >
> > On Tue, Jul 5, 2016 at 8:06 AM, Nicolas Cellier <
> > nicolas.cellier.aka.nice at gmail.com> wrote:
> >
> >>
> >>
> >> 2016-07-05 15:40 GMT+02:00 marcel.taeumel <Marcel.Taeumel at hpi.de>:
> >>
> >>>
> >>> >>
> >>> >> --
> >>> >> View this message in context:
> >>> >>
> >>> http://forum.world.st/Poll-Who-is-interested-in-thinking-about-or-already-contributing-to-a-64-bit-OpenSmalltalk-VM-for-Wi-tp4904953.html
> >>> >> Sent from the Squeak VM mailing list archive at Nabble.com.
> >>> >>
> >>>
> >>> Hi Nicolas,
> >>>
> >>>
> >> Hi Marcel,
> >>
> >>
> >>> if we target Cygwin as a build environment, this might be worth noticing:
> >>> https://cygwin.com/faq.html#faq.programming.64bitporting
> >>>
> >>>
> >> As currently generated, the Spur Vm for 64 bits expects sizeof(long) == 8.
> >> So it is cygwin64 x86_64 compatible, but not so much MSVC... (or
> >> mingw-w64 variants...)
> >> IMO, this is the easiest target. then we could inquire about alternate
> >> compilers.
> >>
> >
> > This is great to hear.  So there is a model where sizeof(long) == 8?  If
> > that's so, we should target it.  There's a /lot/ of work to do if we have
> > to support the Win64 sizeof(long) == 4 model.
> >
> snip...
> 
> After inquiring a bit more, that's not going to be that easy...
> Yes, x86_64-pc-cygwin-gcc.exe is LP64 and Spur64 compatible, but it lacks
> all the interfaces used by platforms/win32 (like _fmode _O_BINARY etc...)
> On the other hand, x86_64-w64-mingw32-gcc.exe has all the required win32
> interfaces but is thus LLP64.
> 
> Thus, either we use cygwin, switch to a unix architecture, and loose a
> bunch of win32 specific features (Direct3D etc...). But how to provide the
> interface to window manager/GUI?

Also, on Windows, FilePlugin uses HANDLE rather than (FILE *) for all
references to file operations.

> Or we take the longer path to get VMMaker work on LLP64 (sizeof long == 4,
> sizeof(long) < sizeof(char *)).

That would be the right thing to do. Assuming that a long is large enough
to hold a pointer is wrong. But it would not be easy or quick to make the
changes. Updates to platforms/Cross would be needed, so it affects more
than just the win32 tree.

Dave



More information about the Vm-dev mailing list