By Ralf Jung :
How to Panic in Rust | ralfj.de
What exactly happens when you panic!()? I recently spent a lot of time looking at the parts of the standard library concerned with this, and it turns out the answer is quite complicated! I ...
more...
Article Ralf Jung Rust Nov 25, 2019 1  
Stacked Borrows: An Aliasing Model for Rust (the paper) | ralfj.de
I have blogged a few times before about Stacked Borrows, my proposed aliasing model for Rust. But I am a researcher, and what researchers (are expected to) do is write papers—so that’s what...
more...
Article Ralf Jung Rust Nov 18, 2019 1  
What Type Soundness Theorem Do You Really Want to Prove? | ralfj.de
My advisor Derek and some of my coauthors Amin, Robbert and Lars just put out a blog post on the SIGPLAN blog on the idea of “semantic typing”. This is the methodology behind RustBelt, so t...
more...
Article Ralf Jung Rust Oct 20, 2019 1  
"What The Hardware Does" is not What Your Program Does: Uninitialized Memory | ralfj.de
This post is about uninitialized memory, but also about the semantics of highly optimized “low-level” languages in general. I will try to convince you that reasoning by “what the hardware d...
more...
Article Ralf Jung Rust Jul 14, 2019 1  
Putting the stack back into Stacked Borrows | ralfj.de
Less than a month ago, I announced Stacked Borrows 2. In particular, I hoped that that version would bring us closer to proper support for two-phase borrows. Turns out I was a bit too optim...
more...
Article Ralf Jung Rust May 21, 2019 1  
Exponential blowup when using unbundled typeclasses to model algebraic hierarchies | ralfj.de
When formalizing a proof in an interactive theorem prover like Coq, one reoccurring issue is the handling of algebraic hierarchies. Such hierarchies are everywhere: some operations are ass...
more...
Article Ralf Jung Rust May 15, 2019 1  
Stacked Borrows 2 | ralfj.de
Recently, I have significantly updated Stacked Borrows in order to fix some issues with the handling of shared references that were uncovered in the previous version. In this post, I will d...
more...
Article Ralf Jung Rust Apr 30, 2019 1  
Miri available as rustup component | ralfj.de
Running your unsafe code test suite in Miri has just gotten even easier: Miri is now available as a rustup component! Huge thanks to @oli-obk and @mati865 who made this happen. Miri can ru...
more...
Article Ralf Jung Rust Mar 26, 2019 1  
Sandboxing All The Things with Firejail | ralfj.de
Sometimes, I run software that I trust less. All software I use on a daily basis is open-source, but there is still closed-source software I run occasionally, like video games. Unfortunatel...
more...
Article Ralf Jung Rust Mar 09, 2019 1  
All-Hands 2019 Recap | ralfj.de
Last week, I was in Berlin at the Rust All-Hands 2019. It was great! I will miss nerding out in discussions about type theory and having every question answered by just going to the person ...
more...
Article Ralf Jung Rust Feb 12, 2019 1  
Rust 2019: Solid Foundations for Unsafe Code | ralfj.de
It is that time of the year again where our feedreaders are filled with people’s visions for what Rust should become in the next year. Coming up with a vision is not exactly my strong suit,...
more...
Article Ralf Jung Rust Jan 12, 2019 1  
Barriers and Two-phase Borrows in Stacked Borrows | ralfj.de
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...
more...
Article Ralf Jung Rust Dec 26, 2018 1  
Google Scholar Considered Harmful | ralfj.de
I am currently applying for academic positions, and several people recommended I get a Google Scholar profile because hiring committees will look for that. I even found one vacancy that exp...
more...
Article Ralf Jung Rust Dec 12, 2018 1  
Stacked Borrows Implemented | ralfj.de
Three months ago, I proposed Stacked Borrows as a model for defining what kinds of aliasing are allowed in Rust, and the idea of a validity invariant that has to be maintained by all code a...
more...
Article Ralf Jung Rust Nov 16, 2018 1  
Two Kinds of Invariants: Safety and Validity | ralfj.de
When talking about the Rust type system in the context of unsafe code, the discussion often revolves around invariants: Properties that must always hold, because the language generally assu...
more...
Article Ralf Jung Rust Aug 22, 2018 1  
Stacked Borrows: An Aliasing Model For Rust | ralfj.de
In this post, I am proposing “Stacked Borrows”: A set of rules defining which kinds of aliasing are allowed in Rust. This is intended to answer the question which pointer may be used when t...
more...
Article Ralf Jung Rust Aug 07, 2018 1  
Pointers Are Complicated, or: What's in a Byte? | ralfj.de
This summer, I am again working on Rust full-time, and again I will work (amongst other things) on a “memory model” for Rust/MIR. However, before I can talk about the ideas I have for this ...
more...
Article Ralf Jung Rust Jul 24, 2018 1  
Thoughts on Compile-Time Function Evaluation and Type Systems | ralfj.de
For some time now (since the 1.26 release, to be precise), Rust has a very powerful machinery for CTFE, or compile-time function evaluation. Since then, there have been various discussions ...
more...
Article Ralf Jung Rust Jul 19, 2018 1  
The Tale of a Bug in Arc: Synchronization and Data Races | ralfj.de
While I was busy doing Rust-unrelated research, RustBelt continues to move and recently found another bug (after a missing impl !Sync that we found previously): It turns out that Arc::get_m...
more...
Article Ralf Jung Rust Jul 13, 2018 1  
Back at Mozilla | ralfj.de
After my internship last year has ended, I naturally became somewhat less active in the Rust community as I could not work on Rust full-time any more. Well, for the following months I am go...
more...
Article Ralf Jung Rust Jul 11, 2018 1  
Fighting Mailman Subscription Spam: Leveling Up | ralfj.de
Last week, I blogged about my efforts to fight mailman subscription spam. Enabling SUBSCRIBE_FORM_SECRET as described there indeed helped to drastically reduce the amount of subscription s...
more...
Article Ralf Jung Rust Jun 10, 2018 1  
Fighting Mailman Subscription Spam: The Easy Way | ralfj.de
I recently noticed that both of the Mailman setups that I am running are being abused for subscription spam: Bots would automatically attempt to subscribe foreign email addresses to public ...
more...
Article Ralf Jung Rust Jun 02, 2018 1  
Syncing Contacts Without Exposing Them to the Cloud | ralfj.de
I finally have a setup that I am happy with for syncing contacts between my phone and my laptop. Most would probably consider that a solved problem, but I have an extra requirement that rul...
more...
Article Ralf Jung Rust May 28, 2018 1  
Safe Intrusive Collections with Pinning | ralfj.de
In my last post, I talked about the new “pinned references” which guarantee that the data at the memory it points to will not, ever, be moved elsewhere. I explained how they enable giving a...
more...
Article Ralf Jung Rust Apr 10, 2018 1  
A Formal Look at Pinning | ralfj.de
Recently, a new API for “pinned references” has landed as a new unstable feature in the standard library. The purpose of these references is to express that the data at the memory it points...
more...
Article Ralf Jung Rust Apr 05, 2018 1  
Sharing for a Lifetime | ralfj.de
This post is about an aspect of the RustBelt paper. Concretely, I’d like to share some of our thoughts on the nature of types and shared references. Let’s see how well this goes. :) Shared...
more...
Article Ralf Jung Rust Jan 31, 2018 1  
RustBelt Conference Talk | ralfj.de
Last week, I was in Los Angeles at POPL 2018 to present our paper RustBelt: Securing the Foundations of the Rust Programming Language. The talk has been recorded, so if you want to get a 20...
more...
Article Ralf Jung Rust Jan 21, 2018 1  
Let's Encrypt Tiny | ralfj.de
I think all HTTP communication on the internet should be encrypted – and thanks to Let’s Encrypt, we are now much closer to this goal than we were two years ago. However, when I set up Let...
more...
Article Ralf Jung Rust Dec 26, 2017 1  
Interview for People of Programming Languages | ralfj.de
POPL 2018, the conference where I will present our RustBelt paper, is doing a series of interviews with senior and junior people from the community: People of Programming Languages. They al...
more...
Article Ralf Jung Rust Dec 15, 2017 1  
So Long, and Thanks for All the Fish | ralfj.de
Yesterday was the last day of my Rust internship at Mozilla. I can hardly believe that twelve weeks have passed since that post, but my calendar insists. If you want to see what I have done...
more...
Article Ralf Jung Rust Aug 12, 2017 1  
Types as Contracts: Implementation and Evaluation | ralfj.de
Some weeks ago, I described Types as Contracts as an approach for how to go about defining Rust’s aliasing-related undefined behavior. One key property of this approach is that it is execut...
more...
Article Ralf Jung Rust Aug 11, 2017 1  
Types as Contracts | ralfj.de
Over the last couple of weeks of my internship, I have been working on a proposal for the “Unsafe Code Guidelines”. I got some very encouraging feedback at the Mozilla All-Hands, and now I’...
more...
Article Ralf Jung Rust Jul 17, 2017 1  
Undefined Behavior and Unsafe Code Guidelines | ralfj.de
Last year, the Rust unsafe code guidelines strike team was founded, and I am on it. :-) So, finally, just one year later, this post is my take at what the purpose of that team is.
more...
Article Ralf Jung Rust Jul 14, 2017 2  
RustBelt: Securing the Foundations of the Rust Programming Language | ralfj.de
Just yesterday, we submitted our paper RustBelt: Securing the Foundations of the Rust Programming Language. Quoting from the abstract: Rust is a new systems programming language that pr...
more...
Article Ralf Jung Rust Jul 08, 2017 1  
How MutexGuard was Sync When It Should Not Have Been | ralfj.de
A couple of weeks ago, our ongoing effort to formalize Rust’s type system lead to us actually discovering a bug in the Rust standard library: MutexGuard implemented Sync in cases where it s...
more...
Article Ralf Jung Rust Jun 09, 2017 1  
Exploring MIR Semantics through miri | ralfj.de
It’s now been two weeks since my internship started (two weeks already, can you believe it?). In other words, if I want to post “weekly or bi-weekly” updates, I better write one today ;) . ...
more...
Article Ralf Jung Rust Jun 06, 2017 1  
How to Specify Program (Undefined) Behavior? | ralfj.de
This summer, I am given the awesome opportunity of spending three months in the Mozilla offices in Portland, working on Rust. I am extremely grateful that Mozilla is providing this opportun...
more...
Article Ralf Jung Rust May 23, 2017 1  
Talk @ Paris Rust Meetup | ralfj.de
This week, I have been at the Paris Rust Meetup. Meeting all sorts of Rust people was great fun, and the Mozilla offices in Paris are absolutely impressive. You should totally check them o...
more...
Article Ralf Jung Rust Jan 20, 2017 1  
The Scope of Unsafe | ralfj.de
I’d like to talk about an important aspect of dealing with unsafe code, that still regularly seems to catch people on the wrong foot: When checking unsafe code, it is not enough to just...
more...
Article Ralf Jung Rust Jan 09, 2016 1  
Formalizing Rust | ralfj.de
My current research project – and the main topic of my PhD thesis – is about developing a semantic model of the Rust programming language and, most importantly, its type system. Rust is an ...
more...
Article Ralf Jung Rust Oct 12, 2015 1  
Breaking All the Way Out | ralfj.de
Do you know the feeling of having done something, and having a website for it somewhere, but not finding the right spot to put a link to that website? I certainly do, and, well… now that I ...
more...
Article Ralf Jung Rust Oct 09, 2015 1  
Welcome | ralfj.de
I’ll use this blog to write random articles on things that matter to me, and that I want to share. So far, I don’t know what this will end up being about - probably mostly about programming...
more...
Article Ralf Jung Rust Oct 08, 2015 1  

Featured Contributors

Ralf Jung
Rust ~   ..