[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bison-2.6.90 released [beta]
From: |
Akim Demaille |
Subject: |
bison-2.6.90 released [beta] |
Date: |
Fri, 7 Dec 2012 12:03:56 +0100 |
The Bison team is happy to announce the forthcoming release of Bison
2.7. There are many nice new features (especially in the way the
diagnostics are produced, and in the graph representation of the
parser), implemented by Théophile Ranquet for most of them. See the
list below.
Please, do check this tarball on your projects, so that we can make a
trustable release Bison 2.7 next week.
Cheers!
Here are the compressed sources:
ftp://alpha.gnu.org/gnu/bison/bison-2.6.90.tar.gz (2.9MB)
ftp://alpha.gnu.org/gnu/bison/bison-2.6.90.tar.xz (1.6MB)
Here are the GPG detached signatures[*]:
ftp://alpha.gnu.org/gnu/bison/bison-2.6.90.tar.gz.sig
ftp://alpha.gnu.org/gnu/bison/bison-2.6.90.tar.xz.sig
Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify bison-2.6.90.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 0DDCAA3278D5264E
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69
Automake 1.12.5
Flex 2.5.37
Gettext 0.18.1
Gnulib v0.0-7734-gc457e70
NEWS
* Noteworthy changes in release 2.6.90 (2012-12-07) [beta]
** Bug fixes
Warnings about uninitialized yylloc in yyparse have been fixed.
** %language is no longer an experimental feature.
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
Caret errors have been added to Bison, for example (taken from the
documentation):
input.y:3.20-23: error: ambiguous reference: '$exp'
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).
** 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 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
for locations. When defined, Bison no longer generates the position.hh
and location.hh files, nor does the parser will include them: the user is
then responsible to define her type.
This can be used in programs with several parsers to factor their location
and position files: let one of them generate them, and the others just use
them.
This feature was actually introduced, but not documented, in Bison 2.5,
under the name "location_type" (which is maintained for backward
compatibility).
For consistency, lalr1.java's %define variables location_type and
position_type are deprecated in favor of api.location.type and
api.position.type.
** Graph improvements in DOT and XSLT
The graphical presentation of the states is more readable: their shape is
now rectangular, the state number is clearly displayed, and the items are
numbered and left-justified.
The reductions are now explicitly represented as transitions to other
diamond shaped nodes.
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.
** Documentation
The sections about shift/reduce and reduce/reduce conflicts resolution
have been fixed and extended.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bison-2.6.90 released [beta],
Akim Demaille <=