Top all-time · #2593
Brian Robert Callahan
Personal blog · briancallahan.net/blogprogrammingsystems
Brian Robert Callahan's personal blog at briancallahan.net covers programming and systems. Since 2020, 29 different Hacker News readers have linked it 83 times, most often “Benchmarking the oksh shell, or, let's look at a lot of C compilers”. It is still writing: the last post was on 2026-08-11, and you can follow it by feed.
Too few sampled comments (12) to say how often HN recommends it.?
Why HN links it
HN readers link Brian Robert Callahan's blog, which covers compilers, parsers, linkers, assemblers and OS internals, and one commenter lists it among great but lesser-known programmer blogs.
Summarised by Claude from a sample of 12 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Benchmarking the oksh shell, or, let's look at a lot of C compilers4 people · 5 mentions · first linked 2021-10-11
- Let's write a compiler, part 1: Introduction, selecting a language, and planning3 people · 3 mentions · first linked 2021-08-14
- Let's write a compiler, part 2: A lexer3 people · 3 mentions · first linked 2021-08-15
- Let's write a compiler, part 6: Input and output2 people · 2 mentions · first linked 2021-08-20
- Porting the GNAT Ada compiler to macOS/aarch642 people · 2 mentions · first linked 2025-01-13
- /blog2 people · 2 mentions · first linked 2022-02-07
- Can GCC use Clang as its assembler?2 people · 2 mentions · first linked 2024-01-22
- I wrote the least-C C program I could2 people · 2 mentions · first linked 2022-02-21
- I ported the new Hare compiler to OpenBSD2 people · 2 mentions · first linked 2022-04-27
- 8088ify: The CP/M to MS-DOS assembly translator2 people · 2 mentions · first linked 2021-06-06
What Hacker News says?
EDIT: Paste this hacky snippet into your browser's console to save all of the links into your clipboard: (() => { let result = [...document.querySelectorAll('td a')] .map((link) => link && !link.href.includes('ycombinator') && !link.href.includes('javascript:void') ? link.href : '' ) .filter(Boolean); result = [...new Set(result)]; result.sort(); copy(result.join('\n\n')); })(); Just to help, here's a compiled-list…
Comment linking /blog
on “Ask HN: Great Blogs by Programmers”Submitted OpenBSD has two new C compilers: chibicc and kefir as a story · 265 points
HN discussionHere are some great but lesser known blogs: - Brian Robert Callahan https://briancallahan.net/blog - Austin Z. Henley https://austinhenley.com/blog.html - Robert Nystrom http://journal.stuffwithstuff.com - poor.dev https://poor.dev/blog - Simon Willison’s Weblog https://simonwillison.net
Comment linking /blog
on “Ask HN: Great Blogs by Programmers”Submitted I wrote the least-C C program I could as a story · 246 points
HN discussionClaiming something is not beautiful because it is "hacky" on HN is a bit unexpected. For me this is beautiful: https://briancallahan.net/blog/20220220.html I'm sure it's just a hack to you, but you can't do that in Pascal. I mostly like C because of what I wrote here: https://news.ycombinator.com/item?id=30404529
Comment linking /blog/20220220.html
on “C meeting is over. C23 added:”Submitted I wrote a linker everyone can understand as a story · 208 points
HN discussionBrian Callahan also wrote a very cool series of blog posts called "Demystifying programs that create programs" in which he builds an assembler (and a disassembler). Part 1: https://briancallahan.net/blog/20210407.html
Comment linking /blog/20210407.html
on “I wrote a linker everyone can understand”Submitted Where do argc and argv come from? as a story · 191 points
HN discussionI don’t think there will be an AST. https://briancallahan.net/blog/20210814.html : “We will be writing a single-pass compiler for a simple language and immediately output our final output code as soon as our compiler has enough information to do so” That “ as soon as ” implies code will be generated before the entire program has been parsed. Also, for me single-pass implies “no AST”, as you would need at least one p…
Comment linking /blog/20210814.html
on “Let's write a compiler, part 3: A parser”Submitted Next C compiler is a D compiler: Introducing DMD's ImportC as a story · 189 points
HN discussionCrafting Interpreters [0] just came out in print and was widely discussed here [1], there's a Lang Jam [2] event happening this weekend which also spawned a useful HN discussion [3], so I just think a lot of readers here are interested in simple and fun language development tutorials and inspiration. But it is curious, part 2 of Brian Callahan's series [4] failed to get any traction here, maybe people aren't that in…
Comment linking /blog/20210815.html
on “Let's write a compiler, part 5: A code generator”Submitted Let's write a compiler, part 1: Introduction, selecting a language, and planning as a story · 188 points
HN discussionThe maintainer of oksh has an interesting comparison[1] between tcc and cproc as it comes to the performance of the generated code on OpenBSD. To be clear, cproc delivers. But tcc beats it, usually significantly, for reasons I can’t even begin to see how to investigate. It actually beats cparser/libfirm in most cases, which just makes no sense. (I ran the benchmarks myself on Linux some months ago; with the versions…
Comment linking /blog/20211010.html
on “21 Algol 60 Compilers in 1962”Submitted I wrote a 231-byte Brainfuck compiler by abusing everything as a story · 154 points
HN discussiona quick kagi search revealed this: https://briancallahan.net/blog/20250222.html , perhaps it might work for you too ?
Comment linking /blog/20250222.html
on “OpenBSD-current now runs as guest under Apple Hypervisor”Submitted I got the J language working on OpenBSD as a story · 148 points
HN discussionYou got it! By approximate category and in no particular order: ## MISCELLANEOUS - [Low Tech Magazine]( https://solar.lowtechmagazine.com ), a solar-powered website showcasing the amazing low-tech things you can do with a little ingenuity, - [Stephen Wolfram's Blog]( https://writings.stephenwolfram.com ) on math, compsci, and everything else, - [Cool Macrophotography]( https://www.barrywebbimages.co.uk/Images/Macro/…
Comment linking /blog/archive.html
on “Ask HN: Favorite Little Corners of the Internet?”Submitted Hand-optimizing the TCC code generator as a story · 143 points
HN discussion> Some compilers tokenize while parsing, but for a different reason: it's faster and uses less memory to generate the AST And some don't even generate an AST. :) Just read in and emit or interpret. https://briancallahan.net/blog/20210814.html
Comment linking /blog/20210814.html
on “The Super Tiny Compiler”Submitted Let's write a compiler, part 3: A parser as a story · 141 points
HN discussionThere are reports by independend testers (e.g. https://briancallahan.net/blog/20211010.html or https://news.ycombinator.com/item?id=40350384 ) suggesting that range.
Comment linking /blog/20211010.html
on “QBE – Compiler Back End”Submitted A working D compiler on OpenBSD as a story · 126 points
HN discussionMS-DOS 1.0 used CP/M-80 System Calls to make it easier to port programs from CP/M to DOS. https://www.pcjs.org/documents/books/mspl13/msdos/encycloped... https://groups.google.com/g/comp.os.cpm/c/hj2M4TIRRKE https://www.landley.net/history/mirror/ms/InsideDos.htm https://briancallahan.net/blog/20210606.html
Comment linking /blog/20210606.html
on “Commodore 700: “It's a picture – and it's worth a thousand words””Submitted Can we do better than our C compiler? as a story · 119 points
HN discussionYou might be underestimating the intricacy of the CPU models LLVM uses. If you want to see them in action, the same data drives llvm-mca[1], which given a loop body can tell you the throughput, latency, and microarchitectural bottlenecks (decoding, ports, dependencies, store forwarding, etc.)—if not always precisely, then still as well on average as, say, x86’s IACA, the tool written at Intel by people who presumabl…
Comment linking /blog/20211010.html
on “A whirlwind tour of the LLVM optimizer”Submitted I got the GNU Modula-2 compiler working on OpenBSD as a story · 110 points
HN discussionSubmitted Demystifying programs that create programs, part 1: A disassembler as a story · 103 points
HN discussionSubmitted Porting the GNAT Ada compiler to macOS/aarch64 as a story · 99 points
HN discussionSubmitted The GNU D Compiler on OpenBSD/armv7 as a story · 98 points
HN discussionSubmitted Let's write a compiler, part 5: A code generator as a story · 96 points
HN discussion