On Fri, May 10, 2019 at 6:57 PM John Cowan <xxxxxx@ccil.org> wrote:
 
In this branch, I take a different approach from master, which currently tries to treat ports and file descriptors more or less equally.  Here file descriptors are treated as useful only at the edges of a Scheme program: (a) startup, when we may have been passed a fd from our predecessor program, (b) when we do a fork/exec/spawn and have to connect specific fds to our successor program, and (c) when we invoke something through the FFI.

This is a very interesting refinement.  Given the complexity of managing the interactions between file descriptions and Scheme ports evidence in the original SRFI 170 and, even more so, in the Scsh documentation, this seems like a big improvement.  I wish I had more experience with Scsh so that I could feel comfortable that this is the right simplification, but I'm inclined to believe that it is.

Is anyone in touch with someone with significant Scsh experience, or experience with another Scheme or Lisp that provides low-level access, who could chime in on whether this change would be practical?  (I reached out to Olin when SRFI 170 was initially published, but I haven't had a reply.)