What is your goal for the lll?
Nathan Hawkins
utsl@one.net
Wed, 24 Apr 1996 16:03:17 -0400 (EDT)
On Tue, 23 Apr 1996, Eric W. Biederman wrote:
> You have stated that you have a seperate goal for the lll, for your
> own operating system project, or something along those lines. I was
> wondering what that is, so I can get a better feel for what is going
> on, and what you want from the lll.
>
> The big difference I remember is that you want the lll to be portable?
>
> This information would really help.
Ok. Some background on how I got involved in all this...
I began writing OS code about 10 years ago, on my own machines (6809 and
Z80 at the time), purely because I wanted to write my own system. I
mastered the basics of writing device drivers, and I was going to have a
common disk format and programming environment across the two machines.
I never got that far, but since then, I obtained a 386, and now a 486,
and I've continued hacking on system code.
I had a project of my own when Fare and I first met on Roland Nilsson's
mailing list for his OS project (Avante it's now called). We argued for a
couple weeks, sometimes violently about HL vs. LL programming, until I
discovered I had confused him and Tunes with someone else. (I had just
started a job that put me on third shift, and I was very confusable at
the time. :( )
Anyway, by this time, I had discovered Forth, and had been thinking about
ways to use Forth in the core of my own project. The conclusion I had
come to was that Forth mostly needs better modularity. I wanted (and still
do) to drasticly extend the vocabulary concept into a hierarchical
directory style structure. (Some of you may have seen a my thread on this in
comp.lang.forth.) And I'd like to make my own Forth-like language
capable of being ported to most =>32-bit processors. This shouldn't be
too hard.
Now I had written three or four Forth's and a lot of device drivers and
such like over the years, so Fare and I thought I might be able to help
the Tunes project, and my own at the same time. Maximize code reuse, by
building something useful to more people.
The main thing I want that is different from Tunes, is I want the "lll"
to be a language I can use. I'd like to be able to write my system in
modules, and allow some modules to be shared with Tunes, if Tunespeople
want them, and keep the rest. For example, a debugger for the lll would
probably make it easier for the hll compiler writers to debug their code
generator, but wouldn't be something the Tunes project would really need
for the long term. (But I would...)
So what I want is something I can still use as a Forth-based
human-writable/readable language with the following principal features:
1. portability
2. efficiency
3. modularity
4. extensibility
5. interactivity
Interactivity would mean being able to interactively type in code and
hack around like I can in Forth. This wouldn't need to be active in
Tunes, or would be restrict(ed/able), but would be an important part of
my system. (Command interpreters are useful, sometimes.)
Modularity would mean the ability to load a package of words into memory
and unload them when finished with them. Forth has never really had a
good means of separating programs and libraries from the rest of it and
each other. Nowadays, this is a liability, which I would like to eliminate.
So overall, I'd say the main difference is I'm not thinking about an
intermediate language, but a primary implementation language for my own
OS. One which needs to be able to do certain things, but could be
extended to do everything else. :)
Let me know if I need to be more specific or clarify anything.
*utsl*