(moving the discussion back to vm-dev, as it may be of some general interest)
On Sat, Apr 03, 2010 at 10:48:36AM -0700, Ian Piumarta wrote:
On Fri, Apr 02, 2010 at 05:10:53PM -0400, David T. Lewis wrote:
So both SoundPlugin and FT2Plugin seem to be in good shape now for 32 and 64-bit hosts.
More than that, as major credit to the 64-bit work: I compiled the whole thing as a 64-bit binary from 32-bit sources and it ran just fine -- at least enough to regenerate the entire source tree from VMM. Benchmarks were slightly faster than the 32-bit binary, and might be sped up even more if the additional registers are exploited in sqGnu.h. I wonder just how much up-front difference there needs to be with the "64-bit" switch in VMM? Seems like we've arrived at, or are not far from, being able to compile any Unix VM from one set of sources and have cmake and/or cpp implement all pointer-width dependencies at C compile time.
WRT pointer dependencies "64-bit host" I think we are in good shape as far as a single code base, in the sense that the C code generator and VMM tool knows nothing about the pointer size of the target machine. But as a practical matter there is still a good deal of work to be done before we get clean builds for 64-bit hosts. The main issues that I see, in order of importance, are:
1) Get FFI working on 64-bit hosts. This is important because it affects methods in the VM itself (not just the plugin), and also because there is now interest in supporting the aliens FFI, and perhaps in other FFI work (Andreas and Eliot have been discussing this I think). I had 64-bit FFI mostly working about a year or two ago, so I think we can dust off the patches without too much trouble. But it is a large set of changes so coordinating the platforms and VMM updates will be a challenge.
2) SurfacePlugin and dependents need to be updated to fix pointer/int problems. I don't have patches for this, so work needs to be done here.
3) Various other plugins need updates. As far as I know, none of the remaining plugin issues will have any impact on the VM itself. I think John has already started attacking some of these, and it should be just a matter of working through the pointer/int issues one by one.
The 64-bit toggle in VMM is of course just for generating 64-bit object memory support, and as you've pointed out before it's probably not a huge job to get the dependencies out of VMM and under the control of CPP macro. I guess I should have a look at that again.
Cheers, Dave
vm-dev@lists.squeakfoundation.org