]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
maint: prepare to use date ranges in copyright notices.
[bison.git] / ChangeLog
index f4d480662226257ecb4c3438351401ebe292ad0b..6fa4ee2cf55e6892fb49c40950fdf983a82920e8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,824 @@
+2011-01-02  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       maint: prepare to use date ranges in copyright notices.
+       * README (Copyright statements): New section explaining the range
+       notation.  The GNU coding standards require this explanation.  I
+       copied ours 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  <joeldenny@joeldenny.org>
+
+       Correct my email address.
+       * ChangeLog: In all recent entries.
+       * THANKS (Joel E. Denny): Here.
+
+2010-12-19  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       doc: cleanup.
+       * NEWS (2.5): Try to sort entries according to how interesting
+       users might find them.
+
+2010-12-19  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       parse.lac: implement as %define variable.
+       LAC = lookahead correction.  See discussion at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       * ChangeLog: Correct some errors in previous entries.
+
+2010-10-17  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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  <eggert@cs.ucla.edu>
+
+       Fix portability problem on OpenBSD 4.7.
+
+       Jim Meyering reported this in
+       <http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
+       * 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  <joeldenny@joeldenny.org>
+
+       Version 2.4.3.
+       * NEWS (2.4.3): Set date.
+
+2010-08-04  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       maint: add gettext version to release announcements.
+       Suggested by Paul Hilfinger at
+       <http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
+       <http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
+       * cfg.mk (bootstrap-tools): Add gettext.
+
+2010-08-04  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       -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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       i18n: update.
+       * po/POTFILES.in: Add src/graphviz.c.
+
+2010-07-28  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       i18n: fix for gnulib.
+       * po/POTFILES.in: Add remaining gnulib files that have
+       translatable strings.
+
+2010-07-25  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <eggert@cs.ucla.edu>
+
+       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  <eggert@cs.ucla.edu>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       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  <joeldenny@joeldenny.org>
+
+       Document that undefined %prec identifier warnings will remain.
+       * NEWS (2.4.3): Here.
+       (2.4.2): Here.
+
+2010-04-30  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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
+       <http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
+       * 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  <joeldenny@joeldenny.org>
+
+       build: don't require src/bison during bootstrap.
+       Suggested by Eric Blake at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
+       * 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  <joeldenny@joeldenny.org>
+
+       i18n: fix untranslatable string.
+       Reported by Goran Uddeborg at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
+       * src/muscle-tab.c (muscle_percent_define_insert): Here.
+
+2010-04-13  Akim Demaille  <demaille@gostai.com>
+
+       tests: calc: minor refactoring.
+       * tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
+
+2010-04-13  Akim Demaille  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       tests: check fclose's return value.
+       * tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
+
+2010-04-13  Akim Demaille  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
+
+       formatting changes.
+       * tests/calc.at: Formatting changes.
+
+2010-04-13  Akim Demaille  <demaille@gostai.com>
+
+       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  <joeldenny@joeldenny.org>
+
+       * NEWS (2.4.3): Mention fix for Sun Studio C++.
+
+2010-04-10  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       tests: fix for newer Sun Studio C++.
+       Reported by Dagobert Michelsen at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
+       * 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  <jdenny@ces.clemson.edu>
+
+       portability: fix pointer arithmetic to conform to C standard.
+       Reported by Tys Lefering at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
+       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  <demaille@gostai.com>
+
+       remove useless include.
+       * src/graphviz.h: Don't include stdbool.h.
+
+2010-04-05  Akim Demaille  <demaille@gostai.com>
+
+       graph: sign the output file.
+       * src/graphviz.c (start_graph): Issue comments about Bison.
+       Suggested by Tys Lefering.
+
+2010-03-31  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       portability: fix test suite for GCC 4.5's new #error message.
+       Reported by Tys Lefering at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
+       * NEWS (2.4.3): Mention.
+       * tests/synclines.at (AT_TEST_SYNCLINE): Implement.
+
+2010-03-30  Akim Demaille  <demaille@gostai.com>
+
+       fix comments.
+       * src/graphviz.h: Add missing license notice.
+       Document.
+
+2010-03-25  Akim Demaille  <demaille@gostai.com>
+
+       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  <jdenny@ces.clemson.edu>
+
+       portability: fix for BSD make.
+       Reported by Johan van Selst at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
+       * tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in
+       this dependency list as in package.m4's target rule.
+
+2010-03-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
+       Reported by Johan van Selst at
+       <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
+       * NEWS (2.4.3): New.
+       * THANKS (Johan van Selst): Add.
+       * gnulib: Update to latest.
+
+2010-03-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       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  <jdenny@ces.clemson.edu>
+
+       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  <jdenny@ces.clemson.edu>
+
+       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  <jdenny@ces.clemson.edu>
+
+       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
+       <http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.
+
+       There were also problems with the test suite livelocking on
+       Tru64 5.1b.  Reported by Didier Godefroy at
+       <http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
+       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  <jdenny@ces.clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       Code cleanup.
+       * tests/atlocal.in (abs_top_srcdir): Remove shell variable,
+       which is already defined in atconfig.
+
+2010-01-21  Joel E. Denny  <jdenny@clemson.edu>
+
+       * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
+
+2010-01-21  Joel E. Denny  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       * bootstrap: Import improvements from latest gnulib.
+
+2010-01-19  Joel E. Denny  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       gnulib: update to latest.
+
+2010-01-19  Joel E. Denny  <jdenny@clemson.edu>
+
+       ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
+
+2010-01-15  Joel E. Denny  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       maint: run "make update-copyright"
+
+2009-12-30  Joel E. Denny  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       POSIX: warn if %prec's token was not defined.
+       Reported by Florian Krohm at
+       <http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
+       * 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  <jdenny@clemson.edu>
+
+       * HACKING (Release Procedure): Recommend a secure automake.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       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  <jdenny@clemson.edu>
+
+       Port small part of master's 11707b2b so future ports are easier.
+       * data/lalr1.java (YYParser::yysyntax_error): Untabify.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       Simplify the i18n of the error messages.
+       * data/lalr1.cc: Comment changes.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+       Prefer M4 to CPP.
+       * data/lalr1.cc: Use b4_error_verbose_if instead of #if
+       YYERROR_VERBOSE.
+
 2008-11-11  Akim Demaille  <demaille@gostai.com>
 
        Support i18n of the parse error messages.
 2008-11-11  Akim Demaille  <demaille@gostai.com>
 
        Support i18n of the parse error messages.
 
        YYFAIL: warn about uses and remove from lalr1.java.
        * NEWS (2.5): Document.
 
        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.
 
        and make it private.  Update all uses.
        * src/scan-code.l (SC_RULE_ACTION): Implement warning.
 
 
        YYFAIL: deprecate.
        * NEWS (2.4.2): Document deprecation and the phase-out plan.
 
        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.
        deprecation.
        * data/yacc.c (YYFAIL): Likewise, and suppress warnings about
        YYFAIL from GCC cpp's -Wunused-macros.
 
 2006-09-15  Bob Rossi  <bob@brasko.net>
 
 
 2006-09-15  Bob Rossi  <bob@brasko.net>
 
+       Add support for push parsing.  Based on the original work of
+       Odd Arild Olsen <oao@fibula.no>.
        * 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/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'.
        * src/getargs.c (push_parser): New var.
        * src/getargs.h (push_parser): New declaration.
        * src/output.c (prepare): Add macro insertion of `push_flag'.
        -----
 
        Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
        -----
 
        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.
+       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+       2008, 2009, 2010 Free Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this