Barriers and Two-phase Borrows in Stacked Borrows


My internship (“research assistantship”) with Mozilla has ended several weeks ago, and this post is a report of the most recent tweaks I made to Miri and Stacked Borrows. Neither project is by any means “done”, of course. However, both have reached a fairly reasonable state, so I felt some kind of closing report made sense.

In particular, installing Miri and running your test suite in it is now just a single command away!


Thanks for posting this and all the other interesting thoughts and experiments you’ve participated in.

Also, if I ever want to finish my PhD, I’ll have to seriously scale down the amount of time I work on Rust – so at least from my side, things will move more slowly from now on.

This is sad to hear. I really enjoy the work you are doing on Rust, and the accompanying explanations and blog posts that you’ve made.

I wish you good luck in your work towards getting your PhD and hope someone else can fill the gap left behind until you are ready to be more involved again (if you ever choose so, of course).


The instructions to install miri failed for me:

cargo +nightly install --git miri

fails because of the last / in the git link. The following worked for me:

cargo +nightly install --git miri


The above doesn’t work for me. However, I got it to install after setting my rustup default to nightly and deleting the final freestanding name miri.


That’s odd, it works here… but without the / works as well so I updated the instructions.

That’s even odder, because that errors here:

$ cargo +nightly install --git
    Updating git repository ``
error: multiple packages with binaries found: cargo-miri-test, miri