1. 9
  1.  

  2. 2

    until recently GHC’s runtime relied on a mix of volatile variables and explicit memory barriers to enforce memory consistency

    This is kind of shocking. One of the first things I learned about memory ordering is that I shouldn’t use volatile for it. Maybe this just shows GHC’s age.

    1. 4

      Yeah the fact that GHC’s runtime was written well-before memory consistency models were widely understood, and nearly two decades before the standardization of C11 atomics (emphasis mine) really stood out to me.