goals (was: dynamic deoptimization)

Jecel Assumpcao Jr. jecel at merlintec.com
Mon Dec 12 23:28:05 UTC 2011

Thorsten Dittmar wrote:

> I'm interested in general , to get self more selfish. If we would be able to
> manifest the principles of self even more accurate and more evident, that
> would be something great. For that reason I thought that the Klein VM would
> be one of the right steps.

It is a very good idea to be able to use what we have learned. That is
how we got Self in the first place, and before that Smalltalk-80 from
-78/-76 and those from -72/-74. Commercialization from Smalltalk-80 as
it was, so the lessons from Ark couldn't be applied.

Klein tried to implement the stuff learned after Self 1, 2 and 3 and
then Squeak. My main problem with that project is that it uses
generative coding (think macros) to get more done with less but this is
done in a system that is unaware of this. So you get generated code side
by side with hand written stuff and it takes a very long time to figure
out which is which if you weren't the one who created them in the first
place. This also tends to create many copies of the same stuff (made
worse by the fact that there are several parallel experiments in the
same code) and it takes a while to figure out which ones are used where.

Since Klein has not been touched since 2006, my own strategy will be to
try to include what I can learn (and have already learned) from it in a
new system. My PhD project is to implement a self sustained system in a
way that is understandable by generating code from nested interpreters
(which are easy to write and understand) with partial evaluation (even
if a mostly faked one, like in Pypy where tracing does the job a partial
evaluator would do). One way a system can be defined in itself is
through reflection - meta-objects. That leads to the problem of an
infinite tower of interpretation, but as I just said nested interpreters
are exactly what I hope my system will be able to handle.

The metric to measure the success of my PhD project will be how much of
Klein's funcionality it will have compared with how much smaller it will
be to do it.

The language I have been using is Squeak in order to play nice with
several projects that are interesting to me. But I think it might be
better to include more options, like Self 4 and some even simpler

-- Jecel

More information about the Self-interest mailing list