Update to 2.0:

Changes in version 2.0, 2004-12-25:

* 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.
This commit is contained in:
wiz 2005-02-18 14:41:38 +00:00
parent 543a300581
commit 45fa316d57
3 changed files with 5 additions and 24 deletions

View file

@ -1,10 +1,8 @@
# $NetBSD: Makefile,v 1.50 2004/11/14 07:24:37 jlam Exp $ # $NetBSD: Makefile,v 1.51 2005/02/18 14:41:38 wiz Exp $
DISTNAME= bison-1.875 DISTNAME= bison-2.0
PKGREVISION= 1
CATEGORIES= devel CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=bison/} MASTER_SITES= ${MASTER_SITE_GNU:=bison/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= cjep@NetBSD.org MAINTAINER= cjep@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/bison/bison.html HOMEPAGE= http://www.gnu.org/software/bison/bison.html

View file

@ -1,6 +1,5 @@
$NetBSD: distinfo,v 1.14 2003/01/04 20:16:10 cjep Exp $ $NetBSD: distinfo,v 1.15 2005/02/18 14:41:38 wiz Exp $
SHA1 (bison-1.875.tar.bz2) = 0cacfa8b557135021814bcd7e43de0bb0cc9d68e SHA1 (bison-2.0.tar.gz) = bd18d535ab673415491d4e5c7a5ec5ebfc06ef5c
Size (bison-1.875.tar.bz2) = 814922 bytes Size (bison-2.0.tar.gz) = 1163590 bytes
SHA1 (patch-aa) = 48ae980971419ede0a45dc5aac7d302586d3826e SHA1 (patch-aa) = 48ae980971419ede0a45dc5aac7d302586d3826e
SHA1 (patch-ab) = 5ac0a4f3239e58c33953a6c7d3580358f6de1e60

View file

@ -1,16 +0,0 @@
$NetBSD: patch-ab,v 1.6 2003/01/04 20:16:10 cjep Exp $
--- data/yacc.c 2002/12/28 08:36:02 1.47
+++ data/yacc.c 2003/01/02 23:58:42 1.48
@@ -1112,9 +1112,10 @@
yyerrlab1:
/* Suppress GCC warning that yyerrlab1 is unused when no action
- invokes YYERROR. */
+ invokes YYERROR. MacOS 10.2.3's buggy "smart preprocessor"
+ insists on the trailing semicolon. */
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
- __attribute__ ((__unused__))
+ __attribute__ ((__unused__));
#endif
]b4_location_if([ yylerrsp = yylsp;