[Vm-dev] InterpreterSimulator

Florin Mateoc florin.mateoc at gmail.com
Sat Mar 12 17:46:19 UTC 2016

On 3/12/2016 10:15 AM, Eliot Miranda wrote:
> Hi Florin,
>> On Mar 11, 2016, at 7:37 PM, Florin Mateoc <florin.mateoc at gmail.com> wrote:
>>> On 3/11/2016 9:31 PM, Eliot Miranda wrote:
>>> Then maybe we can pull you into some Sista work.  Eventually it will make sense to work in closed world translations, especially if, as Gerardo and Xavier did, one wants to write the VM in pure Smalltalk and have it translate itself (bootstrap itself) to external code.  But that may be quite an effort and be something we can collaborate on.  But right now the focus is on making what else have now fast and complete.  The "perfect" solution can wait until we can afford the opportunity cost.
>> Well, if there is Sista work that does not involve C, I am interested in that as well
> None of Sista involves C.  First, the vast majority of Sista is image level.  It is an SSA based analyser that rewrites bytecode methods to bytecode methods that include unsafe bytecodes.  Second, the JIT fir tgose bytecode methods is all Smalltalk and targets machine code via an abstract assembler-like intermediate language augmented with a model of the stack that also functions as a register allocator.
> Sista is developed directly in Smalltalk with no limitations from Slang, or having to generate a VM.  It exists in the image just like the bytecode compiler.
> The JIT is developed in the context of the VM simulator.  It does have to obey Slang's restrictions.  But machine code execution etc is via safe simulators such as Bochs so again the development experience is dynamic and safe.
> C only enters the picture when generating and compiling a production VM and us a very small part of the overall experience.

How is Sista being developed (is it developed in the open (in trunk))? Where is the source code? How does one
contribute? How do you guys communicate (is there a separate mailing list)?
The SSA representation and the transformations are AST based? Is there any documentation?

More information about the Vm-dev mailing list