64-bit VMs

Ian Piumarta ian.piumarta at inria.fr
Mon Apr 4 21:25:18 UTC 2005

On Apr 1, 2005, at 7:05 AM, Ned Konz wrote:

> Do you know which, if any, plugins need special attention / weren't 
> tested?

Here is the current state (as far as I am aware) of plugins
w.r.t. 64-bit conversion.

Plugin                  Status  Owner
------                  ------  -----
ADPCMCodecPlugin        ?       ?
AsynchFilePlugin        ?       [ikp]
B2DPlugin               1/2     ar?+di?
B3DAcceleratorPlugin    ?       ar?
BMPReadWriterPlugin     ?       ?
BitBltPlugin            ok?     [di]
DSAPrims                ?       ?
DropPlugin              ?       ?
FFTPlugin               ?       ?
FileCopyPlugin          ?       [ikp]
FilePlugin              ok      ikp
FloatArrayPlugin        ?       ?
GeniePlugin             ?       ?
JPEGReadWriter2Plugin   ?       ?
JPEGReaderPlugin        ?       ?
JoystickTabletPlugin    ?       ?
Klatt                   ?       ?
LargeIntegers           ?       ?
MIDIPlugin              ?       ?
Matrix2x3Plugin         ?       ?
MiscPrimitivePlugin     ?       [ikp]
Mpeg3Plugin             ?       ?
OSPP                    ?       dl?
RePlugin                ?       ?
SecurityPlugin          ?       ?
SerialPlugin            ?       ?
SocketPlugin            ok      ikp
SoundCodecPrims         ?       ?
SoundGenerationPlugin   ?       ?
SoundPlugin             ?       ?
StarSqueakPlugin        ?       ?
SurfacePlugin           ?       ?
Squeak3D                ?       ar?
SqueakFFIPrims          ?       ar?+ikp
ZipPlugin               ?       ?

The 'owner' column shows the initials of the person responsible
for the conversion.  Initials in [ ] brackets are people who will
take charge of conversion if nobody else volunteers.  Initials
with a trailing ? query point are my best guess at who should
take charge.  di = Dan, ar = Andreas, dl = Dave Lewis, ikp = me.
I have no idea of (or am too lazy to look up) the most likely
responsible person for the others.

(If anyone on this list would like to claim responsibility for
any of the above plugins [and commit to converting it/them] then
please let me know.  After a suitable timeout I'll repeat the
call on squeak-dev, and after another timeout I'll start giving
out 'plugin tokens' to anyone willing to work on anything.)

The 'status' column reflects the state of conversion.  '?' means
untested (but presumed to require some work), although plugins
written exclusively in Slang should require minimal (or no)
work (with the probable exception of OSPP).  '1/2' means just
enough to paint the screen is converted and working, but
otherwise severely underconverted and requiring much careful
attention from an expert.  'ok?' means compiles without error and
appears to work, but could definitely benefit from a once-over
from a well-trained and knowledgeable eye.  'ok' means converted
and believed to be working fine.  (The '?'s may require work
in the plugin and/or in obscure corners of the CCodeGenerator
and relatives to correct the usual gross 32-bit assumptions.)

The two main 'gotchas' in Slang-based code (so far, at least)

1. Things declared to be 'int' that are supposed to contain oops
    and/or pointers into memory.  Every single one of these will
    need fixing, carefully.

2. 'C' structures stored in ObectMemory as ByteArrays that
    contain pointers (or anything else that might be 64-bit
    aligned on 64-bit hardware).  These have to be read/written
    specially to avoid unaligned accesses (e.g., FilePlugin in
    which the file [pointer] and fileSize [off_t or somesuch]
    members of SQFile are read/written by memory copy rather than
    by load/store).


More information about the Vm-dev mailing list