Top all-time · #2383
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.
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?
- Asynchronous Exceptions in Practice3 people · 3 mentions · first linked 2017-01-24
- /pages/pcph.html3 people · 3 mentions · first linked 2019-06-06
- Hotswapping Haskell (2017)3 people · 3 mentions · first linked 2019-04-24
- /bib/papers/haxl-icfp14.pdf2 people · 2 mentions · first linked 2020-09-24
- Stack traces in GHCi, coming in GHC 8.0.12 people · 2 mentions · first linked 2016-02-12
- Rethinking Static Reference Tables in GHC2 people · 2 mentions · first linked 2018-06-24
- Haskell in the Datacentre2 people · 2 mentions · first linked 2016-12-14
- /bib/papers/parallel-gc.pdf2 people · 2 mentions · first linked 2017-03-16
What Hacker News says?
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”Submitted Haskell in the Datacentre as a story · 276 points
HN discussionA 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”Submitted Stack traces in GHCi, coming in GHC 8.0.1 as a story · 150 points
HN discussionSimon 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”Submitted Hotswapping Haskell as a story · 148 points
HN discussionFor 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”Submitted Asynchronous Exceptions in Practice as a story · 80 points
HN discussionThe 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”Submitted Rethinking Static Reference Tables in GHC as a story · 70 points
HN discussionApplicative 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”Submitted Asynchronous Exceptions in Practice (2017) as a story · 39 points
HN discussionParallel and Concurrent Programming in Haskell https://simonmar.github.io/pages/pcph.html
Comment linking /pages/pcph.html
on “Rust Atomics and Locks (2023)”Submitted Optimising Garbage Collection Overhead in Sigma as a story · 33 points
HN discussionIf 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”Submitted Stack traces in GHCi, coming in GHC 8.0.1 as a story · 6 points
HN discussionHaskell (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]”Submitted Indexing Hackage: Glean vs. Hiedb as a story · 3 points
HN discussionSee 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”Submitted Haskell on a Shared-Memory Multiprocessor (2005) [pdf] as a story · 3 points
HN discussionThis 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”Submitted Hotswapping Haskell (2017) as a story · 2 points
HN discussion> 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)”Submitted Hotswapping Haskell at Runtime (2017) as a story · 1 points
HN discussionHaskell'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)”Submitted Asynchronous Exceptions in Practice (2017) as a story · 1 points
HN discussionHaskell 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”Submitted Rethinking Static Reference Tables in GHC as a story · 1 points
HN discussion>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]”Submitted Haskell Positions at Facebook – Simon Marlow as a story · 1 points
HN discussion