X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9d9b8b70061b84abff1222350bc94f033cee6d62..affac6132ae6ee354e1497e456b5c81a0c84334f:/NEWS diff --git a/NEWS b/NEWS index ae7c5c94..94e9cc17 100644 --- a/NEWS +++ b/NEWS @@ -3,17 +3,29 @@ Bison News Changes in version 2.1a: +* New warning: unused values + Typed right-hand side symbols whose value are not used are reported. + For instance + + exp: exp "?" exp ":" exp { $$ = $1 + $3; } + | exp "+" exp + ; + + will trigger a warning about $5 of the first rule, and $3 in the + second ($1 is copied to $$ by the default rule). To avoid this + warning, let Bison believe the value is used, e.g. + + exp: exp "?" exp ":" exp { $$ = $1 + $3; $5; } + | exp "+" exp { $$ = $1; $3; } + + This helps catching lost values and memory leaks: if a value is + ignored, its associated memory will never be reclaimed. + * %destructor vs. YYABORT, YYACCEPT, and YYERROR. Destructors are now called when user code invokes YYABORT, YYACCEPT, and YYERROR, for all objects on the stack, other than objects corresponding to the right-hand side of the current rule. -* GLR, C++ LALR(1) parsers. - These parser skeletons are now distributed with the same special - license exception that the C LALR(1) parser skeleton has had since - Bison 1.24. Hence the FSF imposes no copyright restriction on the - output of Bison when it is generating such parsers. - * %expect, %expect-rr Incorrect numbers of expected conflicts are now actual errors, instead of warnings.