Slate and Agora; building the Slate VM

Nicolas Pelletier nicolas.pelletier3 at free.fr
Wed Dec 29 04:14:27 PST 2004


Hello,

"Shaping" <shaping1 at bellsouth.net> writes:

>  More importantly, Slate has object-based multiple dispatch,
> > which changes the character of the language a bit, but makes it more
> > powerful in return.
> 
> I read about this in the tutorial, but I'm not satisfied yet by the
> role delegation strategy.  It seems to be in flux.

It has changed since 0.3. I'll need to update this section. Traits are
now  composed in a  traits window  and the  search for  traits objects
modified to avoid ambiguities between inheritance and mere delegation.

The details are in the src/mobius/vm/base directory.

> I don't know all of the Slate syntax yet, but it appears to involve
> more than just a message send.  Agora's MOP is a just the message
> send.  In Slate you have to do assignements (a special case, not a
> message send, not as uniform as Agora, but perhaps no worse).  I like:
> 
> addSlot: #x valued: 1
> 
> But, because x is the slot and #x is its name, should we not use?:
> 
> addSlotNamed: #x valued: 1

In  fact, assignments  in  Slate  are message  sends  directed to  the
current  execution context:  the current  object, the  context  of the
method currently executed... The above could also be written:

lobby addSlot: #x.
lobby x: 1. "Expanded form of assignment"

Assignment is optimized by the VM.

-- 
Nicolas




More information about the Slate mailing list