LLL stack questions
Mike Prince
mprince@crl.com
Wed, 21 Dec 1994 09:38:09 -0800 (PST)
On Wed, 21 Dec 1994, Raul Deluth Miller wrote:
> The critical issue here is automatically generated code. If we don't
> provide a decent mechanism for porting existing softwar, we'll never
> get off the ground. That means we need to do something decent for a C
> compiler, and we need to deal with automatically generated C code
> (which is the way a lot of compilers and tools are implemented
> nowadays).
I know how to poorly implement C under our scheme; stuff the whole
program into one obese cell. But that solution is unacceptable. I don't
know how well we can mix creating a forward looking language (designed
for a distributed environment) with a language that says "I must be able
to see everything as if it were a flat address space and directly
accessable to me". I think DSM is really motivated by people (I hope I'm not
offending too many) that are stuck in a flat model.
> Currently, I'm thinking of treating the "cell stack" as a register
> set, and providing the illusion of a flat adress space using some sort
> of "annotated pointer" (which denotes the memory array as well as a
> virtual offset) -- I don't know if we can do better than this for
> arbitrarily large data objects without hurting performance for smaller
> objects or objects of "known size".
The model I'm currently working with has an upwards bound of 2^31 for
data objects. You have a nice big flat address space if you want it. It
would probably cripple the system you were using it on though, unless it
had VM, something I'm staying away from.
> Remember, Ccode frequently manipulates pointers to "anonymous data" orr
> "anonymous code".
In my version of the LLL pointers can be manipulated to the point they
are invalid, in which case they return garbage or would not work at all.
Because cells are isolated from one another the only one hurt is the
offending pointer mangler.
> I'm not sure how to treat arbitrarily large code objects (e.g. PERL's
> yacc parser).
If your talking backwards compatability, it more likely than not will be
an obese cell. For new software, it can be written properly factored (in
our language of course). As for developing compilers for arbitrary
languages, it'll depend on the architecture of the language and the
"smarts" of its compiler. This is a vague answer, I know.
What I'd really like to see is our system fall into several markets;
1. Provide telescript like abilities across the internet.
Put a "server" deamon on each computer that intercepts e-mail encoded
with LLL "messages". This is going to be VERY easy to do. This
should attract wide-spread attention. This is an example of layering
our OS on top of other systems.
2. Cheap homegrown supercomputers.
I'd like to port our OS to the IBM-PC family first (mostly
because that's what I have) and locate a manufacturer of inexpensive
parallel processing cards (MuP21ish in cost). Create a basic
but useful programming environment for our HLL that'll let users
play with fast number crunching. We could be the Toaster people
of the 90's!
If we could penetrate those, then the issue of backwards language
compatability diminishes, and we could stand on our own. That's what I'd
really like. Eventually we could move into the big distributed market,
databases and networking. But those are less "glamorous" and I'd like to
work on something fun.
Mike