implementation issues (was: types of people)
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 lsi.usp.br>
To: self-interest at self.sunlabs.com
Subject: implementation issues (was: types of people)
rainer at physik3.gwdg.de (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 bnr.ca> also mentioned this optimization in
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 aladdin.com (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.
More information about the Self-interest