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

Eliot Miranda eliot.miranda at gmail.com
Wed Jul 13 12:32:19 UTC 2016


Hi Nicolas,


> On Jul 12, 2016, at 11:33 PM, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> 
> 
> 
> 2016-07-12 23:23 GMT+02:00 Eliot Miranda <eliot.miranda at gmail.com>:
>> 
>> Hi Marcel,
>> 
>> 
>> > On Jul 12, 2016, at 12:24 PM, marcel.taeumel <Marcel.Taeumel at hpi.de> wrote:
>> >
>> >
>> > Hi Nicolas,
>> >
>> > I suppose there are several places in some low-level parts of Cog/Jit where
>> > Long and Pointer-Type are used interchangeably. One would have to fix that
>> > first. Only then, we can start caring for interfacing the win-api correctly.
>> 
>> That's right.  Throughout the Cogit is the assumption that sizeof(long) == sizeof(sqInt) == sizeof(void *).  That's why I'm hoping we can use a C compiler which obeys this for win64.  It is nontrivial to fix, as I've already discussed.  Did my words fall on deaf ears and you're proposing to go ahead?
> 
> Hi Eliot,
> 
> for sizeof(long) != sizeof(void *) that's not a big problem from what i see in VMMaker (unless I'm also blind)
> there are not so many usage of long/unsigned long

It means that sizeof(long) is undefined in Spur 64-bit, as it may be either 4 or 8 bytes in size.  So we have to either eliminate it or post-process it to emit it as eg long64 and have #defines to map it to int64 on win64 and long everywhere else.

If we keep it, it is a source of confusion that must be documented and learned.  If we eliminate it, its absence is a source of confusion that must be documented and learned.

I had hoped we could avoid outright butchery :-(

> longAt() answers a sqInt so it's OK.
> I've published VMMaker.oscogLLP64-nice.1901 on http://smalltalkhub.com/mc/nice/NiceVMExperiments/main and the list of changes is rather short.
> Maybe I forgot some places though, it needs consolidation.
> 
> for sizeof(sqInt) != sizeof(void *) that's really more difficult.
> There are assumptions that objectMemory == machineMemory and avoidance of oopForPointer() pointerForOop() macros spreaded across Cog/Spur as I understand it.
> But we ain't gonna need it until we try to run 32bits image on 64bits VM.
> 
> 
>> >
>> > Best,
>> > Marcel
>> >
>> >
>> >
>> > --
>> > 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-tp4904953p4906337.html
>> > Sent from the Squeak VM mailing list archive at Nabble.com.
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160713/d4263f90/attachment.htm


More information about the Vm-dev mailing list