Rewrite "Conditions for Using Bison".

Update version to 1.24.
This commit is contained in:
Richard M. Stallman
1995-05-03 15:13:10 +00:00
parent 4eaeafc1a7
commit a31239f1bb

View File

@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@comment %**start of header @comment %**start of header
@setfilename bison.info @setfilename bison.info
@settitle Bison 1.23 @settitle Bison 1.24
@setchapternewpage odd @setchapternewpage odd
@iftex @iftex
@@ -39,7 +39,7 @@
@ifinfo @ifinfo
This file documents the Bison parser generator. This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. Copyright (C) 1988, 89, 90, 91, 92, 93, 1995 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice this manual provided the copyright notice and this permission notice
@@ -73,13 +73,13 @@ instead of in the original English.
@titlepage @titlepage
@title Bison @title Bison
@subtitle The YACC-compatible Parser Generator @subtitle The YACC-compatible Parser Generator
@subtitle December 1993, Bison Version 1.23 @subtitle May 1995, Bison Version 1.24
@author by Charles Donnelly and Richard Stallman @author by Charles Donnelly and Richard Stallman
@page @page
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993 Free Software Copyright @copyright{} 1988, 89, 90, 91, 92, 93, 1995 Free Software
Foundation Foundation
@sp 2 @sp 2
@@ -121,7 +121,7 @@ Cover art by Etienne Suvasa.
@node Top, Introduction, (dir), (dir) @node Top, Introduction, (dir), (dir)
@ifinfo @ifinfo
This manual documents version 1.23 of Bison. This manual documents version 1.24 of Bison.
@end ifinfo @end ifinfo
@menu @menu
@@ -307,45 +307,35 @@ don't know Bison or Yacc, start by reading these chapters. Reference
chapters follow which describe specific aspects of Bison in detail. chapters follow which describe specific aspects of Bison in detail.
Bison was written primarily by Robert Corbett; Richard Stallman made Bison was written primarily by Robert Corbett; Richard Stallman made
it Yacc-compatible. This edition corresponds to version 1.23 of Bison. it Yacc-compatible. This edition corresponds to version 1.24 of Bison.
@node Conditions, Copying, Introduction, Top @node Conditions, Copying, Introduction, Top
@unnumbered Conditions for Using Bison @unnumbered Conditions for Using Bison
Bison grammars can be used only in programs that are free software. This As of Bison version 1.24, we have changed the distribution terms for
is in contrast to what happens with the GNU C compiler and the other @code{yyparse} to permit using Bison's output in non-free programs.
GNU programming tools. Formerly, Bison parsers could be used only in programs that were free
software.
The reason Bison is special is that the output of the Bison utility---the The other GNU programming tools, such as the GNU C compiler, have never
Bison parser file---contains a verbatim copy of a sizable piece of Bison, had such a requirement. They could always be used for non-free
which is the code for the @code{yyparse} function. (The actions from your software. The reason Bison was different was not due to a special
grammar are inserted into this function at one point, but the rest of the policy decision; it resulted from applying the usual General Public
function is not changed.) License to all of the Bison source code.
As a result, the Bison parser file is covered by the same copying The output of the Bison utility---the Bison parser file---contains a
conditions that cover Bison itself and the rest of the GNU system: any verbatim copy of a sizable piece of Bison, which is the code for the
program containing it has to be distributed under the standard GNU copying @code{yyparse} function. (The actions from your grammar are inserted
conditions. into this function at one point, but the rest of the function is not
changed.) When we applied the GPL terms to the code for @code{yyparse},
the effect was to restrict the use of Bison output to free software.
Occasionally people who would like to use Bison to develop proprietary We didn't change the terms because of sympathy for people who want to
programs complain about this. make software proprietary. @strong{Software should be free.} But we
concluded that limiting Bison's use to free software was doing little to
We don't particularly sympathize with their complaints. The purpose of the encourage people to make other software free. So we decided to make the
GNU project is to promote the right to share software and the practice of practical conditions for using Bison match the practical conditions for
sharing software; it is a means of changing society. The people who using the other GNU tools.
complain are planning to be uncooperative toward the rest of the world; why
should they deserve our help in doing so?
However, it's possible that a change in these conditions might encourage
computer companies to use and distribute the GNU system. If so, then we
might decide to change the terms on @code{yyparse} as a matter of the
strategy of promoting the right to share. Such a change would be
irrevocable. Since we stand by the copying permissions we have announced,
we cannot withdraw them once given.
We mustn't make an irrevocable change hastily. We have to wait until there
is a complete GNU system and there has been time to learn how this issue
affects its reception.
@node Copying, Concepts, Conditions, Top @node Copying, Concepts, Conditions, Top
@unnumbered GNU GENERAL PUBLIC LICENSE @unnumbered GNU GENERAL PUBLIC LICENSE