Comparing Python Type Checkers: Typing Spec Conformance
Learn what it means to conform to the Python typing spec, why it matters, and the conformance status of each type checker including Pyrefly, Ty, Pyright and Mypy.
The latest blog posts to take off on Hacker News. 233 posts.
Learn what it means to conform to the Python typing spec, why it matters, and the conformance status of each type checker including Pyrefly, Ty, Pyright and Mypy.
A draft design document describing lightweight userland cooperative threads for SBCL.
Erlang's mailbox design is more disciplined than Go's channels: only the owning process can read from a mailbox, and sends are asynchronous. Yet the four failure modes of shared mutable state still show up, just in different shapes.
How Go 1.26's source-level inliner works, and how it can help you with self-service API migrations.
C++26 brings us a small but meaningful cleanup to the language: deprecating ellipsis parameters without a preceding comma. This change, proposed in P3176R1, aims to improve C compatibility, reduce confusion, and pave the way for future language features. The proposal’s name is a playful reference to the Oxford comma …
This page contains entries for the year 2026 . Other years are available in the Devlog archive page .
Why 'indirection has a cost' is usually the wrong reason to inline and what actually costs you.
In the previous article we explored how Go’s memory allocator manages heap memory — grabbing large arenas from the OS, dividing them into spans and size classes, and using a three-level hierarchy (mcache, mcentral, mheap) to make most allocations lock-free. A key detail was that each P (processor) gets its own memory…
I built a tiny programming language where programs are candy grids, complete with a renderer, photo decoder, AST tree, and execution trace.
Today we are excited to announce the Release Candidate (RC) of TypeScript 6.0! To get started using the RC, you can get it through npm with the following
The four-pane System Browser has shaped Smalltalk development for forty years. It’s still brilliant at providing context. But the real problem may not be the browser itself—it may be the lack of composition between the tools that surround it.
I don’t think I’ve ever quite articulated my “grand vision” for Rust, despite having written a fair bit about the language and its features. There is a lot I could say here, but currently there are three directions of development which I find particularly interesting:
How Go 1.20's WithCancelCause and Go 1.21's WithTimeoutCause let you attach a reason to context cancellation, plus a gotcha with manual cancel and the stdlib pattern that covers every path.
Pull up your agents folks, I'll convince you why Go is the best language for them.
Ok, the title is a tongue-in-cheek, but there's very little thought put into files in most languages. It always feels a bit out of place... except in C. In fact, what you get is usually a worse version of C.
around a year ago, we built a regex engine in F# that not only outperformed the ones in dotnet, but went above and beyond competing with every other industrial regex engine on a large set of industry-standard benchmarks. it also supports the full set of boolean operators (union, intersection, complement) and even a…
In my previous post I talk about how I got rid of hundreds of thousands of lines of Objective-C code while at Audible and I explain why keeping Objective-C code around is a terrible idea. And I explain that…
A programming language should not be your identity.
A description of some of the recent changes to do allocations on the stack instead of the heap.
_posted by Stephen De Gabrielle and John Clements_ We are pleased to announce Racket v9.1 is now available from https://download.racket-lang.org/. As of this release:: Documentation organization and navigation can be specialized by language family, to...
In the previous article we explored how the Go runtime bootstraps itself — how a Go binary goes from the operating system handing it control to your func main() running. During that bootstrap, one of the first things the runtime sets up is the memory allocator. And that’s what we’re going to explore today. Think of…
Applying the type-driven mindset to rust via the "Parse, don't Validate" pattern
a pungent monad odor that attracts mathochists
Farewell, Rust for web. For now…
Go 1.26 includes a new implementation of go fix that can help you use more modern features of Go.
About a year ago I posted about defer and that it would be available for everyone using gcc and/or clang soon. So it is probably time for an update. Two things have happened in the mean time: A tec…
A false dichotomy that hides the real request
Motivation I’ve been captivated by the recent movement to popularize mathematics formalization through the Lean theorem prover, and this year I’m diving deeper into learning it. For those unfamiliar with this revolution, I highly recommend watching Kevin Buzzard’s talks on YouTube for an overview of why formal…
Vim 9.2 brings significant enhancements to the Vim9 scripting language, improved diff mode, comprehensive completion features, and platform-specific improvements including experimental Wayland support.