bug-bison
[Top][All Lists]
Advanced

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

Bison 2.4.1b released [alpha]


From: Joel E. Denny
Subject: Bison 2.4.1b released [alpha]
Date: Mon, 22 Feb 2010 23:56:57 -0500 (EST)
User-agent: Alpine 1.00 (DEB 882 2007-12-20)

Bison version 2.4.1b is now available.  The purpose of this release is
to address a couple of problems reported since the 2.4.1a release:

* As described in the first NEWS entry shown below, we have addressed
  some portability bugs that were causing test suite failures.  These
  fixes have not been fully tested on the affected platforms, so we
  would appreciate reports of any remaining failures on those platforms
  or of any new failures on other platforms.

* Translatable strings from a couple of source files were missing from
  Bison's POT files, so translators need more time.

We will wait at least a week for responses before releasing 2.4.2.

Here are the compressed sources:
  ftp://alpha.gnu.org/gnu/bison/bison-2.4.1b.tar.gz   (2.1MB)
  ftp://alpha.gnu.org/gnu/bison/bison-2.4.1b.tar.bz2   (1.6MB)

Here are the GPG detached signatures[*]:
  ftp://alpha.gnu.org/gnu/bison/bison-2.4.1b.tar.gz.sig
  ftp://alpha.gnu.org/gnu/bison/bison-2.4.1b.tar.bz2.sig

To reduce load on the main server, use a mirror listed at:
  http://www.gnu.org/order/ftp.html

[*] You can use either of the above signature files 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.4.1b.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 263DF280

and rerun the `gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.65
  Automake 1.11.1
  Flex 2.5.34
  Gnulib v0.0-3424-g9d0ad65

./NEWS

* Changes in version 2.4.1b (2010-02-22):

** Some portability problems that resulted in failures and livelocks
   in the test suite on some versions of at least Solaris, AIX, HP-UX,
   RHEL4, and Tru64 have been fixed.  As part of those fixes, fatal
   Bison errors no longer cause M4 to report a broken pipe on the
   affected platforms.

** `%prec IDENTIFIER' requires IDENTIFIER to be defined separately.

  POSIX specifies that an error be reported for any identifier that does
  not appear on the LHS of a grammar rule and that is not defined by
  %token, %left, %right, or %nonassoc.  Bison 2.3b and later lost this
  error report for the case when an identifier appears only after a
  %prec directive.  It is now restored.  However, for backward
  compatibility with recent Bison releases, it is only a warning for
  now.  In Bison 2.5 and later, it will return to being an error.

** Detection of GNU M4 1.4.6 or newer during configure is improved.

** Warnings from gcc's -Wundef option about undefined YYENABLE_NLS,
   YYLTYPE_IS_TRIVIAL, and __STRICT_ANSI__ in C/C++ parsers are now
   avoided.

** %code is now a permanent feature.

  A traditional Yacc prologue directive is written in the form:

    %{CODE%}

  To provide a more flexible alternative, Bison 2.3b introduced the
  %code directive with the following forms for C/C++:

    %code          {CODE}
    %code requires {CODE}
    %code provides {CODE}
    %code top      {CODE}

  These forms are now considered permanent features of Bison.  See the
  %code entries in the section "Bison Declaration Summary" in the Bison
  manual for a summary of their functionality.  See the section
  "Prologue Alternatives" for a detailed discussion including the
  advantages of %code over the traditional Yacc prologue directive.

  Bison's Java feature as a whole including its current usage of %code
  is still considered experimental.

** YYFAIL is deprecated and will eventually be removed.

  YYFAIL has existed for many years as an undocumented feature of
  deterministic parsers in C generated by Bison.  Previously, it was
  documented for Bison's experimental Java parsers.  YYFAIL is no longer
  documented for Java parsers and is formally deprecated in both cases.
  Users are strongly encouraged to migrate to YYERROR, which is
  specified by POSIX.

  Like YYERROR, you can invoke YYFAIL from a semantic action in order to
  induce a syntax error.  The most obvious difference from YYERROR is
  that YYFAIL will automatically invoke yyerror to report the syntax
  error so that you don't have to.  However, there are several other
  subtle differences between YYERROR and YYFAIL, and YYFAIL suffers from
  inherent flaws when %error-verbose or `#define YYERROR_VERBOSE' is
  used.  For a more detailed discussion, see:

    http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html

  The upcoming Bison 2.5 will remove YYFAIL from Java parsers, but
  deterministic parsers in C will continue to implement it.  However,
  because YYFAIL is already flawed, it seems futile to try to make new
  Bison features compatible with it.  Thus, during parser generation,
  Bison 2.5 will produce a warning whenever it discovers YYFAIL in a
  rule action.  In a later release, YYFAIL will be disabled for
  %error-verbose and `#define YYERROR_VERBOSE'.  Eventually, YYFAIL will
  be removed altogether.

  There exists at least one case where Bison 2.5's YYFAIL warning will
  be a false positive.  Some projects add phony uses of YYFAIL and other
  Bison-defined macros for the sole purpose of suppressing C
  preprocessor warnings (from GCC cpp's -Wunused-macros, for example).
  To avoid Bison's future warning, such YYFAIL uses can be moved to the
  epilogue (that is, after the second `%%') in the Bison input file.  In
  this release (2.4.1b), Bison already generates its own code to suppress
  C preprocessor warnings for YYFAIL, so projects can remove their own
  phony uses of YYFAIL if compatibility with Bison releases prior to
  2.4.1b is not necessary.

** Internationalization.

  Fix a regression introduced in Bison 2.4: Under some circumstances,
  message translations were not installed although supported by the
  host system.




reply via email to

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