Roc Rewrites the Compiler in Zig

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Nutrient - The #1 PDF SDK Library
Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. clr

    Checker for Lifetimes and other Refinement types (by ityonemo)

    even so it seems like it would eventually be possible to do more safety analysis in zig:

    https://github.com/ityonemo/clr

  2. Nutrient

    Nutrient - The #1 PDF SDK Library. Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.

    Nutrient logo
  3. LCF77

    The original Edinburgh LCF.

    That paper isn't showing real ML syntax itself; it's a mathematical presentation to demonstrate how the type system algorithm works. The actual original LCF/ML syntax would differ. I don't believe it used an actual lambda character, although for the life of me I can't find any evidence one way or another, not even in the LCF source code (https://github.com/theoremprover-museum/LCF77)

    But yes, the slash is just an ASCII stand-in for a lambda.

  4. rust

    Empowering everyone to build reliable and efficient software.

    Since at least 2018, there's been a planned upgrade to the borrow checker to permit certain patterns that it currently rejects [0]. Also since 2018, there's been an implementation of the new version (called Polonius) that can be enabled with an unstable compiler flag [1].

    But it's 2025, and the new version still hasn't been enabled on stable Rust, since the Polonius implementation is seen as too slow for larger programs. A big goal of the types team since last year has been to reimplement a faster version within rustc [2].

    I'd count this as a language feature (albeit a relatively minor one) that's been greatly deferred in favor of shorter compile times.

    [0] https://blog.rust-lang.org/inside-rust/2023/10/06/polonius-u...

    [1] https://github.com/rust-lang/rust/pull/51133

    [2] https://rust-lang.github.io/rust-project-goals/2024h2/Poloni...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Guard state transitions with proto methods

    2 projects | dev.to | 10 Mar 2025
  • Effective Rust

    1 project | news.ycombinator.com | 3 Mar 2025
  • Building Type-Safe Rust Applications with Convex: Introducing convex-typegen

    2 projects | dev.to | 25 Feb 2025
  • Solving the ABA Problem in Rust with Tagged Pointers

    1 project | news.ycombinator.com | 15 Feb 2025
  • Resigning as Asahi Linux project lead

    4 projects | news.ycombinator.com | 13 Feb 2025

Did you know that Rust is
the 5th most popular programming language
based on number of references?