Open Source License For Incremental Compilers?
"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."
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.
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.
-- Life is short. Forgive quickly. Kiss slowly. ~ Robert Doisneau