bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

changes to special exception in Bison-generated parsers; 2.2 soon


From: Paul Eggert
Subject: changes to special exception in Bison-generated parsers; 2.2 soon
Date: Mon, 08 May 2006 23:44:57 -0700
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

After discussing this with RMS, we've extended the special license
exception for Bison-generated parsers to also include the other Bison
skeletons, for C++ and GLR parsers.  This is the last major change
before Bison 2.2, which I hope to generate tomorrow.

Here's the patch just installed:

2006-05-08  Paul Eggert  <address@hidden>

        * data/glr.c: Switch to Bison 2.2 special-exception language in
        the copyright notice.  Use more-regular format for titles and
        copyright notices.
        * data/glr.cc: Likewise.
        * data/location.cc: Likewise.
        * data/yacc.cc: Likewise.
        * doc/bison.texinfo (Conditions): Document this.
        * NEWS: likewise.  Upgrade version to 2.2.

Index: data/glr.c
===================================================================
RCS file: /cvsroot/bison/bison/data/glr.c,v
retrieving revision 1.170
diff -p -u -r1.170 glr.c
--- data/glr.c  12 Mar 2006 14:45:27 -0000      1.170
+++ data/glr.c  9 May 2006 06:38:56 -0000
@@ -143,10 +143,23 @@ m4_define([b4_rhs_location],
 m4_changecom()
 m4_divert(0)dnl
 @output @output_parser_name@
-b4_copyright([Skeleton parser for GLR parsing with Bison],
+b4_copyright([Skeleton implementation for Bison GLR parsers in C],
   [2002, 2003, 2004, 2005, 2006])
 [
-/* This is the parser code for GLR (Generalized LR) parser.  */
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C GLR parser skeleton written by Paul Hilfinger.  */
 
 ]b4_identification
 
@@ -2597,10 +2610,21 @@ yypdumpstack (yyGLRStack* yystackp)
 b4_epilogue
 m4_if(b4_defines_flag, 0, [],
 address@hidden @output_header_name@
-b4_copyright([Skeleton parser for GLR parsing with Bison],
-            [2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Skeleton interface for Bison GLR parsers in C],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
 
-/* C GLR parser skeleton written by Paul Hilfinger.  */
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 ]
 
 b4_shared_declarations
Index: data/glr.cc
===================================================================
RCS file: /cvsroot/bison/bison/data/glr.cc,v
retrieving revision 1.15
diff -p -u -r1.15 glr.cc
--- data/glr.cc 27 Apr 2006 10:43:02 -0000      1.15
+++ data/glr.cc 9 May 2006 06:38:56 -0000
@@ -213,8 +213,21 @@ m4_popdef([b4_parse_param])
 
 
 @output @output_header_name@
-b4_copyright([C++ Skeleton parser for GLALR(1) parsing with Bison],
-            [2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Skeleton interface for Bison GLR parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 /* C++ GLR parser skeleton written by Akim Demaille.  */
 
Index: data/lalr1.cc
===================================================================
RCS file: /cvsroot/bison/bison/data/lalr1.cc,v
retrieving revision 1.125
diff -p -u -r1.125 lalr1.cc
--- data/lalr1.cc       12 Mar 2006 14:45:27 -0000      1.125
+++ data/lalr1.cc       9 May 2006 06:38:56 -0000
@@ -29,10 +29,23 @@ m4_changecom()
 m4_divert(0)dnl
 m4_if(b4_defines_flag, 0, [],
 address@hidden @output_header_name@
-b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
-            [2002, 2003, 2004, 2005, 2006])
+b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
 dnl FIXME: This is wrong, we want computed header guards.
 [
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
 /* C++ LALR(1) parser skeleton written by Akim Demaille.  */
 
 #ifndef PARSER_HEADER_H
@@ -297,8 +310,22 @@ b4_error_verbose_if([, int tok])[);
 #endif /* ! defined PARSER_HEADER_H */]
 ])dnl
 @output @output_parser_name@
-b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
-            [2002, 2003, 2004, 2005, 2006])
+b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+]
 m4_if(b4_prefix, [yy], [],
 [
 // Take the name prefix into account.
@@ -386,14 +413,14 @@ namespace ]b4_namespace[
       {
         std::string yyr = "";
         char const *yyp = yystr;
-  
+
         for (;;)
           switch (*++yyp)
             {
             case '\'':
             case ',':
               goto do_not_strip_quotes;
-  
+
             case '\\':
               if (*++yyp != '\\')
                 goto do_not_strip_quotes;
@@ -401,13 +428,13 @@ namespace ]b4_namespace[
             default:
               yyr += *yyp;
               break;
-  
+
             case '"':
               return yyr;
             }
       do_not_strip_quotes: ;
       }
-  
+
     return yystr;
   }
 
@@ -1052,8 +1079,21 @@ b4_error_verbose_if([, int tok])[)
 ]b4_epilogue
 dnl
 @output b4_dir_prefix[]stack.hh
-b4_copyright([stack handling for Bison C++ parsers],
-  [2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Stack handling for Bison parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 #ifndef BISON_STACK_HH
 # define BISON_STACK_HH
Index: data/location.cc
===================================================================
RCS file: /cvsroot/bison/bison/data/location.cc,v
retrieving revision 1.8
diff -p -u -r1.8 location.cc
--- data/location.cc    12 Mar 2006 14:45:27 -0000      1.8
+++ data/location.cc    9 May 2006 06:38:56 -0000
@@ -23,8 +23,21 @@ m4_divert(-1)
 m4_changecom()
 m4_divert(0)dnl
 @output b4_dir_prefix[]position.hh
-b4_copyright([Position class for Bison C++ parsers],
-  [2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Positions for Bison parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 /**
  ** \file position.hh
@@ -135,8 +148,21 @@ namespace ]b4_namespace[
 }
 #endif // not BISON_POSITION_HH]
 @output b4_dir_prefix[]location.hh
-b4_copyright([Location class for Bison C++ parsers],
-  [2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Locations for Bison parsers in C++],
+  [2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 /**
  ** \file location.hh
Index: data/yacc.c
===================================================================
RCS file: /cvsroot/bison/bison/data/yacc.c,v
retrieving revision 1.135
diff -p -u -r1.135 yacc.c
--- data/yacc.c 12 Mar 2006 14:45:27 -0000      1.135
+++ data/yacc.c 9 May 2006 06:38:56 -0000
@@ -135,13 +135,21 @@ m4_define([b4_rhs_location],
 m4_changecom()
 m4_divert(0)dnl
 @output @output_parser_name@
-b4_copyright([Skeleton parser for Yacc-like parsing with Bison],
-  [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])[
+b4_copyright([Skeleton implementation for Bison's Yacc-like parsers in C],
+  [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
 
-/* 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 special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 /* C LALR(1) parser skeleton written by Richard Stallman, by
    simplifying the original so-called "semantic" parser.  */
@@ -1492,14 +1500,22 @@ yyreturn:
 b4_epilogue
 m4_if(b4_defines_flag, 0, [],
 address@hidden @output_header_name@
-b4_copyright([Skeleton parser for Yacc-like parsing with Bison],
+b4_copyright([Skeleton interface for Bison's Yacc-like parsers in C],
   [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])
-
-/* 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.  */
-
+[
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+]
 b4_token_enums_defines(b4_tokens)
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Index: doc/bison.texinfo
===================================================================
RCS file: /cvsroot/bison/bison/doc/bison.texinfo,v
retrieving revision 1.185
diff -p -u -r1.185 bison.texinfo
--- doc/bison.texinfo   24 Apr 2006 09:45:57 -0000      1.185
+++ doc/bison.texinfo   9 May 2006 06:38:57 -0000
@@ -356,9 +356,10 @@ This edition corresponds to version @val
 @node Conditions
 @unnumbered Conditions for Using Bison
 
-As of Bison version 1.24, we have changed the distribution terms for
address@hidden to permit using Bison's output in nonfree programs when
-Bison is generating C code for @acronym{LALR}(1) parsers.  Formerly, these
+The distribution terms for Bison-generated parsers permit using the
+parsers in nonfree programs.  Before Bison version 2.2, these extra
+permissions applied only when Bison was generating @acronym{LALR}(1)
+parsers in address@hidden  And before Bison version 1.24, Bison-generated
 parsers could be used only in programs that were free software.
 
 The other @acronym{GNU} programming tools, such as the @acronym{GNU} C
@@ -370,10 +371,10 @@ License to all of the Bison source code.
 
 The output of the Bison utility---the Bison parser file---contains a
 verbatim copy of a sizable piece of Bison, which is the code for the
address@hidden function.  (The actions from your grammar are inserted
-into this function at one point, but the rest of the function is not
-changed.)  When we applied the @acronym{GPL} terms to the code for
address@hidden,
+parser's implementation.  (The actions from your grammar are inserted
+into this implementation at one point, but most of the rest of the
+implementation is not changed.)  When we applied the @acronym{GPL}
+terms to the skeleton code for the parser's implementation,
 the effect was to restrict the use of Bison output to free software.
 
 We didn't change the terms because of sympathy for people who want to
@@ -383,13 +384,11 @@ encourage people to make other software 
 practical conditions for using Bison match the practical conditions for
 using the other @acronym{GNU} tools.
 
-This exception applies only when Bison is generating C code for an
address@hidden(1) parser; otherwise, the @acronym{GPL} terms operate
-as usual.  You can
-tell whether the exception applies to your @samp{.c} output file by
-inspecting it to see whether it says ``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 exception applies when Bison is generating code for a parser.
+You can tell whether the exception applies to a Bison output file by
+inspecting the file for text beginning with ``As a special
address@hidden''.  The text spells out the exact terms of the
+exception.
 
 @include gpl.texi
 
Index: NEWS
===================================================================
RCS file: /cvsroot/bison/bison/NEWS,v
retrieving revision 1.145
diff -p -u -r1.145 NEWS
--- NEWS        12 Mar 2006 14:45:27 -0000      1.145
+++ NEWS        9 May 2006 06:38:57 -0000
@@ -1,14 +1,16 @@
 Bison News
 ----------
 
-Changes in version 2.1b:
+Changes in version 2.2, 2006-05-09:
+
+* The distribution terms for all Bison-generated parsers now permit
+  using the parsers in nonfree programs.  Previously, this permission
+  was granted only for Bison-generated LALR(1) parsers in C.
 
 * %name-prefix changes the namespace name in C++ outputs.
 
 * The C++ parsers export their token_type.
 
-Changes in version 2.1a, 2006-02-13:
-
 * Bison now allows multiple %union declarations, and concatenates
   their contents together.
 
@@ -80,7 +82,7 @@ Changes in version 2.1a, 2006-02-13:
   fail using `%require "2.1a"'.
 
 * DJGPP support added.
-
+
 Changes in version 2.1, 2005-09-16:
 
 * The C++ lalr1.cc skeleton supports %lex-param.
@@ -106,7 +108,7 @@ Changes in version 2.1, 2005-09-16:
   a syntax error associated with '%token NUM "number"' they might
   print 'syntax error, unexpected number' instead of 'syntax error,
   unexpected "number"'.
-
+
 Changes in version 2.0, 2004-12-25:
 
 * Possibly-incompatible changes





reply via email to

[Prev in Thread] Current Thread [Next in Thread]