X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/8200219a2a98c54a72cd744abbb656e18bd33ccf..2f4518a12609c27887a9eb262d60a38b58af9657:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 28b33a16..b02b2e6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,976 @@ +2011-02-06 Joel E. Denny + + doc: finish splitting apart the manual's Decl Summary section. + Suggested by Akim Demaille at + . + * doc/bison.texinfo (Decl Summary): Extract most of the %define + entry into... + (%define Summary): ... this new subsection, and update all + cross-references. For readability of the patches, rewriting of + the text so it makes sense as a separate subsection will come in a + later patch. Moreover, the majority of the text describing the + various new LR features should likely move to another new section + somewhere. + +2011-02-06 Joel E. Denny + + doc: begin to split apart the manual's Decl Summary section. + Discussed in thread starting at + . + * doc/bison.texinfo (Decl Summary): Extract most of the %code + entry into... + (%code Summary): ... this new subsection, and update all + cross-references. For readability of the patches, rewriting of + the text so it makes sense as a separate subsection will come in a + later patch. + +2011-02-06 Joel E. Denny + + doc: clean up naming of various Bison files. + The Bison manual's names for various files associated with a Bison + parser has devolved into inconsistency. This patch makes the + naming consistent for the most important files. First, it chooses + "grammar file" over "input file". The former appears to be more + traditional in the Bison manual, and Bison has other input + files (skeletons). Second, it chooses "parser implementation + file" over names like "parser file", "parser source file", "parser + source code file", and "parser output file". The new name makes + it clearer where Bison generates the main parser implementation, + and it is easily distinguishable from "parser header file". + * doc/bison.texinfo: Implement throughout. + +2011-02-06 Joel E. Denny + + doc: give credit to more of Bison's developers. + * doc/bison.texinfo (Introduction): Don't imply that only Robert + Corbett, Richard Stallman, and Wilfred Hansen have contributed to + Bison. However, I don't have time to write a full history, so + just point readers to THANKS and ChangeLog. + +2011-02-06 Joel E. Denny + + doc: document experimental features better. + * doc/bison.texinfo (Introduction): Say that IELR(1) and canonical + LR(1) are experimental. Mention Java. Normally experimental + features probably shouldn't be mentioned in the introduction. + However, if Bison's limitations to LALR(1), C, and C++ are so + important that they should be mentioned here, then it's important + to point out that Bison is beginning to escape those limitations. + Moreover, these particular experimental features have very little + chance of being removed. + * src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are + experimental. + +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 + branch-2.5, and the prior cherry-pick of "Fix handling of yychar + manipulation in user semantic actions" wasn't adjusted for that + difference. + * data/lalr1.cc (yy::parser::parse): Translate yychar before + every use of yytoken, and add comments explaining this approach. + * tests/conflicts.at (%error-verbose and consistent errors): + Extend to test yychar manipulation with lalr1.cc. + +2010-11-07 Joel E. Denny + + yysyntax_error: fix for consistent error with lookahead. + * NEWS (2.5): Document. + * data/yacc.c (yysyntax_error): In a verbose syntax error + message while in a consistent state with a default action (which + must be an error action given that yysyntax_error is being + invoked), continue to drop the expected token list, but don't + drop the unexpected token unless there actually is no lookahead. + Moreover, handle that internally instead of returning 1 to tell + the caller to do it. With that meaning of 1 gone, renumber + return codes more usefully. + (yyparse, yypush_parse): Update yysyntax_error usage. Most + importantly, set yytoken to YYEMPTY when there's no lookahead. + * data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the + unexpected token unless there actually is no lookahead. + * data/lalr1.cc (yy::parser::parse): If there's no lookahead, + set yytoken to yyempty_ before invoking yysyntax_error_. + (yy::parser::yysyntax_error_): Again, don't drop the unexpected + token unless there actually is no lookahead. + * data/lalr1.java (YYParser::parse): If there's no lookahead, + set yytoken to yyempty_ before invoking yysyntax_error. + (YYParser::yysyntax_error): Again, don't drop the unexpected + token unless there actually is no lookahead. + * tests/conflicts.at (%error-verbose and consistent + errors): Extend test group to further reveal how the previous + use of the simple "syntax error" message was too general. Test + yacc.c, glr.c, lalr1.cc, and lalr1.java. No longer an expected + failure. + * tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move + to... + * tests/local.at: ... here. + (_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition. + (AT_BISON_OPTION_POPDEFS): Pop it. + (AT_FULL_COMPILE): Extend to handle Java. + +2010-11-07 Joel E. Denny + + yysyntax_error: more preparation for readability of next patch. + There are no behavioral changes here. + * data/glr.c (yyreportSyntaxError): Reorganize. + * data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize. + * tests/conflicts.at (%error-verbose and consistent errors): + Reorganize. + +2010-11-07 Joel E. Denny + + yysyntax_error: prepare for readability of next patches. + These are purely whitespace changes that result in ugly code + but that make the next couple of patches much easier to read. + * data/glr.c (yyreportSyntaxError): Reindent. + * data/lalr1.cc (yy::parser::yysyntax_error_): Reindent. + * data/lalr1.java (YYParser::yysyntax_error): Reindent. + * data/yacc.c (yysyntax_error): Reindent. + +2010-10-31 Joel E. Denny + + yysyntax_error: improve invocation readability. + * data/yacc.c (yyparse, yypush_parse): For yysyntax_error + invocation, get rid of the while loop, which is misleading + because there are really at most two iterations. + +2010-10-31 Joel E. Denny + + * ChangeLog: Correct some errors in previous entries. + +2010-10-17 Joel E. Denny + + maint: re-anchor all .gitignore entries. + * bootstrap: Copy from gnulib's latest for the fix to + automatically anchor entries it constructs. + * gnulib: Update to latest just so it has the same bootstrap. + * .gitignore, build-aux/.gitignore, doc/.gitignore: + * lib/.gitignore, m4/.gitignore, po/.gitignore: + * runtime-po/.gitignore: Re-anchor all entries. + +2010-10-08 Paul Eggert + + Fix portability problem on OpenBSD 4.7. + + Jim Meyering reported this in + . + * data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h, + not _STDLIB_H. EXIT_SUCCESS has been defined by the standard + for quite some time. + * src/parse-gram.c, src/parse-gram.h: Regenerate. + * tests/regression.at: Tamper with the renamed witness. + + Adjust to recent changes to gnulib bootstrap. + + * .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore: + * examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore: + * po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore: + * tests/.cvsignore: Remove; I don't use CVS to maintain Bison + anymore and don't know of anybody else who does. If someone needs + these files, they can resurrect them. + * .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore: + * m4/.gitignore, po/.gitignore, runtime-po/.gitignore: + Omit leading '/', since bootstrap omits it. + Adjust file names to match current contents better. + * bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook + installed just for us. + * bootstrap.conf (excluded_files): Don't exclude codeset.m4, + glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now + needed somehow. Don't have time to look into why. + (gnulib_modules): Change malloc to malloc-gnu. Do we really assume + the GNU malloc behavior, where malloc (0) != NULL unless we're + out of storage? If not, we can omit malloc-gnu; but for now I left + it in to be safe. + (vc_ignore): Remove. + * README-hacking: Renamed from HACKING, since gnulib bootstrap now + uses that convention. + +2010-08-05 Joel E. Denny + + Version 2.4.3. + * NEWS (2.4.3): Set date. + +2010-08-04 Joel E. Denny + + maint: add gettext version to release announcements. + Suggested by Paul Hilfinger at + + . + * cfg.mk (bootstrap-tools): Add gettext. + +2010-08-04 Joel E. Denny + + doc: fix -W and %expect documentation some. + * NEWS (2.4.3): Mention that there are documentation fixes. + * doc/bison.texinfo (Expect Decl): Make it clear that %expect + turns conflicts into errors not warnings. + (Shift/Reduce): Likewise. + (Bison Options): Don't mention -Wsyntax. It doesn't exist. + +2010-08-01 Joel E. Denny + + -Werror: fix for rules useless in parser after conflicts. + * NEWS (2.4.3): Document fix. + * src/complain.c (error_message): Extend to handle incomplete + error messages so warn and warn_at can be used in more cases. + * src/gram.c (grammar_rules_useless_report): Use warn_at so that + -Werror is always obeyed. + * src/reduce.c (reduce_print): Use warn so that the "warnings + being treated as errors" message is printed consistently before + the first warning message. This makes testing easier. + * tests/local.at (AT_BISON_WERROR_MSG): New macro. + (AT_BISON_CHECK_NO_XML): Extend to check -Werror and + --warnings=error when warnings appear in bison's stderr. + +2010-07-29 Joel E. Denny + + maint: enable gnits only at stable releases. + * configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a + version string should disable gnits. Explain in comments. + +2010-07-28 Joel E. Denny + + i18n: update. + * po/POTFILES.in: Add src/graphviz.c. + +2010-07-28 Joel E. Denny + + i18n: fix for gnulib. + * po/POTFILES.in: Add remaining gnulib files that have + translatable strings. + +2010-07-25 Joel E. Denny + + maint: use announce-gen's new --mail-headers. + * HACKING (Announce): Update instructions. + * cfg.mk (announcement_Cc_): Define. + * configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as + required by latest gnulib. + * gnulib: Update to latest. + +2010-07-24 Joel E. Denny + + tests: handle Valgrind that complains about >&-. + * tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests. + (Output files: -dv >&-): Skip test group if running + maintainer-check-valgrind. + +2010-06-17 Paul Eggert + + Update from GFDL GFDL 1.2 to 1.3. + * doc/bison.texinfo: Update GFDL version number. + * doc/fdl.texi: Update to version 1.3, taken from: + http://www.gnu.org/licenses/fdl.texi + +2010-06-17 Paul Eggert + + Do not use date ranges in copyright notices. + See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices + + * HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha: + * TODO, bootstrap, bootstrap.conf: + * build-aux/update-b4-copyright, cfg.mk, configure.ac: + * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4: + * data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc: + * data/java-skel.m4, data/java.m4, data/lalr1.cc: + * data/lalr1.java, data/location.cc: + * data/xslt/bison.xsl: + * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: + * data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint: + * djgpp/README.in, djgpp/config.bat, djgpp/config.sed: + * djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat: + * djgpp/subpipe.c, djgpp/subpipe.h: + * djgpp/testsuite.sed, doc/bison.texinfo: + * doc/refcard.tex, etc/README, etc/bench.pl.in: + * examples/calc++/Makefile.am, examples/extexi: + * lib/abitset.c, lib/abitset.h: + * lib/bbitset.h, lib/bitset.c, lib/bitset.h: + * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c: + * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h: + * lib/ebitset.c, lib/ebitset.h, lib/get-errno.c: + * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h: + * lib/libiberty.h, lib/main.c, lib/timevar.c: + * lib/timevar.def, lib/timevar.h, lib/vbitset.c: + * lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4: + * m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4: + * src/AnnotationList.c, src/AnnotationList.h: + * src/InadequacyList.c, src/InadequacyList.h, src/LR0.c: + * src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c: + * src/assoc.h, src/closure.c, src/closure.h, src/complain.c: + * src/complain.h, src/conflicts.c, src/conflicts.h: + * src/derives.c, src/derives.h, src/files.c, src/files.h: + * src/flex-scanner.h, src/getargs.c, src/getargs.h: + * src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c: + * src/ielr.h, src/lalr.c, src/lalr.h: + * src/location.c, src/location.h, src/main.c: + * src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c: + * src/named-ref.h, src/nullable.c, src/nullable.h: + * src/output.c, src/output.h, src/parse-gram.y: + * src/print-xml.c, src/print-xml.h, src/print.c, src/print.h: + * src/print_graph.c, src/print_graph.h, src/reader.c: + * src/reader.h, src/reduce.c, src/reduce.h, src/relation.c: + * src/relation.h, src/scan-code.h, src/scan-code.l: + * src/scan-gram.h, src/scan-gram.l, src/scan-skel.h: + * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c: + * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h: + * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h: + * tests/actions.at, tests/atlocal.in, tests/c++.at: + * tests/calc.at, tests/conflicts.at, tests/cxx-type.at: + * tests/existing.at, tests/glr-regression.at: + * tests/headers.at, tests/input.at, tests/java.at: + * tests/local.at, tests/named-refs.at: + * tests/output.at, tests/push.at, tests/reduce.at: + * tests/regression.at, tests/sets.at, tests/skeletons.at: + * tests/synclines.at, tests/testsuite.at, tests/torture.at: + * data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am: + * tests/Makefile.am, lib/Makefile.am, examples/Makefile.am: + * etc/Makefile.am: + Don't use date ranges in copyright notices. + +2010-05-11 Akim Demaille + + lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT. + * data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the + header file to the implementation file, after the user %code + sections. + * NEWS (2.5): Document this. + +2010-05-07 Akim Demaille + + c++: use YYRHSLOC. + * data/lalr1.cc (YYRHSLOC): New. + (YYLLOC_DEFAULT): Use it. + * data/glr.cc: If location_type was user defined, do not include + location.hh, and do not produce location.hh and position.hh. + * tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC. + Check that glr.cc supports user defined location_type. + * NEWS: Document this. + +2010-05-10 Akim Demaille + + doc: fix lalr1.cc documentation. + * doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature. + (C++ Bison Interface): Fix lalr1.cc skeleton name. + (C++ Parser Interface): Fix semantic_type and location_type names. + Document yy::parser::token. + Reported by Jerry Quinn. + +2010-05-04 Akim Demaille + + lalr1.cc: don't generate location.hh when location_type is defined + * data/bison.m4 (b4_percent_define_use): New. + (b4_percent_define_get): Use it. + Accept a default value. + * data/c++.m4: Do not provide a default value for the %define + variable location_type, rather, use b4_percent_define_get with a + default argument where its value is needed. + * data/lalr1.cc: Do not load location.cc (which outputs both + location.hh and position.hh) if the user defined location_type. + Do not include location.hh either. + * data/glr.cc: Likewise. + +2010-05-04 Akim Demaille + + lalr1.cc: location_type: make sure we don't depend on loc.(begin|end). + * tests/calc.at (Span): Instead of begin/end, as in the built-in + location class, use first and last. + Define YYLLOC_DEFAULT to adjust to these changes. + * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the + location_type changes. + +2010-05-04 Akim Demaille + + tests: enhance AT_SYNCLINES_COMPILE. + * tests/synclines.at (AT_TEST_SYNCLINE): Move GCC 4.5 protection + into... + (AT_SYNCLINES_COMPILE): here. + Add more distcc patterns. + +2010-05-01 Joel E. Denny + + tests: fix maintainer-xml-check. + * data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"): + Update output to include comments now produced by --graph. + (xsl:template match="automaton"): As for --graph, name the + digraph after the grammar file. + * src/print-xml.c (escape_bufs): Enlarge array. + (print_xml): Add bug-report and url attributes to + bison-xml-report element. + +2010-05-01 Joel E. Denny + + In DOT output, convert from "/*" comments to "//" comments. + This handles the possibility that a "*/" might appear in + variable portions of those comments at some point in the future. + * src/graphviz.c (start_graph): Implement. + +2010-04-30 Joel E. Denny + + Document that undefined %prec identifier warnings will remain. + * NEWS (2.4.3): Here. + (2.4.2): Here. + +2010-04-30 Joel E. Denny + + Revert 2009-12-30 change for undefined %prec token complaints. + That is, keep them as warnings because that should be sufficient + to satisfy POSIX without creating backward compatibility issues. + Suggested by Richard Stallman at + . + * NEWS (2.5): Remove mention of complaint. + * src/reader.c (grammar_rule_check): Convert complaint back to + warning. + * tests/input.at (%prec's token must be defined): Update. + +2010-04-25 Joel E. Denny + + build: don't require src/bison during bootstrap. + Suggested by Eric Blake at + . + * bootstrap.conf (bootstrap_epilogue): New function to make sure + src/parse-gram.[ch] are stamped later than src/parse-gram.y. + +2010-04-25 Joel E. Denny + + i18n: fix untranslatable string. + Reported by Goran Uddeborg at + . + * src/muscle-tab.c (muscle_percent_define_insert): Here. + +2010-04-13 Akim Demaille + + tests: calc: minor refactoring. + * tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex. + +2010-04-13 Akim Demaille + + tests: calc: simplify location management. + * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New. + (_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to + define the appropriate AT_LOC accessors. + * tests/calc.at: Use AT_LOC accessors. + +2010-04-13 Akim Demaille + + test location_type. + * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): + Define AT_LOCATION_TYPE_IF. + (_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF. + * tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is + used, provide a user location type and use it. + (Simple LALR1 C++ Calculator): Add a test case for location_type. + +2010-04-13 Akim Demaille + + tests: check fclose's return value. + * tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status. + +2010-04-13 Akim Demaille + + tests: don't depend on the actual location type. + * tests/calc.at: Use yy::parser::location_type rather than + yy::location, since the former is always right, and might point to + another type than the latter. + +2010-04-13 Akim Demaille + + formatting changes. + * tests/calc.at: Formatting changes. + +2010-04-13 Akim Demaille + + lalr1.cc: remove useless forward declaration. + * data/lalr1.cc: Include location.hh before stack.hh. + Remove the useless forward declarations of position and location. + Reported by Chris Morley. + * data/glr.cc: Likewise. + +2010-04-11 Joel E. Denny + + * NEWS (2.4.3): Mention fix for Sun Studio C++. + +2010-04-10 Joel E. Denny + + tests: fix for newer Sun Studio C++. + Reported by Dagobert Michelsen at + . + * THANKS (Dagobert Michelsen): Add. + * configure.ac (AC_PREREQ): Set to 2.64 so we get the latest + Autoconf macro for handling the restrict keyword. + * gnulib: Update to latest, which no longer overrides that macro + from Autoconf. + +2010-04-03 Joel E. Denny + + portability: fix pointer arithmetic to conform to C standard. + Reported by Tys Lefering at + . + This fix is already implemented in glr.c and does not apply to + lalr1.java. + * data/lalr1.cc (yy::parser::parse): Increase size of + yyerror_range and adjust subscripting so you don't have to + subtract one from the beginning of the array. + * data/yacc.c (b4_declare_parser_state_variables, + yyparse, yypush_parse): Likewise. + +2010-04-05 Akim Demaille + + remove useless include. + * src/graphviz.h: Don't include stdbool.h. + +2010-04-05 Akim Demaille + + graph: sign the output file. + * src/graphviz.c (start_graph): Issue comments about Bison. + Suggested by Tys Lefering. + +2010-03-31 Joel E. Denny + + portability: fix test suite for GCC 4.5's new #error message. + Reported by Tys Lefering at + . + * NEWS (2.4.3): Mention. + * tests/synclines.at (AT_TEST_SYNCLINE): Implement. + +2010-03-30 Akim Demaille + + fix comments. + * src/graphviz.h: Add missing license notice. + Document. + +2010-03-25 Akim Demaille + + tests: fix 250: parse.error=verbose overflow. + * tests/regression.at (parse.error=verbose overflow): Avoid the + double inclusion of stdlib.h as it triggers hard errors. + +2010-03-23 Joel E. Denny + + portability: fix for BSD make. + Reported by Johan van Selst at + . + * tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in + this dependency list as in package.m4's target rule. + +2010-03-23 Joel E. Denny + + portability: fix spawning on at least FreeBSD 8 and FreeBSD 9. + Reported by Johan van Selst at + . + * NEWS (2.4.3): New. + * THANKS (Johan van Selst): Add. + * gnulib: Update to latest. + +2010-03-20 Joel E. Denny + + maint: update for changes to gnulib's announce-gen. + * HACKING (Announce): RELEASE_TYPE=major must now be written + RELEASE_TYPE=stable. + +2010-03-20 Joel E. Denny + + Version 2.4.2. + * NEWS (2.4.2): Set version and date. For the recent test suite + portability fixes, don't be so optimistic about their success + given the lack of feedback on the affected platforms. + +2010-02-22 Joel E. Denny + + tests: fix maintainer-xml-check for recent changes. + * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use + AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an + output file whose name conflicts with a previous output file + is now never generated. + +2010-02-22 Joel E. Denny + + portability: fix several issues with M4 subprocess. + + M4's output pipe was not being drained upon fatal errors during + scan_skel. As a result, broken-pipe messages from M4 were seen + on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a + failure in the test suite. The problem was that, on platforms + where the default disposition for SIGPIPE is ignore instead of + terminate, M4 sometimes saw fwrite fail with errno=EPIPE and + then reported it. However, there's some sort of race condition, + because the new test group occasionally succeeded. + Reported by Albert Chin at + . + + There were also problems with the test suite livelocking on + Tru64 5.1b. Reported by Didier Godefroy at + . + Switching to create_pipe_bidi suggested by Akim Demaille. + + To attempt to solve both of these problems, switch to gnulib's + create_pipe_bidi and register M4 process as a slave. Along the + way, clean up file name conflict handling, which was affected by + the broken-pipe problem before the switch. + * NEWS (2.4.2): Document. + * THANKS (Didier Godefroy): Add. + * bootstrap.conf (gnulib_modules): Add pipe. + * gnulib: Update to latest to make sure we have all the latest + fixes. + * lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and + subpipe.c. + * po/POTFILES.in (lib/subpipe.c): Remove. + * src/files.c (compute_output_file_names): Update invocations + of output_file_name_check. + (output_file_name_check): In the case that the grammar file + would be overwritten, use complain instead of fatal, but replace + the output file name with /dev/null. Use the /dev/null solution + for the case of two conflicting output files as well because it + seems safer in case Bison one day tries to open both files at + the same time. + * src/files.h (output_file_name_check): Update prototype. + * src/output.c (output_skeleton): Use create_pipe_bidi and + wait_subprocess. Assert that scan_skel completely drains the + pipe. + * src/scan-skel.l (at_directive_perform): Update + output_file_name_check invocation. + * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the + grammar file actually isn't overwritten. + (Conflicting output files: -o foo.y): Update expected output. + * tests/skeletons.at (Fatal errors but M4 continues producing + output): New test group. + +2010-02-04 Joel E. Denny + + Update POTFILES. + * HACKING (Release Procedure): Add reminder about keeping + POTFILES files up-to-date. + * po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add. + +2010-02-01 Joel E. Denny + + Code cleanup. + * tests/atlocal.in (abs_top_srcdir): Remove shell variable, + which is already defined in atconfig. + +2010-01-21 Joel E. Denny + + * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory. + +2010-01-21 Joel E. Denny + + maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it. + * HACKING (Release Procedure): Update notes on copyright years. + * Makefile.am (update-package-copyright-year): New target rule. + * build-aux/update-package-copyright-year: New file. + * cfg.mk (update-copyright): Add update-package-copyright-year + as a dependency. + +2010-01-19 Joel E. Denny + + * bootstrap: Import improvements from latest gnulib. + +2010-01-19 Joel E. Denny + + build: require Automake 1.11.1 to avoid a security flaw. + * HACKING (Release Procedure): Don't document Automake security + flaw here. + * configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain + why here. + +2010-01-19 Joel E. Denny + + gnulib: update to latest. + +2010-01-19 Joel E. Denny + + ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c. + +2010-01-15 Joel E. Denny + + Thank the developer of the initial push parser implementation. + This unfortunate oversight is several years old. + * THANKS (Odd Arild Olsen): Add. + +2010-01-04 Joel E. Denny + + Fix some comments concerning LR(0) versus LALR(1). + + Stop equating LR(0) with nondeterminism and LALR(1) with + determinism. That is, if all states are consistent, then LR(0) + tables are deterministic. On the other hand, LALR(1) tables + might be nondeterministic before conflict resolution, and GLR + permits LALR(1) tables to remain nondeterministic. + * src/LR0.c, src/LR0.h: Here. + * src/lalr.c, src/lalr.h: Here. + * src/main.c (main): Here. + * src/state.c, src/state.h: Here. + + * src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1) + parser tables. + +2010-01-04 Joel E. Denny + + maint: run "make update-copyright" + +2009-12-30 Joel E. Denny + + POSIX: complain if %prec's token was not defined. + * NEWS (2.5): Document. + * src/reader.c (grammar_rule_check): Convert warning to + complaint. + * tests/input.at (%prec's token must be defined): Update. + +2009-12-30 Joel E. Denny + + POSIX: warn if %prec's token was not defined. + Reported by Florian Krohm at + . + * NEWS (2.4.2): Document. + * src/reader.c (grammar_rule_check): Implement. + (grammar_current_rule_prec_set): Add comments explaining that we + here assume a %prec identifier is a token, but we still manage + to support POSIX. + * tests/input.at (%prec's token must be defined): New test + group. + +2009-12-31 Joel E. Denny + + * HACKING (Release Procedure): Recommend a secure automake. + +2008-12-11 Akim Demaille + + Propagate i18n changes into glr.c. + * data/glr.c (yyreportSyntaxError): Use "switch" instead of + building the error message format dynamically. + * data/lalr1.java: Formatting changes. + +2009-12-22 Joel E. Denny + + Port small part of master's 11707b2b so future ports are easier. + * data/lalr1.java (YYParser::yysyntax_error): Untabify. + 2008-12-11 Akim Demaille Simplify the i18n of the error messages. @@ -82,7 +1055,7 @@ YYFAIL: warn about uses and remove from lalr1.java. * NEWS (2.5): Document. - * data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB, + * data/lalr1.java (YYParser::YYFAIL): Rename to YYERRLAB, and make it private. Update all uses. * src/scan-code.l (SC_RULE_ACTION): Implement warning. @@ -90,7 +1063,7 @@ YYFAIL: deprecate. * NEWS (2.4.2): Document deprecation and the phase-out plan. - * data/lalr1.java (parser::YYStack::YYFAIL): Add comment about + * data/lalr1.java (YYParser::YYFAIL): Add comment about deprecation. * data/yacc.c (YYFAIL): Likewise, and suppress warnings about YYFAIL from GCC cpp's -Wunused-macros. @@ -5597,9 +6570,12 @@ 2006-09-15 Bob Rossi + Add support for push parsing. Based on the original work of + Odd Arild Olsen . * data/Makefile.am (dist_pkgdata_DATA): Add push.c. * data/c.m4 (YYPUSH): New. (b4_push_if): New macro. Use it instead of #ifdef YYPUSH. + * data/push.c: New file. * src/getargs.c (push_parser): New var. * src/getargs.h (push_parser): New declaration. * src/output.c (prepare): Add macro insertion of `push_flag'. @@ -22772,9 +23748,8 @@ ----- - Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009 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