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:
Theophile Ranquet
2012-12-10 17:01:55 +01:00
18 changed files with 611 additions and 278 deletions

103
NEWS
View File

@@ -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.