Laurence Tratt's Avatar

Laurence Tratt

@ltratt.bsky.social

Shopify / Royal Academy of Engineering Research Chair in Language Engineering. https://tratt.net/laurie/

1,592 Followers  |  84 Following  |  411 Posts  |  Joined: 23.09.2023  |  2.0519

Latest posts by ltratt.bsky.social on Bluesky

Indeed.

09.02.2026 14:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

To take a current topic: can it generate a compiler whose output is on a par with gcc/clang?

09.02.2026 14:32 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

That's a very valuable piece of information because if it can do it now, it will never cost more in the future -- and it will probably cost less!

09.02.2026 10:41 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 2    πŸ“Œ 1

In the past fortnight, 50% of my conversations have seen me say "today's AI cannot do that and we have no idea if and when it will".

In the other 50% I've said "today's AI can do that, really, and you just need to try it".

Our collective calibration is currently very wonky!

09.02.2026 08:38 β€” πŸ‘ 13    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Good, we need someone to research how to make it work everywhere as that is not yet a fully solved problem!

03.02.2026 22:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I'm glad to hear it's been useful to you!

29.01.2026 17:05 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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

29.01.2026 17:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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.

29.01.2026 17:04 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

If it was, it went straight to the 3 year old stage, and got the same response 3 year olds are familiar with -- "don't do that".

26.01.2026 20:25 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

There's nothing more surprising than an agent, in the middle of doing some useful refactoring, asking if it can run a Python script which solely prints "HI" (yes, in uppercase) to stdout.

26.01.2026 16:48 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

If you're thinking of applying to PLISS, you've got three days left! pliss.org/2026/registr...

22.01.2026 14:59 β€” πŸ‘ 6    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

A first: I awoke to a PR on one of the Rust projects I maintain that results from a proposed fix to a rustc oversight. Our code should never have compiled, IMHO, so the rustc fix is a good one!

For those interested in the rustc change: github.com/rust-lang/ru...

20.01.2026 09:16 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This is definitely a book I need to reread. Honestly, I read it in the past in part because he grew up near me. I soon realised I was in the hands of a master, even if I didn't quite understand the depths of that.

19.01.2026 13:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

When I read Walter Bagehot's (d. 1877) "The English Constitution" years ago, I was surprised at how much time he spent contrasting it to the US constitution. I now realise he had thought deeply about the plausible futures of both and how they could adapt and/or go wrong.

19.01.2026 13:01 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Of course. But that is not the only metric worth considering.

15.01.2026 14:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I need to go backwards in many cases, and I then lose all the mental state I've built up. `printf` allows me to refresh that mental state. Certainly, it's served me very well for a long time, at least before reverse debuggers.

15.01.2026 14:05 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's so good that I am willing to overlook how terrible the (gdb) debugger UI is. I don't need most of the weird hard-to-remember features, as they're much less necessary (for me) when reverse debugging.

15.01.2026 11:27 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Reverse debugging, specifically `rr`, has changed this calculus for me. By starting at the error and working backwards (and sometimes forwards), I have a sort of uber-powerful `printf` that allows me to examine the trail.

15.01.2026 11:27 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I've never been a fan of debuggers. Examining the state at the point of a crash rarely helps me: the problem is nearly always earlier in time. `printf` is more useful to follow the trail forwards.

15.01.2026 11:27 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 3    πŸ“Œ 1

A reminder for those interested in PLISS 2026: there are 10 days left to register your interest. pliss.org/2026/registr...

15.01.2026 08:58 β€” πŸ‘ 6    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Even though I know from past experience how important it can be to avoid small memory allocations in performance critical code, the measurable effect of removing them still often surprises me.

14.01.2026 09:49 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

tratt.net/laurie/blog/...

12.01.2026 19:08 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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!

12.01.2026 19:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Low-needle-drop Christmas trees are willing to delay their revenge: they wait until you remove them from the house before dropping dry, sharp, needles everywhere.

09.01.2026 09:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I believe that was the verdict of, well, everyone ;)

09.01.2026 08:18 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Now you can see what I ended up doing... Whether it worked and anyone enjoyed it is a very separate matter ;)

08.01.2026 12:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Some Things I've Learnt About Software
YouTube video by Laurence Tratt Some Things I've Learnt About Software

These are things that we can easily miss day-to-day, and in the rapidly changing technological landscape. There's lots of new-to-me stuff in here, not all perfectly formed yet, but perhaps of interest to some.

08.01.2026 12:13 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

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 understood. www.youtube.com/watch?v=RJgD...

08.01.2026 12:13 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Broadly yes, but we do take a handful of people from other career stages. Video recordings are great to have, but expensive, and alas we lack the budget to do it now.

06.01.2026 13:46 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I feel fortunate, because I get to sit through all the talks myself -- I've learnt a _lot_ over the years!

06.01.2026 10:16 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@ltratt is following 20 prominent accounts