Nightshade : Public Domain

Nightshade aims to be an entirely public domain project, and is probably already so.


I started wondering about using a public domain system in 2004.

I had been inspired by the software community and ideals described by Richard Stallman. However, I have reservations about restricting what people can do with software.

I want the absolute freedom to choose how I copy, modify and distribute the software I use. The freedom to decide whether it is right or wrong to restrict what people do with the software.

I want others to have this same absolute freedom with the software I write. I value this more than the guarantee that everyone has access to all subsequent additions, which is the aim of the Free Software licenses.

Restricting what others can do with the software seems to be at odds with the nature of sharing and of giving.

Furthermore, any form of source code licencing hinders too much the sharing of small parts of the source code. This includes even the very light licences like the permissive BSD-style ones.

To this end, in 2006 I began experimenting with CMUCL. Even though CMUCL is just a Lisp compiler and run-time for Unix-like machines, it seemed like a good place to start, being largely public domain and including an Emacs-like text editor.

Through 2006 I tried successively older instances of CMUCL, looking for the easiest way to reach a completely public domain system. In the end I settled for CMUCL 18c, as released by the Internet-based project, which was the earliest release I could get running on a GNU/Linux machine.

I have transferred any code I wrote before settling for 18c onto the 18c base. I have stripped out all code that was marked as copyrighted. I have contacted the maintainers (the people who committed to the repository up to 18c). They have confirmed that everything they wrote is public domain. I have searched the logs for patches that people submitted to the maintainers. I have either reverted these patches, or I have contacted the authors and they have confirmed that the patches are public domain, or I am in the process of contacting them.

I think it is safe to say that the result, Nightshade, will be entirely public domain.

    -- Matt Mundell, updated 8 August 2008.


  • Author List
    • A list of the authors, both of CMUCL-derived code and of new additions.
  • Contact History
    • A record of contact made with contributors to confirm public domain status of contributions.


2004 May 2 Install CMUCL, try running Hemlock.
2006 May-Jun Try Portable Hemlock, notice permissive licence. Install CMUCL CVS; get Hemlock up in a terminal.
2006 Jul 2 Start working towards a usable CMUCL CVS Hemlock.
2006 Jul - Aug Add new modes and commands, and the parser generator.
2006 Sep 4 Using CVS CMUCL, replace MIT licenced loop with original loop.
2006 Sep 8 Scan CMUCL CVS logs, see need to revert to January 2003.
2006 Sep 16 Notice CMUCL some-rights-reserved patches before 2003. Mail Moellmann and cmucl.imp.
2006 Sep 18-20 Revert to CMUCL CVS as at 2002-08-23-19h00. Strip out the copyrighted parts. Move any additions since starting to this new tree.
2006 Nov 1 Release the 2002-08-23-19h00 based code as Nightshade 0.0.
2006 Nov 22 Try run CMUCL 18a.
2006 Nov 23-29 Build CMUCL 18c with CMUCL 18c. Move all additions made since starting onto a new 18c-based tree. Strip out the copyrighted parts of the 18c-based tree. Mail post-CMU maintainers.
2006 Dec Mail post-CMU contributors.
2006 Dec 1 Release the 2002-08-23-19h00 based code as Nightshade 0.0+. This was to release any additions since 0.0, so that the only change in release 1 was the change to the 18c base.
2006 Dec 1 Release the 18c based code as Nightshade 1.
2006 Dec 2 Add the docs from the CMU repository. Release as Nightshade 1a.
2006 Dec 22 Revert Pierre Mai changes.
2007 Feb - Dec Mail most of the rest of the contributors.
2007 Feb 6 Release Nightshade 1b.
2007 Feb 14 Rewrite ensure-directories-exist.
2007 Mar 14 Release Nightshade 1c.
2007 Sept 16 Release Nightshade 1d.
2008 Jan 27 Flush rationalize implementations.
2008 Jan 28 Mail another of the post-CMU contributors. Find more smaller contributions while scanning the logs.
2008 Feb 03 Revert isqrt implementation to 1993-02-27 version.
2008 Feb 13 Release Nightshade 1e.
2008 August 08 Release Nightshade 1f.
2009 January 07 Release Nightshade 1g.
2009 May 01 Release Nightshade 1h.