Re: Platform updates for unix VM 4.0.2-2159

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Platform updates for unix VM 4.0.2-2159

David T. Lewis
 
(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