Revisiting "Let's Build a Compiler"
There's an old compiler-building tutorial that has become part of the field's lore: the Let's Build a Compiler series by Jack Crenshaw (published between 1988 and 1995).
Topics /
The most popular blog posts about software engineering on Hacker News. 14,534 posts.
There's an old compiler-building tutorial that has become part of the field's lore: the Let's Build a Compiler series by Jack Crenshaw (published between 1988 and 1995).
Writing a solver for “Miracle Sudoku” puzzles in Prolog.
Nix is a tool for configuring software environments according to source files. I’ve been hearing more and more about Nix on Hacker News and Twitter. The idea of it appeals to me, so I’ve been tinkering with it over the past few weeks. My history with infrastructure as code Ten years ago, I discovered Salt, a tool that…
I've spent most of the last decade exploring this area (mainly to design Vale 's memory safety) and I've discovered some surprising things .
Somewhere between 'ask Claude for a quick opinion' and 'Claude is writing our Jira tickets,' we lost the plot. AI agents are brilliant implementers. They're also confidently wrong about every decision that matters. And when it all falls over, they won't be the ones carrying the bag.
In my previous post I said that the lang team would be making our final decision about the syntax of the await operator in the May 23 meeting. That was last Thursday, and we did reach a decision. In brief, we decided to go forward with the preliminary proposal I outlined earlier: a postfix dot syntax, future.await…
Back in 2021 I made a mod for Deus Ex 1 that fixes the lipsyncing and blinking, which, I betcha didn’t know, was broken since ship. Everything I wrote about it is on Twitter, and it oughta be somewhere else, so here’s a post about it. The mod itself can be downloaded here .
A couple of years ago I wrote about tolower() in bulk at speed using SWAR tricks . A couple of days ago I was interested by Olivier Giniaux’s article about unsafe read beyond of death , an optimization for handling small strings with SIMD instructions, for a fast hash function written in Rust.
The usual build-versus-buy rules for applications don't apply to integration
My wife and I run OpenBenches - a crowd-sourced database of nearly 40,000 memorial benches. Every bench is geo-tagged with a latitude and longitude. But how do you go from a string of digits to something human readable? How do I turn -33.755780,150.603769 into "42 Wallaby Way, Sydney, Australia"? Luckily, that's a…
An alternate to traditional <code>deleted_at</code> soft deletion that stays out of the way and minimizes bugs.
Introspectable and extensible IDEs with logic programming
I was reading through the MDN docs the other day and found these JS features and APIs I never knew existed. So here is a short list of those things, useful or not - learning JS seemingly never ends. Label Statements [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
Using SMS and MMS gateways we can send text messages to phones from a computer via email. With this strategy we can use a combination of the Python SMTP and email library to send text messages programmatically for free! This not only includes short text messages, but also multimedia messages with pictures, videos, or…
The Linux Upskill Challenge (https://github.com/livialima/linuxupskillchallenge) as done by Leo Robinovitch
xxh3 XXH3 - a new speed-optimized hash algorithm The xxHash family of hash functions has proven more successful than ...
I recently discovered that Microsoft’s VC++ compiler loads mshtml.dll – also known as Internet Explorer. The compiler does this whenever the /analyze option (requesting static code analysis) is use…
State-based CRDTs grow monotonically, but that doesn't mean they can't be efficient. We'll learn how to compress the pixel editor state by 98%.
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:
As a member of the Zig core team, one of the most impactful projects I’ve been involved with is the implementation of incremental compilation into the Zig compiler. This feature allows the compiler to detect which individual functions and declarations have changed since a project was last built, recompile only that…
From the highly eclectic blog of Mark Dominus