Skip to content
  • Alexis King's avatar
    Add native delimited continuations to the RTS · 04062510
    Alexis King authored
    This patch implements GHC proposal 313, "Delimited continuation
    primops", by adding native support for delimited continuations to the
    GHC RTS.
    All things considered, the patch is relatively small. It almost
    exclusively consists of changes to the RTS; the compiler itself is
    essentially unaffected. The primops come with fairly extensive Haddock
    documentation, and an overview of the implementation strategy is given
    in the Notes in rts/Continuation.c.
    This first stab at the implementation prioritizes simplicity over
    performance. Most notably, every continuation is always stored as a
    single, contiguous chunk of stack. If one of these chunks is
    particularly large, it can result in poor performance, as the current
    implementation does not attempt to cleverly squeeze a subset of the
    stack frames into the existing stack: it must fit all at once. If this
    proves to be a performance issue in practice, a cleverer strategy would
    be a worthwhile target for future improvemen...