Hacker News new | ask | show | jobs
by vidarh 138 days ago
It's a fun comparison, but with the notable difference that that one can compile the Linux kernel and generate code for multiple different architectures, while this one can only compile a small proportion of valid C. It's a great project, but it's not so much a C compiler, as a compiler for a subset of C that allows all programs this compiler can compile to also be compiled by an actual C compiler, but not vice versa.
2 comments

But can it compile "Hello, World" example from its own README.md?

https://github.com/anthropics/claudes-c-compiler/issues/1

It's fascinating how few people read past the issue title
And this is exactly why coding with AI is not-so-slowly taking over.

Most people think they are more capable than they actually are.

Noticed the part where all it requires is to actually have the headers in the right location?
"The location of Standard C headers do not need to be supplied to a conformant compiler."

From https://news.ycombinator.com/item?id=46920922 discussion.

And it doesn't for the compiler in question either. As long as the headers exist in the places it looks for them. No compiler magically knows where the headers are if you haven't placed them in the right location
stddef.h (et al) should be shipped by the compiler itself, and so it should know where it is. But they rely on gcc for it, hence it doesn't always know where to look. Seems totally fine for a prototype.
Especially given they're not shipping anything. The GCC binaries can't find misplaced or not installed headers either.
Would you accept the same quality of implementation from a human team?
I've certainly encountered clang & gcc not finding or just not having header files a good couple times. Mostly around cross-compilation, but there was a period of time for which clang++ just completely failed to find any C++ headers on my system.
Yes, clang is famously in this category.

If you copy the clang binary to a random place in your filesystem, it will fail to compile programs that include standard headers.

A compiler that can't magically know how to find headers that don't exist in the expected directory?

Yes, that is the case for pretty much every compiler. I suppose you could build the headers into the binary, but nobody does that.

Noticed the part where the exact instructions from the Readme were followed and it didn't work?
So we're down to a missing or unclear description of a dependency in a README - note following the instructions worked for others -, from implications the compiler didn't work.
Well I'm pretty sure the author can make a compliant C compiler in a few more sectors.
I mean we know it can be done in little space, given the many tiny C compilers. I think what is most interesting about this one is exactly the creative shortcuts. It's an interesting design space for e.g. bootstrapping to impose extra restrictions.