I have changed the definitions of software-type and software-version in the manual to be "OS family" and "OS" respectively, since that is what they actually are.
I am proposing the following changes:
1) Alter the symbol 'unix in software-type to 'posix, and return it for all Chicken builds on Posix APIs, including Cygwin (which currently reports 'windows) and Windows System for Linux (which currently reports 'unix).
2) With the above change, software-version reports subtypes of 'posix, one of which should be 'cygwin. WSL should continue to report 'linux, as it is intended to be a faithful emulation of Linux (and mostly is, and getting closer all the time).
3) Cygwin can build C program s with either GNU tools or Clang, though currently only GNU tools are in the makefile. Therefore, 'cygwin should be removed from build-platform, which should return 'gnu or 'clang as appropriate.
4) Optional: change the API names to something more meaningful, like chicken-os-api and chicken-posix-api. These names are not ideal, but they are better. "Version" suggests an OS version number, as the example in the CLHS shows.
5) It's been suggested that 'windows be changed to 'win32. While it's true that the Windows API on 64-bit machines is still called "Win32" by Microsoft, I think people will expect "win32" to imply a 32-bit API. For this reason I suggest keeping it as 'windows.