Haskell Implementors’ Workshop 2023 Individual Talk Videos on Youtube

Enjoy! https://www.youtube.com/playlist?list=PLyrlk8Xaylp5ahGXwF_NvYEhVOnedRIAs

14 Likes

Severing ties: the need for non-updateable thunks

Ah, that old dragon of laziness still plagues the Haskell heap! Is there some ready-to-use repo that reproduces the issue? Some weeks ago I tried to reproduce it basing myself on the original post from 2016, but without success :thinking:

The vague idea I wanted to try was to enable -XUnliftedDatatypes, define the Sink / Pipe / Conduit datatypes as unlifted and see if that helped with the leak.

1 Like

[…] laziness still plagues the Haskell heap!

Those space leaks would be trivial compared with the (potential for) exponential slowdowns caused by the inappropriate use of call-by-name semantics! I would modify your statement accordingly:

  • The heap (and its space leaks) still plagues laziness in Haskell!

I think Edsko came up with quite a few tests in the dupIO repo. I’m not sure how close they are to the original post, though, and these things are certainly prone to change depending on the whims of GHC’s optimiser.