mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
Merge remote-tracking branch 'origin/maint'
* origin/maint: news: prepare for forthcoming release doc: explain how mid-rule actions are translated error: use better locations for unused midrule values doc: various minor improvements and fixes tests: ignore more useless compiler warnings tests: be robust to C being compiled with a C++11 compiler build: beware of Clang++ not supporting POSIXLY_CORRECT maint: post-release administrivia version 2.6.90 build: fix syntax-check error. cpp: simplify the Flex version checking macro news: improve the carets example and fix a typo cpp: improve the Flex version checking macro carets: improve the code maint: update news build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs build: drop -Wcast-qual gnulib: update Conflicts: NEWS doc/Makefile.am doc/bison.texi gnulib src/reader.c tests/actions.at tests/atlocal.in tests/input.at
This commit is contained in:
103
NEWS
103
NEWS
@@ -247,51 +247,67 @@ GNU Bison NEWS
|
||||
The introduction of this feature, in 2.4, was four years ago. The --language
|
||||
option and the %language directive are no longer experimental.
|
||||
|
||||
** New format for error reports: carets
|
||||
** Bug fixes
|
||||
|
||||
Caret errors have been added to Bison, for example (taken from the
|
||||
documentation):
|
||||
Warnings about uninitialized yylloc in yyparse have been fixed.
|
||||
|
||||
** Diagnostics are improved
|
||||
|
||||
*** Changes in the format of error messages
|
||||
|
||||
This used to be the format of many error reports:
|
||||
|
||||
input.y:2.7-12: %type redeclaration for exp
|
||||
input.y:1.7-12: previous declaration
|
||||
|
||||
It is now:
|
||||
|
||||
input.y:2.7-12: error: %type redeclaration for exp
|
||||
input.y:1.7-12: previous declaration
|
||||
|
||||
*** New format for error reports: carets
|
||||
|
||||
Caret errors have been added to Bison:
|
||||
|
||||
input.y:2.7-12: error: %type redeclaration for exp
|
||||
%type <sval> exp
|
||||
^^^^^^
|
||||
input.y:1.7-12: previous declaration
|
||||
%type <ival> exp
|
||||
^^^^^^
|
||||
|
||||
or
|
||||
|
||||
input.y:3.20-23: error: ambiguous reference: '$exp'
|
||||
exp: exp '+' exp { $exp = $1 + $2; };
|
||||
exp: exp '+' exp { $exp = $1 + $3; };
|
||||
^^^^
|
||||
input.y:3.1-3: refers to: $exp at $$
|
||||
exp: exp '+' exp { $exp = $1 + $3; };
|
||||
^^^
|
||||
input.y:3.6-8: refers to: $exp at $1
|
||||
exp: exp '+' exp { $exp = $1 + $3; };
|
||||
^^^
|
||||
input.y:3.14-16: refers to: $exp at $3
|
||||
exp: exp '+' exp { $exp = $1 + $3; };
|
||||
^^^
|
||||
|
||||
The default behaviour for now is still not to display these unless explictly
|
||||
asked with -fall of -fcaret. However, in a later release, it will be made the
|
||||
default behavior (but may still be deactivated with -fno-caret).
|
||||
The default behaviour for now is still not to display these unless
|
||||
explictly asked with -fcaret (or -fall). However, in a later release, it
|
||||
will be made the default behavior (but may still be deactivated with
|
||||
-fno-caret).
|
||||
|
||||
** New value for %define variable: api.pure full
|
||||
|
||||
The %define variable api.pure requests a pure (reentrant) parser. However,
|
||||
for historical reasons, using it in a location-tracking Yacc parser resulted
|
||||
in an yyerror function that did not take a location as a parameter. With this
|
||||
new value, the user may request a better pure parser, where yyerror does take
|
||||
a location as a parameter (in location-tracking parsers).
|
||||
for historical reasons, using it in a location-tracking Yacc parser
|
||||
resulted in a yyerror function that did not take a location as a
|
||||
parameter. With this new value, the user may request a better pure parser,
|
||||
where yyerror does take a location as a parameter (in location-tracking
|
||||
parsers).
|
||||
|
||||
The use of "%define api.pure true" is deprecated in favor of this new
|
||||
"%define api.pure full".
|
||||
|
||||
** Changes in the format of error messages
|
||||
|
||||
This used to be the format of many error reports:
|
||||
|
||||
foo.y:5.10-24: result type clash on merge function 'merge': <t3> != <t2>
|
||||
foo.y:4.13-27: previous declaration
|
||||
|
||||
It is now:
|
||||
|
||||
foo.y:5.10-25: result type clash on merge function 'merge': <t3> != <t2>
|
||||
foo.y:4.13-27: previous declaration
|
||||
|
||||
** Exception safety (lalr1.cc)
|
||||
|
||||
The parse function now catches exceptions, uses the %destructors to
|
||||
release memory (the lookahead symbol and the symbols pushed on the stack)
|
||||
before re-throwing the exception.
|
||||
|
||||
This feature is somewhat experimental. User feedback would be
|
||||
appreciated.
|
||||
|
||||
** New %define variable: api.location.type (glr.cc, lalr1.cc, lalr1.java)
|
||||
|
||||
The %define variable api.location.type defines the name of the type to use
|
||||
@@ -311,6 +327,15 @@ GNU Bison NEWS
|
||||
position_type are deprecated in favor of api.location.type and
|
||||
api.position.type.
|
||||
|
||||
** Exception safety (lalr1.cc)
|
||||
|
||||
The parse function now catches exceptions, uses the %destructors to
|
||||
release memory (the lookahead symbol and the symbols pushed on the stack)
|
||||
before re-throwing the exception.
|
||||
|
||||
This feature is somewhat experimental. User feedback would be
|
||||
appreciated.
|
||||
|
||||
** Graph improvements in DOT and XSLT
|
||||
|
||||
The graphical presentation of the states is more readable: their shape is
|
||||
@@ -323,19 +348,21 @@ GNU Bison NEWS
|
||||
These changes are present in both --graph output and xml2dot.xsl XSLT
|
||||
processing, with minor (documented) differences.
|
||||
|
||||
Two nodes were added to the documentation: Xml and Graphviz.
|
||||
** %language is no longer an experimental feature.
|
||||
|
||||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
Warnings about uninitialized yylloc in yyparse have been fixed.
|
||||
The introduction of this feature, in 2.4, was four years ago. The
|
||||
--language option and the %language directive are no longer experimental.
|
||||
|
||||
** Documentation
|
||||
|
||||
The sections about shift/reduce and reduce/reduce conflicts resolution
|
||||
have been fixed and extended.
|
||||
|
||||
Although introduced more than four years ago, XML and Graphviz reports
|
||||
were not properly documented.
|
||||
|
||||
The translation of mid-rule actions is now described.
|
||||
|
||||
* Noteworthy changes in release 2.6.5 (2012-11-07) [stable]
|
||||
|
||||
We consider compiler warnings about Bison generated parsers to be bugs.
|
||||
|
||||
Reference in New Issue
Block a user