4 ms·
Missing piece: Common Lisp continuable condition system.
by nahuel0x 2y ago
Missing piece: Common Lisp continuable condition system.
- nesarkvechnep 2y agoMore like restartable. You may be conflating it with continuations.
- typesanitizer 2y agoCopying my comment from the Lobste.rs thread (https://lobste.rs/s/az2qlz/epic_treatise_on_error_models_for_systems https://lobste.rs/s/az2qlz/epic_treatise_on_error_models_for...) > Hi, author here, the title also does say “for systems programming languages” :) > For continuations to work in a systems programming language, you can probably only allow one-shot delimited continuations. It’s unclear to me as to how one-shot continuations can be integrated into a systems language where you want to ensure careful control over lifetimes. Perhaps you (or someone else here) knows of some research integrating ownership/borrowing with continuations/algebraic effects that I’m unfamiliar with? > The closest exception to this that I know of is Haskell, which has support for both linear types and a primitive for continuations. However, I haven’t seen anyone integrate the two, and I’ve definitely seen some soundness-related issues in various effect systems libraries in Haskell (which doesn’t inspire confidence), but it’s also possible I missed some developments there as I haven’t written much Haskell in a while.
- ForTheKidz 2y agoYes, I can see how if you view lifetime management as core to systems processing lisps might be unappealing to you.
- fanf2 2y agoYou don’t need continuations to implement resumable errors. The trick is simply to not unwind the stack when an error happens. http://axisofeval.blogspot.com/2011/04/whats-condition-system-and-why-do-you.html http://axisofeval.blogspot.com/2011/04/whats-condition-syste...
- zozbot234 2y agoYou can use async to implement continuations, and async is very much included in quite a few 'systems languages'.