The Flash C Compiler (blog.adafruit.com)

80 points by AlexeyBrin 4 days ago

ndiddy an hour ago

I looked at the Github page and of course it's vibe coded. This is the sort of project that someone would have spent a few months doing as a learning exercise while they were reading through something like Crenshaw's "Let's Build a Compiler" series. I don't see the point of vibe coding it. You still end up with a toy compiler that nobody will actually use, except now you haven't learned anything about how compilers work. It's pointless.

skybrian 9 minutes ago

I imagine I’d learn a fair bit about how to go about vibe-coding developer tools by implementing this, so it hardly seems pointless? It seems like an interesting exercise.

flykespice 9 minutes ago

Yep, and the code is an eyesore to look at. Almost no logical separation of code blocks (everything mashed-up together) I was really expecting LLM to annotate every line of code with (useless) comments, considering many vibecoded js projects are like that.

Either my C skills are getting rusty and that is how a C codebase normally looks like, or LLM was trained on some suspicious codebases.

djriley 10 hours ago

This is really neat, I'll have to give it a try. I grew up on QuickBASIC, then Turbo Pascal and Turbo C later on. For my own personal hands on coding time solving mathematical challengers or working on hand coded personal projects to relax in our increasingly agent driven world I've taken to using the text mode Free Pascal ide that is bundled in with the fpc compiler, built on an open-source implementation of Borland's TurboVision DOS TUI libraries. I always wished it had a mode to emulate Turbo C as well.

The only bummer I'm seeing with fcc is not having a linker mean not being able to use external libraries. So you're really limited to what you can include in your own project, but if it truly is C89 compliant there are plenty of useful single header libraries you could use for various things.

I'll check it out!

xenophonf 24 minutes ago

I'm not willing to whitelist whatever bullshit malware this thinly veiled advertisement wants to run on my computer before it will allow me to see the page. Can someone share a précis?

rgovostes 10 hours ago

The Adafruit post is just an LLM recap of the author's blog post, which is an LLM summary of the project, which was vibe coded with Claude. The signal:noise ratio is dropping off exponentially.

shoobiedoo 7 hours ago

Damn. I'm reading Nils Holm's book on a C subset compiler and was hoping this would be a neat supplement. Into the trashbin it goes

hn_submit 6 hours ago

Why is everyone calling LLM generated code "written from scratch" with almost no clue that they didn't write one line of code themselves? Yeah, it was written from scratch, but not by you!!

Projects like these are defiling the programmer's guild.

sn0n 3 hours ago

ArtCraft says it’s all written from scratch as well.

rfgplk 2 hours ago

ArtCraft lies. It makes extensive use of crates, which to me defeats the "from scratch" argument. The whole point of doing it from scratch is that you get full control of every line of code in the compiled binary.

https://github.com/rfgplk/micron.cpp

This is an example of a true "from scratch implementation" (as long as you target the freestanding compile option, hosted still depends on pthread for threading). Absolutely zero external code or references anywhere outside the stated repo. (Not even compiler builtins or includes are needed). You can drag and drop it wherever you'd like hit compile and you're done.

rfgplk 2 hours ago

"Written from scratch" just means that no external code or existing libraries were used in producing something. Nowadays it's preferable to reusing code/crates/whatever because a) you avoid supply side attacks b) the implementation is likely going to be more correct and performant than alternatives c) it's actually easier to write your own thing than to download an existing lib and wrangle it into your project.

rowanG077 4 hours ago

Why does it matter? Tbh at this point if frontier models are used I would place more trust in the average codebase than the average pre-AI codebase.

There are outliers where an excellent team of devs produce great quality, better that even frontier LLM code now. SQLite comes to mind. But it's easy to forget that is the 0.x%.

throawayonthe 4 hours ago

the comment isn't even about the quality, it's about the "from scratch" aspect (used to 'market' it)

rowanG077 4 hours ago

FeteCommuniste 4 hours ago

What does a vibe-coder say when he orders a dish at a restaurant and the waiter brings it to the table? "Look at the food I made!"

aleph_minus_one 3 hours ago

On the other hand: many managers love to claim to have been deeply involved in the development of some product when the actual work was done at least by their underlings, or sometimes even a completely different team.

If people were similar confrontive in calling out such managers ...

jhbadger 27 minutes ago

childintime 2 hours ago

500kB source for the compiler and half of it is for the optimizer. Could it be a nice basis for putting a new vibe coded syntax on top? Move it to Zig or Rust first?

sylware 5 hours ago

Neat, but I would keep an eye on the trend: with all this AI coding (if true) some are now going directly to assembly.

q4y2u35uk 5 minutes ago

People who think this do not understand LLMs. LLMs thrive in abstractions just like humans. Assembly code introduces far too much entropy, requires far too much context and documentation, and is far too easy to get horribly wrong. Even after generating large amounts of synthetic training data, it will never be practical.

anonymous908213 10 hours ago

> The result of the study is only a description of how the IDE looks and behaves: which menus exist and in what order, which options each dialog holds, how the Message window tracks errors, and what the diagnostics say.

LLM-generated blogpost. The stench is all over it.

mrlonglong 6 hours ago

That's true but LLMs are a massive time saver when generating unit tests and other useful things for your work, leaving you free to write what really matters.

bayesnet 2 hours ago

Building useful tests are probably one of the things that LLMs are the worst at tbh. You end up with tests checking `2 * 2 == 4` and similar.

lume 7 hours ago

Stop whining. LLMs are available to everyone. If you think you can do better, then go ahead and do it instead of criticizing people who are actually getting things done.

cors-fls 6 hours ago

This is not "getting things done", it is not a useful project. It is one of the interesting projects that one would do to show mastery of a hard technical topic (compiler), to learn, and to impress fellow programmers. Doing it with an LLM makes it just completely useless

ranger_danger 2 hours ago

canelonesdeverd an hour ago

The whining will continue until boosters get it. If the things you're "getting done" are even remotely valuable then you can spare the brainpower to use your words.