Top all-time · #693
faultlore.com
Personal blog · faultlore.comprogrammingsystems
faultlore.com is a personal blog at faultlore.com about programming and systems. Since 2022, 93 different Hacker News readers have linked it 116 times, most often “Text Rendering Hates You (2019)”. No feed was found, so read it on the site itself.
Sometimes recommended · 10 of 40 sampled comments recommend it?
Why HN links it
HN readers link faultlore.com mostly for its Swift ABI post and 'Text Rendering Hates You', and for posts on Rust, C ABIs and text rendering. One commenter calls the author's writing excellent.
- Recommended for · 10 comments
- Called 'excellent' and 'a good piece'; one commenter likes the writing, another finds one post a better explanation.
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?
- Text Rendering Hates You (2019)24 people · 25 mentions · first linked 2022-09-14
- Swift Achieved Dynamic Linking Where Rust Couldn't19 people · 24 mentions · first linked 2022-09-19
- C isn't a programming language anymore13 people · 14 mentions · first linked 2022-09-06
- Rust's unsafe pointer types need an overhaul8 people · 8 mentions · first linked 2022-11-18
- Pre-Pooping Your Pants with Rust (2015)4 people · 4 mentions · first linked 2024-03-26
- The Pain of Linear Types in Rust (2017)4 people · 4 mentions · first linked 2023-03-27
- /blah/tower-of-weakenings/3 people · 3 mentions · first linked 2022-12-07
- /blah/c-isnt-a-language/3 people · 3 mentions · first linked 2025-09-04
- Notes on type layouts and ABIs in Rust (2018)3 people · 3 mentions · first linked 2025-02-04
- Compiler optimizations are hard because they forget3 people · 3 mentions · first linked 2022-09-24
What Hacker News says?
> there was some kind of static packaging inherent to all iOS apps There was for apps using Swift. Before the Swift ABI was frozen, iOS apps using Swift had to statically link the Swift standard library. Nowadays, iOS provides it as a dynamic library. (and having a stable ABI is quite an accomplishment for a language like Swift. See https://faultlore.com/blah/swift-abi/ )
Comment linking /blah/swift-abi/
on “2-in-1 calculator app adds up to surprise hit for retired engineer”Submitted C isn't a programming language anymore as a story · 238 points
HN discussion> It seems unlikely [Apple] would throw away that investment and move to Rust. Apple has invested in Swift, another high level language with safety guarantees, which happens to have been created under Chris Lattner, otherwise known for creating LLVM. Swift's huge advantage over Rust, for application and system programming is that it supports an ABI [1] which Rust, famously, does not (other than falling back to a C A…
Comment linking /blah/swift-abi/
on “Rust in the kernel is no longer experimental”Submitted Pair Your Compilers at the ABI Café as a story · 130 points
HN discussion> Is it something that can be fixed with editions? My guess is no, or at least not easily. Assuming I'm reading these blog posts [0, 1] correctly, it seems that the size_of::<usize>() == size_of::<*mut u8>() assumption is changeable across editions. Or at the very least, if that change (or a similarly workable one) isn't possible, both blog posts do a pretty good job of pointedly not saying so. [0]: https://faultlor…
Comment linking /blah/fix-rust-pointers/
on “Rust in the kernel is no longer experimental”Submitted C Isn't a Programming Language Anymore (2022) as a story · 71 points
HN discussionI think if AI can help us modernize the current state of hardware verification, I think that would be an enormous boon to the tech industry. Server class CPUs and GPUs are littered with side channels which are very difficult to “close”, even in hardened cloud VMs. We haven’t verified “frontier performance” hardware down to the logic gate in quite some time. Prof. Margaret Martinosi’s lab and her students have spent…
Comment linking /blah/tower-of-weakenings/
on “AI will make formal verification go mainstream”Submitted Text Rendering Hates You (2019) as a story · 52 points
HN discussionRust wants to fix this, but it's an extremely hard problem and other tasks received higher priority. See "How Swift Achieved Dynamic Linking Where Rust Couldn't" for details: https://faultlore.com/blah/swift-abi/
Comment linking /blah/swift-abi/
on “It's time to halt starting any new projects in C/C++”Submitted Compiler optimizations are hard because they forget as a story · 44 points
HN discussionI really like this article "How Swift Achieved Dynamic Linking Where Rust Couldn't" https://faultlore.com/blah/swift-abi
Comment linking /blah/swift-abi
on “Zed is now available on Windows”Submitted Swift Achieved Dynamic Linking Where Rust Couldn't as a story · 35 points
HN discussionThis, but see also Text Rendering Hates You https://faultlore.com/blah/text-hates-you/
Comment linking /blah/text-hates-you/
on “Rive Renderer for real-time vector graphics is now open source”Submitted Rust's unsafe pointer types need an overhaul as a story · 8 points
HN discussionI don't see this, or any other equivalent effort, taking off. It's neat, but CSS layout is a small part of the overall problem. Even setting side accessibility, which is a massive undertaking in and of itself, you have text rendering. To get an idea of what you'd have to emulate, here are some (not even all) issues related to rendering text: https://faultlore.com/blah/text-hates-you/
Comment linking /blah/text-hates-you/
on “Show HN: Dropflow, a CSS layout engine for node or <canvas>”Submitted The Apple compact unwinding format: documented and explained as a story · 5 points
HN discussionI like Aria's writing about this https://faultlore.com/blah/swift-abi/ .
Comment linking /blah/swift-abi/
on “Roc rewrites the compiler in Zig”Submitted Swift Achieved Dynamic Linking Where Rust Couldn't – Faultlore (2019) as a story · 5 points
HN discussion> - Assume our language has a specification, even if it's entirely in your head It does not, and at the current pace, it might never have a spec. The reason there is no spec - not even an hypothetical spec in my head - is that the exact semantics of Rust has not been settled. With the constraints the Rust project are operating with, the only way forward I can think of is following the ideas laid out in post https://…
Comment linking /blah/tower-of-weakenings/
on “Cve-rs: Fast memory vulnerabilities, written in safe Rust”Submitted Rust's Unsafe Pointer Types Need an Overhaul as a story · 4 points
HN discussionrelevant: https://faultlore.com/blah/text-hates-you/ ("Text Rendering Hates You"; discussed quite a bit but under its old URL https://hn.algolia.com/?query=text%20rendering%20hates%20you... ) It's not quite one of the "misconceptions programmers have about ..." but in the same vein, IMHO
Comment linking /blah/text-hates-you/
on “Writing a TrueType font renderer”Submitted Swift Achieved Dynamic Linking Where Rust Couldn't as a story · 4 points
HN discussionI’m not sure whether those toolkits abstracted over native GUI interfaces or whether they attempted to recreate a native look and feel or whether they attempted to provide their own look and feel across platforms, but in any case the problem isn’t languages and compilers, it’s that the expectations for a GUI toolkit are dramatically greater now than then. Here are a few things that are (I think) expected from GUI to…
Comment linking /blah/text-hates-you/
on “Gio UI – Cross-platform GUI for Go”Submitted The Apple Compact Unwinding Format: Documented and Explained – Faultlore as a story · 3 points
HN discussion> A slightly higher-level interface is the C ABI; Small remark: There is nothing like "the C ABI". https://faultlore.com/blah/c-isnt-a-language/#c-doesnt-actua...
Comment linking /blah/c-isnt-a-language/
on “Wasmer 3.0”Submitted The Pain of Linear Types in Rust (2017) as a story · 3 points
HN discussionIn contrast: "How Swift Achieved Dynamic Linking Where Rust Couldn't " (2019) [1] On the one hand I'm disappointed that Rust still doesn't have a calling convention for Rust-level semantics. On the other hand the above article demonstrates the tremendous amount of work that's required to get there. Apple was deeply motivated to build this as a requirement to make Swift a viable system language that applications coul…
Comment linking /blah/swift-abi/
on “The Rust calling convention we deserve”Submitted Text Rendering Hates You (2019) as a story · 3 points
HN discussionIt's not just dereferencing invalid */& that's illegal in Rust, but constructing and dereferencing valid &/&mut in ways that don't respect tree-shaped mutability. I've put together a playground at https://play.rust-lang.org/?version=stable&mode=debug&editio... . "Object graph" architectures are common in C++ and sometimes necessary in Rust when building GUI applications or emulators. Rust's pointer aliasing rules in…
Comment linking /blah/fix-rust-pointers/
on “Rust in the 6.2 kernel”Submitted Destroy all values: designing deinitialization in programming languages as a story · 3 points
HN discussion