Hacker News new | past | comments | ask | show | jobs | submit login

1. It has always been targetted at gcc, so no serious portability work has been done, more of a co-development thing. Linux will only compile correctly on a few recent versions of gcc, you cant compile old kernels on new gcc or vice versa. 2. There is a lot of inline assembler (including oddities like x86 16 bit code) that has to work exactly as specified, such as for creating memory barriers say, or other low level constructs. Inline assembler is non standard, although clang does now implement the gcc stuff. 3. You are making an ABI, so everything must be laid out exactly the same way. Portable C does not give you exact control of padding, again there are gcc extensions. 4. Testing is hard - there are a huge number of optional modules, as well as SMP and non SMP builds, so even if you build the code with a new compiler without a lot of people using it it is hard to be sure it really works. There is no test suite...

Probably some more reasons too...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: