5 ms·
I think the license is worded rather poorly and that's unfortunate. I think it would be better worded as this: if you create a port/version/mod of Shen, it must
by taotree 14y ago
I think the license is worded rather poorly and that's unfortunate. I think it would be better worded as this: if you create a port/version/mod of Shen, it must be able to execute spec-compliant Shen code. That's it. You can do all the changes, experimentation, etc. so long as it is somehow capable of executing stock Shen code, it's allowed. I think that means that you can even have a flag that toggles between "standard-compliant" and "everything-works-different" because anyone with Shen code can set the flag to "standard-compliant" and run their code. So that situation would be fully compliant with that license.
- kd0amg 14y agoI think it would be better worded as this: if you create a port/version/mod of Shen, it must be able to execute spec-compliant Shen code. Who decides whether a language I come up with is a port/version/mod of Shen? How much of Shen's features can I include without crossing that threshold? Does that threshold move if I can point to other non-Shen languages as the source of those ideas?
- hackerjim 14y agoAFAIK the guy who built it has written a book to appear this month and that's supposed to fix the standard. There's some stuff here http://www.shenlanguage.org/Documentation/shendoc.htm http://www.shenlanguage.org/Documentation/shendoc.htm
- taotree 14y agoThe license is for the software--the Shen implementation. If you don't use the Shen implementation provided, then you're not subject to the license. If you create a port/version/mod of Shen then you are using the software. The way ports of Shen are created is by implementing Klambda. The provided Shen implementation compiles Shen to Klambda, which your port then compiles to a host language. So, unless you really want to clean-room reimplement the entire Shen language (which is NOT how porting is intended to be done) then you're using the software that is subject to the license.
- prodigal_erik 14y agoThat would mean I can do whatever I want as long as I provide a way to invoke their unmodified interpreter rather than my hacked-up one (i.e., I could build two binaries). My reading of the license (modifying the software is only acceptable for one of three purposes in bold, and "not open source" appears verbatim) doesn't make me confident they'd actually be okay with that, though it'd be a pleasant surprise.
- taotree 14y agoMy understanding is that would be fine so long as the default distributable will run Shen according to the spec. Keep in mind, you can do a LOT of extensions and still run standard Shen. For example, the existing shen-clisp, you can seamlessly call clisp functions by typing them in all caps. I think it would be interesting for someone in this conversation to suggest something that they might want to do to the language that would not allow standard Shen to run also.