newsBison - News

 
 

bison-3.0.4 released [stable]

Item posted by Akim Demaille <akim> on Fri 23 Jan 2015 02:10:49 PM UTC.

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

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

Enjoy!


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[*]:
  ftp://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz.sig
  ftp://ftp.gnu.org/gnu/bison/bison-3.0.4.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-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

NEWS

* 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

  On

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


Back to the top

Powered by Savane 3.14-8aba.
Corresponding source code