-Bison News
-----------
+GNU Bison NEWS
-* Changes in version 2.5.1_rc1 (2012-05-14):
+* Noteworthy changes in release ?.? (????-??-??) [?]
+
+** Future changes:
+
+ The next major release will drop support for generating parsers in K&R C,
+ and remove the definition of yystype (removal announced since Bison
+ 1.875).
+
+** The generated header is included (yacc.c)
+
+ Instead of duplicating the content of the generated header (definition of
+ YYSTYPE, yyltype etc.), the generated parser now includes it, as was
+ already the case for GLR or C++ parsers.
+
+** Headers (yacc.c, glr.c, glr.cc)
+
+*** Guards
+
+ The generated headers are now guarded, as is already the case for C++
+ parsers (lalr1.cc). For intance, with --defines=foo.h:
+
+ #ifndef YY_FOO_H
+ # define YY_FOO_H
+ ...
+ #endif /* !YY_FOO_H */
+
+*** New declarations
+
+ The generated header now declares yydebug and yyparse. Both honor
+ --name-prefix=bar_, and yield
+
+ int bar_parse (void);
+
+ rather than
+
+ #define yyparse bar_parse
+ int yyparse (void);
+
+ in order to facilitate the inclusion of several parser headers inside a
+ single compilation unit.
+
+* Noteworthy changes in release 2.5.1 (2012-06-05) [stable]
** Future changes:
The Java parser no longer throws ArrayIndexOutOfBoundsException if the
first token leads to a syntax error. Some minor clean ups.
-** C++11 compatibility:
+** Changes for C++:
+
+*** C++11 compatibility:
C and C++ parsers use "nullptr" instead of "0" when __cplusplus is 201103L
or higher.
-** C++ locations:
+*** Header guards
+
+ The header files such as "parser.hh", "location.hh", etc. used a constant
+ name for preprocessor guards, for instance:
+
+ #ifndef BISON_LOCATION_HH
+ # define BISON_LOCATION_HH
+ ...
+ #endif // !BISON_LOCATION_HH
+
+ The inclusion guard is now computed from "PREFIX/FILE-NAME", where lower
+ case characters are converted to upper case, and series of
+ non-alphanumerical characters are converted to an underscore.
+
+ With "bison -o lang++/parser.cc", "location.hh" would now include:
+
+ #ifndef YY_LANG_LOCATION_HH
+ # define YY_LANG_LOCATION_HH
+ ...
+ #endif // !YY_LANG_LOCATION_HH
+
+*** C++ locations:
The position and location constructors (and their initialize methods)
accept new arguments for line and column. Several issues in the
This includes warnings with some compilers, unexpected behavior of tools
such as diff, warning messages from the test suite itself, etc.
-*** The install-pdf target work properly:
+*** The install-pdf target works properly:
Running "make install-pdf" (or -dvi, -html, -info, and -ps) no longer
halts in the middle of its course.