Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    N

    notgull

    notgull.net · Personal blog · on HN since 2023

    John Nunley (notgull) writes about Rust, async/await internals, unsafe code, and compiler bootstrapping, including the Dozer Rust compiler in C.

    Visit blogRSSHN submissions
    Languages & CompilersProgrammingSystems & Performance
    What HN says

    HN commenters link it for Dozer, a bare-bones Rust compiler in C meant to simplify bootstrapping, and debate its claims about unsafe Rust.

    Stats for nerds
    20HN people shared it
    20linked in comments
    1.2Kstory points
    Jan 2026last shared
    2023people per year2026

    Top posts on HN

    1. 1
      Why choose async/await over threads?
      2 people · 433 points · first shared 2024 · 458 comments on HN
    2. 2
      Writing a Rust compiler in C
      4 people · 393 points · first shared 2024 · 223 comments on HN
    3. 3
      Rust's Block Pattern
      1 person · 216 points · first shared 2025 · 112 comments on HN
    4. 4
      Blocking code is a leaky abstraction
      1 person · 140 points · first shared 2024 · 145 comments on HN
    5. 5
      Async/Await versus the Calloop Model
      2 people · 10 points · first shared 2025 · Discussion on HN
    6. 6
      Notgull versus Burnout
      1 person · 4 points · first shared 2025 · Discussion on HN
    7. 7
      How to Deal with Rust Dependencies
      1 person · 4 points · first shared 2025 · Discussion on HN
    8. 8
      \Device\Afd: what makes async Rust and libuv work on Windows
      2 people · 3 points · first shared 2024 · Discussion on HN
    9. 9
      The rabbit hole of unsafe Rust bugs
      2 people · 3 points · first shared 2023 · Discussion on HN
    10. 10
      Explaining the internals of async-task from the ground up
      2 people · 2 points · first shared 2024 · Discussion on HN

    What HN people wrote when they linked it

    • Ygg2Dec 2023

      > If you at all break the rather subtle rules, then essentially anything can and will happen.

      If by subtle rules you mean your invariants, that is missing fundamental assumptions.

      It's akin to making a building without foundation and load bearing structures.

      > So for example, there was recently a thread where someone had code that checked if a value was in range to safely coerce it directly to an enum then did so. But because of eager evaluation of an argument the unsafe cast happened first

      You mean this: https://notgull.net/cautionary-unsafe-tale/

      However note the UB goes away if you never use any unsafe code. Or if you expand your unsafe to encompas some safe code.

      Issue it had was safe code was invalidating the invariants unsafe code was relying on. Iirc alignment.

    • inahgaOct 2024

      > Another way to see the benefit of this approach is that if you have a memory violation, then you only have to look in the unsafe blocks.

      Not really. Safety is non-local. It is possible to break unsafe code by feeding inputs from safe Rust that don't uphold the invariants that make the unsafe code safe. So it's not enough to look in the unsafe blocks--you have to consider the all the contexts that invoke the unsafe code.

      See https://doc.rust-lang.org/nomicon/working-with-unsafe.html, and https://notgull.net/cautionary-unsafe-tale/ for a practical example.

    • csb6Dec 2025

      There was a project [0] to write a bare bones rust compiler (no borrow checking) in C that aims to be able to build rustc in order to simplify bootstrapping, but it seems to have stalled.

      [0] https://notgull.net/announcing-dozer/

    • yencabulatorSep 2024

      See also https://notgull.net/announcing-dozer/ -- removes C++ and LLVM from the stack needed to bootstrap Rust.

    • smorrowJan 2026

      Dozer might be the most likely path to that.

      https://notgull.net/announcing-dozer

    • nullindividualJun 2024

      Correct link: https://notgull.net/device-afd/

    Related

    Philipp Oppermannos.phil-opp.com95 people

    Learn Rust by writing a small OS

    Philipp Oppermann
    Personal · last shared 2026
    Miguel Young de la Sotamcyoung.xyz37 people

    The Rust calling convention we deserve

    Miguel Young de la Sota
    Personal · last shared 2026
    Taylor Cramertmandry.gitlab.io16 people

    How Rust optimizes async/await

    Taylor Cramer
    Personal · last shared 2025
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Loris Crokristoff.it105 people

    Why Go and Not Rust?

    Loris Cro
    Personal · last shared 2026
    Stephen Clearyblog.stephencleary.com29 people

    There is no thread (2013)

    Stephen Cleary
    Personal · last shared 2025
    Encore Blogencore.dev47 people

    Go Modules Cheat Sheet

    Encore Blog
    Company · last shared 2026
    without.boatswithout.boats80 people

    Pin

    without.boats
    Personal · last shared 2026