> Why reinventing the wheel when we can just copy it! This project takes the only surefire way to get it right - use the original elisp parser implementation as a blueprint!
Emacs Lisp code is under GPLv3 license, is it OK to rewrite it in another language (using original code as blueprint) and publish it under MIT?
> If the original program is licensed under certain versions of the GNU GPL, the translated program must be covered by the same versions of the GNU GPL.
That sounds extremely hard to enforce, especially between languages that aren’t similar enough for a clear one-to-one correlation to appear. I could see this being an issue between CL and Scheme or two different kinds of shell scripting, but less so with Rust and elisp.
Most likely but I think the FSF has sufficient legal and technical chops to figure out if, in this instance, they have a good case and should contact the developer.
As I recall, Stallman used to do something similar early on pre-GNU and stopped when he realized it wasn’t technically necessary, wasn’t even particularly helpful to himself in particular, and might even have legal implications to reimplement software with that method.
In fact, I remember clearly that the FSF was extremely persistent that any tool that was going into user land in GNU had to be implemented in an obviously different way. This is one of the reasons why Bison produces faster code than Yacc. I think grep was another one of those, "Well we can't do it the normal way, so let's find a crazy way that will be super fast".
If you’re in the mental space of thinking about mathematical problems, then you’re probably very far from the legal meaning of ‘translation’. IANAL, but I have taken some IP Law classes, and these two domains don’t use the same kind of formalisms. (In practice, the meaning of ‘transformative work’ is not specified with anything in the same continent as mathematical precision; the canonical definition of obscenity is probably closer.)
> is it OK to rewrite it in another language (using original code as blueprint)
No. However if you just take a specification of the code’s expected behavior (in this case a description of the markup language), and do a “clean-room” reimplementation where you never look at the original code, you should be in the clear from what I understand.
> Original elisp algorithm. While using the original elisp source as a guideline might result in less idiomatic Rust code...
Seems to be a pretty direct translation (without reading the sources of both).
Now, if they took the original source and used it to implement a grammar then based the rust code off said grammar they might have a case -- which, I believe, is what a "clean room" implementation would do, preferably with two different people doing either task.
IMHO this is a clear copyright violation else you could just "reimplement" your way out of any license.
And if I compile some GNU code (for example written in C) to javascript with a compiler, then change some details here and there can I change the licence to MIT?
How derivative is defined? Manual compilation is ok, but automatic is not? But what if I beleive that humans are just fancy machines? ;)
This is actually why GCC has (or at least did at one point) an extra clause to the GPL to specifically allow its output to be used in non-GPL programs. Because the compiler output necessarily has to copy some bits from the compiler, it was the FSF's belief that programs compiled with it would become derived works and hence be forced to use the GPL. They didn't want that, so they added the extra clause.
You may think that's a strange interpretation, but before GCC many compilers took that exact same stance. You bought the compiler and you did not have a license to distribute the resultant binary. You had to pay an extra fee for the right to distribute your own compiled code. That pretty much stopped when Borland released a compiler with a mostly sane license. You can imagine why, though, that Cygnus made so much money doing contract work for GCC in the embedded space -- every other compiler required royalties for everything you shipped!
Interestingly enough, programs which generate output always seem to have a "special exception" in their license which disclaims any and all copyrights to the output of the program.
I am neither a lawyer nor experienced with anything serious, but accordingly to how copyright is often a relevant topic in this "everyone is creator" era I believe that to be derivative you need to change the purpose.
rewriting the parser to make a background image for a desktop could be derivative as being "artistic" is not anywhere near the intention of the original creation. So the picture could be MIT and the code the picture shows GPL.
In general how you use something is more relevant than how you produce something. A human translation with heavy restructuring of the code and improvements can be derivative (maybe) putting it inside a pipeline (be it a transpiler or a contractor) wouldn't.
> Why reinventing the wheel when we can just copy it! This project takes the only surefire way to get it right - use the original elisp parser implementation as a blueprint!
Emacs Lisp code is under GPLv3 license, is it OK to rewrite it in another language (using original code as blueprint) and publish it under MIT?