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

Top all-time · #2383

S

Simon Marlow

Personal blog · simonmar.github.io/postsprogrammingsystems

Simon Marlow's personal blog at simonmar.github.io covers programming and systems. Since 2015, 30 different Hacker News readers have linked it 35 times, most often “Asynchronous Exceptions in Practice”. It is still writing: the last post was on 2025-06-11, and you can follow it by feed.

Visit the blog
35mentions?
30HN people?
2015–2026first – last linked?
Links on Hacker News per year · peak 5 in 2016

Too few sampled comments (18) to say how often HN recommends it.?

Why HN links it

HN readers link Simon Marlow's Haskell writing: his free book Parallel and Concurrent Programming in Haskell, papers on Haxl, parallel GC, Shake and Safe Haskell, and a post on hot-swapping Haskell code.

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

Most-linked posts?

  1. Asynchronous Exceptions in Practice
    3 people · 3 mentions · first linked 2017-01-24
  2. /pages/pcph.html
    3 people · 3 mentions · first linked 2019-06-06
  3. Hotswapping Haskell (2017)
    3 people · 3 mentions · first linked 2019-04-24
  4. /bib/papers/haxl-icfp14.pdf
    2 people · 2 mentions · first linked 2020-09-24
  5. Stack traces in GHCi, coming in GHC 8.0.1
    2 people · 2 mentions · first linked 2016-02-12
  6. Rethinking Static Reference Tables in GHC
    2 people · 2 mentions · first linked 2018-06-24
  7. Haskell in the Datacentre
    2 people · 2 mentions · first linked 2016-12-14
  8. /bib/papers/parallel-gc.pdf
    2 people · 2 mentions · first linked 2017-03-16

What Hacker News says?

  1. eru · 2021-03-09Recommends
    Shake would also be interesting to look at. It has much more sophisticated dependency graph handling. Gnu Make is almost pathetic. See eg http://simonmar.github.io/bib/papers/shake.pdf

    Comment linking /bib/papers/shake.pdf

    on “Debian Running on Rust Coreutils”
  2. Submitted Haskell in the Datacentre as a story · 276 points

    HN discussion
  3. A workaround for long compile times is trying to stay withing GHCi whenever possible and reload from there. http://chrisdone.com/posts/haskell-repl http://chrisdone.com/posts/making-ghci-fast The Haxl team seem to use this strategy: "Haxl users at Facebook do a lot of development and testing inside GHCi. In fact, we’ve built a customized version of GHCi that runs code in our Haxl monad by default instead of the IO m…

    Comment linking /posts/2016-02-12-Stack-traces-in-GHCi.html

    on “The Joy and Agony of Haskell in Production”
  4. Submitted Stack traces in GHCi, coming in GHC 8.0.1 as a story · 150 points

    HN discussion
  5. pjmlp · 2020-02-09Recommends
    Simon Marlow's book is also good source of information "Parallel and Concurrent Programming in Haskell" https://simonmar.github.io/pages/pcph.html He also has some interesting articles like https://simonmar.github.io/posts/2018-06-20-Finding-fixing-s...

    Comment linking /posts/2018-06-20-Finding-fixing-space-leaks.html

    on “Lessons learned from writing ShellCheck”
  6. Submitted Hotswapping Haskell as a story · 148 points

    HN discussion
  7. For completeness' sake, Haskell has had this for over a decade :) A SO thread that gives a nice overview [0], the paper [1], the library [2]. Here's how a parallel fib looks like: fib :: Int -> Int fib n | n <= 1 = 1 | otherwise = x ‘par‘ (y ‘pseq‘ x + y + 1) where x = fib (n-1) y = fib (n-2) [0] https://stackoverflow.com/questions/958449/what-is-a-spark-i... [1] http://simonmar.github.io/bib/papers/strategies.pdf […

    Comment linking /bib/papers/strategies.pdf

    on “Composable multi-threaded parallelism in Julia”
  8. Submitted Asynchronous Exceptions in Practice as a story · 80 points

    HN discussion
  9. mbrock · 2019-06-06Recommends
    The Haskell philosophy is easily misunderstood. It's not really that shared mutable state is evil but that it's difficult and so should be treated seriously and explicitly. The language still supports it—quite well. GHC's green thread scheduler is top-shelf. The main author of the GHC runtime wrote an excellent O'Reilly book called "Parallel and Concurrent Programming in Haskell" (which you can read for free online)…

    Comment linking /pages/pcph.html

    on “Why GitHub used Haskell for Semantic”
  10. Submitted Rethinking Static Reference Tables in GHC as a story · 70 points

    HN discussion
  11. Applicative Functors/Selective Applicative Functors should be more suitable to serialization than monads, because they do not contain lambdas and expose the underlying structure, allowing you to inspect,modify it, etc.: https://www.cs.ox.ac.uk/jeremy.gibbons/publications/delivery... http://simonmar.github.io/bib/papers/haxl-icfp14.pdf https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors...

    Comment linking /bib/papers/haxl-icfp14.pdf

    on “Defunctionalize the Continuation”
  12. Submitted Asynchronous Exceptions in Practice (2017) as a story · 39 points

    HN discussion
  13. Parallel and Concurrent Programming in Haskell https://simonmar.github.io/pages/pcph.html

    Comment linking /pages/pcph.html

    on “Rust Atomics and Locks (2023)”
  14. Submitted Optimising Garbage Collection Overhead in Sigma as a story · 33 points

    HN discussion
  15. cogman10 · 2021-03-23Recommends
    If you're interested in a fun read, they've published a paper on how they do garbage collection. http://simonmar.github.io/bib/papers/parallel-gc.pdf

    Comment linking /bib/papers/parallel-gc.pdf

    on “ZGC – What's new in JDK 16”
  16. Submitted Stack traces in GHCi, coming in GHC 8.0.1 as a story · 6 points

    HN discussion
  17. Haskell (a compiled lanaguage) has done hot code reloading with ghci for a long time. Facebook actually deploys in production by reloading. https://simonmar.github.io/posts/2017-10-17-hotswapping-hask...

    Comment linking /posts/2017-10-17-hotswapping-haskell.html

    on “Nim – Natively compiled language with hot code-reloading at runtime [video]”
  18. Submitted Indexing Hackage: Glean vs. Hiedb as a story · 3 points

    HN discussion
  19. See https://www.microsoft.com/en-us/research/wp-content/uploads/... and https://simonmar.github.io/bib/papers/haxl-icfp14.pdf for more background, if you are interested. It might even contain some ideas you can use in C#.

    Comment linking /bib/papers/haxl-icfp14.pdf

    on “Haskell's Children”
  20. Submitted Haskell on a Shared-Memory Multiprocessor (2005) [pdf] as a story · 3 points

    HN discussion
  21. eklavya · 2022-08-12Recommends
    This is oft overlooked, Haskell is absolutely in a league of its own when it comes to concurrency and parallel capabilities. I would highly recommend https://simonmar.github.io/pages/pcph.html regardless of which language you use day to day. It a treasure trove of excellent information.

    Comment linking /pages/pcph.html

    on “GHC 9.4.1 is now available”
  22. Submitted Hotswapping Haskell (2017) as a story · 2 points

    HN discussion
  23. > You still have to pass your logging code to every function that does logging right? Yes, but no. Again, there are functional patterns you can apply. First, functional programs tend to be more horizontally composed than vertically. Side effects usually happen at the same "level" of the application, rather than occuring at multiple depths. So the need to thread logging apparati is already reduced, simply because log…

    Comment linking /bib/papers/haxl-icfp14.pdf

    on “Admitting That Functional Programming Can Be Awkward (2007)”
  24. Submitted Hotswapping Haskell at Runtime (2017) as a story · 1 points

    HN discussion
  25. Haskell's garbage collector is compacting (see below). When the GC compacts, it is very easy to put linked list entries together for more efficient access. http://simonmar.github.io/bib/papers/parallel-gc.pdf

    Comment linking /bib/papers/parallel-gc.pdf

    on “When You Should Use Lists in Haskell (Mostly Not)”
  26. Submitted Asynchronous Exceptions in Practice (2017) as a story · 1 points

    HN discussion
  27. Haskell has a “safe” language dialect which prevents `unsafePerformIO` and others: https://downloads.haskell.org/~ghc/7.8.3/docs/html/users_gui... / https://simonmar.github.io/bib/papers/safe-haskell.pdf However, I doubt Safe Haskell (without extensions) is formally verified, and it still uses GHC’s runtime, which could have RCEs. Also note that it doesn’t prevent infinite loops or memory exhaustion, the latter even…

    Comment linking /bib/papers/safe-haskell.pdf

    on “Haskell Postgres Stored Procedures”
  28. Submitted Rethinking Static Reference Tables in GHC as a story · 1 points

    HN discussion
  29. >By introducing a second layer of scheduling, the M-to-N model makes performance tuning to the model exceedingly difficult. Reminds me of Simon Marlow's work[1] on tuning the Haskell runtime for a specific use at fb. [1] https://simonmar.github.io/posts/2016-12-08-Haskell-in-the-d...

    Comment linking /posts/2016-12-08-Haskell-in-the-datacentre.html

    on “Runtime Analysis of the M-to-N Schedulling Model (1996) [pdf]”
  30. Submitted Haskell Positions at Facebook – Simon Marlow as a story · 1 points

    HN discussion

Search all of HN for simonmar.github.io

Linked by the same people?