[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:


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

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]