Self for Squeak

Jecel Assumpcao Jr jecel at merlintec.com
Wed Aug 31 16:00:48 UTC 2005


Pavel,

> you may be interested in my experimental project named Marvin.
> 
> http://www.comtalk.net/Squeak/95

Yes, I did find it very interesting indeed. I hope you don't mind me
sending a copy of this to the Self list so that other people who might
be interested can learn about your project. Perhaps it would be a good
idea to announce it in the Squeak list too.
 
> It's an attempt to create a Self dialect in Squeak which is compiled 
> directly to the native bytecodes of Squeak and uses some little 
> extensions of virtual machine like delegation support etc.

There were other projects that added a bytecode or two to support this
kind of thing. It would be nice if this could be done in a fully
compatible way so that all future VMs could support it even for people
not interested in using it. The original "blue book" instruction set had
a few spare opcodes but I would have to check to see if Squeak didn't
use them all.
 
> You are experienced Self programmer (unlike me) and you may see some 
> problematic aspects of my concept of Squeak and Self integration which I 
> haven't perceived. Your comments are welcome.

It looks great. I only didn't understand why you had to use a non local
return in the ifTrue:ifFalse: definition in your examples.

The use of [...] to explicitly control compile-time evaluation is a very
good idea and something I had borrowed from Forth for a language I
desiged a while ago. Agora has something similar.

Earlier versions of Self were more similar to Marvin in some aspects.
They had characters as different objects from strings, for example. And
the slot lookup was closer to your depth first strategy. There were no
annotations either.

I am not sure why you feel you need to add primitives in future versions
since you seem to have full access to Squeak. While I find the Self
syntax for primitives much nicer than the old Smalltalk one it seems a
little odd that while they look exactly like message sends they are
really subroutine calls since they ignore the receiver type. Something a
little less global would be nicer.

-- Jecel



More information about the Self-interest mailing list