Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #426

T

tratt.net

Personal blog · tratt.net/laurie/blog · on HN as ltrattprogrammingsystems

tratt.net is a personal blog at tratt.net about programming and systems. Since 2008, 131 different Hacker News readers have linked it 311 times, most often “Fast enough VMs in fast enough time”. No feed was found, so read it on the site itself.

No feed foundVisit the blog
311mentions?
9recommend?
131HN people?
2008–2026first – last linked?
Links on Hacker News per year · peak 62 in 2023

Sometimes recommended · 9 of 40 sampled comments recommend it, 3 are critical?

Why HN links it

HN readers link Laurence Tratt's blog for posts on language implementation, JITs, parsing and benchmarking, often as background or to recommend a read.

Recommended for · 9 comments
Called a good post, an excellent article, a very good read, a nice analysis and a nice description.
Criticised for · 3 comments
Says an algorithm doesn't work as stated, sometimes gives a wrong parse, and posts avoid saying if a change is possible.

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

The author on HN?

ltratt · 3,072 karma · member since 2008

Personal: https://tratt.net/laurie/

From their public HN profile, which links to this site.

Most-linked posts?

  1. Fast enough VMs in fast enough time
    7 people · 8 mentions · first linked 2012-02-08
  2. The Bootstrapped Compiler and the Damage Done (2013)
    6 people · 6 mentions · first linked 2013-12-04
  3. Fast Enough VMs in Fast Enough Time (2013)
    6 people · 6 mentions · first linked 2013-12-05
  4. More evidence for problems in VM warmup
    5 people · 6 mentions · first linked 2022-11-15
  5. Minimum Times Tend to Mislead When Benchmarking
    5 people · 5 mentions · first linked 2019-08-15
  6. Two Stories for “What Is Cheri?”
    4 people · 7 mentions · first linked 2023-07-05
  7. Parsing: The Solved Problem That Isn't
    4 people · 5 mentions · first linked 2016-06-25
  8. Some Reflections on Writing Unix Daemon
    4 people · 5 mentions · first linked 2024-02-28
  9. Rust's Two Kinds of 'Assert' Make for Better Code
    4 people · 4 mentions · first linked 2023-03-16
  10. The Evolution of a Research Paper
    4 people · 4 mentions · first linked 2021-01-19

What Hacker News says?

  1. I envy these small and steady improvements!! I spent about one week implementing PyPy's storage strategies in my language's collection types. When I finished the vector type modifications, I benchmarked it and saw the ~10% speed up claimed in the paper¹. The catch is performance increased only for unusually large vectors, like thousands of elements. Small vectors were actually slowed down by about the same amount. F…

    Comment linking /laurie/research/pubs/html/bolz_diekmann_tratt__storage_strategies_for_collections_in_dynamically_typed_languages/

    on “Python 3.13 Gets a JIT”
  2. Submitted Using a "proper" camera as a webcam as a story · 575 points

    HN discussion
  3. > Is it something that can be fixed with editions? My guess is no, or at least not easily. Assuming I'm reading these blog posts [0, 1] correctly, it seems that the size_of::<usize>() == size_of::<*mut u8>() assumption is changeable across editions. Or at the very least, if that change (or a similarly workable one) isn't possible, both blog posts do a pretty good job of pointedly not saying so. [0]: https://faultlor…

    Comment linking /laurie/blog/2022/making_rust_a_better_fit_for_cheri_and_other_platforms.html

    on “Rust in the kernel is no longer experimental”
  4. Submitted How I clean my glasses as a story · 314 points

    HN discussion
  5. bear8642 · 2021-05-27Recommends
    http://www.commandlinefanatic.com/cgi-bin/showpage.cgi?page=... is good deep dive into various topics. Enjoy the gzip explaination Matt might's 'blog' https://matt.might.net/articles/ is good read about various functional ideas and others https://aphyr.com/posts/342-typing-the-technical-interview funny post about how complicated balancing a binary tree could be https://tratt.net/laurie/blog/archive.html some interst…

    Comment linking /laurie/blog/archive.html

    on “Ask HN: Favorite Blogs by Individuals?”
  6. Submitted How can C Programs be so Reliable? (2008) as a story · 251 points

    HN discussion
  7. bjt · 2017-10-20Recommends
    It sounds very similar to what RPython and Pypy do. You can even use RPython to create a VM for a language besides Python. I read a good blog post from an author who had done that 5 years ago. http://tratt.net/laurie/blog/entries/fast_enough_vms_in_fast...

    Comment linking /laurie/blog/entries/fast_enough_vms_in_fast_enough_time.html

    on “HolyJit: A New Hope”
  8. Submitted How can C Programs be so Reliable? as a story · 249 points

    HN discussion
  9. > Is it basically just a Rust rewrite which also tries to reduce the complexity of their current just-in-time compiler? My understanding is it's rather more similar to RPython: the developer does not write the JIT, the developer writes the interpreter and the meta-jit generates a JIT from that. The developer can further add various annotations to guide JIT generation for improved performances. See Laurence Tratt's F…

    Comment linking /laurie/blog/entries/fast_enough_vms_in_fast_enough_time.html

    on “HolyJit: A New Hope”
  10. Submitted Fast enough VMs in fast enough time as a story · 228 points

    HN discussion
  11. It's not unavoidable, it just hasn't yet been avoided. It could be avoided the same way as other JITs: by interpreting until a compiled version of the code is available. That's actually being worked on, but it adds considerable complexity. Among other things, it requires being able to jump out of an executing interpreter loop into an optimized, compiled version of the same function. Doable, but annoying to implement…

    Comment linking /laurie/blog/2022/more_evidence_for_problems_in_vm_warmup.html

    on “Python's experimental JIT to be removed”
  12. Submitted UML: My Part in Its Downfall as a story · 226 points

    HN discussion
  13. > The DeathStation 9000 features a conforming C implementation which is known to catch all array bounds violations. ;) That actually really does exist already with CHERI CPUs, whose pointers are tagged with "capabilities," which catch buffer overruns at runtime. https://tratt.net/laurie/blog/2023/two_stories_for_what_is_c... https://msrc.microsoft.com/blog/2022/01/an_armful_of_cheris/

    Comment linking /laurie/blog/2023/two_stories_for_what_is_cheri.html

    on “The C23 edition of Modern C”
  14. Submitted Better Shell History Search as a story · 213 points

    HN discussion
  15. hyperpape · 2024-01-04Recommends
    There are good reasons to discard the best runs. If you think of your system as having predictable behavior that's slowed down by background processing happening on the machine, it might make sense to use the best run. But if there are any intrinsic sources of non-determinism in the program (and it's far more likely than you might think), taking the best time is likely to be unrepresentative. https://tratt.net/lauri…

    Comment linking /laurie/blog/2019/minimum_times_tend_to_mislead_when_benchmarking.html

    on “The One Billion Row Challenge”
  16. Submitted Parsing: the solved problem that isn't as a story · 200 points

    HN discussion
  17. - Converge | http://tratt.net/laurie/tech_articles/articles/fast_enough_v...

    Comment linking /laurie/tech_articles/articles/fast_enough_vms_in_fast_enough_time

    on “Announcing Topaz: A New Ruby”
  18. Submitted LLM Inflation as a story · 193 points

    HN discussion
  19. http://tratt.net/laurie/tech_articles/articles/fast_enough_v... is probably the best example, because — as far as I know — outside of having reimplemented his Converge in RPython Laurence Tratt is not affiliated with the pypy project in any way, shape or form.

    Comment linking /laurie/tech_articles/articles/fast_enough_vms_in_fast_enough_time

    on “Announcing Topaz: A New Ruby”
  20. Submitted Which Parsing Approach? as a story · 176 points

    HN discussion
  21. > new books should use more modern popular languages to age well and to attract younger audience That doesn't make sense. Java is one of the most popular programming language, more popular than a lot of other "modern popular languages". The only languages more popular are either as old as Java (JavaScript, Python) or older (C, C++). C# might be one option, but it's close to Java, and I don't know if the support for…

    Comment linking /laurie/essays/entries/which_parsing_approach.html

    on “Crafting Interpreters: A Review”
  22. Submitted What Challenges and Trade-Offs Do Optimising Compilers Face? as a story · 162 points

    HN discussion
  23. No. I was pretty naive in my initial attempts. I tried for many months to make Laurence Tratt's Algorithm 2 (see https://tratt.net/laurie/research/pubs/html/tratt__direct_le... ) work, but ultimately I failed. I recall running into some problem with my implementation of Tratt's idea that led me to conclude that his Algorithm 2 doesn't work as stated. My reasoning is buried in a git commit message from many months ag…

    Comment linking /laurie/research/pubs/html/tratt__direct_left_recursive_parsing_expression_grammars/

    on “Ask HN: What interesting problems are you working on?”
  24. Submitted Why Aren’t More Users More Happy With Our VMs? Part 1 (2018) as a story · 145 points

    HN discussion
  25. > Although, to be fair, PEG (Packrat) do support left recursion [1] Unfortunately it sometimes generates the wrong parse: http://tratt.net/laurie/research/pubs/papers/tratt__direct_l...

    Comment linking /laurie/research/pubs/papers/tratt__direct_left_recursive_parsing_expression_grammars.pdf

    on “How I wrote a self-hosting C compiler in 40 days”
  26. Submitted Structured Editing and Incremental Parsing as a story · 133 points

    HN discussion
  27. My gut feeling is that one can minimally maintain systems in "forgotten" languages indefinitely if they're basically stable and feature complete. But it seems that people come unstuck for systems that still need to evolve -- even if that evolution is slow and/or sporadic. The obvious alternative is to rewrite systems in new languages, but that is generally prohibitively expensive. Even for those that can afford the…

    Comment linking /laurie/blog/entries/fine_grained_language_composition.html

    on “Banks scramble to fix old systems as IT 'cowboys' ride into sunset”
  28. Submitted Choosing what to read as a story · 132 points

    HN discussion
  29. I agree fully with the author - exceptions are a problem for software that wants to avoid unexpected behaviour. I noted something similar in http://tratt.net/laurie/tech_articles/articles/a_proposal_fo... and sketched a possible compromise, more to emphasise the point, than as a serious proposal.

    Comment linking /laurie/tech_articles/articles/a_proposal_for_error_handling

    on “Why should I have written ZeroMQ in C, not C++”
  30. Submitted Why Aren’t More Users More Happy with Our VMs? Part 1 as a story · 122 points

    HN discussion

Search all of HN for tratt.net

Linked by the same people?