Comments (21)
Carp now is on Apache Public License 2.0.
from carp.
Why?
What advantages do the proposed scheme have over the existing MPL?
and why the complex hybrid licensing involving 2-3 licenses spread over compiler and libraries?
from carp.
- Having ASL 2.0 licenses: The most free license is MIT but it does not have patent clause so it is safe to have this in combination with a more permissive license or languaging strategy used by MS where you have MIT in combination with a Patent Grant or what is used in Rust, Flix that is MIT in combination with ASL 2.0
- MIT / BSD you will have to redistribute the license with your source when you use the standard libraries hence Boost is recommended or the licensing strategy used by Apple in Swift whereby which is ASL 2.0 with a runtime library exception.
Now Apple and MS are big companies and many of these exemptions get whitelisted or pre approved by legal in other organisations. In cases there are non standard exemptions then you might have to deal with lawyers to get the approval for each and every client you might want to contract for.
Combining ASL 2.0, MIT, Boost you mitigate the patent issue and are very standard libraries which generally are pre approved and you do not have to add a dangling file MIT or ASL 2.0 text file even when you are using the standard library and may not be licensed under MIT or ASL 2.0.
Why not MPL or variants? Hardly there will be cases where you will make your fork of the compiler or standard libraries. But will there will be legal concerns on releasing the code if it ever happens. MPL may work well for contributors working on their own time or specific products build with it but does not work well for contracting and bespoke software developments. Also the ability and insurance that you make your own flavour fork and keep it for yourself if there are disagreements on the direction and design of the language and infrastructure does happen and you are extensively relient of the language for mission critical work and ended up with a large code base which you cannot feasibly port to another language.
Without having different licenses spread would be triple license if this appeals.
Also it is best this is addressed early on than later before you have too many individual contributors.
from carp.
FWIW I in no way speak for the creator(s) of Carp.
Your concern with the copy-left nature of MPL is valid in the case of wanting to use the language to make proprietary software, and modifying the language in order to do so - in which case ASL might be a next step to consider.
However because this is a lisp, modifying the actual implementation shouldn't be needed as much - you should be able to get there via extensive use of macros instead.
Any most modifications to the core should be upstreamable and shareable with the larger community.
I don't see the advantage to dual/hybrid licensing - unless you want compiler under ASL and libraries under MIT (or something equally permissive).
Your other concern seems to be with having the licenses pre-approved within large-organisations, this I cannot speak to.
I have no objections to a more permissive license, but I also have no issue with the current state.
It is also true that any licensing changes are easier when they are done sooner, as you will have to get the okay from each contributor.
from carp.
ASL 2.0 is fine with runtime library exception. E.g. swift license: https://github.com/apple/swift/blob/master/LICENSE.txt
from carp.
Agreed, this should have a proper MIT license
https://opensource.org/licenses/MIT
from carp.
@piot MPL is a 'proper' license.
from carp.
Any thoughts on how to move forward in this?
from carp.
I'll leave it at the current license for now. May change it later when the project moves to a non-research, "production ready" state.
from carp.
In which case have a CLA so you change the license.
from carp.
Good point!
from carp.
Worth mentioning that without a CLA, you generally require permission from every contributor to change the license.
OTOH a CLA may prevent some people from contributing - some people are constrained by contracts to not sign any CLAs (or not sign any without consulting a legal team).
from carp.
After being more informed about the various licenses I've decided that it's probably a good idea to switch to ASL 2.0.
If you're on the list, please reply to this issue with a +1 if you're fine with the license change. No reply before August 15th 2016 will be considered a +1.
Contributors:
from carp.
+1
from carp.
+1
from carp.
+1
from carp.
+1
from carp.
+1 to any single license of: ASL 2.0, MIT, or BSD.
from carp.
+1 ASL 2.0
from carp.
+1 MIT and BSD
from carp.
+1 ASL 2.0
from carp.
Related Issues (20)
- Bug with REPL displaying result of calling function that returns Char HOT 1
- REPL prompt is not `鯉` on Linux HOT 2
- (()) seems to cause an infinite loop on the latest release
- Packaging issues. HOT 1
- `format` leaks memory HOT 1
- `--eval-preload` does not have access to Core anymore HOT 6
- [Bug] Not handling all cases during pattern-matching in lambdas HOT 8
- [Bug] Control.iterate-until double-uses a variable, and thus is broken HOT 3
- [Feat Request] Exhaustive pattern-matching for `defn` HOT 5
- [Bug] Issue pattern matching structs HOT 7
- Document println*
- Feature Request: Make running tests not dependent on stack?
- CarpHask fails to build with hashable >= 1.4 (GHC 9.2 / Stackage LTS-20) HOT 4
- FR: Better Support for Embedded HOT 5
- Get Can't find symbol 'make-update-deriver' when trying to run example on Windows 11 HOT 7
- [bug] duplicate bindings in environment HOT 2
- Repl crashes on type of Map
- Repl :t command doesn't work with (use) HOT 3
- Is Carp still maintained? HOT 2
- Trying to compile nested let takes up a lot of resource
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from carp.