[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