I’m generally strongly supportive of this proposal.
Again, we might see some movement around the edges, but both Daan Leijen and Amr Sabry have given it a thumbs up, so I think it’s fundamentally sound.
There may be a few points to clarify, but fundamentally let’s accept.
Simon
From: ghc-steering-committee <ghc-steering-committee-bounces@haskell.org>
On Behalf Of Simon Marlow
Sent: 23 November 2020 14:38
To: Joachim Breitner <mail@joachim-breitner.de>
Cc: ghc-steering-committee@haskell.org
Subject: Re: [ghc-steering-committee] Please review #313: Delimited continuation primops, Shepherd: Simon Marlow
Committee,
We have been asked to review
https://github.com/ghc-proposals/ghc-proposals/pull/313
https://github.com/lexi-lambda/ghc-proposals/blob/delimited-continuation-primops/proposals/0000-delimited-continuation-primops.md
Summary
The proposal makes no language changes, it only adds
three primops.
The main motivation is to support building efficient implementations of Algebraic Effect systems, which depend on being able to efficiently capture a continuation. Currently this is done explicitly, which imposes a severe performance penalty.
These primops are the minimal support needed to be able to capture a continuation and apply it at runtime, together with some basic type safety via the PromtTag type to ensure that at least we don't replace a continuation with a computation
of a different type. (there are other ways to go wrong with these primops though, they're not a safe interface by themselves: they need to be wrapped in a safe library).
The primops are implemented by copying chunks of stack into the heap. This is something that GHC's runtime already does a lot of, so it's not a new concept, although it does require a new closure type and knock-on changes across several
files in the runtime (though it's mainly mechanical). There's a prototype implementation here:
https://gitlab.haskell.org/lexi.lambda/ghc/-/compare/master...first-class-continuations?view=inline
Decision
I'm going to tentatively recommend acceptance.
Thoughts?
On Sat, 12 Sep 2020 at 22:59, Joachim Breitner <mail@joachim-breitner.de> wrote:
Dear Committee,
this is your secretary speaking:
Delimited continuation primops
has been proposed by Alexis King
https://github.com/ghc-proposals/ghc-proposals/pull/313
https://github.com/lexi-lambda/ghc-proposals/blob/delimited-continuation-primops/proposals/0000-delimited-continuation-primops.md
I’ll propose Simon Marlow as the shepherd.
Please guide us to a conclusion as outlined in
https://github.com/ghc-proposals/ghc-proposals#committee-process
Thanks,
Joachim
--
Joachim Breitner
mail@joachim-breitner.de
http://www.joachim-breitner.de/
_______________________________________________
ghc-steering-committee mailing list
ghc-steering-committee@haskell.org
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee