[Vm-dev] mantis http://bugs.squeak.org/view.php?id=7349

Eliot Miranda eliot.miranda at gmail.com
Thu May 7 18:09:32 UTC 2009

On Thu, May 7, 2009 at 10:45 AM, Yoshiki Ohshima <yoshiki at vpri.org> wrote:

> At Thu, 7 May 2009 09:04:54 -0700,
> Eliot Miranda wrote:
> >
> > - remove stack access from the API, writing them as SmartSyntaxPlugins
> where arguments are passed in as parameters,
> > returning the result on success and 0 (not SmallInteger 0) on
> > failure
>   In these days, nobody would care much about it, but this would
> make it harder to simulate a platform independent performance primitive in
> the image?

I don't think it makes any difference.  In the simulator the VM could e.g.
use perform:withArguments: to invoke the primitive.  The real VM needs to do
something similar and have glue to the platform's native calling convention,
which can be as simple as a 32-element switch statement:
switch (numArgs) {
case 0: result = primitiveFunctionPointer(stackTop()); break;
case 1: result = primtiveFunctionPointer(stackValue(1),stackTop); break;
or as sophisticated as machine code generated on the fly.

> - provide isImmediateObject: and use it in place of isIntegerObject: when
> the objective is to select heap objects. Use
> > isCharacterObject: when the objective is to select a character. I
> > intend to add immediate characters within the next few months.
>   Are you going to use UTF-32 or UTF-16 for it?

Characters would be Unicode code points (WideString is UTF-32 right?).
 UTF-16 is a variable-length string encoding.  Presumably there will be
primitive converters to/from UTF-16 to WideString.

> -- Yoshiki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20090507/8f362a7e/attachment.htm

More information about the Vm-dev mailing list