From mboxrd@z Thu Jan 1 00:00:00 1970 From: norman@nose.cs.utoronto.ca (norman@nose.cs.utoronto.ca) Date: Fri, 18 Jan 2002 17:13:26 -0500 Subject: [pups] Re: GCC Message-ID: <200201182214.IAA22019@guardian-ext.bond.edu.au> Jonathan Engdahl: Consider lcc, the Princeton C compiler. It's much smaller than gcc, and ANSI compliant. lcc's a good compiler; it has become cc in my own peculiar Ancient UNIX environment. But my environment is on VAXes, not PDP-11s; the lcc I use probably cannot be compiled to a core compiler binary of less than about 180KB, of which 136KB is text, and that is without any real code generators. (For those who know lcc: I am using a slightly-hacked-up lcc 3.6; the 180KB binary includes just the symbolic and null code generators, not the enormous one I ended up with for the VAX.) On the other hand, it is probably easier to split lcc into overlays or multiple passes to make it fit on a PDP-11 than to do the same to gcc; and lcc works fine as a cross-compiler. And it's a good solid ANSI compiler; enough so that it is a little annoying to use it on heritage code (it grumbles, correctly, if a function returns no value and wasn't declared void), and helpful or very painful (depending on your point of view) when used on really old code that is sleazy about mixing types of pointers in procedure arguments, or reusing one structure as part of another, or the like. I had an interesting time a few months ago getting an old version of tbl to compile cleanly and produce correct results under lcc; the program contained some ancient constructs that are truly remarkable to look back on, especially for those of us who started out programming that way and learned better the hard way ... If I were going to work with PDP-11s, I would probably use lcc as a cross-compiler myself, after writing or snitching a code generator of course. Norman Wilson