]> git.saurik.com Git - bison.git/blobdiff - NEWS
Merge branch 'maint'
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index c0414a2148bc5c0e01519495fd9756d2c0726d4f..fd749368d50ebcfa12ffcb784fd99b2ee572b346 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,9 +2,18 @@ GNU Bison NEWS
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
+** Incompatible changes
+
+*** Obsolete features
+
+  Support for YYFAIL is removed (deprecated in Bison 2.4.2).
+  Support for yystype and yyltype (instead of YYSTYPE and YYLTYPE)
+  is removed (deprecated in Bison 1.875).
+  Support for YYPARSE_PARAM is removed (deprecated in Bison 1.875).
+
 ** Warnings
 
-*** Warning categories are now diplayed in warnings
+*** Warning categories are now displayed
 
   For instance:
 
@@ -74,7 +83,19 @@ GNU Bison NEWS
   Also, it is possible to add code to the parser's constructors using
   "%code init" and "%define init_throws".
 
-** C++ skeleton improvements
+** C++ skeletons improvements
+
+*** parser header (%defines) is no longer mandatory (lalr1.cc)
+
+  In which case, if needed, the support classes are defined in the generated
+  parser, instead of additional files (location.hh, position.hh and
+  stack.hh).
+
+*** locations are no longer mandatory (lalr1.cc, glr.cc)
+
+  Both lalr1.cc and glr.cc no longer require %location.
+
+*** syntax_error exception (lalr1.cc)
 
   The C++ parser features a syntax_error exception, which can be
   thrown from the scanner or from user rules to raise syntax errors.
@@ -117,16 +138,73 @@ GNU Bison NEWS
   YYERROR) if the expression evaluates to 0, and are evaluated immediately
   in GLR parsers, rather than being deferred.  The result is that they
   allow the programmer to prune possible parses based on the values of
-  runtime expressions.
+  run-time expressions.
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
-** Future changes
+
+* Noteworthy changes in release 2.6.2 (2012-08-03) [stable]
+
+** Bug fixes
+
+  Buffer overruns, complaints from Flex, and portability issues in the test
+  suite have been fixed.
+
+** Spaces in %lex- and %parse-param (lalr1.cc, glr.cc)
+
+  Trailing end-of-lines in %parse-param or %lex-param would result in
+  invalid C++.  This is fixed.
+
+** Spurious spaces and end-of-lines
+
+  The generated files no longer end (nor start) with empty lines.
+
+* Noteworthy changes in release 2.6.1 (2012-07-30) [stable]
+
+ Bison no longer executes user-specified M4 code when processing a grammar.
+
+** Future Changes
+
+  In addition to the removal of the features announced in Bison 2.6, the
+  next major release will remove the "Temporary hack for adding a semicolon
+  to the user action", as announced in the release 2.5.  Instead of:
+
+    exp: exp "+" exp { $$ = $1 + $3 };
+
+  write:
+
+    exp: exp "+" exp { $$ = $1 + $3; };
+
+** Bug fixes
+
+*** Type names are now properly escaped.
+
+*** glr.cc: set_debug_level and debug_level work as expected.
+
+*** Stray @ or $ in actions
+
+  While Bison used to warn about stray $ or @ in action rules, it did not
+  for other actions such as printers, destructors, or initial actions.  It
+  now does.
+
+** Type names in actions
+
+  For consistency with rule actions, it is now possible to qualify $$ by a
+  type-name in destructors, printers, and initial actions.  For instance:
+
+    %printer { fprintf (yyo, "(%d, %f)", $<ival>$, $<fval>$); } <*> <>;
+
+  will display two values for each typed and untyped symbol (provided
+  that YYSTYPE has both "ival" and "fval" fields).
+
+* Noteworthy changes in release 2.6 (2012-07-19) [stable]
+
+** Future changes:
 
   The next major release of Bison will drop support for the following
   deprecated features.  Please report disagreements to bug-bison@gnu.org.
 
-*** K&C parsers
+*** K&C parsers
 
   Support for generating parsers in K&R C will be removed.  Parsers
   generated for C support ISO C90, and are tested with ISO C99 and ISO C11
@@ -151,7 +229,7 @@ GNU Bison NEWS
   because existing versions of ylwrap (e.g., Automake 1.12.1) do not support
   it.
 
-** Headers
+** Generated Parser Headers
 
 *** Guards (yacc.c, glr.c, glr.cc)
 
@@ -213,10 +291,19 @@ GNU Bison NEWS
     # define BAR_FOO_H                  # define BAR_FOO_H
 
     /* Enabling traces.  */             /* Enabling traces.  */
-    # ifndef YYDEBUG                    # ifndef YYDEBUG
-    #  define YYDEBUG 0                 #  define YYDEBUG 0
-    # endif                             # endif
-    # if YYDEBUG                        # if YYDEBUG
+    # ifndef YYDEBUG                  | # ifndef BAR_DEBUG
+                                      > #  if defined YYDEBUG
+                                      > #   if YYDEBUG
+                                      > #    define BAR_DEBUG 1
+                                      > #   else
+                                      > #    define BAR_DEBUG 0
+                                      > #   endif
+                                      > #  else
+    #  define YYDEBUG 0               | #   define BAR_DEBUG 0
+                                      > #  endif
+    # endif                           | # endif
+
+    # if YYDEBUG                      | # if BAR_DEBUG
     extern int bar_debug;               extern int bar_debug;
     # endif                             # endif
 
@@ -1913,7 +2000,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  LocalWords:  namespaces strerror const autoconfiguration Dconst Autoconf's FDL
  LocalWords:  Automake TMPDIR LESSEQ ylwrap endif yydebug YYTOKEN YYLSP ival hh
  LocalWords:  extern YYTOKENTYPE TOKENTYPE yytokentype tokentype STYPE lval pdf
- LocalWords:  lang yyoutput dvi html ps POSIX lvalp llocp
+ LocalWords:  lang yyoutput dvi html ps POSIX lvalp llocp Wother nterm arg init
+ LocalWords:  TOK
 
 Local Variables:
 mode: outline