This is impressive survey.

Talking about Gauche, I take two layer approach.  The low-level layer (sys-*) is close to the bare POSIX interface with minimal wrapper to make it make sense in Scheme world, then upper-level layer for each categories implements higher functionalities on top of it.

For example, the spawn category, gauche.process module provides path search, i/o redirection and pipelining, etc.
https://practical-scheme.net/gauche/man?p=gauche.process
The readdir's fancy features (filtering, sorting, fullpaths) are provided by directory-list: 
https://practical-scheme.net/gauche/man?p=directory-list

So, it may be a good question what level of abstraction srfi-170 should provide---throwing in many useful features and make it convenient to use, or make it resemble to bare POSIX calls and let others build on top of it.  The peril of the first option is that there could be too many options to agree.
But even if we take bare approach, I realized something like spawn needs to have quite a few configuration options to be useful---fd remapping, signal mask handling, etc.---which, with POSIX systems, one can put them between fork and exec), so creeping featurism may be inevitable to some extent.



On Sat, Aug 3, 2019 at 12:50 AM Lassi Kortela <xxxxxx@lassi.io> wrote:
I started making a web page that has a feature matrix of each OS
procedure, showing the differences in features between existing Scheme
implementations.

Here's what it looks like so far:
<https://htmlpreview.github.io/?https://github.com/lassik/scheme-os-survey/blob/master/data.html>

That HTML page is made out of a S-expression file by a simple Racket
script. Repo: <https://github.com/lassik/scheme-os-survey>

I'll try to populate the tables swiftly, but contributions from others
are very welcome.