A performance-oriented Lisp-like language where I can have my cake, and eat it (too)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

4.1 KiB

Legal

The Too Long, Didn't Read is this: If you make something using Cakelisp as a tool, you have full rights over the terms of that thing. If you make something which includes Cakelisp as part of the distribution to end users (for example, an IDE which has Cakelisp built-in, or a game which supports end-user modding via Cakelisp), you must comply with GPL-3.0-or-later.

Terms

  • "Cakelisp": All the files, excluding runtime/ within the Cakelisp repository, and the binaries generated by these files (excludes binaries generated with Cakelisp binaries, i.e. user runtime code)

  • "Runtime": Code which runs outside Cakelisp, after generation has been completed. This can also be termed the "user's generated program"

  • "Cakelisp runtime": The files in runtime/

Copyright

Cakelisp is copyright (C) 2020 Macoy Madson <macoy@macoy.me>.

License

Licensed under GPL-3.0-or-later, with added Linking Over Controlled Interface exception. There is no SPDX identifier for this exception, as far as I know.

runtime/ is licensed under MIT License.

Contact macoy@macoy.me if you would like to negotiate an exception for your use-case.

License Exception

The LICENSE_EXCEPTION file allows the creation of plug-ins for compile-time code execution under licenses that are not the GPL. However, if you distribute Cakelisp with these plug-ins, you still need to distribute the source code of the plug-ins.

If your program is intended to be GPL, you must release any compile time code used to build the program along with the program's source code, because it is otherwise impossible to build the program, therefore violating the GPL.

If you use compile-time code execution, but do not release any form of Cakelisp itself, and your program does not need to comply with the GPL for any other reason, you retain the full rights and license decisions of that compile-time code.

Cakelisp runtime exception

The files in runtime/ are under MIT license instead of GPL. This is to ensure your freedom to determine license for your non-derivative work by providing minimal constraints.

Explanation

IMPORTANT: This section is not legally binding, and is only meant to help the reader quickly determine whether their use-case may be appropriate.

Cakelisp's licensing was chosen to protect my efforts and help the community. Generally, I think the party with the most effort spent should be able to determine the terms of that work.

If you make something utilizing Cakelisp, your something is where most of the work is. If you make something which has Cakelisp embedded as an integral/supplementary part, our work amounts are now closer to even, and you need to obey the GPL-3.0-or-later. Anything you generate with Cakelisp is your own, and any Cakelisp code you write is your own, but as soon as you start distributing Cakelisp itself, you must obey the terms.

From a high level:

  • Cakelisp distribution is under GPL-3.0-or-later

  • Cakelisp runtime distribution is under MIT License

  • Runtime distribution is under whatever terms the copyright holder decides, provided that they comply with all other software they include in the runtime. If you e.g. link to a GPL library in your runtime (e.g. Cakelisp itself), you then need to comply with the GPL

Things which are permitted

  • Releasing a proprietary game/software project written in Cakelisp, without releasing any of the source code, or sharing any similar licenses. Broadly speaking, what you make with Cakelisp is entirely your own

  • Building a proprietary game/software project using Cakelisp's build system

  • Releasing products utilizing Cakelisp to the end user, so long as the terms of the GPL-3.0-or-later are met

Things which are not permitted

  • Releasing a proprietary game/software project which ships any of Cakelisp, excluding runtime/, without also releasing the source code of that project

  • Distributing modified versions of Cakelisp without also releasing the full modified source code

  • i.e., you must follow GPL-3.0-or-later if you actually "ship" any of Cakelisp's code, especially the files in src/