The Curious Engineer

All blogs / Compilers

Laurence Tratt: Blog

tratt.net

Laurence Tratt

CompilersRustDev tools / editors / IDEsLinux / Unix

Posts
157 from 19 Nov 2004 to 30 Jun 2026
Posting
monthly (13 in the last year)
Kind
personal blog
Feed
https://tratt.net/laurie/blog/blog.rss

2026 10

  1. Local Reasoning for Global Properties
  2. Complete blog archive
  3. Essays
  4. Test-case Reducers Are Underappreciated Debugging Tools
  5. pizauth-1.0.6
  6. extsmail
  7. hk
  8. Snare
  9. Retrofitting JIT Compilers into C Interpreters
  10. PLISS 2026

2025 10

  1. Upcoming Talk in London
  2. Async and Finaliser Deadlocks
  3. What Context Can Bring to Terminal Mouse Clicks
  4. Why Firsts Matter
  5. LLM Inflation
  6. Comparing the Glove80 and Maltron keyboards
  7. The LLM-for-software Yo-yo
  8. The Fifth Kind of Optimisation
  9. Better Shell History Search
  10. Can We Retain the Benefits of Transitive Dependencies Without Undermining Security?

2024 9

  1. Structured Editing and Incremental Parsing
  2. How I Prepare to Make a Video on Programming
  3. pizauth: HTTPS redirects
  4. Recording and Processing Spoken Word
  5. Why the Circular Specification Problem and the Observer Effect Are Distinct
  6. What Factors Explain the Nature of Software?
  7. Laurence Tratt: Some Reflections on Writing Unix Daemons
  8. Laurence Tratt: Faster Shell Startup With Shell Switching
  9. Laurence Tratt: Choosing What To Read

2023 22

  1. Laurence Tratt: Debugging A Failing Hotkey
  2. Laurence Tratt: How Often Should We Sharpen Our Tools?
  3. Laurence Tratt: Four Kinds of Optimisation
  4. Laurence Tratt: Minor Advances in Knowledge Are Still a Worthwhile Goal
  5. Laurence Tratt: How Hard is it to Adapt a Memory Allocator to CHERI?
  6. Laurence Tratt: "Programming" and "Programmers" Mean Different Things to Different People
  7. Laurence Tratt: pizauth: First Stable Release
  8. Laurence Tratt: The Need to Explain
  9. Laurence Tratt: Two Stories for "What is CHERI?"
  10. Laurence Tratt: My Interview with Eelco Visser on Parsing
  11. Laurence Tratt: Why Split Lexing and Parsing Into Two Separate Phases?
  12. Laurence Tratt: Displaying My Washing Machine's Remaining Time With curl, jq, and pizauth
  13. Laurence Tratt: pizauth: dump and restore
  14. Laurence Tratt: How Big Should a Programming Language Be?
  15. Laurence Tratt: Rust's Two Kinds of 'Assert' Make for Better Code
  16. Laurence Tratt: Scheduling my Electricity Usage
  17. Laurence Tratt: Why Aren't Programming Language Specifications Comprehensive?
  18. Laurence Tratt: Distinguishing an Interpreter from a Compiler
  19. Laurence Tratt: try_repeat released
  20. Laurence Tratt: Why We Need to Know LR and Recursive Descent Parsing Techniques
  21. Laurence Tratt: Compiled and Interpreted Languages: Two Ways of Saying Tomato
  22. Laurence Tratt: Software Security Research Position

2022 34

  1. Laurence Tratt: How Might Generative AI Change Programming?
  2. Laurence Tratt: pizauth: differentiating transient from permanent errors
  3. Laurence Tratt: November Links
  4. Laurence Tratt: More Evidence for Problems in VM Warmup
  5. Laurence Tratt: What is a Research Summer School?
  6. Laurence Tratt: October Links
  7. Laurence Tratt: pizauth: another alpha release
  8. Laurence Tratt: UML: My Part in its Downfall
  9. Laurence Tratt: September Links
  10. Laurence Tratt: pizauth, an OAuth2 token requester daemon, in alpha
  11. Laurence Tratt: A Week of Bug Reporting
  12. Laurence Tratt: August Links
  13. Laurence Tratt: Making a Video of a Single Window
  14. Laurence Tratt: Two researcher jobs in soft-dev
  15. Laurence Tratt: Another Reorganisation
  16. Laurence Tratt: July Links
  17. Laurence Tratt: What's the Most Portable Way to Include Binary Blobs in an Executable?
  18. Laurence Tratt: CHERITech22 and PLISS 2022
  19. Laurence Tratt: How I Clean my Glasses
  20. Laurence Tratt: June Links
  21. Laurence Tratt: What Metric to Use When Benchmarking?
  22. Laurence Tratt: Chance, Luck, and Risk
  23. Laurence Tratt: What Makes a Good Research Proposal?
  24. Laurence Tratt: May Links
  25. Laurence Tratt: Multiplicity Choices Are Hard to Model and Change
  26. Laurence Tratt: Using a "Proper" Camera as a Webcam
  27. Laurence Tratt: Programming Style Influences
  28. Laurence Tratt: snare: a Minimalistic GitHub Webhooks Runner
  29. Laurence Tratt: April Links
  30. Laurence Tratt: Where do Research Problems Come From?
  31. Laurence Tratt: Practising Programming
  32. Laurence Tratt: Making Rust a Better Fit for CHERI and Other Platforms
  33. Laurence Tratt: When is a Blog a Blog?
  34. few such tools

2021 5

  1. static integer types
  2. Laurence Tratt: Static Integer Types
  3. Laurence Tratt: Automatic Video Editing
  4. Aeschylus
  5. Laurence Tratt: The Evolution of a Research Paper

2020 5

  1. Laurence Tratt: Automatic Syntax Error Recovery
  2. Laurence Tratt: Stick or Twist?
  3. Laurence Tratt: Which Parsing Approach?
  4. of which I am particularly fond
  5. Laurence Tratt: Alternative Sources of Advice

2019 2

  1. Laurence Tratt: Minimum Times Tend to Mislead When Benchmarking
  2. Laurence Tratt: A Quick Look at Trait Objects in Rust

2018 4

  1. Laurence Tratt: Why Aren’t More Users More Happy With Our VMs? Part 2
  2. Laurence Tratt: Why Aren’t More Users More Happy With Our VMs? Part 1
  3. the first part of this two-part blog
  4. Laurence Tratt: What I’ve Learnt So Far About Writing Research Papers

2017 1

  1. Laurence Tratt: What Challenges and Trade-Offs do Optimising Compilers Face?

2016 2

  1. Laurence Tratt: Fine-grained Language Composition
  2. language composition

2015 1

  1. Laurence Tratt: Debugging Layers

2014 3

  1. the follow-up article on an editor for composed programs
  2. Parsing: The Solved Problem That Isn’t
  3. Laurence Tratt: An Editor for Composed Programs

2013 4

  1. Laurence Tratt: The Bootstrapped Compiler and the Damage Done
  2. Laurence Tratt: Relative and Absolute Levels
  3. Laurence Tratt: General Purpose Programming Languages' Speed of Light
  4. The Impact of Meta-Tracing on VM Design and Implementation

2012 3

  1. Laurence Tratt: Another Non-Argument in Type Systems
  2. Laurence Tratt: Server Failover For the Cheap and Forgetful
  3. Laurence Tratt: Fast Enough VMs in Fast Enough Time

2011 6

  1. Laurence Tratt: Problems with Software 3: Creating Crises Where There Aren't Any
  2. Laurence Tratt: Problems with Software 2: Failing to Use the Computing Lever
  3. read the previous article here
  4. Laurence Tratt: Problems with Software 1: Confusing Problems Whose Solutions Are Easy to State With Problems Whose Solutions Are Easy to Realise
  5. read the previous article here
  6. Laurence Tratt: Parsing: The Solved Problem That Isn't

2010 3

  1. Laurence Tratt: In Praise of the Imperfect
  2. said before
  3. Laurence Tratt: A Modest Attempt to Help Prevent Unnecessary Static / Dynamic Typing Debates

2009 5

  1. Laurence Tratt: A Proposal for Error Handling
  2. Laurence Tratt: The Missing Level of Abstraction?
  3. Laurence Tratt: Good Programmers are Good Sysadmins are Good Programmers
  4. it’s hard to be a good programmer unless you’re also a competent sysadmin
  5. dynamically typed languages

2008 5

  1. Laurence Tratt: How can C Programs be so Reliable?
  2. Laurence Tratt: Free Text Geocoding
  3. Laurence Tratt: Extended Backtraces
  4. a blog article
  5. Laurence Tratt: Designing Sane Scoping Rules

2007 6

  1. Laurence Tratt: Some Lessons Learned from Icon
  2. Experiences with an Icon-like expression evaluation system
  3. Laurence Tratt: How Difficult is it to Write a Compiler?
  4. Laurence Tratt: When Are Macros Useful?
  5. Laurence Tratt: Filling in a Gap
  6. Laurence Tratt: Are Multicore Processors the Root of a New Software Crisis?

2006 7

  1. a chunk of a paper
  2. Laurence Tratt: The High Risk of Novel Language Features
  3. Laurence Tratt: Evolving DSLs
  4. Laurence Tratt: More Meta Matters
  5. Laurence Tratt: Strategies for Dealing With E-mail
  6. Laurence Tratt: Debugging Driven Development
  7. Laurence Tratt: Make Exceptions Work For You

2005 8

  1. Laurence Tratt: Home Directory Synchronization
  2. Laurence Tratt: SREP
  3. metacircularity
  4. Laurence Tratt: Metacircularity
  5. Laurence Tratt: Timing setjmp, and the Joy of Standards
  6. Laurence Tratt: Text is Dead They Say
  7. Laurence Tratt: The Importance of Syntax
  8. Laurence Tratt: Predicting the Future of Computing

2004 2

  1. Laurence Tratt: Tail Call Optimization
  2. Laurence Tratt: Language Orientated Programming