GUI systems

Jonathan S. Shapiro shap@eros-os.org
Tue, 27 Jun 2000 16:05:13 -0400


I didn't feel you were putting heat on me -- I was kidding.

> Of course not.  By the way, what happens, specifically, when they
> [EGCS] break it?  Is it just creating non-ELF ELF files?

If it were just the ELF files I'ld have hacked the cross tools to read the
mangled form. The problem is that the EGCS compiler simply generates bad
code and syntax errors in more places than it is worthwhile to fix given
that I'm converting to C anyway. While one of the syntax errors (void return
from main) is correct, all of the others are actually errors in the
compiler.

Equally bad, in the long haul, is that as EGCS asymptotically approaches a
full implementation of the C++ standard there are more and more language
features that I need to turn off to get a decent kernel build. In the limit,
this means that C++ is an inappropriate language for high-performance kernel
implementations.

Note that I said and meant "inappropriate language", not "inappropriate
compiler". Any compiler that correctly implements the language specification
will have more or less the same issues.

> >  Actually, this is part of why I'm switching to C.
>
> Unrelated to EROS, I'd be interested in hearing the rest of why you're
> switching to C.  I have my own set of beefs with C++, but I'd like to
> hear yours :)

Before we start this, how long do your doctors say you can reasonably expect
to live?

The two driving issues are (1) the continuing compatibility drift between
the C++ subset used by the kernel and the C++ version implemented by the
compiler, and (2) the need to integrate a good amount of third-party code
that is written in C. C code really doesn't want to compile in a modern C++
compiler. I've tried.

> ...trying Linux is easier than trying EROS right now...

I agree, but I think this is comparing apples to oranges. Trying linux is
easy because you can download a binary distribution and install it. That
will eventually be true for EROS as well. The current state of EROS is
somewhat closer to the situation some years ago when you had to start by
choosing and downloading the source for a linux kernel.

We agree that getting to an easy solution is terribly important, I just want
to roll over before we crawl, crawl before we stand up on our own, stand up
before we walk, and walk before we.... you get the idea.

> Who, other than you, is familiar with the EROS code to hack it right
> now?  Anyone?

Charlie Landau from the KeyKOS group could pick it up in a pinch, and maybe
Jonathan Adams or Mike Berry or Steve Muir could pick it up if I got hit by
a truck. A major goal in the next phase is to get it all clean enough to
document well so that essentially anybody could pick it up.

The situation is comparable to the core linux kernel -- there are really
only a couple of people who are qualified to screw around with the
implementation of fork, exec, and the page cache. Drivers are easier to
distribute responsibility for.

> Networking would be nice but is not essential.

Most of the people out there who want to build apps for EROS seem to want to
build servers of some kind. That's hard to do without a networking
implementation.

shap