
Bulat Ziganshin wrote:
moreover, afaiu, this means that ghc-compiled programs will no more stall for several seconds doing major GC that is also very important for any user-interactive program (especially games :) )
Unfortunately it won't completely remove the latency of a major GC, although latency will be reduced because the GC is quicker (hopefully). Parallel GC is when the whole system stops and performs multi-threaded GC, as opposed to "concurrent GC", which is when the GC runs concurrently with the program. We think concurrent GC is unlikely to be practical in the Haskell setting, due to the extra synchronisation needed in the mutator. However, there may always be clever techniques that we haven't discovered, and synchronisation might become less expensive, so the balance may change in the future. Cheers, Simon