From: Akim Demaille Date: Fri, 25 Jan 2013 15:30:56 +0000 (+0100) Subject: news: prepare for 2.8 X-Git-Tag: v2.7.90~162 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/597afd73d7046a3b175c6da703ae50b654419b67 news: prepare for 2.8 * NEWS: Restructure. Name contributors. --- diff --git a/NEWS b/NEWS index d10d0f7b..f4314c43 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,19 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] +** Future changes + + Bison will stop adding a semicolon at the end of the actions: + + foo.y:2.22: warning: a ';' might be needed at the end of action code + exp: "num" { $$ = $1 } + ^ + foo.y:2.22: future versions of Bison will not add the ';' + + Like other GNU packages, Bison will start using some of the C99 features + for its own code, especially the definition of variables after statements. + The generated C parsers still aim at C90. + ** Incompatible changes *** Obsolete features @@ -14,7 +27,24 @@ GNU Bison NEWS Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison 1.875): use %lex-param, %parse-param, or %param. -** Warnings +** Bug fixes + +*** The epilogue is no longer affected by internal #defines + + The glr.c skeleton uses defines such as #define yylval (yystackp->yyval) in + generated code. These weren't properly undefined before the inclusion of + the user epilogue, so functions such as the following were butchered by the + preprocessor expansion: + + int yylex (YYSTYPE *yylval); + + This is has been fixed: yylval, yynerrs, yychar, and yylloc are now valid + identifiers for user-provided variables. + +** Diagnostics reported by Bison + + Most of these features were contributed by Théophile Ranquet and Victor + Santet. *** Carets @@ -179,6 +209,8 @@ 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". @@ -204,18 +236,6 @@ GNU Bison NEWS used by the scanner, or rejecting invalid combinations from a factory invoked by the user actions). -*** The epilogue is no longer affected by internal #defines - - The glr.c skeleton uses defines such as #define yylval (yystackp->yyval) in - generated code. These weren't properly undefined before the inclusion of - the user epilogue, so functions such as the following were butchered by the - preprocessor expansion: - - int yylex (YYSTYPE *yylval); - - This is has been fixed: yylval, yynerrs, yychar, and yylloc are now valid - identifiers for user-provided variables. - ** Renamed %define variables The following variables have been renamed for consistency. Backward @@ -242,8 +262,6 @@ GNU Bison NEWS use these prefixed token names, although the grammar itself still uses the short names (as in the sample rule given above). - - ** Variable parse.error This variable controls the verbosity of error messages. The use of the @@ -252,6 +270,8 @@ GNU Bison NEWS ** Semantic predicates + Contributed by Paul Hilfinger. + The new, experimental, semantic-predicate feature allows actions of the form "%?{ BOOLEAN-EXPRESSION }", which cause syntax errors (as for YYERROR) if the expression evaluates to 0, and are evaluated immediately