the blog of compiler crimes :3

Hi there! I'm mei, or Maja Kądziołka if you're all formal and uptight. I'm a queer weirdo who's into computers; currently an undergraduate student at the University of Warsaw. Also, I guess I get to call myself a researcher now? Feels weird.

it's a creature! legend has it it has autism

Figure 1: me irl (artist's rendition)

While I find vast swathes of computer science interesting, lately my focus is mainly on things that involve symbolic manipulation in one way or another: compiler engineering, proof assistants, automatic theorem provers, static program analysis, and so on.

I've been known to have a soft spot in my heart for e-graphs — legend has it I'm always on the look out for reasons to use one.

Between classes at the university, I tend to either contribute to various open-source projects, such as the Rust compiler, or spend my time formalizing stuff in a proof assistant, mostly to learn mathematics better.

In the long term, I have two main goals:

Publications

Contact

Blog

Bruteforcing the Bitwarden master password I forgor 💀

The human mind is a fascinating thing. It's a miracle it works at all, let alone how well it does. The corollary is that sometimes it doesn't, I suppose.…

Read more

Terminating the terminal case of Linux

A response of sorts to Amos's "A terminal case of Linux", in which I explain why a short async Rust program would fail to terminate sometimes. Read more

Bootstrapping

What if all software suddenly disappeared? What's the minimum you'd need to bootstrap a practical system? I decided to start with a 512-byte seed that fits in the boot sector, and find out how far I can get.

Go to series overview

Compiling Rust is NP-hard

...though it's not the flagship borrow checking that's at fault. What I noticed, and would like to share with you today, is that the exhaustiveness checking performed by the Rust compiler on match patterns is a superset of the SAT problem.…

Read more