X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3b8378825ea8c3d2cae8c615a9ebf1f679730895..eb8c66bbda06f71d107e2780503f2de9ba814ddd:/ChangeLog?ds=sidebyside diff --git a/ChangeLog b/ChangeLog index 1d80e92d..1dacd346 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,230 @@ -2010-11-07 Joel E. Denny +2011-01-29 Joel E. Denny + + Do not allow identifiers that start with a dash. + This cleans up our previous fixes for a bug whereby Bison + discarded `.field' in `$-1.field'. The previous fixes were less + restrictive about where a dash could appear in an identifier, but + the restrictions were hard to explain. That bug was reported and + this final fix was originally suggested by Paul Hilfinger. This + also fixes a remaining bug reported by Paul Eggert whereby Bison + parses `%token ID -123' as `%token ID - 123' and handles `-' as an + identifier. Now, `-' cannot be an identifier. Discussed in + threads beginning at + , + . + * NEWS (2.5): Update entry describing the dash extension to + grammar symbol names. Also, move that entry before the named + references entry because the latter mentions the former. + * doc/bison.texinfo (Symbol): Update documentation for symbol + names. As suggested by Paul Eggert, mention the effect of periods + and dashes on named references. + (Decl Summary): Update documentation for unquoted %define values, + which, as a side effect, can no longer start with dashes either. + * src/scan-code.l (id): Implement. + * src/scan-gram.l (id): Implement. + * tests/actions.at (Exotic Dollars): Extend test group to exercise + bug reported by Paul Hilfinger. + * tests/input.at (Symbols): Update test group, and extend to + exercise bug reported by Paul Eggert. + * tests/named-refs.at (Stray symbols in brackets): Update test + group. + ($ or @ followed by . or -): Likewise. + * tests/regression.at (Invalid inputs): Likewise. + +2011-01-24 Joel E. Denny + + * data/yacc.c: Fix last apostrophe warning from xgettext. + +2011-01-09 Paul Eggert + + Fix minor problems encountered by a fresh bootstrap. + * data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments, + as they confuse xgettext, which tries to parse them as C character + constants in a preprocessor directive. + * data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as + that expression might not promote to int on some platforms. + * src/parse-gram.c, src/parse-gram.h: Regenerate. + +2011-01-09 Joel E. Denny + + Improve error messages for `$' or `@' followed by `.' or `-'. + Previously, for this special case of an invalid reference, the + usual "symbol not found in production:" was printed. However, + because the symbol name was parsed as the empty string, that + message was followed immediately by a newline instead of a symbol + name. In reality, this is a syntax error, so the reference is + invalid regardless of the symbols actually appearing in the + production. Discussed at + . + * src/scan-code.l (parse_ref): Report the above case as a syntax + error. Other than that, continue to handle this case like any + other invalid reference that Bison manages to parse because + "possibly meant" messages can still be helpful to the user. + * tests/named-refs.at ($ or @ followed by . or -): New test group. + +2011-01-08 Joel E. Denny + + doc: don't use @acronym. + Lately, many GNU packages are dropping it. See + . + * doc/bison.texinfo: Remove all uses. + +2011-01-05 Alex Rozenman + + Do not allow identifiers that start with a negative number. + Reported by Paul Hilfinger as a side effect of named references + support at + . + Suggested by Paul Eggert. + * src/scan-code.l ({letter}, {id}): Adjust lexical definitions. + * src/scan-gram.l ({letter}, {id}): Likewise. + +2011-01-03 Joel E. Denny + + * ChangeLog (2011-01-02): improve description. + +2011-01-03 Joel E. Denny + + maint: don't update copyright years in bootstrap. + * .x-update-copyright: Add entry for bootstrap. + * bootstrap: Remove 2011 from copyright years. The bootstrap + version we're currently using comes from an older version of + gnulib. + * bootstrap.conf (bootstrap_sync): Add comments explaining this + issue. + +2011-01-02 Joel E. Denny + + maint: run "make update-copyright". + +2011-01-02 Joel E. Denny + + maint: prepare to use year ranges in copyright notices. + * README (Copyright statements): New section explaining the range + notation. The GNU maintainers document requires this explanation: + . + I copied our explanation from coreutils. + * build-aux/update-b4-copyright: Revert 2010-06-17 changes that + disabled Bison's automated use of ranges. + * cfg.mk (update-copyright-env): Likewise. + +2011-01-02 Joel E. Denny + + Correct my email address. + * ChangeLog: In all recent entries. + * THANKS (Joel E. Denny): Here. + +2010-12-19 Joel E. Denny + + doc: cleanup. + * NEWS (2.5): Try to sort entries according to how interesting + users might find them. + +2010-12-19 Joel E. Denny + + doc: cleanup. + * NEWS (2.5): Make some minor improvements to wording, and format + entries more consistently. + * doc/bison.texinfo (Language and Grammar): Point out that IELR + and canonical LR are experimental features. + (Decl Summary): In list of %define variables, make wording more + consistent. Improve discussion of using LALR for GLR. + +2010-12-19 Joel E. Denny + + parse.lac: document. + * NEWS (2.5): Add entry for LAC, and mention LAC in entry for + other corrections to verbose syntax error messages. + * doc/bison.texinfo (Decl Summary): Rewrite entries for + lr.default-reductions and lr.type to be clearer, to mention + %nonassoc's effect on canonical LR, and to mention LAC. Add entry + for parse.lac. + (Glossary): Add entry for LAC. + +2010-12-11 Joel E. Denny + + parse.lac: implement exploratory stack reallocations. + * data/yacc.c: Rename %define variable parse.lac.es-capacity to + parse.lac.es-capacity-initial. Accept parse.lac.memory-trace + with values of "failures" (default) or "full". + (b4_declare_parser_state_variables): Add yyesa, yyes, and + yyes_capacity variables. + (YYSTACK_USE_ALLOCA): Ignore it if LAC requested. + (YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if + LAC requested. + (YYCOPY_NEEDED): New cpp macro. + (YYCOPY): Define if LAC requested. + (yy_lac_stack_realloc): New function implementing stack + reallocations. Use YYMAXDEPTH for maximum stack size given that + the stack should never need to grow larger than the main state + stack needs to grow without LAC. + (YY_LAC_ESTABLISH): Update yy_lac invocation. + (yy_lac): Add arguments for exploratory stack memory data + recorded in the main parser. Invoke yy_lac_stack_realloc when + reallocation is necessary. + (yysyntax_error): Add the same new arguments and pass them to + yy_lac. + (yypstate_delete): Free yyes if necessary. + (yyesa, yyes, yyes_capacity): #define these to yypstate members + in the case of push parsing. + (yyparse, yypush_parse): Initialize yyes and yyes_capacity. + Update yysyntax_error invocations. At yyreturn, free yyes if + necessary. + * src/parse-gram.y: %define parse.lac full. + * tests/input.at (LAC: errors for %define): Extend for + parse.lac-memory-trace. + * tests/regression.at (LAC: Exploratory stack): Extend to check + that stack reallocs happen when expected. + (LAC: Memory exhaustion): Update to use YYMAXDEPTH and + parse.lac.es-capacity-initial. + +2010-12-11 Joel E. Denny + + parse.lac: implement as %define variable. + LAC = lookahead correction. See discussion at + . + However, one point there must be corrected: because of %nonassoc, + LAC is *not* always redundant for lr.type=canonical-lr. + * data/yacc.c: Accept values of "none" (default) or "full" for + parse.lac. Accept %define parse.lac.es-capacity to specify + capacity of LAC's temporary exploratory stack. It defaults to 20 + and, for now, will not grow dynamically. + (b4_lac_flag, b4_lac_if): New m4 macros. Evaluate as true for + parse.lac!=none. + (YYBACKUP): Invoke YY_LAC_DISCARD. + (YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke + yy_lac and track when it needs to be invoked + (yy_lac): New function that, given the current stack, determines + whether a token can eventually be shifted. Return status mimics + yyparse return status. + (yysyntax_error): Change yystate argument to yyssp so stack top + can be passed to yy_lac. If LAC is requested, build expected + token list by invoking yy_lac for every token instead of just + checking the current state for lookaheads. Return 2 if yy_lac + exhausts memory. + (yyparse, yypush_parse): Use local variable yy_lac_established and + cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC. + Update yysyntax_error invocation. Add yyexhaustedlab code if LAC + is requested. + * tests/conflicts.at (%nonassoc and eof): Extend to check the + effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full. + (%error-verbose and consistent errors): Likewise. + (LAC: %nonassoc requires splitting canonical LR states): New test + group demonstrating how LAC can fix canonical LR. + * tests/input.at (LAC: Errors for %define): New test group. + * tests/regression.at (LAC: Exploratory stack): New test group. + (LAC: Memory exhaustion): New test group. + +2010-11-21 Joel E. Denny + + build: use gnulib's new bootstrap_sync option. + Now, whenever we update bison's copy of gnulib, bootstrap will + update itself the next time it's run. + * bootstrap: Copy from latest gnulib for bootstrap_sync support. + * bootstrap.conf (bootstrap_sync): Set to true. + * gnulib: Update to latest so bootstrap is in sync now. + +2010-11-07 Joel E. Denny yysyntax_error: adjust prior fixes for branch-2.5's lalr1.cc. On master, there is no yychar in lalr1.cc, but there is on @@ -10,7 +236,7 @@ * tests/conflicts.at (%error-verbose and consistent errors): Extend to test yychar manipulation with lalr1.cc. -2010-11-07 Joel E. Denny +2010-11-07 Joel E. Denny yysyntax_error: fix for consistent error with lookahead. * NEWS (2.5): Document. @@ -46,7 +272,7 @@ (AT_BISON_OPTION_POPDEFS): Pop it. (AT_FULL_COMPILE): Extend to handle Java. -2010-11-07 Joel E. Denny +2010-11-07 Joel E. Denny yysyntax_error: more preparation for readability of next patch. There are no behavioral changes here. @@ -55,7 +281,7 @@ * tests/conflicts.at (%error-verbose and consistent errors): Reorganize. -2010-11-07 Joel E. Denny +2010-11-07 Joel E. Denny yysyntax_error: prepare for readability of next patches. These are purely whitespace changes that result in ugly code @@ -23459,9 +23685,8 @@ ----- - Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1987-1988, 1991-2011 Free Software Foundation, + Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this