10 comments

[ 3.4 ms ] story [ 31.4 ms ] thread
I think it is fantastic to have more compiler implementations. It was probably also a fun project to code. What I find lacking in web pages is a motivation. What makes it different from popular compilers? Where is this project heading? What would be potential benefits/use-cases for using this compiler vs others, lessons learned, etc.?
I have found portability bugs in many projects with slimcc just because it exposed different preprocessor defines, some gate critical __attribute__ behind __GNUC__ check, some have buggy fallback to __builtin functions or VLA that nobody noticed in years, these could have been avoided with just an automatic build job in the CI with kefir or slimcc, (tcc is awesome but less suited for being a drop-in).

It is also important to have more independent implementations of the C standard, not only to sort out dark corners in the specification (current WG14 have been doing great), but to prevent it turning into GCC-Clang power struggle.

> What I find lacking in web pages is a motivation

From those pages:

"The purpose of Kefir project is producing an independent C17/C23 compiler with well-rounded architecture and well-defined scope that is feasible for implementation by a single developer."

He wants a third compiler to vet code portability. He wants it simple enough to build and maintain himself.

It's amazing how much one motivated person can achieve. Also, how competent the result seems to be. The test suite alone is pretty impressive.
c-testsuite is not made by the author of Kefir.
Congrats for the new optimizing pipeline, and thanks for the acknowledgment! It's nice to have company in the non-__GNUC__ camp.
Very impressive for a single dev project.

Nice to see someone started the work from zero instead of piggybacking LLVM.

This is something that intrigues me: "Is able to output internal representations (tokens, abstract syntax tree, intermediate representation) in machine-readable JSON form."

I'm not sure what I can do with that information but I wish I had an excuse to use it