I recently watched William Byrd on "The Most Beautiful Program Ever Written" (https://www.youtube.com/watch?v=OyfBQmvr2Hc) and was intrigued by what he said about "CPS-ing an interpreter twice" to get delineated continuations. I barely know what those even are, much less how this transformation produces them. Anyone have a reference to recommend?
Post
Replies:
1
Boosts:
3
OMG @octonion that is probably my FAVORITE TALK EVER
And yes! Delimited continuations allow you to suspend a program and wake it up later. This is used heavily by Fibers, the asynchronous programming environment used in many Guile programs (including Goblins) but has lots of uses. Some more info:
https://www.gnu.org/software/guile/manual/html_node/Prompts.html
https://www.gnu.org/software/guile/manual/html_node/An-Introduction-to-CPS.html
https://wingolog.org/archives/2010/02/26/guile-and-delimited-continuations