Laurence Tratt

@ltratt
1,018 Followers
84 Following
683 Posts
Shopify / Royal Academy of Engineering Research Chair in Language Engineering.
Websitehttps://tratt.net/laurie/

Scratched a Rust itch with an experimental new crate `test_stubs`. I have traits with lots of methods. "Proper" code should implement all methods, but test code need not. `test_stubs` means that test code doesn't have to manually create `todo!()` methods.

This has saved me 950LoC in one Rust program alone. Comments welcome -- I definitely consider this experimental right now! https://github.com/ykjit/test_stubs

I was recently asked how I choose what podcasts I listen to, and paused. Then I realised it's similar to how I choose what to read. In particular, for current affairs, I actively try to avoid just reinforcing my current opinions. I think this has helped make me wrong less often! https://tratt.net/laurie/blog/2024/choosing_what_to_read.html
A few weeks ago I gave a talk "Some Things I've Learned About Software" that was unusual for me. I didn't program in it once. I didn't mention specific technologies. Instead I tried to look at the high-level things about software that I've slowly become aware of -- things that we can easily miss day-to-day. There's lots of new-to-me stuff in here, not all perfectly formed yet, but perhaps of interest to some. A snippet can be found below; watch the full video at https://www.youtube.com/watch?v=RJgDW2AERr8
This year's weather has apparently decided it's not going to muck around with any of that nonsense in the 5-12C range. On the plus side, some of my "summer" walks are doable again and they look lovely in the cold mornings!
New post: "Async and finaliser deadlocks", based on an accidental poke from a recent episode of the excellent @oxidecomputer podcast https://tratt.net/laurie/blog/2025/async_and_finaliser_deadlocks.html
New post: "What Context Can Bring to Terminal Mouse Clicks", explaining how one can click on filenames with line numbers in my terminal and have the "correct" editor instance jump to that file and line. A hack, or pragmatic use of existing tools? You decide! https://tratt.net/laurie/blog/2025/what_context_can_bring_to_terminal_mouse_clicks.html
Although I'd prefer it if the trees stayed green all year around, if the leaves are going to fall, I'm rather happy that they do so in such a colourful way. It brings a new way of looking at old favourites.

Here's a visualisation of the evolution of our "Garbage Collection for Rust: The Finalizer Frontier" paper. The animation renders each git commit in the paper's history as a frame, with the time of the commit shown in the bottom right.

The full hi-res version can be found at https://youtu.be/zC866HybCp8

New paper: Garbage Collection for Rust: The Finalizer Frontier. There are lots of GCs for Rust: we tried pushing as far as we could in a new direction, particularly looking at what can be done about the headache that is finalizers.

Good news -- not only can a nice design be found, but some of Rust's properties mean we can solve classical GC finalization problems! https://soft-dev.org/pubs/html/hughes_tratt__garbage_collection_for_rust_the_finalizer_frontier/

Stourhead's Pantheon looked rather fine yesterday.