[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bison-3.0.4 released [stable]

From: Akim Demaille
Subject: bison-3.0.4 released [stable]
Date: Fri, 23 Jan 2015 15:14:39 +0100

Bison 3.0.4 is a long overdue bug fix release.

Bison is a general-purpose parser generator that converts an annotated
context-free grammar into a deterministic LR or generalized LR (GLR)
parser employing LALR(1) parser tables.  Bison can also generate
IELR(1) or canonical LR(1) parser tables. Once you are proficient with
Bison, you can use it to develop a wide range of language parsers,
from those used in simple desk calculators to complex programming

Bison is upward compatible with Yacc: all properly-written Yacc
grammars ought to work with Bison with no change. Anyone familiar with
Yacc should be able to use Bison with little trouble. You need to be
fluent in C or C++ programming in order to use Bison. Java is also


Here are the compressed sources:
  ftp://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz   (3.2MB)
  ftp://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.xz   (1.9MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

[*] 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-3.0.4.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.15
  Flex 2.5.37
  Gettext 0.19.4
  Gnulib v0.1-339-gea6cb04


* Noteworthy changes in release 3.0.4 (2015-01-23) [stable]

** Bug fixes

*** C++ with Variants (lalr1.cc)

  Fix a compiler warning when no %destructor use $$.

*** Test suites

  Several portability issues in tests were fixed.

* Noteworthy changes in release 3.0.3 (2015-01-15) [stable]

** Bug fixes

*** C++ with Variants (lalr1.cc)

  Problems with %destructor and '%define parse.assert' have been fixed.

*** Named %union support (yacc.c, glr.c)

  Bison 3.0 introduced a regression on named %union such as

    %union foo { int ival; };

  The possibility to use a name was introduced "for Yacc compatibility".
  It is however not required by POSIX Yacc, and its usefulness is not clear.

*** %define api.value.type union with %defines (yacc.c, glr.c)

  The C parsers were broken when %defines was used together with "%define
  api.value.type union".

*** Redeclarations are reported in proper order


    %token FOO "foo"
    %printer {} "foo"
    %printer {} FOO

  bison used to report:

    /tmp/foo.yy:2.10-11: error: %printer redeclaration for FOO
     %printer {} "foo"
    /tmp/foo.yy:3.10-11:     previous declaration
     %printer {} FOO

  Now, the "previous" declaration is always the first one.

** Documentation

  Bison now installs various files in its docdir (which defaults to
  '/usr/local/share/doc/bison'), including the three fully blown examples
  extracted from the documentation:

   - rpcalc
     Reverse polish calculator, a simple introductory example.
   - mfcalc
     Multi-function Calc, a calculator with memory and functions and located
     error messages.
   - calc++
     a calculator in C++ using variant support and token constructors.

reply via email to

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