[squeak-dev] VMs, platforms and 32 vs 64bit

Jecel Assumpcao Jr. jecel at merlintec.com
Wed Apr 11 18:45:35 UTC 2018


Benoit St-Jean wrote on Tue, 10 Apr 2018 22:15:13 +0000 (UTC)
> I was wondering if images for different platforms (Mac, Linux, Windows)
> and VMs (32bit, 64bit) are, code-wise, the same?  By "the same", I mean
> do they all have the exact same code base or some classes/methods
> are in some and not in others or different?

All images that have been released for Squeak have been exactly the same
for all platforms. You can save your work on an ARM based Raspberry Pi
and continue it on a x86 Windows PC.

That said, there are a few classes that are specific to each platform.
See FileDirectory, for example, which has as subclasses
AcornFileDirectory, DosFileDirectory, MacFileDirectory,
MacHFSPlusFileDirectory and UnixFileDirectory. Your application should
normally only use the abstract class and the right class for your
particular platform will get called and this will more or less work for
the Pi to PC move I described above. I wrote "more or less" because
obviously open files would be a problem, but they wouldn't make sense on
a different machine in any case.

You could strip out the classes for the platforms you are not interested
in, but they are such a tiny part of the image it wouldn't be worth it.

The subclasses of KeyboardInputInterpreter  {MacRomanInputInterpreter .
NoInputInterpreter . WinShiftJISInputInterpreter .
MacShiftJISInputInterpreter . UnixEUCJPInputInterpreter .
UnixUTF8JPInputInterpreter . WinGB2312InputInterpreter .
WinKSX1001InputInterpreter . SymbolInputInterpreter .
CP1250InputInterpreter . ISO88592InputInterpreter .
MacUnicodeInputInterpreter . UTF32InputInterpreter .
UnicodeInputInterpreter . UTF32JPInputInterpreter .
UnixUnicodeInputInterpreter} are the only other platform specific parts
of the image I am aware of.

In the early days the official Squeak images included all the code
needed to generate the virtual machine. That has since been moved to a
separate package called VMMaker which you now have to load explicitly if
you want to. That has quite a bit of platform specific code.

-- Jecel


More information about the Squeak-dev mailing list