Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 662 posts.
From Stacks to Trees: A new aliasing model for Rust
Since last fall, Neven has been doing an internship to develop a new aliasing model for Rust: Tree Borrows. Hang on a second, I hear you say – doesn’t Rust already have an aliasing model? I...
Parser generators vs. handwritten parsers: surveying major languages in 2021
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
I wrote a string type
I write compilers for fun. I can’t help it. Consequently, I also write a lot of parsers. In systems programming, it’s usually a good idea to try to share memory rather than reuse it, so as such my AST types tend to look like this.
Why not just do simple C++ RAII in C?
Ever since I finished publishing the “defer” paper and successfully defended it on its first go-around (it now has tentative approval to go to a Technical Specification, I just need to obtain the necessary written boilerplate to do so), an old criticism
My review of the C standard library in practice
In general, when working in C I avoid the standard library, libc, as much as possible. If possible I won’t even link it. For people not used to working and thinking this way, the typical response is confusion. Isn’t that like re-inventing the wheel? For me, libc is a wheel barely worth using — too many deficiencies in…
The bane of my existence: Supporting both async and sync code in Rust
Sit beside me and hear this crazy old man's tale of when I asked Rust for too much
True Scala complexity
Due to the recent php2shell vulnerability , to save time and effort for both users and maintainers alike, and out of an overabundance of caution, all Scripts sites have had PHP (php-cgi) disabled until a patch is available and backported.
Both true and false: a Zen moment with C
I ran into a really fun bug at work yesterday, where I discovered that my C program was branching down logically inconsistent code paths. After drinking another cup of coffee and firing up GDB I realized that somehow, a boolean variable in my code was simultaneously testing as both true and not true.
My experience crafting an interpreter with Rust (2021)
Last year I finally decided to learn some Rust. The official book by Steve Klabnik and Carol Nichols is excellent, but even after reading it and working on some small code exercises, I felt that I needed more to really understand the language. I wanted to work on a small project to get some hands-on experience, but…
V Language Review (2023)
Review about V programming language in 2023
Where Did Combinators Come From? Hunting the Story of Moses Schönfinkel
A dive into the unknown personal and academic history of the mathematician who developed combinators, Moses Schönfinkel.
Zig-style generics are not well-suited for most languages
A discussion of some of the downsides of Zig
Curl removes experimental HTTP back end in Rust
The ride is coming to an end. The experiment is done. We tried, but we admit defeat. Four years ago we started adding support for an alternative HTTP backend in curl. It would use a library written in rust, called hyper. The idea was to introduce an alternative implementation of HTTP internals that you could ……
McCarthy's Ambiguous Operator (2005)
Random code snippets, projects and musings about software from Eric Kidd, a developer and occasional entrepreneur.
Introduction to monads in JavaScript
I know, I know, the world does not need yet another introduction to monads (or yet another article complaining that world does not need yet another introduction to monads). So you’ll be glad to know this isn’t one of those, in the sense that it’s not new. I thought I’d write it because, first, monads are worth knowing…
Where Rust really shines
Yesterday I was working on a small feature for the Rust compiler, and came across a situation which really showcased Rust’s awesomeness as a language …
Thoughts on porting NumPy to PyPy
Last weekend, I attended GitHub's PyCodeConf in Miami Florida and had the opportunity to give a talk on array-oriented computing and Python....
C++ Safety, in Context
Scope. To talk about C++’s current safety problems and solutions well, I need to include the context of the broad landscape of security and safety threats facing all software. I chair the ISO C++ s…
The Evolution of a Haskell Programmer (2001)
Some time later, I came across Iavor�s "jokes" page, including a funny bit called � The Evolution of a Programmer � in which the traditional imperative "Hello, world" program is developed through several variations, from simple beginnings to a ridiculously complex extreme. A moment�s thought turned up the factorial…
I Believe Zig Has Function Colors
Proponents of Zig claim that it does not have function colors. In this post, I attempt prove that it does.
List out of Lambda
If you ignore the practical issues of computers like size, weight, cost, heat, and so on, what do you really need in a programming language? Let's play around with this question.
NASM Tutorial (2018)
This tutorial will show you how to write assembly language programs on the x86-64 architecture.
Solving murder with Prolog
In our company we usually have a fun quiz every sunday and this was one of them
Crash Course on Notation in Programming Language Theory
This blog post is meant to help my friends get started in reading my other blog posts, that is, this post is a crash course on the notation ...
Exponential time complexity in the Swift type checker
One of the most annoying problems in Swift is when the compiler gives an 'Expression was too complex to be solved in a reasonable time' error. I look at why this error occurs, how to avoid it and talk about how this should be solved in a future compiler update.
Cyclic dependencies are evil (2013)
Cyclic dependencies: Part 1