Skip to content

Comment on From ASCII to ASIC: Porting donut.c to a tiny slice of siliconparent

Comments

It’s trivial to reformat the source code into a donut shape.

Sometimes it's those trivial changes which add a lot of the overall charm.

Non-trivial, IMHO - automating it sounds non trivial, and doing by hand is quite non-trivial, right? We gotta go make hand edits line by line?

For a language like C, I would describe the formatting process as "straightforward" as opposed to "trivial". It's straightforward in that it feels very mechanical, but not trivial in the sense that it's difficult to fully automate the process. (The mechanical part is inserting spaces at the right places, the not so mechanical part is swapping tokens and rewriting expressions so that things line up).

You can see an example recording here of how it's done:

https://www.ioccc.org/2019/yang/obfuscation.html

First half of it is writing and golfing, second half is the formatting bits.

For languages like Perl and Ruby, the formatting process is easily automated and mostly trivial.

That visualizer is incredible, appreciate it and the insight - and 4 hours! Wow.

Considering the language, C and the size of the file, I would not argue it is not trivial. The key feature of donut.c is how small the file actually is.

For something larger or in other languages, or having text strings, certainly not trivial.

We need someone to write pastry.c which takes any C file and reorganizes the code into the shape of delicious bakery products.

mmmmm.. trivial donuts...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.