That makes life more difficult for systems like Chicken that map (srfi 999) to srfi.999 rather than srfi/999.   When I want to make a build that works on Chicken (R5RS+), Chibi (R7RS), Guile (R6RS+), and Ypsilon (R6RS), I lay things out like this:

srfi-999
  srfi-999.html
  srfi.999.scm ; Chicken lib
  include.sls ; R6RS (include) lib to bring in 999-impl.scm
  srfi
    999.sld ; Chibi lib
    999-impl.scm ; portable implementation code included by the rest
    999.scm ; Guile lib
    999.sls ; Ypsilon R6RS lib

Then putting the srfi-999 directory on the various library search paths Just Works.  Of course you can just load 999-impl.scm on systems without libraries, with different styles of library, or when you don't care about module control.

Every Scheme has its own convention about where the library file has to go and what it has to be named.  So far, I haven't had to worry about one system's conventions stepping on another, which is fortunate.





On Sat, Jun 27, 2020 at 8:40 AM Lassi Kortela <xxxxxx@lassi.io> wrote:
> My suggestions are that all implementation materials be under the srfi
> directory, that way the top directory is less cluttered, and my MANIFEST
> file at that level can capture them all.  Each implementation or tool
> should then be under its own subdirectory, like "chibi-scheme" for mine.

Arthur should chime in as the SRFI editor and suggest a standardized
layout for SRFI repos :) As it stands, the improvised layouts make them
hard to navigate unless one is already familiar with a particular repo.