On Fri, Mar 15, 2019 at 1:44 PM John Cowan <xxxxxx@ccil.org> wrote:
I want to be able to reuse code from existing Schemes in the sample implementations of some up-and-coming SRFIs.  While the license of the SRFI itself is prescribed to be BSD-1, nothing is said about licensing sample implementations.

As important as licenses are, I had hoped, against all reason, that the topic would not come up.  As far as I can tell, it's impossible to discuss licenses with software engineers without making some faction unhappy.  Nevertheless, I have to try.  I humbly request that everyone reading this message please read to the end, and then take a deep breath, before hitting Reply.

The license in the SRFI process document refers to "this software and associated documentation files."  It doesn't make any exception for the sample implementation, i.e. the software.  The license and surrounding text have remained essentially unchanged since the process document was created twenty years ago.  So, as far as I can tell, those that set up the SRFI process intended us to apply that license to both SRFI documents and sample implementations.

Of course, that doesn't mean that we can't change things.  However, given how emotionally and politically fraught such discussions are, I am truly reluctant to make a change.  If we were to contemplate that, I would insist on reaching out to the early editors to see precisely what their thinking was at the time.

(Mr. OKUMURA Yuki mentioned that the sample implementation for SRFI 46 has a different license, and he's right.  That was news to me.  I saw no discussion of the license at the time SRFI 46 was under discussion, so I have to assume that that was just an oversight on the part of the editors.  Or perhaps they were as afraid to touch the topic as I am.)

There is, however, one loophole: sample implementations that are included by reference.  For example, SRFI 159 is hosted not in the Git repository for that SRFI, but in Chibi Scheme's Github repo.  When possible, I'd like to avoid this, but if licenses get in the way of putting the sample implementation directly in a SRFI's repository, incorporating the code by reference is a reasonable workaround.  That way, those who want to implement the SRFI under a different license still have an example to which to refer.  They just can't incorporate the sample implementation code directly.

Please have mercy upon me.