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

Top all-time · #1673

N

Neil Mitchell

Personal blog · neilmitchell.blogspot.comprogramming

Neil Mitchell's personal blog at neilmitchell.blogspot.com covers programming. Since 2008, 46 different Hacker News readers have linked it 64 times, most often “Chasing a Memory Leak in a Haskell app”. The last post was in 2022, but the archive is still widely read.

Visit the blog
64mentions?
46HN people?
2008–2025first – last linked?
Links on Hacker News per year · peak 9 in 2021

Most-linked posts?

  1. /2021/09/huge-project-build-systems.html
    3 people · 3 mentions · first linked 2021-11-06
  2. Chasing a Memory Leak in a Haskell app
    3 people · 3 mentions · first linked 2013-11-20
  3. /2015/09/detecting-space-leaks.html
    3 people · 3 mentions · first linked 2015-10-15
  4. Reflecting on the Shake Build System
    2 people · 2 mentions · first linked 2021-09-22
  5. Turing Incomplete Languages
    2 people · 2 mentions · first linked 2020-11-09
  6. Haskell IO without monads
    2 people · 2 mentions · first linked 2010-01-10
  7. Reflecting on the Shake Build System
    2 people · 2 mentions · first linked 2021-09-14
  8. Small Project Build Systems (2021)
    2 people · 2 mentions · first linked 2023-04-01
  9. Inside the Paper: Build Systems a La Carte
    2 people · 2 mentions · first linked 2018-07-09

What Hacker News says?

  1. The only build systems that I'm aware of that are monadic are redo, SCons and Shake-inspired build systems (including Shake itself, Jenga in OCaml, and several Haskell alternatives). One realistic example (from the original Shake paper), is building a .tar file from the list of files contained in a file. Using Shake we can write the Action: contents <- readFileLines "list.txt" need contents cmd "tar -cf" [out] conte…

    Comment linking /2014/07/applicative-vs-monadic-build-systems.html

    on “The Makefile I use with JavaScript projects”
  2. Submitted The Four Flaws of Haskell as a story · 108 points

    HN discussion
  3. Actually, it doesn't crash because a theorem prover was run over the code to prove that it wouldn't crash. I believe some obscure stackset crashes were preemptively found this way. http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.h...

    Comment linking /2007/05/does-xmonad-crash.html

    on “New iPhone Agreement Bans Flash-to-iPhone Compiler & Others”
  4. Submitted Turing Incomplete Languages as a story · 90 points

    HN discussion
  5. here is a method that can help debug space leaks: http://neilmitchell.blogspot.com/2015/09/detecting-space-lea...

    Comment linking /2015/09/detecting-space-leaks.html

    on “I tried Haskell for 5 years”
  6. Submitted Reflecting on the Shake Build System as a story · 74 points

    HN discussion
  7. Over the years I've collected various links on topics related to Haskell performance. I'll spare you the whole list, but here are a few that may be of some use. Haskell Performance Patters - Johan Tibell (2012) http://johantibell.com/files/haskell-performance-patterns.ht... Performance (Haskell Wiki) https://wiki.haskell.org/Performance Detecting Space Leaks - Neil Mitchell (2015) http://neilmitchell.blogspot.com/20…

    Comment linking /2015/09/detecting-space-leaks.html

    on “Lessons learned from writing ShellCheck”
  8. Submitted Inside the Paper: Build Systems a La Carte as a story · 59 points

    HN discussion
  9. I find Neil Mitchell's categories of small[1], medium[2], and huge[3] build systems useful. Blaze is absolutely fantastic as a huge build system, as it can correctly specify the exact semantics of systems with lots of components and complexities such as cross-language bindings, autogenerated files, etc. If you are building a huge system, then a small or medium build tool just won't be up to the task. At that kind of…

    Comment linking /2021/09/huge-project-build-systems.html

    on “When to use Bazel?”
  10. Submitted Analyzing Three Space Leaks in Haskell as a story · 59 points

    HN discussion
  11. > Even for someone reasonably experienced in functional programming, there are tons of new concepts you need to master to be minimally productive in the language. Mostly agree, but it does depend on how you define minimally productive. I also believe this is more of a pedagogy problem. For instance, someone can tell me what their definition of being minimally productive is in Haskell and if it is within my skills I…

    Comment linking /2015/09/detecting-space-leaks.html

    on “Running Swift code on Android”
  12. Submitted Optimisation with Continuations as a story · 39 points

    HN discussion
  13. I feel like DJB's ideas behind redo are actually some of his most poorly thought-out ideas. It seems that he thought, 'Make has <problem>. To solve <problem>, a new build system should have <solution>.' In other words, he seems to just used additive solutions instead of subtractive ones. [1] Most build systems seem to be like that, adding features on top of features. The end result is usually complicated and finicky…

    Comment linking /2021/09/huge-project-build-systems.html

    on “Redo: A recursive, general-purpose build system”
  14. Submitted Continuations and Exceptions as a story · 24 points

    HN discussion
  15. I'm not proficient in Haskell, just a bystander, but this isn't the sentiment I get from reading Neil Mitchell's posts on the subject: http://queue.acm.org/detail.cfm?id=2538488 http://neilmitchell.blogspot.com/2013/02/chasing-space-leak-... He appears to use profiling tools and "try them all and see which produces the most useful information", to me that sounds very different from reasoning.

    Comment linking /2013/02/chasing-space-leak-in-shake.html

    on “Linux Kernel Modules in Haskell (2009)”
  16. Submitted Optimising the Haskell program "HLint" (30 secs to 1.3 secs) as a story · 16 points

    HN discussion
  17. Interestingly, just recently, Neil Mitchell has published an article claiming that this is a fallacy and in practice, people are forced to back-pedal on it. Ban recursion and unbounded loops. Proclaim the language is "Turing incomplete" and that all programs terminate. Declare that Turing incomplete programs are simpler. Have non-technical people conflate terminate quickly with terminate eventually. Realise lacking…

    Comment linking /2020/11/turing-incomplete-languages.html

    on “We need less powerful languages (2015)”
  18. Submitted Thoughts on Conduits as a story · 13 points

    HN discussion
  19. If you read this, you should probably also read this very recently blog post[1] by Neil Mitchell. http://neilmitchell.blogspot.com/2020/11/turing-incomplete-l...

    Comment linking /2020/11/turing-incomplete-languages.html

    on “We need less powerful languages (2015)”
  20. Submitted Haskell IO without monads as a story · 9 points

    HN discussion
  21. I must respectfully disagree that Haskell's memory footprint is simply 'low'. This is because the memory footprint of a given Haskell program is not at all transparent, and Haskell is notorious for leaking memory in a maddeningly opaque fashion [1, 2, 3, 4]. Space leaks might be relatively straightforward to diagnose and fix for a true domain expert, but I would not want to have to rely on someone having such abstru…

    Comment linking /2013/02/chasing-space-leak-in-shake.html

    on “Haskell in Production”
  22. Submitted Refactoring with Equational Reasoning as a story · 8 points

    HN discussion
  23. He also has two follow-up posts on his blog about build systems. They're both worth reading. Small Project Build Systems - https://neilmitchell.blogspot.com/2021/09/small-project-buil... Huge Project Build Systems - https://neilmitchell.blogspot.com/2021/09/huge-project-build...

    Comment linking /2021/09/huge-project-build-systems.html

    on “Reflecting on the Shake Build System”
  24. Submitted Building LLVM using Shake as a story · 8 points

    HN discussion
  25. > The first main disadvantage is that they require the kernel to support syscall tracing, which essentially means they only work on Linux. I have Ideas™ for how to get this working on macOS without disabling SIP, but they're still incomplete and not fully general; I may write a follow-up post about that. I don't yet have ideas for how this could work on Windows, but it seems possible. On Windows, Linux, and also mac…

    Comment linking /2020/05/file-tracing.html

    on “Build System Tradeoffs”
  26. Submitted Reflecting on the Shake Build System as a story · 7 points

    HN discussion
  27. I found the Build Systems a la Carte¹ paper, and NDM’s companion write up² to be good comparison of build systems in a more general manner. Caveat: It may skewed having been written by heavy Haskell hitters, and an author of Shake. I’ll note that I didn’t notice any bias, but maybe only because it aligned with mine ;) 1. https://www.microsoft.com/en-us/research/publication/build-s... 2. http://neilmitchell.blogspot.…

    Comment linking /2018/07/inside-paper-build-systems-la-carte.html

    on “Make vs. Tup (2016)”
  28. Submitted One Haskell IDE to rule them all as a story · 6 points

    HN discussion
  29. Here's an even more confusing title https://neilmitchell.blogspot.com/2007/03/describing-haskell...

    Comment linking /2007/03/describing-haskell-to-ada-programmer.html

    on “Coding in Ada: Strings (IV) Unbounded to String”
  30. Submitted Working on build systems full-time at Meta as a story · 5 points

    HN discussion

Search all of HN for neilmitchell.blogspot.com

Linked by the same people?