Re: 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