1. 32

  2. 2

    Sounds pretty cool. One thing I didn’t see addressed here was, what’s the story for multiprocessing? I assume since it’d be a huge chunk of work and it isn’t mentioned that SMP and a memory model aren’t in this.

    1. 5

      Here is I think the interesting bullet point:

      It has concurrency based on Concurrent ML with an API surface mostly nicked from fibers for Guile. I/O is non-blocking by default. If you’re familiar with Golang then this part will feel familiar.

      guile-fibers is a cooperative multiple POSIX threads scheduler that implements work stealing among threads. I don’t know what part of fibers is implemented in Loko, tho. I think loko has not POSIX or SMP.

      1. 1

        When I read that bit I parsed it as plausibly implying concurrency like gevent or whatever has: green threads implemented as coroutines and nonblocking I/O, but still all running on a single CPU core.

        1. 1

          guile-fibers run on multiple threads and those are lightweight threads too, they do not block on network operations.

          I asked the maintainer of loko, he said there is no support for multiple CPU in loko as of yet.