If I may ask one more question of you, Matthew: following up from the thread on `dynamic-wind`, I would love to pick your brain on what you think are the state of the art implementation techniques for delimited continuations. When I went looking for resources, I mostly found two papers:
“A Monadic Framework for Delimited Continuations” by Dvbvig, Peyton Jones, and Sabry (JFP 2007) “Adding Delimited and Composable Control to a Production Programming Environment” by Flatt, Yu, Findler, and Felleisen (ICFP 2007) Both these papers are extremely helpful, but they’re also both 12 years old. Moreover, I remember reading somewhere (perhaps from Sam?) that the 3m implementation of continuations is relatively slow compared to the implementation by Chez Scheme. Especially given your recent work on Racket on Chez, I imagine it’s something you’ve thought about a lot, so I’m curious if you have any pointers about what you consider to be the most desirable implementation approach. Naïvely, it seems hard to get away from the need to maintain an annotated stack of frames, grouped into chunks separated by prompts, but I wonder if there are any tricks or optimizations that seem to win big in practice. Likewise, it would be helpful to know if any optimizations ended up not panning out. My context here is a project to implement efficient delimited control in Haskell, so in practice I might not have a ton of control at the lowest level, but that’s okay—I’m still interested in understanding the low-level details in case they might inform a change that could be made to GHC itself. I’m sure a fully detailed explanation would take more time than I can reasonably ask you to give, so some high-level comments and pointers to other resources is more than fine. :) I’m mostly just trying to get a handle on where to start—I want to avoid choosing a path that leads to a dead end. Thanks, Alexis -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/7559EBB2-4B34-49D1-921A-21C0D93B3EBE%40gmail.com.
