[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison 2.0 released
From: |
Paul Eggert |
Subject: |
Bison 2.0 released |
Date: |
Tue, 04 Jan 2005 13:38:22 -0800 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
Bison version 2.0 has been released.
Bison is a parser generator that is compatible with Yacc.
Please see <http://www.gnu.org/software/bison/> for more info.
Bison 2.0 is a relatively small change since the last official release
(1.875), so we feel we've converged on the "new" version of Bison
("new" compared to Bison 1.35, that is).
Here is the URL:
ftp://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz
Here is the MD5 checksum:
c17f964fd5504b88b07a183420de25e3 bison-2.0.tar.gz
This version is byte-for-byte identical to the test version that was
prereleased on alpha.gnu.org, so if you have that version you don't
need to get the new one.
To try this version, please make sure you have GNU m4 1.4 or later
installed (version 1.4.2 is best, as it has many bugs fixed). Then
obtain the file bison-2.0.tar.gz, and execute the following shell
commands or their equivalents:
gunzip <bison-2.0.tar.gz | tar xf -
cd bison-2.0
./configure
make
make check
We particularly appreciate tests on unusual hosts.
Please report bugs to <address@hidden>.
Here is a list of user-visible changes in version 2.0.
* Possibly-incompatible changes
- Bison-generated parsers no longer default to using the alloca function
(when available) to extend the parser stack, due to widespread
problems in unchecked stack-overflow detection. You can "#define
YYSTACK_USE_ALLOCA 1" to require the use of alloca, but please read
the manual to determine safe values for YYMAXDEPTH in that case.
- Error token location.
During error recovery, the location of the syntax error is updated
to cover the whole sequence covered by the error token: it includes
the shifted symbols thrown away during the first part of the error
recovery, and the lookahead rejected during the second part.
- Semicolon changes:
. Stray semicolons are no longer allowed at the start of a grammar.
. Semicolons are now required after in-grammar declarations.
- Unescaped newlines are no longer allowed in character constants or
string literals. They were never portable, and GCC 3.4.0 has
dropped support for them. Better diagnostics are now generated if
forget a closing quote.
- NUL bytes are no longer allowed in Bison string literals, unfortunately.
* New features
- GLR grammars now support locations.
- New directive: %initial-action.
This directive allows the user to run arbitrary code (including
initializing @$) from yyparse before parsing starts.
- A new directive "%expect-rr N" specifies the expected number of
reduce/reduce conflicts in GLR parsers.
- %token numbers can now be hexadecimal integers, e.g., `%token FOO 0x12d'.
This is a GNU extension.
- The option `--report=lookahead' was changed to `--report=look-ahead'.
The old spelling still works, but is not documented and will be
removed.
- Experimental %destructor support has been added to lalr1.cc.
- New configure option --disable-yacc, to disable installation of the
yacc command and -ly library introduced in 1.875 for POSIX conformance.
* Bug fixes
- For now, %expect-count violations are now just warnings, not errors.
This is for compatibility with Bison 1.75 and earlier (when there are
reduce/reduce conflicts) and with Bison 1.30 and earlier (when there
are too many or too few shift/reduce conflicts). However, in future
versions of Bison we plan to improve the %expect machinery so that
these violations will become errors again.
- Within Bison itself, numbers (e.g., goto numbers) are no longer
arbitrarily limited to 16-bit counts.
- Semicolons are now allowed before "|" in grammar rules, as POSIX requires.
- Bison 2.0 released,
Paul Eggert <=