Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
Source project has a limited visibility.
  • Alexis King's avatar
    04062510
    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 improvements.
    04062510
    History
    Add native delimited continuations to the RTS
    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 improvements.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.