[M3devel] LINUXLIBC6
Hendrik Boom
hendrik at topoi.pooq.com
Tue May 22 04:44:55 CEST 2012
On Mon, May 21, 2012 at 10:50:44PM +0000, Jay K wrote:
>
> Is C-- adequately maintained? I don't think so.
Bugs get fixed. And there's very few of them reported. But it's not
clear to me whether that's because it's so well-written, or because
almost no one uses it.
Active development seems to be at a stendstill.
> I'm also not super keen on depending on other projects.
> We'll see..
I mentioned C-- because its implementation exists in both interpreted
and compiled versions. That seems to be a way to bootstrap the whole
thing. We could interpret the compiler using some portable
intermediate code -- we could even restrict the interpreter to provide
only a 32-bit machine, and then cross-compile from the interpreted
compiler to whatever machine we're installing on. Since every Modula
3 compiler seems to be able to generate code for every platform,
this is a way to avoid having a separate binary bootstrap for every
platform.
And a distro, like Debian, could have a source package that doesn't
need to have itself installed before it it can be installed.
-- hendrik
>
>
> Regarding runtime designed for garbage collection... in the interest of simplicity, correctness,
> and laziness-ignoring-performance, I'd initially try something like this:
>
> - don't optimize, or at least make all writes volatile
> or make everything volatile
> While currently we have some support for the gcc optimizer, and we don't make everything volatile,
> we also had a long history of using a lot of volatile. I think nobody but me and possibly Tony
> noticed the poor codegen and probably
>
> - form all frames as structs
> - so that the frame layout can be known by the frontend
>
>
>
> We already do something similar to the last, I think.
>
>
> One of the wierd points here..and I really really really really have to get on and code instead of talk,
> is "what our C would look like".
> It would look strange.
>
>
> Consider all the inserted "probes" (I forget what they are called).
> Consider as I said that there are no field references from the
> backend's point of view, just variable + offset + cast.
That's basically the way that C-- accesses memory.
-- hendrik
More information about the M3devel
mailing list