Shen Programming Language for Android
chatolab.wordpress.com
chatolab.wordpress.com
[1] https://github.com/doublec/shen-wasp
[2] https://bluishcoder.co.nz/2013/05/09/building-wasp-lisp-and-mosref-for-android.htmlIn addition to a built-in Prolog and also optional type checker it also uses pattern-matching like other modern functional programming languages. This is unlike Clojure which to my mind wrongly downgrades pattern-matching to simply an optional library. (Apparently Rich Hickey isn't keen on pattern-matching).
Shen is certainly worth investigating if you have an interest in Lisp.
Do you have a source for this? The closest I could find was this[1]:
> Appropriating other people's work by copying the code and changing the license is IMO immoral.
If this is indeed the source material, then I think your characterization isn't _necessarily_ correct. Saying it's immoral isn't the same as making a claim about law.
The link provided[2] does indicate that de Raadt thinks it is a violation of copyright law however. Finally, I question whether there is actually a consensus on this matter at all. If you relicense BSD code as GPL, then consumers needn't abide by the GPL; they can simply opt to use the original license. Does that really mean a relicensing has occurred? Of course, in non-trivial cases, there's likely additional code that has been intermixed with the original code, which would make it impossible to separate. But the release of the GPL code would still technically need to comply with the BSD license itself. Even at that point, it doesn't feel like "relicense" is actually correct.
(Note that I picked up on this because I firmly believe that such relicensing is indeed unethical, while simultaneously not knowing whether such relicensing is definitely a violation of copyright law or not, while also believing that copyright law shouldn't exist at all.)
[1] - http://www.marktarver.com/fsf.html
[2] - http://undeadly.org/cgi?action=article&sid=20070913014315
At the bottom of that page he says "my library work is BSD... I do not give permission to relicense my work under GPL", which I think carries my point since most people would understand the former to mean the latter. I think I remember a mailing list post talking more explicitly about derivative works, but I can't find it now and could easily be misremembering.
> If you relicense BSD code as GPL, then consumers needn't abide by the GPL; they can simply opt to use the original license. Does that really mean a relicensing has occurred?
People who wish to distribute derivative works based on copyrighted code need a license to do so. Some jurisdictions require licenses to be conveyed in writing, others allow oral or implicit transfers. I'm not sure any jurisdiction would be willing to acknowledge the conveyance of a license when there had been zero interaction between the parties. So it seems like if A were to license some code under the BSD license to B and B were to license it under some more restrictive license to C (which the BSD license certainly grants B permission to do), then in theory C doesn't necessarily have a BSD license to the code. Of course in practice it's moot since if B hasn't made any copyrightable changes then the only person who could ever sue C for copyright infringement would be A.
> the release of the GPL code would still technically need to comply with the BSD license itself. Even at that point, it doesn't feel like "relicense" is actually correct.
Technically the combined work (which multiple contributors hold copyrights on) can only be distributed in compliance with the requirements of both the GPL and the BSD license, sure. But since the requirements of the GPL are a superset of those of the BSD license, for all practical purpose the whole is GPLed.
Anyway, I do agree with your larger point. I'd stay away from this language for a variety of reasons.
This misunderstanding arose from a deliberate attempt by the FSF to co-opt the open software movement by trying to relicense BSD work under GPL without seeking the author's permission. The attempt was successfully challenged by Theo de Raadt in 2007 (http://undeadly.org/cgi?action=article&sid=20070913014315) and the ensuing discussion in which Stallman was thoroughly educated in the law of copyright can be found here.
http://openbsd-archive.7691.n7.nabble.com/Real-men-don-t-att...
(A lot of that discussion concerned whether openbsd was open, but much revolved around the issue raised).
Most programmers are catching with the law in 2017, but the disinformation is still around.
Of course you can use BSD code inside a GPL project; but that does not entitle you to relicense the BSD code.
[1] https://github.com/otabat/shen-c
diff --git a/Makefile b/Makefile
index 3ae5a55..458200d 100644
--- a/Makefile
+++ b/Makefile
@@ -26,5 +26,6 @@ ${TARGET}: ${SRC_OBJS}
# cc -g -O3 -std=c99 -lgc -lprofiler -Wl,-no_pie -o $@ $^
- cc -O3 -std=c99 -lgc -o $@ $^
+# cc -O3 -std=c99 -lgc -o $@ $^
# gcc-6 -g -O3 -std=c99 -L /usr/local/lib -lgc -lprofiler -Wl,-no_pie -o $@ $^
# gcc-6 -O3 -std=c99 -L /usr/local/lib -lgc -o $@ $^
+ gcc -O3 -o $@ $^ -lgc
@@ -34,5 +35,6 @@ ${OBJ_ROOT}/%.o: $(SRC_ROOT)/%.c
# cc -O2 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
- cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
+# cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $<
# gcc-6 -g -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $<
# gcc-6 -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $<
+ gcc -O3 -fno-optimize-sibling-calls -c -o $@ $<