Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Open Source License For Incremental Compilers? 9

Another not-so Anonymous Coward asks: "This is a question that comes up every so often on the comp.lang.forth newsgroup. Which Open Source license is best to use for compilers for a language like Forth, where it is normal to develop an application by extending the language until it is the application, and then save an image of the whole bundle? The problem, of course, is that in use, Forth isn't exactly an interpreter and isn't exactly a compiler, as commonly understood. It is closer to an interpreted language, where the interpreter serves as a runtime engine, except that the Forth runtime engine has had -just enough- added to permit it to extend itself."

"Under the GPL, the application is not merely a 'normal product' of the Forth compiler, since the application includes the Forth compiler as an embedded runtime engine. It is closer to the situation envisioned by the LGPL, since you can view the Forth compiler as the runtime engine that the application is "linked" to. But this is a metaphor, which is dangerous ground when you start interacting with the legal system.

There is no problem if the author of a Forth compiler wants to release it into the Public Domain. There is no problem if the author wishes to release it under the GPL and is happy to have any application developed on the compiler fall under the GPL. The problem is when the author wishes to keep the compiler itself as Open Source, but permit the programmer to release their application under whatever license they wish. In other words, the problem arises when the author wishes to have what the GPL already gives to GCC -- an Open Source tool without artificial limits on the applications produced by the tool."

This discussion has been archived. No new comments can be posted.

Open Source License for Incremental Compilers?

Comments Filter:
  • by Anonymous Coward
    Why no use the GPL + an exception which says that it's ok to link against non-GPL'd code. libgcc, libstdc++ and libgcj all use variants of this. libgcj's says:
    The libgcj library is licensed under the terms of the GNU General Public License, with this special exception:
    As a special exception, if you link this library with other files to produce an executable, this library does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License.
  • Squeak is Free, with a Liberal License [squeak.org]. The full license is typically wordy, but in summary:

    You are allowed to change Squeak, write extensions to Squeak, build an application in Squeak, and include some or all of Squeak with your products. You may distribute all of these things along with Squeak, or portions of Squeak, for free or for money. However, you must distribute these things under a license that protects Apple in the way described in this license.

    If you modify any of the methods of class objects (or their relationships) that come with Squeak (as opposed to building on top of the classes in the release), you must post the modifications on a web site or otherwise make them available for free to others, just as has been done with Squeak. The same is true if you port Squeak to another machine or operating system - you must post your port on a web site or otherwise make it available for free to others under the same license terms.

  • Well, I'm certainly not a lawyer or an expert on Forth, but from your description it sounds sort of like perl or java's execution model. You might want to take a look at perl's Artistic Licence (sp? too early in the morning), which IIRC, essentially says "do as you wish as long as you aren't acting like an asshole". ;^) (I'm being silly, it's actually a more serious document worthy of inspection that my juvenile 3am wit doesn't articulate well...)

    Failing that, the LGPL for the compiler might work pretty well, or the BSDL as a previous poster mentioned (I've heard that mentioned many times WRT commercially palatable OSS dev tools).

    Best of luck!


    --

  • #include < ianal.h >

    It looks as if none of the approved opensource licences [opensource.org] fit your bill. Forth is apparently a breed apart. I would recommend patching the BSD licence to include "as well as the source code of the original program" after "the above copyright," in clause 2.

  • generally, i think i would use the bsd license for that kind of project - does not add any restrictions to the user. (the non advertising one). I generally think BSD license is much more freedom than GPL, which is real "free software"
  • ...10th post?
  • The GNU project has dealt with similar issues in regard to bison. Unfortunately, the only documentation I can find at the moment seems to be missing the details: http://www.gnu.org/manual/bi son/html_node/bison_2.html [gnu.org]
  • by toh ( 64283 ) on Monday August 28, 2000 @10:48AM (#825799)

    There aren't really many more details - the FSF simply granted a special dispensation. This is also mentioned in the preamble of the bison.simple file. I believe it only applies to that file and the contained yyparse() function - if you use bison.hairy, the output must be GPLed.

    /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */

    This is really a separate issue than the Forth one, which runs much deeper than just copying over part of a provided (and thus licenced) input file. Bison mainly came across this issue because it's a free replacement for yacc, so it needs to implement a parser generator in the same way as yacc. If it somehow generated a parser completely dynamically (which in a sense would make it more similar to gcc), there wouldn't be a problem. I suppose that's why flex never had the same problem with the yylex() lexical scanner function.

Remember, UNIX spelled backwards is XINU. -- Mt.

Working...