matklad.github.io
Apr 15, 2020 This is a sequel to the previous post about Pratt parsing. Here, we’ll study the relationship between top-down operator precedence (Pratt parsing) and the more famous shunting yard algorithm. Spoiler: they are the same algorith...
News & Blog Posts
2020-05-05
~18 min read
matklad.github.io
Apr 15, 2020 This is a sequel to the previous post about Pratt parsing. Here, we’ll study the relationship between top-down operator precedence (Pratt parsing) and the more famous shunting yard algorithm. Spoiler: they are the same algorith...
News & Blog Posts
2020-04-21
~18 min read
matklad.github.io
Apr 13, 2020 Welcome to my article about Pratt parsing — the monad tutorial of syntactic analysis. The number of Pratt parsing articles is so large that there exists a survey post :) The goals of this particular article are: Raising an issu...
News & Blog Posts
2020-04-14
~22 min read
matklad.github.io
Mar 22, 2020 This post describes a simple technique for writing interners in Rust which I haven’t seen documented before. String interning is a classical optimization when you have to deal with many equal strings. The canonical example woul...
News & Blog Posts
2020-03-24
~7 min read
matklad.github.io
Feb 14, 2020 ... by me? Rust is my favorite programming language (other languages I enjoy are Kotlin and Python). In this post I want to explain why I, somewhat irrationally, find this language so compelling. The post does not try to explai...
News & Blog Posts
2020-02-18
~10 min read
matklad.github.io
Jan 4, 2020 (at least on commodity desktop Linux with stock settings) This is a followup to the previous post about spinlocks. The gist of the previous post was that spinlocks have some pretty bad worst-case behaviors, and, for that reason,...
News & Blog Posts
2020-01-07
~10 min read
matklad.github.io
Jan 2, 2020 Happy new year 🎉! In this post, I will be expressing strong opinions about a topic I have relatively little practical experience with, so feel free to roast and educate me in comments (link at the end of the post) :-) Specifical...
News & Blog Posts
2019-12-31
~11 min read
matklad.github.io
Jul 25, 2019 This is a short note about yet another way to look at Rust’s unsafe. Today, an interesting bug was found in rustc, which made me aware just how useful unsafe is for making code maintainable. The story begins a couple of months...
News & Blog Posts
2019-07-30
~3 min read
matklad.github.io
Jul 16, 2019 One of my favorite blog posts about Rust is Things Rust Shipped Without by Graydon Hoare. To me, footguns that don’t exist in a language are usually more important than expressiveness. In this slightly philosophical essay, I wa...
News & Blog Posts
2019-07-23
~9 min read
matklad.github.io
Jun 18, 2018 This is a post about an interesting testing technique which feels like it should be well known. However, I haven’t seen it mentioned anywhere. I don’t even have a good name for it, I’ve semi-discovered it in the wild. If you kn...
News & Blog Posts
2018-06-19
~3 min read
matklad.github.io
May 24, 2018 In this post, I’ll talk about a pattern for extracting values from a weakly typed map. This pattern applies to all statically typed languages, and even to dynamically typed ones, but the post is rather Rust-specific. I’ve put t...
News & Blog Posts
2018-05-29
~3 min read
matklad.github.io
May 4, 2018 This is a post about an annoying Rust pattern and an annoying workaround, without a good solution :) Problem Statement Suppose you have some struct which holds some references inside. Now, you want to store a reference to this s...
News & Blog Posts
2018-05-08
~7 min read
matklad.github.io
Jan 3, 2018 Introduction One of my favorite features of Cargo is that it is not a general purpose build tool. This allows Cargo to really excel at the task of building Rust code, without usual Turing tarpit of build configuration files. I h...
News & Blog Posts
2018-02-06
~2 min read