On Fri 25 Sep 2015 23:04, Christopher Allan Webber <cweb...@dustycloud.org> writes:
> I wonder if it's about time that Guile get something along the lines of > a well-supported, general event loop system? I think Guile needs user-space threads, implemented on top of delimited continuations. With threads, you don't need to invert control in your program. Racket takes this approach as well. To get there we need to expose port buffers to Scheme, mark all file descriptors as nonblocking, and cause EWOULDBLOCK to suspend the current green thread. I had a prototype working a while back on the wip-ethreads branch, but you don't want to introduce a separate port type -- really you want to have this work on all ports, so that's the hacking that's needed. I'll try to get out a 2.2 prerelease in the next week or so -- everything is up to date now, finally, I just have a pending patch to make the stack grow down instead of up so we can use native CALL instructions in some future. Works in progress... A