Top all-time · #537
Michael Forney
Personal blog · c9x.meprogrammingsystems
Michael Forney's personal blog at c9x.me covers programming and systems. Since 2013, 111 different Hacker News readers have linked it 158 times, most often “QBE – Compiler Back End”. No feed was found, so read it on the site itself.
Rarely recommended · 3 of 40 sampled comments recommend it?
Why HN links it
HN readers link this site mainly as a pointer to QBE, a small compiler backend, plus its compiler reading list and x86 and ABI reference pages. Mostly cited as a link.
- Recommended for · 3 comments
- Called 'excellent' and 'great things'; one commenter says its reading list beats an article they found awful.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- QBE – Compiler Back End35 people · 41 mentions · first linked 2017-09-09
- Resources for Amateur Compiler Writers7 people · 8 mentions · first linked 2017-12-06
- QBE vs. LLVM6 people · 7 mentions · first linked 2018-10-03
- Show HN: QBE – a new compiler back end5 people · 9 mentions · first linked 2016-04-23
- Resources for Amateur Compiler Writers5 people · 5 mentions · first linked 2016-04-25
- Edit: A Relaxing Mix of Vi and Acme4 people · 5 mentions · first linked 2014-09-23
- Green threads explained3 people · 4 mentions · first linked 2015-12-09
- QSCM – A Tiny Bootstrapped Scheme3 people · 3 mentions · first linked 2021-01-21
- /compile/doc/llvm.html3 people · 3 mentions · first linked 2016-04-23
- Green Threads Explained3 people · 3 mentions · first linked 2017-05-29
What Hacker News says?
That's a bit unfair to the modern compilers - there's a lot more standards to adhere to, more (micro)architectures, frontends need to plug into IRs into optimisers into codegen, etc. Some of it is self-inflicted: do you need yet-another 0.01% optimisation? At the cost of maintainability, or even correctness? (Hello, UB.) But most of it is just computers evolving. But those are not rules. If you're doing stuff for fu…
Comment linking /compile/
on “Go is still not good”Submitted Resources for Amateur Compiler Writers as a story · 339 points
HN discussionGCC is written in C++ these days, so something like QBE( https://c9x.me/compile/ ) would be needed.
Comment linking /compile/
on “Building the fastest Lua interpreter automatically”Submitted QBE vs. LLVM as a story · 295 points
HN discussionWorth mentioning other alternative small backends: http://c9x.me/compile/
Comment linking /compile/
on “A possible new back end for Rust”Submitted Resources for Amateur Compiler Writers as a story · 273 points
HN discussionCheck out QBE and see how you like it vs LLVM: http://c9x.me/compile/ It's designed to be simpler. One user told me it already compiles their project 4x faster than GCC with estimated speed between 01 and 02 despite so few lines of code. If it's backends are easier, might be a selling point on top of simplicity.
Comment linking /compile/
on “A Tourist’s Guide to the LLVM Source Code”Submitted Show HN: QBE – a new compiler back end as a story · 241 points
HN discussionI don't know what you have done. The red dragon book goes over targeting an intermediate form that's basically assembly language, it also covers register allocation in depth. As far as I can tell, most of the texts after that is in research papers and real world examples ( https://c9x.me/compile/ )
Comment linking /compile/
on “C Compiler from Scratch”Submitted Green Threads Explained as a story · 195 points
HN discussionQBE[1] seems to be what you're looking for. It "aims to be a pure C embeddable backend that provides 70% of the performance of advanced compilers in 10% of the code". Previous discussion on HN: https://news.ycombinator.com/item?id=11555527 [1]: http://c9x.me/compile/
Comment linking /compile/
on “Graal and Truffle could accelerate programming language design”Submitted Edit: A Relaxing Mix of Vi and Acme as a story · 118 points
HN discussionThis one too: http://c9x.me/cbits/
Comment linking /cbits/
on “Markov chains are the original language models”Submitted Edit: A text-editor mixing vi and Acme as a story · 106 points
HN discussionI'm not sure what you mean by "programmers terminology". 0x31 0xC0 is disassembled to "xor eax, eax". This is not nitpicking, as there's an important difference. The "xor eax, eax" instruction affects CPU flags [1], while "mov eax, 0" doesn't [2]. > It isn't actually implemented as such The implementation is independent of the meaning of the instruction set. There are many implementations of x86 instructions with di…
Comment linking /x86/html/file_module_x86_id_176.html
on “That XOR Trick (2020)”Submitted Resources for Amateur Compiler Writers as a story · 100 points
HN discussionIf I were to rewrite Rust, I'd probably go the route of less features, not more. Make it 70% of Rust in 10% of the code, similarly to what QBE[0] is doing with LLVM. You'd probably be able to achieve that if you remove macros and some of the rarely-used features. [0]: https://c9x.me/compile/
Comment linking /compile/
on “Rewriting Rust”Submitted QBE – Compiler Back End as a story · 93 points
HN discussionGo’s internal compiler / linker is kind of like that. So is qbe[0] iirc. https://c9x.me/compile/
Comment linking /compile/
on “Tilde, My LLVM Alternative”Submitted Green Threads Explained (2013) as a story · 71 points
HN discussionI not understand about IR or compiler backend but I know another LLVM alternative like QBE. https://c9x.me/compile/
Comment linking /compile/
on “Tilde, My LLVM Alternative”Submitted QBE: Compiler Back End as a story · 58 points
HN discussionHave you seen http://c9x.me/edit/ ?
Comment linking /edit/
on “Vis: A Vim-Like Text Editor”Submitted Loading an x64 register, how hard could it be? as a story · 51 points
HN discussionNo no, haha, that's also not quite right. You can save the stack frame to memory then load it back which is what green threads do [1]. This includes the register state also, which is not what we're talking about here when we say "stack" -- we're referring to stack variables, not full frames. Full frames are even further from the heap, by virtue of including register states which must be restored also. Although, it s…
Comment linking /articles/gthreads/code0.html
on “Should you learn C to “learn how the computer works”?”Submitted Russell's paradox and the Y combinator as a story · 51 points
HN discussionBy the author of the excellent https://c9x.me/compile/ A lightweight alternative to llvm https://c9x.me/compile/doc/llvm.html
Comment linking /compile/doc/llvm.html
on “Resources for Amateur Compiler Writers”Submitted QSCM – A Tiny Bootstrapped Scheme as a story · 27 points
HN discussionWe agree on a lot of things, but QBE is off the table. Complexity and kloc are loosely correlated. Cranelift and libfirm are of equivalent size while Cranelift is in Rust and has wonderful compiler engineers working on it. https://c9x.me/git/qbe.git/tree/rega.c QBE is a one person performance art project.
Comment linking /git/qbe.git/tree/rega.c
on “TinyCompiler: A compiler in a week-end”Submitted Resources for Amateur Compiler Writers as a story · 21 points
HN discussion