X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/75ae8299840bbd854fa2474d38402bbb933c6511..026816664ff8283a55f91915843a8ff0ac5cf86c:/NEWS diff --git a/NEWS b/NEWS index cf118c15..5df8b81a 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,37 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] +** Bug fixes + +*** Errors in caret diagnostics + + On some platforms, some errors could result in endless diagnostics. + +*** Fixes of the -Werror option + + Options such as "-Werror -Wno-error=foo" were still turning "foo" + diagnostics into errors instead of warnings. This is fixed. + + Actually, for consistency with GCC, "-Wno-error=foo -Werror" now also + leaves "foo" diagnostics as warnings. Similarly, with "-Werror=foo + -Wno-error", "foo" diagnostics are now errors. + +*** GLR Predicates + + As demonstrated in the documentation, one can now leave spaces between + "%?" and its "{". + +*** Installation + + The yacc.1 man page is no longer installed if --disable-yacc was + specified. + +*** Fixes in the test suite + + Bugs and portability issues. + +* Noteworthy changes in release 3.0 (2013-07-25) [stable] + ** WARNING: Future backward-incompatibilities! Like other GNU packages, Bison will start using some of the C99 features @@ -62,6 +93,8 @@ GNU Bison NEWS Changes in Bison 2.7 introduced a dependency on FILE and fprintf when locations are enabled. This is fixed. +*** Warnings about useless %pure-parser/%define api.pure are restored + ** Diagnostics reported by Bison Most of these features were contributed by Théophile Ranquet and Victor @@ -256,6 +289,23 @@ GNU Bison NEWS %param {arg1_type *arg1} {arg2_type *arg2} +** Types of values for %define variables + + Bison used to make no difference between '%define foo bar' and '%define + foo "bar"'. The former is now called a 'keyword value', and the latter a + 'string value'. A third kind was added: 'code values', such as '%define + foo {bar}'. + + Keyword variables are used for fixed value sets, e.g., + + %define lr.type lalr + + Code variables are used for value in the target language, e.g., + + %define api.value.type {struct semantic_type} + + String variables are used remaining cases, e.g. file names. + ** Variable api.token.prefix The variable api.token.prefix changes the way tokens are identified in @@ -263,7 +313,7 @@ GNU Bison NEWS with identifiers in the target language. For instance %token FILE for ERROR - %define api.token.prefix "TOK_" + %define api.token.prefix {TOK_} %% start: FILE for ERROR; @@ -294,8 +344,9 @@ GNU Bison NEWS yylval.ival = 42; return INT; yylval.sval = "42"; return STRING; - The %define variable api.value.type supports several special values. The - keyword value 'union' means that the user provides genuine types, not + The %define variable api.value.type supports both keyword and code values. + + The keyword value 'union' means that the user provides genuine types, not union member names such as "ival" and "sval" above (WARNING: will fail if -y/--yacc/%yacc is enabled). @@ -316,7 +367,7 @@ GNU Bison NEWS %token INT "integer" %token STRING "string" - Values between braces denote user defined types. This is where YYSTYPE + Code values (in braces) denote user defined types. This is where YYSTYPE used to be used. %code requires @@ -496,11 +547,13 @@ GNU Bison NEWS ** Java skeleton improvements - Contributed by Paolo Bonzini. - The constants for token names were moved to the Lexer interface. Also, it is possible to add code to the parser's constructors using "%code init" and "%define init_throws". + Contributed by Paolo Bonzini. + + The Java skeleton now supports push parsing. + Contributed by Dennis Heimbigner. ** C++ skeletons improvements @@ -574,7 +627,7 @@ GNU Bison NEWS There are operator- and operator-= for 'location'. Negative line/column increments can no longer underflow the resulting value. -* Noteworthy changes in release ?.? (????-??-??) [?] +* Noteworthy changes in release 2.7.1 (2013-04-15) [stable] ** Bug fixes