Re: Coroutines, goroutines
Jan Moringen <[email protected]> Thu, 26 Feb 2026 12:12:18 +0000
| Newsgroups | gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <[email protected]> |
I don't think it is my place anymore to comment on whether or with which tools such a feature should be implemented in SBCL but I would like to add one consideration regarding the process: Except for the first message, the discussion has focused on tools used for the implementation and details like stack size or abstraction for machine code generation. The original message (and the quoted message) was about requirements of potential users. Those requirements mentioned a programming model for asynchronous I/O without "coloring" functions and also delimited continuations with backtracking in solvers as a possible application. I feel the discussion should start with the envisioned programming model, (concurrent) evaluation semantics and user interface of the continuation/fiber/coroutine feature rather than the details of one particular implementation that happens to be available and close to finished. In particular as the original messages were talking about CL in general not SBCL. I have the impression that a lot of decisions have to be made (implicitly or, better, explicitly): * coroutines vs. continuations * Closing over lexical variables (only applies to the continuation model, i guess) * Interaction with dynamic variables (are dynamic binding stacks concatenated when invoking a continuation in a context that has its own bindings?) * Interaction with UNWIND-PROTECT when coroutines/continuations are suspended * DYNAMIC-WIND whether pinning * Interaction with blocking I/O, locks, waiting for processes and threads, SLEEP, etc. If this discussion has already happened in a space I'm not aware of, I apologize for the noise. Kind regards, Jan _______________________________________________ Sbcl-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sbcl-devel