implementation issues (was: types of people)

Mario Wolczko Mario.Wolczko at Eng.Sun.COM
Wed Aug 30 16:51:38 UTC 1995

Date: Wed, 30 Aug 1995 01:31:59 -0300
From: "Jecel Mattos de Assumpcao Jr." <jecel at>
To: self-interest at
Subject: implementation issues (was: types of people)

rainer at (Rainer Blome) mentioned a few ways in which Self
could become more scheme-like, including the tail-recursion optimization.
"ian (i.r.) woollard" <wolfe at> also mentioned this optimization in
another message.

While this optimization is invisible in a normal execution of a program,
if you get an exception and reflect on the activations ( call the
debugger, for example ) you will find that a large chunk of your stack
is missing. This small deviation from strict source semantics is
against the current Self philosophy.

I am including a more general "tail-call" optimization in tinySelf as
it reduces context allocation ( I use the heap rather than stacks :-( )
and enhances parallelism in my active object model. When I get some
numbers on this I will post them here.

lpd at (L. Peter Deutsch) didn't like the suggestion of
macros ( I don't either ) and talked about the Beta way. I have
just finished the Beta tutorial and found it really neat how it
doesn't need blocks. I wish objects could be used in the same way
in Self, but it is not possible. It only works because Beta is
a lexically scoped language, while Self is a dynamically scoped

About non-LIFO blocks: Self doesn't need them as much as Smalltalk
as it is so easy to create unique inline objects with their own
methods and pass them around instead.

-- Jecel

More information about the Self-interest mailing list