Re: Proposal to use SPDX for SRFI license/copyright declarations Ray Dillinger 09 Dec 2023 18:56 UTC

Seeing a discussion of copyright, I remembered that I am responsible for
SRFI 38, external representation for data with shared structure.

The code is in the SRFI document. SRFI 38 is in final status.  I went
and checked, and in the SRFI document, the heading over the example
implementation includes the line

 >>> Copyright (C) Ray Dillinger.  All Rights Reserved.

I'm sorry if that's ever been a problem. I don't actually remember
whether I put it there or not; it's been a long time and I don't use
LISP dialects much any more.  I haven't seen it in several years.

This email is to officially announce that I'm abandoning that copyright
claim (on both the code and the SRFI-38 document if needed) in favor of
whatever open source public licenses the SRFI editors want to license
them under.  If the MIT license is one that would cause no trouble in
your process, that's fine with me. I also give permission for the
aforementioned copyright or copyrights to be officially transferred from
my name to schemers.org.  Whoever maintains the website at schemers.org
may modify the copyright notice in the SRFI document accordingly.

That said, I don't think anyone really ought to use the code that's
under that copyright notice, so while this might be important to your
process and organization of SRFI's it definitely shouldn't be a
permission that actually matters to implementation authors.  Due to
limits on access to internals and the wish to be portable between
implementations, the code in the SRFI conforms to limitations in R5RS
expressibility.  It is therefore O(N^2), badly suboptimal compared to
the implementation that ought to appear in any high-quality scheme.

In particular implementation authors have the ability to compare
pointers, providing an easy way to make a total ordering of cons cells,
thereby an log-N search of cons cells, and thereby, finally, a superior
O(N-log-N) implementation of the SRFI.  A single-threaded scheme that
doesn't have immutable cells or make external calls sharing its data
structures can make an O(N) implementation (and fold it into a
simultaneous garbage collection, avoiding or delaying the need to do one
otherwise) by destructively modifying pointers as it works and then
patching them up before resuming the program.  So, apart from providing
a reference implementation to compare results with while debugging a
better version, I don't think the code in the SRFI, or the copyright on
it, has significant value to implementors.

Bear