]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
maint: enable gnits only at stable releases.
[bison.git] / ChangeLog
index 5c43a0fc9200756fbffda0cc63935441d047b6aa..83f6cfd31286e9de23e439645b6c76527a552eb1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+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>
+
+       build: fix our adjustments for gnulib files in lib.
+       * configure.ac: For prepending lib/ to the values of config
+       variables, fix detection of empty values.  Also, due to recent
+       gnulib changes, add LIBUNISTRING_UNITYPES_H and
+       LIBUNISTRING_UNIWIDTH_H to the list of those variables.
+
+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-07-23  Paul Hilfinger  <hilfingr@EECS.Berkeley.EDU>
+
+       * NEWS: Describe new semantic-predicate feature.
+        * data/c.m4 (b4_predicate_case): New definition.
+        * data/java.m4 (b4_predicate_case): New definition.
+        * data/glr.c (yyimmediate): Add definition.
+        (yydoAction): Remove comment, now obsolete.
+        Do YY_REDUCE_PRINT here.
+        (yyglrReduce): Alter comment to indicate that semantic values
+        need not be deferred.
+        Remove YY_REDUCE_PRINT from here; done in yydoAction.
+        (yyprocessOneStack): Pass immediate flag.
+        Delete stacks rejected by predicates in newly split-off parsers.
+        Change handling of yyerr so that only current stack gets deleted
+        when semantic predicate fails.
+        (yyfillin): Don't crash if a semantic value is unresolved (as may
+        happen in predicate rules).
+        Copy lr state as well in debugging mode.
+        Update comment on setting of yysval to include yyloc as well.
+        (yy_reduce_print): Add yynormal argument.  Perform fillin properly.
+        Report unresolved RHS values.
+        (yyimmediate): New table.
+        * src/gram.h (struct rule): Add is_predicate field.
+        * src/output.c (user_actions_output): Use b4_predicate_case for
+        predicates.
+        (prepare_symbols): Output yyimmediate.
+        * src/scan-gram.l: Add %? token, SC_PREDICATE state.
+        * src/scan-code.l (code_props_rule_action_init): Add is_predicate
+        argument.
+        * src/scan-code.h (struct code_props): Add is_predicate field.
+        (code_props_rule_action_init): New interface.
+        * src/parse-gram.y (%?{...}): New token.
+        (rhs): Add %?{...} rule.
+        * src/parse-gram.c: Regenerate.
+        * src/parse-gram.h: Regenerate.
+        * src/reader.c (grammar_current_rule_action_append): Add
+        immediate argument.
+        (grammar_midrule_action): Use new interface for
+        code_props_rule_action_init.
+        (grammar_current_rule_action_append): Ditto.
+        (packgram): Transfer is_predicate value.
+        * src/reader.h (grammar_current_rule_action_append): New interface.
+        * doc/bison.texinfo: Document semantic predicates (%?).
+    
+        * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
+        (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet)
+        (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted)
+        (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce)
+        (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction)
+        (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
+        names in comments and mention all parameters.
+        (struct yyGLRState): Fix description of yyposn field.
+        (yyresolveLocations): Correct comment so as not to imply action when
+        yyn1==0.
+       
+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
+
+       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/local.mk, data/location.cc:
+       * data/stack.hh, data/variant.hh, 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/local.mk, djgpp/subpipe.c, djgpp/subpipe.h:
+       * djgpp/testsuite.sed, doc/bison.texinfo, doc/local.mk:
+       * doc/refcard.tex, etc/README, etc/bench.pl.in, etc/local.mk:
+       * examples/calc++/Makefile.am, examples/extexi:
+       * examples/local.mk, 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/local.mk, 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/local.mk:
+       * 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/local.mk, 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:
+       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-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: please Emacs.
+       * doc/bison.texinfo (Local Variables): Move this after the
+       LocalWords, since the latter are looked for in the whole document,
+       while the former are looked for only at its end.
+       Require american spell checking.
+
+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-10  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-07  Akim Demaille  <demaille@gostai.com>
+
+       doc: fix typo.
+       * tests/synclines.at: here.
+
+2010-05-04  Akim Demaille  <demaille@gostai.com>
+
+       tests: enhance AT_SYNCLINES_COMPILE.
+       * tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns.
+       (AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already
+       taken care of in AT_SYNCLINES_COMPILE.
+
+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_get): 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.
+
+2010-05-04  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: minor refactoring.
+       * data/lalr1.cc: Don't issue empty namespaces.
+
+2010-05-04  Akim Demaille  <demaille@gostai.com>
+
+       tests: fix %printer.
+       Currently, there is no check that %printer ... <foo> (nor
+       %destructor) is about an existing <foo> type.  This C++ test had
+       it wrong (<::std::string> vs. <std::string>).
+
+       * tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the
+       pretty-printing of lists into something better for parser traces.
+       Update the expected output.
+       Fix correspondance between %type/%token and %printer.
+
+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-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/local.mk ($(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.
+       * etc/prefix-gnulib-mk (prefix): Adjust regex for makefile
+       targets so that gnulib's new c++defs.h is matched.
+       * 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/local.mk (lib_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-22  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: fix missing include caught by g++ 4.4.1.
+       Reported by Tys Lefering.
+       * HACKING (Release checks): Add note about trying a recent GCC.
+       * tests/regression.at (_AT_DATA_DANCER_Y): For C++, include
+       cstdlib for abort.
+       (_AT_DATA_EXPECT2_Y): Likewise.
+
+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.
+
+2009-12-29  Joel E. Denny  <jdenny@clemson.edu>
+
+       portability: `<' and `>' are not always defined on addresses.
+       Specifically, don't sort objects by their memory addresses when
+       they're not allocated in the same array or other object.  Though
+       I haven't found a test case where that fails on my platform, C
+       says the behavior is undefined.
+       * src/AnnotationList.c (AnnotationList__insertInto): Remove
+       FIXME.  Use new id field of InadequacyList nodes rather than
+       their memory addresses when sorting.
+       (AnnotationList__compute_from_inadequacies): Add
+       inadequacy_list_node_count argument to pass to
+       InadequacyList__new_conflict.
+       * src/AnnotationList.h
+       (AnnotationList__compute_from_inadequacies): Update prototype
+       and documentation for new argument.
+       * src/InadequacyList.c (InadequacyList__new_conflict): Add
+       node_count argument and use it to assign a unique ID.
+       * src/InadequacyList.h (InadequacyListNodeCount): New typedef.
+       (InadequacyList): Add id field.
+       (InadequacyList__new_conflict): Update prototype and
+       documentation for new argument.
+       * src/ielr.c (ielr_compute_annotation_lists): Update
+       AnnotationList__compute_from_inadequacies invocation.
+
+2009-12-20  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix handling of yychar manipulation in user semantic actions.
+       The problem was that yacc.c didn't always update the yychar
+       translation afterwards.  However, other skeletons appear to be
+       fine.  glr.c appears to already translate yychar before every
+       use.  lalr1.cc does not define yychar and does not document its
+       replacement, yyla, for users.  It does provide yyclearin, but
+       that does not manipulate yyla and thus requires no translation
+       update.  In lalr1.java, yychar is out of scope during semantic
+       actions.
+       * NEWS (2.5): Document.
+       * data/yacc.c (YYBACKUP): Don't bother translating yychar into
+       yytoken here.
+       (yyparse, yypush_parse): Instead, translate before every use of
+       yytoken, and add comments explaining this approach.
+       * tests/actions.at (Destroying lookahead assigned by semantic
+       action): New test group checking that translation happens before
+       lookahead destructor calls at parser return.  Previously,
+       incorrect destructors were called.
+       * tests/conflicts.at (parse.error=verbose and consistent
+       errors): New test group checking that translation happens at
+       syntax error detection before the associated verbose error
+       message and the associated lookahead destructor calls.  While
+       the destructor call is fixed by this patch, the verbose error
+       message is currently incorrect due to another bug (see
+       comments in test group), so this is an expected failure for now.
+
+2009-12-21  Joel E. Denny  <jdenny@clemson.edu>
+
+       YYFAIL: warn about uses and remove from lalr1.java.
+       * NEWS (2.5): Document.
+       * data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
+       and make it private.  Update all uses.
+       * src/scan-code.l (SC_RULE_ACTION): Implement warning.
+
+2009-12-21  Joel E. Denny  <jdenny@clemson.edu>
+
+       YYFAIL: deprecate.
+       * NEWS (2.4.2): Document deprecation and the phase-out plan.
+       * data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
+       deprecation.
+       * data/yacc.c (YYFAIL): Likewise, and suppress warnings about
+       YYFAIL from GCC cpp's -Wunused-macros.
+       * doc/bison.texinfo (Java Action Features): Remove YYFAIL
+       documentation.
+       (LocalWords): Remove YYFAIL.
+
+2009-12-20  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: cleanup.
+       * tests/c++.at (Syntax error discarding no lookahead): Don't
+       ignore stderr.  Instead, eliminate remaining warnings.
+
+2009-12-18  Joel E. Denny  <jdenny@clemson.edu>
+
+       lalr1.cc: don't discard non-existent lookahead on syntax error.
+       * data/lalr1.cc (parser::parse): Check yyempty first.
+       * tests/c++.at (Syntax error discarding no lookahead): New test
+       group.
+
+2009-12-17  Joel E. Denny  <jdenny@clemson.edu>
+
+       Code cleanup.
+       * src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
+       function, which is no longer used.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+       Add gcc's -Wundef to test suite and fix another warning from it.
+       * NEWS (2.4.2): Update description of -Wundef fix.
+       * configure.ac (WARN_CXXFLAGS_TEST): New substitution.
+       (WARN_CFLAGS_TEST): New substitution.
+       * data/glr.c: Avoid warning about __STRICT_ANSI__.
+       * tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
+       WARN_CFLAGS.
+       (NO_WERROR_CFLAGS): Likewise.
+       (CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+       * data/yacc.c: Reformat m4 a little.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+       Document gcc -Wundef fix.
+       * NEWS (2.4.2): Here.
+       * THANKS (Jonathan Nieder): Add.
+
+2009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
+
+       Simplify y.tab.c when location tracking is disabled.
+       * data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
+       tracking is not enabled.  Instead, unconditionally define
+       YY_LOCATION_PRINT as a no-op for backward compatibility.
+
+2009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
+
+       Avoid warnings from gcc -Wundef y.tab.c.
+       * data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
+       defined before using them.
+       * data/lalr1.cc: Likewise.
+       * data/yacc.c: Likewise.
+
+2009-12-15  Joel E. Denny  <jdenny@clemson.edu>
+
+       autoconf: update to latest for fix of M4 detection.
+       Reported by Eric Blake.
+       * submodules/autoconf: Update.
+
+2009-12-15  Joel E. Denny  <jdenny@clemson.edu>
+
+       portability: use -DGNULIB_POSIXCHECK.
+       Reported by Eric Blake.  See discussions at
+       <http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
+       and
+       <http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
+       * HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
+       * bootstrap.conf (gnulib_modules): Add all the printf modules
+       suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
+       suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
+       (excluded_files): Remove m4/printf-posix.m4.
+       * tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add
+       lib/libbison.a so gnulib libraries can be linked.
+
+2009-12-15  Joel E. Denny  <jdenny@clemson.edu>
+
+       gnulib: update for fix of fprintf-posix, which we'll use soon.
+       * etc/prefix-gnulib-mk (prefix): Adjust regex for make file
+       targets so that gnulib's new arg-nonnull.h and link-warning.h
+       are matched.
+       * gnulib: Update.
+
+2009-12-14  Joel E. Denny  <jdenny@clemson.edu>
+
+       Enable assertion output and --disable-assert for configure.
+       * bootstrap.conf (gnulib_modules): Add assert module.
+       * src/system.h (aver): Define as assert, and summarize the
+       discussion on this issue.
+
+2009-12-14  Joel E. Denny  <jdenny@clemson.edu>
+
+       Expand GLR acronym in summary of Bison.
+       Based on discussion with Akim Demaille starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
+       * doc/bison.texinfo (Introduction): Here.
+       * src/getargs.c (usage): Here.
+
+2009-10-03  Alex Rozenman  <rozenman@gmail.com>
+
+       Document named references.
+       * doc/bison.texinfo (Actions): Add new example and xref to
+       Using Named References node.
+       (Using Named References): New node.
+
+2009-10-16  Joel E. Denny  <jdenny@clemson.edu>
+
+       cleanup.
+       * src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
+       of char*.
+       (Sbitset__isEmpty): Use Sbitset instead of char*.
+       * src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
+       instead of char.  This helps to avoid casting errors.
+       (Sbitset__or): Use Sbitset instead of char*.
+
+2009-10-16  Joel E. Denny  <jdenny@clemson.edu>
+
+       portability: don't assume 8-bit bytes.
+       That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
+       * src/Sbitset.h (Sbitset__nbytes): Here.
+       (Sbitset__byteAddress): Here.
+       (Sbitset__bit_mask): Here.
+       (Sbitset__last_byte_mask): Here.
+       (Sbitset__ones): Here.
+       (SBITSET__FOR_EACH): Here.
+
+2009-10-11  Joel E. Denny  <jdenny@clemson.edu>
+
+       portability: use va_start and va_end in the same function.
+       * src/complain.c (error_message): Move va_end from here...
+       (ERROR_MESSAGE): ... to here.
+
+2009-10-08  Joel E. Denny  <jdenny@clemson.edu>
+
+       * data/bison.m4: Update comments for rename to muscle-tab.h.
+
+2009-10-07  Joel E. Denny  <jdenny@clemson.edu>
+
+       Minor code cleanup.
+       * src/muscle-tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
+       replace all uses with UNIQSTR_CONCAT.
+       * src/uniqstr.c (uniqstr_vsprintf): New function.
+       * src/uniqstr.h (uniqstr_vsprintf): Add prototype.
+       (UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
+       macros.
+
+2009-10-06  Joel E. Denny  <jdenny@clemson.edu>
+
+       * TODO (Complaint submessage indentation): New.
+
+2009-10-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       Minor code cleanup.
+       * src/parse-gram.y: Clean up sorting of declarations.
+       Use types to simplify %printer declarations where possible.
+       Provide %printer for BRACKETED_ID and symbol.prec.
+       * src/symtab.c: Whitespace change.
+
+2009-10-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: skip tests of file names that platform does not support.
+       Reported by Michael Raskin at
+       <http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
+       * THANKS (Michael Raskin): Add.
+       * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
+       to fail at least for file names containing ":" or "\".
+
+2009-09-23  Joel E. Denny  <jdenny@clemson.edu>
+
+       yysyntax_error: avoid duplicate lookahead collection.
+       Except when memory reallocation is required, this change
+       eliminates the need to invoke yysyntax_error twice and thus to
+       repeat the collection of lookaheads.  It also prepares for
+       future extensions that will make those repetitions more
+       expensive and that will require additional memory management in
+       yysyntax_error.  Finally, it fixes an obscure bug already
+       exercised in the test suite.
+       * data/yacc.c (yysyntax_error): Add arguments for message
+       buffer variables stored in the parser.  Instead of size, return
+       status similar to yyparse status but indicating success of
+       message creation.  Other than the actual reallocation of the
+       message buffer, import and clean up memory management code
+       from...
+       (yyparse, yypush_parse): ... here.
+       * tests/regression.at (parse.error=verbose overflow): No longer
+       an expected failure.
+
+2009-09-23  Joel E. Denny  <jdenny@clemson.edu>
+
+       yysyntax_error: test memory management more.
+       * tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
+       * tests/regression.at (parse.error=verbose and
+       YYSTACK_USE_ALLOCA): New test group.
+       (parse.error=verbose overflow): New test group that reveals an
+       obscure bug.  Expected fail for now.
+
+2009-10-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       benchmarks: use %debug consistently among grammars.
+       * etc/bench.pl.in (generate_grammar_triangular): Do not activate
+       %debug by default.  It can affect the timings even if yydebug=0.
+       (generate_grammar_calc): For consistency with other grammars,
+       use YYDEBUG environment variable to set yydebug.
+
+2009-10-03  Joel E. Denny  <jdenny@clemson.edu>
+
+       Remove dead code.
+       * src/symtab.c (symbol_pack): Here because every symbol's number
+       is always defined by this time.
+
+2009-10-03  Alex Rozenman  <rozenman@gmail.com>
+
+       Add additional space after periods in NEWS.
+       * NEWS (2.5): here.
+
+2009-09-29  Joel E. Denny  <jdenny@clemson.edu>
+
+       Use the correct conversion specifier for size_t.
+       Reported by Jim Meyering.
+       * src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
+       because Sbitset__Index is size_t.
+       * src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
+
+2009-09-27  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: don't abuse AT_BISON_CHECK.
+       * tests/regression.at (parse-gram.y: LALR = IELR): Move
+       additional shell commands outside of AT_BISON_CHECK.
+
+2009-09-26  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: check that parse-gram.y's IELR and LALR are identical.
+       * tests/atlocal.in (abs_top_srcdir): New shell variable.
+       * tests/regression.at (parse-gram.y: LALR = IELR): New test
+       group.
+
+2009-09-19  Alex Rozenman  <rozenman@gmail.com>
+
+       Keep sub-messages aligned. Fix strings for translation.
+       * src/location.h (location_print): Add return value.
+       * src/location.c (location_print): Return number of printed
+       characters.
+       * src/complain.h (complain_at_indent, warn_at_indent): Prototype
+       new functions.
+       * src/complain.cpp (indent_ptr): New static variable.
+       (error_message, complain_at_indent, warn_at_indent): Implement
+       the alignment mechanism.
+       * src/scan-code.l (parse_ref, show_sub_messages): Fix strings
+       for translations. Use new alignment mechanism.
+       * tests/named-ref.at: Adjust test-cases.
+       * NEWS (2.5): Add an announcement about named references.
+
+2009-09-17  Akim Demaille  <demaille@gostai.com>
+
+       doc: fixes.
+       * doc/bison.texinfo: here.
+       Reported by Alex Rozenman.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       doc: lalr1.cc and variants.
+       * doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and
+       "variant" %define variables.
+       (C++ Semantic Values): Split into...
+       (C++ Unions, C++ Variants): these.
+       The latter is new.
+       (C++ Parser Interface): Fix type names.
+       Document parser::syntax_error.
+       Document the fact that locations are not mandatory.
+       (C++ Scanner Interface): Split into...
+       (Split Symbols, Complete Symbols): these.
+       The later is new.
+       (Calc++ Parsing Driver): Use variants.
+       Add more comments.
+       Adjust style.
+       (Calc++ Parser): Declare all the tokens, no
+       longer accept raw characters.
+       Remove %union.
+       Adjust types and printers.
+       Remove destructors.
+       (Calc++ Scanner): Use make_<SYMBOL> functions.
+       Use strerror in error message.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       doc: spell checking.
+       * doc/bison.texinfo: here.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       doc: comment changes.
+       * doc/bison.texinfo: Comment changes.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: factor the yytranslate_ invocation in make_SYMBOLS.
+       * data/c++.m4, data/lalr1.cc (parser::symbol_type): Change the
+       constructor to take a token_type instead of the (internal) symbol
+       number.
+       Call yytranslate_.
+       * data/variant.hh (b4_symbol_constructor_define_): Therefore,
+       don't call yytranslate_ here.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       TODO: statistics.
+       * TODO (Figures): New.
+
+2009-09-13  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: clean up push.at test group titles.
+       * tests/push.at: Remove "Push Parsing: " from test group titles
+       because these are already under the banner "Push Parsing Tests".
+
+2009-09-12  Alex Rozenman  <rozenman@gmail.com>
+
+       Provide an additional sub-message for clarity.
+       Add "symbol not found in production" error message when
+       an "invalid reference" is detected in named references
+       resolution.
+       * src/scan-code.l: Update "invalid reference" case.
+       * tests/named-ref.at: Adjust test-cases.
+
+2009-09-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       Clean up yacc.c a little.
+       * data/yacc.c: Clean up M4 for readability, and make output
+       whitespace more consistent.  For the main parse function
+       comment, instead of saying "yyparse or yypush_parse", say either
+       "yyparse" or "yypush_parse" depending on which it actually is.
+
+2009-09-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix --enable-gcc-warnings.
+       * src/parse-gram.y (%printer <param>): Handle param_none.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: syntax_error as exceptions.
+       It is common to use sort of factories in the user actions.  These
+       factories may check some "syntactic" constraints that are not
+       enforced by the grammar itself.  This is possible using YYERROR
+       within the action itself.  Provide the user with a means to throw
+       a syntax_error exception.
+
+       * data/c++.m4 (b4_public_types_declare, b4_public_types_define):
+       Declare and define yy::parser::syntax_error.
+       * data/lalr1.cc: Include stdexcept.
+       (yy::parser::parse): Wrap the user action within a try/catch.
+       * data/glr.cc: Include stdexcept.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: add missing "inline".
+       * data/c++.m4 (b4_public_types_define): Add missing inline to
+       implementations provided in headers.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       %param: documentation.
+       * NEWS (2.6): Document %param, %lex-param, and %parse-param
+       changes.
+       * doc/bison.texinfo: Document that %lex-param and %parse-param
+       are n-ary.
+       Changes some examples to demonstrate it.
+       (Calc++ Parser): Use %param.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       style changes.
+       * src/parse-gram.y (add_param): Scope changes.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       %parse: support several arguments.
+       * src/parse-gram.y (current_param): New.
+       (param_type): Add param_none.
+       (params): New nonterminal.
+       Use it.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+       %param.
+       Provide a means to factor lex-param and parse-param common
+       declarations.
+
+       * src/parse-gram.y (param_type): New.
+       Define a %printer for it.
+       (add_param): Use it.
+       (%parse-param, %lex-param): Merge into...
+       (%parse): this new token.
+       Adjust the grammar to use it.
+       * src/scan-gram.l (RETURN_VALUE): New.
+       (RETURN_PERCENT_FLAG): Use it.
+       (RETURN_PERCENT_PARAM): New.
+       Use it to support %parse-param, %lex-param and %param.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+       Use aver not assert.
+       * src/output.c: Don't include assert.h.
+       (output_skeleton): Use aver not assert.
+       * src/system.h (aver): In documentation of why, add links to
+       Paul Eggert's explanations in the mailing lists.
+
+2009-09-05  Alex Rozenman  <rozenman@gmail.com>
+
+       Use "Unresolved reference" error message when no symbols were found
+       in a symbolic reference resolution. Remove .expr and -expr from
+       the shown reference when the reference is unresolved.
+       * src/scan-code.l: Change the error message, adjust location columns,
+       rename variable "exact_mode" to "explicit_bracketing".
+       * tests/named-ref.at: Adjust existing tests and add a new one.
+
+2009-09-04  Akim Demaille  <demaille@gostai.com>
+
+       Adjust synclines in src/parse-gram.[ch].
+       * tests/bison.in: Do some magic (including working around issues
+       with ylwrap) when this wrapper is used to compile
+       src/parse-gram.y.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+       Complain about unused %define variables and %code qualifiers.
+       * NEWS (2.5): Document.
+       * data/bison.m4 (b4_check_user_names): Complain instead of warn.
+       * doc/bison.texinfo (Decl Summary): Document complaint, and
+       improve %define documentation a little otherwise.
+       * tests/input.at (Reject unused %code qualifiers): Update.
+       (%define errors): Update.
+       (%define, --define, --force-define): Update.
+       (%define backward compatibility): Update.
+       (Unused %define api.pure): Update.
+       * tests/push.at (Push Parsing: Unsupported Skeletons): Update.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+       Don't suppress warnings about unused parse.error.
+       * data/bison.m4 (b4_error_verbose_flag): Don't examine value of
+       %define variable parse.error unless b4_error_verbose_flag is
+       actually expanded in a skeleton.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+       * NEWS (2.4.2): Add "Internationalization" item.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+       bootstrap: fix/improve find_tool.
+       * bootstrap (find_tool): Improve error messages.
+       Fix typo about find_tool_names.
+
+2009-08-29  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
+       See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
+       * src/scan-code.h (code_props_rule_action_init): Rename
+       named_ref arg to name so it doesn't shadow named_ref type.  This
+       makes it consistent with the function definition in scan-code.l
+       anyway.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+       %define: accept unquoted values.
+       * NEWS (2.5): Group all %define changes together, and document
+       this one.  Remove quotes in IELR and canonical LR entry.
+       * doc/bison.texinfo: Remove quotes in most examples throughout.
+       (Decl Summary): Update %define documentation.
+       (Table of Symbols): Likewise.
+       * src/ielr.c (LrType): Update documentation.
+       * src/parse-gram.y (content.opt): Add production for ID.
+       * tests/actions.at: Remove quotes in most tests.
+       * tests/calc.at: Likewise.
+       * tests/existing.at: Likewise.
+       * tests/input.at: Likewise.
+       * tests/local.at: Likewise.
+       * tests/push.at: Likewise.
+       * tests/reduce.at: Likewise.
+       * tests/torture.at: Likewise.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+       %define lr.type: make values lowercase IDs.
+       That is, "LALR" => "lalr", "IELR" => "ielr", and
+       "canonical LR" => "canonical-lr".
+       * NEWS (2.5): Update documentation.
+       * doc/bison.texinfo (Decl Summary): Likewise.
+       * src/ielr.c (ielr): Use new values.
+       * src/ielr.h (ielr): Update documentation.
+       * src/reader.c (prepare_percent_define_front_end_variables): Use
+       and validate new values.
+       * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
+       grammars.
+       * tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
+
+2009-08-27  Eric Blake  <ebb9@byu.net>
+
+       scan-gram: avoid portability trap with ctype usage.
+       * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
+       Avoid compiler warning.
+
+2009-08-27  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: use perl for printing special sequences to files.
+       And skip tests if perl is not available.  This is better than
+       playing tricks with shell portability.  Suggested by Akim
+       Demaille.
+       * tests/input.at (Bad character literals): Use it here for
+       omitting final newlines.
+       (Bad escapes in literals): Use it here for special characters.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+       tests: show a use of %define lr.default-reductions "consistent"
+       * tests/conflicts.at (%nonassoc and eof): Extend to test that it
+       prevents the omission of expected tokens for %error-verbose.
+
+2009-08-26  Akim Demaille  <demaille@gostai.com>
+
+       tests: portability fix.
+       * tests/input.at (Bad escapes in literals): Don't expect "echo
+       '\0'" to output \ then 0.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+       Actually handle the yytable zero value correctly this time.
+       * data/bison.m4 (b4_integral_parser_tables_map): Don't mention
+       zero values in the YYTABLE comments.
+       * data/glr.c (yytable_value_is_error): Don't check for zero
+       value.
+       * data/lalr1.cc (yy_table_value_is_error_): Likewise.
+       * data/yacc.c (yytable_value_is_error): Likewise.
+       * data/lalr1.java (yy_table_value_is_error_): Likewise.
+       (yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
+       * src/tables.h: In header comments, explain why it's useless to
+       check for a zero value in yytable.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+       More fixes related to last two patches.
+       * data/bison.m4 (b4_integral_parser_tables_map): Fix YYTABLE
+       comments: zero indicates syntax error not default action.
+       * data/c.m4 (b4_table_value_equals): Comment that YYID must be
+       defined.
+       * data/glr.c (yyis_pact_ninf): Rename to...
+       (yypact_value_is_default): ... this.
+       (yyisDefaultedState): Update for rename.
+       (yyis_table_ninf): Rename to...
+       (yytable_value_is_error): ... this, and check for value zero
+       besides just YYTABLE_NINF.
+       (yygetLRActions): Check for default value from yypact.  It
+       appears that this check is always performed before this function
+       is invoked, and so adding the check here is probably redundant.
+       However, the code may evolve after this subtlety is forgotten.
+       Also, update for rename to yytable_value_is_error.  Because that
+       macro now checks for zero, a different but equivalent branch of
+       the if-then-else here is evaluated.
+       (yyreportSyntaxError): Update for rename to
+       yytable_value_is_error.  The zero condition was mishandled
+       before.
+       (yyrecoverSyntaxError): Update for renames.  No behavioral
+       changes.
+       * data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
+       New function.
+       (yy_table_value_is_error_): New function.
+       (parse): Use new functions where possible.  No behavioral
+       changes.
+       (yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
+       The zero condition was mishandled before.
+       * data/yacc.c (yyis_pact_ninf): Rename to...
+       (yypact_value_is_default): ... this.
+       (yyis_table_ninf): Rename to...
+       (yytable_value_is_error): ... this, and check for value zero
+       besides just YYTABLE_NINF.
+       (yysyntax_error): Update for rename to yytable_value_is_error.
+       The zero condition was mishandled before.
+       (yyparse): Update for renames.  No behavioral changes.
+       * src/tables.h: Improve comments about yypact, yytable, etc.
+       more.  Most importantly, say yytable value of zero means syntax
+       error not default action.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix %error-verbose for conflicts resolved by %nonassoc.
+       * NEWS (2.5): Document.
+       * data/glr.c (yyreportSyntaxError): Fix this by checking
+       yyis_table_ninf.
+       * data/yacc.c (yysyntax_error): Likewise.
+       * data/lalr1.cc (yysyntax_error_): Fix this by checking
+       yytable_ninf_.
+       * data/lalr1.java (yysyntax_error): Likewise.
+       * tests/conflicts.at (%nonassoc and eof): Update expected output
+       and remove FIXME.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+       Some code and documentation improvements.
+       * data/c.m4 (b4_table_value_equals): New macro to capture
+       some repeated code.
+       * data/glr.c (yyis_pact_ninf): Use it here.
+       (yyis_table_ninf): Likewise.
+       (yyreportSyntaxError): Improve internal comments.
+       * data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
+       Use it everywhere possible.
+       (yyis_table_ninf): Likewise.
+       (yysyntax_error): Improve internal comments.
+       * data/lalr1.cc (yysyntax_error_): Likewise.
+       * data/lalr1.java (yysyntax_error): Likewise.
+       * src/tables.h: Improve comments about yypact, yytable, etc.
+
+2009-08-21  Joel E. Denny  <jdenny@clemson.edu>
+
+       Use locale when quoting.
+       * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
+       quote rather than implementing quoting here.
+
+2009-08-20  Eric Blake  <ebb9@byu.net>
+
+       Make previous patch more robust.
+       * src/output.c (ARRAY_CARDINALITY): New macro, copied from
+       argmatch.h.
+       (output_skeleton): Use it.
+       Suggested by Akim Demaille.
+
+       Import latest m4/m4.m4.
+       * submodules/autoconf: Update to autoconf 2.64.
+       * configure.ac (M4_GNU_OPTION): New define.
+       * src/output.c (output_skeleton): Use it to resolve FIXME.
+       * NEWS: Mention this.
+
+2009-08-19  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix complaints about escape sequences.
+       Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
+       * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
+       For a \0 and similar escape sequences meaning the null
+       character, report an invalid escape sequence instead of an
+       invalid null character because the latter does not actually
+       appear in the user's input.
+       In all escape sequence complaints, don't escape the initial
+       backslash, and don't quote when the sequence appears at the end
+       of the complaint line unless there's whitespace that quotearg
+       won't escape.
+       Consistently say "invalid" not "unrecognized".
+       Consistently prefer "empty character literal" over "extra
+       characters in character literal" warning for invalid escape
+       sequences; that is, consistently discard those sequences.
+       * tests/input.at (Bad escapes in literals): New.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       doc: fixes.
+       * doc/bison.texinfo: Fix minor Texinfo errors.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       tests: distcc compliance.
+       * tests/synclines.at (AT_SYNCLINES_COMPILE): Discard distcc's
+       error messages from the output.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       variables: simplify the upgrade of namespace into api.namespace.
+
+       This patch simplifies "variables: rename namespace as
+       api.namespace", commit 67501061076ba46355cfd9f9361c7eed861b389c.
+       Suggested by Joel E. Denny in
+       http://lists.gnu.org/archive/html/bison-patches/2009-07/msg00006.html
+
+       * src/muscle-tab.c (muscle_percent_variable_update): New.
+       (muscle_percent_define_insert): Use it in replacement of the
+       previous tr invocation.
+       Remove variable_tr, no longer needed.
+       * data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+       Remove.
+       * data/c++.m4: No longer handle namespace -> api.namespace.
+       * tests/input.at (%define backward compatibility): Check that
+       namespace is treated as api.namespace.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       doc: %initial-action to initialize yylloc.
+       Reported by Bill Allombert.
+       * doc/bison.texinfo: Set fill-column to 76.
+       (Location Type): Document the use of %initial-action to initialize
+       yylloc.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: use state_type.
+       * data/lalr1.cc (yysyntax_error_): Use state_type.
+       Move argument names into yy*.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: get rid of yyparse's yystate.
+       yystate and yystack_[0].state are equal, keep only the latter.
+       The former was also used as a temporary variable to compute the
+       post-reduction state.  Move this computation into an auxiliary
+       function.
+
+       * data/glr.c (yyLRgotoState): Fuse variable definition and first
+       assignment.
+       * data/lalr1.cc (yy_lr_goto_state_): New.
+       (yyparse): Use it.
+       Replace remaining uses of yystate by yystate_[0].state.
+       Remove the former.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: destroy $$ when YYERROR is called.
+       * data/lalr1.cc (yyreduce): Compute the resulting state before
+       running the user action so that yylhs is a valid symbol.
+       (yyerrorlab): Since yylhs is complete (it knows its type), we can
+       simply call yy_destroy_ to destroy $$ on YYERROR invocations.
+       * tests/c++.at (AT_CHECK_VARIANTS): Test YYERROR with variants.
+
+2009-08-18  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: update for gnulib's recent update-copyright changes
+       * gnulib: Update.
+       * .x-update-copyright (COPYING): Add as it's no longer implied
+       when .x-update-copyright is present.
+       * cfg.mk (update-copyright-local): Remove, now ignored.
+       (update-copyright): Declare update-b4-copyright as a dependency.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+       build: require gettext 0.17.
+
+       Suggested by Bruno Haible.
+       http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
+       * configure.ac: require gettext 0.17 to ensure compatibility with
+       gnulib.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+       build: lower gettext requirements.
+
+       Bison was uselessly requiring the formatstring macros from
+       gettext, which resulted in mo files not being installed on systems
+       that perfectly supported Bison mo files.  Lower the requirement.
+       http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
+
+       * configure.ac: Require need-ngettext instead of
+       need-formatstring-macros.
+       Reported by Martin Jabocs.
+       Suggested by Bruno Haible.
+       * INSTALL: Restructure.
+       (Internationalization): New.
+
+2009-08-14  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: fix use of copyright year intervals.
+       * gnulib: Update.
+       * bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
+       as now recommended in gnulib/NEWS.
+       * build-aux/update-b4-copyright: Fix.
+       * cfg.mk (update-copyright-env): Configure update-copyright.
+
+2009-08-13  Joel E. Denny  <jdenny@clemson.edu>
+
+       Make it easier to write deterministic tests.
+       Continues Akim's work from his 2009-06-10 commits.
+       * src/reader.c (check_and_convert_grammar): Don't add any
+       symbols after the first symbols_do invocation.
+       * src/symtab.c (symbols_sorted): New static global.
+       (user_token_number_redeclaration): Update comments.
+       (symbol_from_uniqstr): If a new symbol is being created, assert
+       that symbols_sorted hasn't been allocated yet.
+       (symbols_free): Free symbols_sorted.
+       (symbols_cmp, symbols_cmp_qsort): New functions.
+       (symbols_do): Sort symbol_table into symbols_sorted on first
+       invocation.
+       * tests/input.at (Numbered tokens): Recombine tests now that the
+       output should be deterministic across multiple numbers.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       tests: GCC 4.5 compliance.
+       * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
+       messages about #error.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       build: fix the generation of the documentation.
+       Some of our targets use "bison --help", but they can't depend on
+       "bison" itself (to avoid additional requirements on the user), so
+       they used to call "make src/bison" in the commands.  Then
+       concurrent builds may fail: one make might be aiming one of its
+       jobs at compiling src/bison, and another job at generating the man
+       page.  If the latter is faster than the former, then we have two
+       makes that concurrently try to compile src/bison.
+
+       This might also be a more convincing explanation for the failure
+       described in the patch "build: fix paths".
+
+       * Makefile.am (SUFFIXES): Initialize.
+       * build-aux/move-if-change: New, symlink to gnulib's.
+       * build-aux/local.mk: Ship it.
+       * doc/common.x: Remove, merged into...
+       * doc/bison.x: here.
+       * doc/local.mk (doc/bison.help): New.
+       ($(CROSS_OPTIONS_TEXI)): Depend on it.
+       Use src/bison.
+       (.x.1): Replace with...
+       (doc/bison.1): this explicit, simpler, target.
+       (common_dep): Remove, inlined where appropriate.
+       (SUFFIXES, PREPATH): Remove, unused.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: improve prefixing.
+       * configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+       change the value of...
+       (gl_LIBOBJS): this.
+       Adjust more variables.
+       * etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+       gl_LIBOBJS.
+       (prefix): Also transform rules whose targets have slashes.
+       Use $prefix liberally.
+       Map @MKDIR_P@ to $(MKDIR_P).
+       Prefix directories that are mkdir'd.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       build: fix paths.
+       When using $(top_builddir) inconsistently, Make (including GNU
+       Make) is sometimes confused.  As a result it may want to build
+       lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
+       file, different names) concurrently, which, amusingly enough,
+       might end with:
+
+         ranlib lib/libbison.a
+         ranlib lib/libbison.a
+         make[2]: *** [lib/libbison.a] Segmentation fault
+
+       on OS X.
+
+       * doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
+       needed.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       distcheck: fix.
+
+       * examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       * tests/local.mk (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       Miscellaneous code readability improvements.
+
+       * src/reader.c (reader): Move %define front-end variable
+       defaults and checking into...
+       (prepare_percent_define_front_end_variables): ... this new
+       function.
+
+       * src/scan-gram.l (INITIAL): For consistency with string
+       literals, don't store open quote on character literal.  It's
+       discarded before returning anyway.
+       (SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
+       Make length test more readable, and make the character stored
+       for an empty literal more obvious while consistent with the
+       previous behavior.
+
+       * src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
+       USER_NUMBER_HAS_STRING_ALIAS throughout.
+       * src/symtab.c (symbol_make_alias): Remove comment from symtab.c
+       that is repeated in symtab.h.  Improve argument names to make it
+       clear which side of the symbol-string alias pair is which.
+       (symbol_check_alias_consistency): Improve local variable names
+       for the same purpose.
+       * src/symtab.h (struct symbol): Make comments about aliases
+       clearer.
+       (symbol_make_alias): Improve comments and argument name.
+       * src/output.c (token_definitions_output): Update for rename to
+       USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
+
+2009-08-08  Alex Rozenman  <rozenman@gmail.com>
+
+       Convert "misleading reference" messages to warnings.
+       * src/scan-code.l: New function 'show_sub_messages', more
+       factoring.
+       * tests/named-ref.at: Adjust tests.
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: run "make update-copyright"
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: make update-b4-copyright easier to use
+       * build-aux/update-b4-copyright: In warnings, report line
+       numbers rather than character positions.
+       * cfg.mk (update-copyright-local): Set to update-b4-copyright so
+       that update-copyright runs it.
+       * gnulib: Update.
+
+2009-08-05  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: clean up update-b4-copyright code
+       * build-aux/update-b4-copyright: Do not accept 2-digit
+       UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
+       Don't accept a `[' in a b4_copyright argument.
+       Format code more consistently.
+       Don't assume b4*copyright never occurs.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: automate b4_copyright updates.
+       * Makefile.am (update-b4-copyright): New target rule.
+       * build-aux/local.mk (EXTRA_DIST): Add update-b4-copyright.
+       * build-aux/update-b4-copyright: New.
+       * data/yacc.c: Remove stray characters around b4_copyright
+       invocations.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: automate annual package-wide copyright-year update.
+       * .x-update-copyright: New.
+       * Makefile.am (EXTRA_DIST): Remove maint.mk.
+       * bootstrap.conf (gnulib_modules): Add maintainer-makefile and
+       update-copyright.  Remove gnumakefile, which is implied by
+       maintainer-makefile.
+       * cfg.mk (bootstrap-tools): Copy from old maint.mk.
+       * gnulib: Update.
+       * maint.mk: Remove, now copied from gnulib.
+       * examples/extexi: Add missing "(C)" in copyright statement so
+       update-copyright can recognize it.
+       * src/LR0.h: Likewise.
+       * src/print.h: Likewise.
+       * src/print_graph.h: Likewise.
+       * src/gram.c: Add missing comma in copyright statement.
+       * src/gram.h: Likewise.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix "make distcheck".
+       * examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
+       of just calc.stamp.
+
+2009-08-01  Joel E. Denny  <jdenny@clemson.edu>
+
+       Pacify "gcc -Wunused" for the input function from Flex.
+       Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
+       and later.
+       * src/scan-code.l: Add "%option noinput", which I cannot find in
+       the Flex manual, but which Flex has supported since at least as
+       far back as 2.5.4.  However, if any of our developers still use
+       Flex 2.5.4, they'll need to stop configuring with
+       --enable-gcc-warnings because "%option noinput" didn't work
+       correctly until Flex 2.5.6.
+       * src/scan-gram.l: Likewise.
+       * src/scan-skel.l: Likewise.
+
+2009-07-31  Alex Rozenman  <rozenman@gmail.com>
+
+       Fix --enable-gcc-warnings problems.
+       * src/reader.c: Adjust variable names.
+       * src/scan-code.l: Fix prototypes and adjust names.
+       * src/named-ref.c: Remove redundant "if".
+
+2009-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix a --enable-gcc-warnings problem.
+       * src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
+       variable.
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Warn about character literals not of length one.
+       * NEWS (2.5): Document.
+       * src/scan-gram.l (INITIAL): Remove comment that we don't check
+       the length.
+       (SC_ESCAPED_CHARACTER): Warn if length is wrong.
+       * tests/input.at (Bad character literals): New test group.
+
+2009-07-24  Alex Rozenman  <rozenman@gmail.com>
+
+       Fix some memory leaks.
+       * src/named-ref.c: Add a pointer check (named_ref_free).
+       * src/scan-code.l: New function (variant_table_free). Called in
+       code_scanner_free.
+       * src/symlist.c: Call to named_ref_free (symbol_list_free).
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/lalr.c (state_lookahead_tokens_count): Correct comment.
+
+2009-07-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Some M4 cleanup in the testsuite.
+       Suggested by Eric Blake at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
+       * tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
+       complicate the code by distinguishing between a missing value
+       and an empty string value for an optional argument.  This fix is
+       allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
+       * tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
+       (AT_TEST_TABLES_AND_PARSE): ... this now that the special
+       arguments are not needed because of the following changes.
+       Fix stale comments.
+       Bison developers should use GNU M4 and should not use
+       POSIXLY_CORRECT when building the test suite, so do not
+       complicate the code by avoiding $10 and above.
+       Do not quote an empty string value for an optional argument, and
+       do not distinguish between a missing value and an empty string
+       value.
+
+2009-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Revert unnecessary column realignment in --help output.
+       Reported by Akim Demaille at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
+       * src/getargs.c (usage): Here.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+       Alphabetical order in src/local.mk.
+       * src/local.mk: Adjust.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+       Style changes and factoring.
+       * src/named-ref.h: Add comments.
+       * src/parse-gram.y: Readability and style changes.
+       * src/reader.c: Factoring: assign_named_ref function.
+       * src/scan-code.l: Factoring and style changes. Rename
+       parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
+       Use "unsigned" type for variant index. Improve readablity.
+       * src/scan-gram.l: Change error messages and add comments.
+       * src/symlist.h: symbol_list_null: New function decl.
+       * src/symlist.c: symbol_list_null: Implement here.
+       * tests/named-refs.at: Adjust for new error messages.
+
+2009-06-29  Eric Blake  <ebb9@byu.net>
+
+       scan-code: avoid compiler warnings
+       * src/scan-code.l (parse_named_ref): Use correct specifiers.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       build: avoid concurrent extraction of calc++.
+       * examples/calc++/Makefile.am (calc.stamp): New.
+       Depend on it to create the sources of calc++ so that concurrent
+       builds don't launch several "extexi" in parallel.
+       Not only this is inefficient, this also builds incorrect sources
+       with several extractions mixed together.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       parse.error: fix.
+       * data/bison.m4: Move code related to specific variables after the
+       definition of the variable-maintaining macros so that we don't
+       "invoke" b4_percent_define_check_values before it is defined.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       variables: parse.error
+
+       Implement, document, and test the replacement of %error-verbose
+       by %define parse.error "verbose".
+       * data/bison.m4 (b4_error_verbose_if): Reimplement to track the
+       values of the parse.error variable.
+       Make "simple" its default value.
+       Check the valid values.
+       * src/parse-gram.y: Use %define parse.error.
+       (PERCENT_ERROR_VERBOSE): New token.
+       Support it.
+       * src/scan-gram.l: Support %error-verbose.
+
+       * doc/bison.texinfo (Decl Summary): Replace the documentation of
+       %define error-verbose by that of %define parse.error.
+       * NEWS: Document it.
+
+       * tests/actions.at, tests/calc.at: Use parse.error instead of
+       %error-verbose.
+
+2009-06-27  Alex Rozenman  <rozenman@gmail.com>
+
+       Implement support for named symbol references.
+       * src/parse-gram.y: Add new syntax (named_ref.opt).
+       * src/reader.c: Store named refs in symbol lists.
+       * src/reader.h: New argument for symbol_append and
+       action_append functions.
+       * src/scan-code.h: Add new field (named_ref) into
+       code_props data structure. Keeps named ref of midrule
+       actions.
+       * src/scan-code.l: Support for named refs in semantic
+       action code. New function 'parse_named_ref'.
+       * src/scan-gram.l: Support bracketed id.
+       * src/symlist.c: Store named refs in symbol lists.
+       * src/symlist.h: New field in symbol list: named_ref.
+       * src/named-ref.h: New file, a struct for named_ref.
+       * src/named-ref.cp: New file, named_ref_new function.
+       * src/local.mk: Add two new files.
+       * tests/testsuite.at: Include new test group:
+       * tests/named-refs.at: this new file.
+
+2009-06-25  Akim Demaille  <demaille@gostai.com>
+
+       hash: check insertion for memory exhaustion.
+       * src/uniqstr.c (uniqstr_new): New.
+
+2009-06-24  Akim Demaille  <demaille@gostai.com>
+
+       variables: rename namespace as api.namespace.
+       Discussed in
+       http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00033.html
+
+       * data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+       New.
+       (b4_percent_define_use): New.
+       Use it where applicable.
+       * data/c++.m4: Replace uses of the variable "namespace" by
+       "api.namespace".
+       Default the latter to the former.
+       * doc/bison.texinfo (Decl Summary): Document "namespace" as
+       obsolete.
+       Document api.namespace.
+       Use @samp to document %define uses, keep @code for identifiers.
+       * NEWS: Likewise.
+       * tests/c++.at, tests/input.at: Test api.namespace instead of
+       namespace. (The tests passed with namespace.)
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       style changes.
+       * data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
+       * src/print-xml.c: Style changes.
+       * tests/conflicts.at: Comment changes.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       xml: beware of user strings used to give a %prec to rules.
+       * tests/conflicts.at (%prec with user strings): New.
+       * src/gram.c (grammar_rules_print_xml): Escape the precedence for
+       XML output.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       hash: check insertion for memory exhaustion.
+       * src/muscle-tab.c (muscle_insert, muscle_grow)
+       * src/state.c (state_hash_insert): Check the return value of
+       hash_insert.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       tests: honor TESTSUITEFLAGS in every check target.
+       * tests/local.mk (RUN_TESTSUITE): New.
+       (check-local, installcheck-local, maintainer-check-g++)
+       (maintainer-check-posix, maintainer-check-valgrind): Use it.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       deterministic test suite.
+       Some consistency checks on symbols are performed after all the
+       symbols were read, by an iteration over the symbol table.  This
+       traversal is nondeterministic, which can be a problem for test
+       cases.
+       Avoid this.
+       Addresses another form of nondeterminism reported by Joel E. Denny.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+       * tests/input.at (Numbered tokens): Split the hexadecimal/decimal
+       test in two.
+       Use different file names for the three tests to make the
+       maintenance easier.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: update.
+       * gnulib: Update to latest.
+       * lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
+       * m4/.gitignore: Regen.
+       * src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
+       Call xalloc_die on hash_insert failures.
+       Requested by the new __warn_unused_result__ attribute of
+       hash_insert.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       deterministic user-token-number redeclaration errors.
+       Address nondeterminism reported by Joel E. Denny.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+       * src/uniqstr.h: Comment changes.
+       * src/location.h (boundary_cmp, location_cmp): New.
+       * src/symtab.c (user_token_number_redeclaration): New.
+       (symbol_translation): Use it.
+       * tests/input.at (Numbered tokens): Adjust the expected output.
+
+2009-05-25  Akim Demaille  <demaille@gostai.com>
+
+       build: avoid ignored errors.
+       * doc/local.mk ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
+       errors, they pollute the output.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Convert multiple variable definition warnings to complaints.
+       * NEWS (2.5): Add a new entry for that change.
+       * doc/bison.texinfo (Decl Summary): Update %define entry.
+       (Bison Options): Update -D/--define/-F/--force-define entry.
+       * src/muscle-tab.c (muscle_percent_define_insert): Implement.
+       * src/muscle-tab.h (muscle_percent_define_insert): Update
+       comments.
+       * tests/input.at (`%define errors'): Update.
+       (`%define, --define, --force-define'): Update.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       -F/--force-define and relative %define/-D/--define priorities.
+       * NEWS (2.5): Add documentation to -D/--define entry.
+       * build-aux/cross-options.pl: Hard-code association of
+       --force-define with %define.
+       * doc/bison.texinfo (Decl Summary): In %define entry,
+       cross-reference command-line options.
+       (Bison Options): Add documentation to -D/--define entry.
+       (Option Cross Key): Widen column for --force-define row.
+       * src/getargs.c (usage): Document -F/--force-define.  Realign
+       options in output.
+       (short_options, long_options, getargs): Parse -F/--force-define,
+       and update muscle_percent_define_insert invocations.
+       * src/muscle-tab.h (muscle_percent_define_how): New enum type.
+       (muscle_percent_define_insert): Add argument with that type.
+       * src/muscle-tab.c (muscle_percent_define_insert): Implement
+       -F/--force-define behavior and priorities.
+       (muscle_percent_define_ensure): Update
+       muscle_percent_define_insert invocation.
+       * src/parse-gram.y (prologue_declaration): Update
+       muscle_percent_define_insert invocations.
+       * tests/input.at (`%define, --define'): Rename to...
+       (`%define, --define, --force-define'): ... this and extend.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update some comments to make sense for -D.
+       * data/bison.m4 (b4_check_user_names): In header comments, say
+       "user occurrence" instead of "grammar occurrence".
+       * src/muscle-tab.h (muscle_percent_define_insert): Likewise.
+       (muscle_percent_code_grow): Likewise just for consistency.
+
+2009-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/c++.m4 (b4_namespace_close): Simplify slightly.
+
+2009-05-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Handle a trailing `:' in a user-supplied C++ namespace better.
+       * data/c++.m4 (b4_namespace_close): Don't let it be printed
+       among the closing braces here.  This fix might make the
+       generated code easier to debug, but otherwise it should be
+       insignificant because a trailing `:' is a C++ error already.
+
+2009-05-19  Akim Demaille  <demaille@gostai.com>
+
+       remove useless variable.
+       * src/getargs.c (skeleton_arg): Remove now useless variable.
+       Should help the compiler see that this printf-like call is sane.
+
+2009-05-15  Akim Demaille  <demaille@gostai.com>
+
+       Rename token.prefix as api.tokens.prefix.
+       Discussed here.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00024.html.
+
+       * NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
+       * tests/c++.at, tests/calc.at, tests/java.at, tests/local.at
+       (token.prefix): Rename as...
+       (api.tokens.prefix): this.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: use C++ headers.
+       * doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+       headers.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: token.prefix
+       * doc/bison.simple (Decl Summary): Document token.prefix.
+       (Calc++ Parser): Various fixes.
+       Formatting changes.
+       Use token.prefix.
+       Introduce a macro TOKEN to shorten the code and make it more
+       readable.
+       (Calc++ Scanner): Adjust.
+       * NEWS (Variable token.prefix): New.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+       bison: catch bad symbol names.
+       * src/scan-gram.l({int}{id}): Report as an invalid identifier.
+       * tests/input.at: Adjust.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+       identifiers: dashes are letters.
+       Dashes can now start identifiers (symbols and directives).
+
+       * src/scan-gram.l ({letter}): Add dash.
+       ({id}): Remove it.
+       * tests/input.at (Symbols): Adjust.
+       Remove stray comment.
+       * tests/regression.at (Invalid inputs): Adjust error message.
+       * doc/bison.texinfo (Symbols): Update.
+
+2009-05-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Declare %code to be a permanent feature.
+       * NEWS (2.4.2): Here.
+       * doc/bison.texinfo (Prologue Alternatives): Don't say it's
+       experimental.
+       (Decl Summary): Likewise.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Convert underscores to dashes in some %define variable names.
+       For now, just api.push-pull and lr.keep-unreachable-states.
+       Maintain old names for backward compatibility.
+       * NEWS (2.5): Document.
+       * data/c.m4 (b4_identification): Update comment.
+       * data/yacc.c: Update access.
+       * doc/bison.texinfo: Update.
+       * etc/bench.pl.in (bench_push_parser): Update use.
+       * src/files.c (tr): Move to...
+       * src/getargs.c, src/getargs.h (tr): ... here because I can't
+       think of a better place to expose it.  My logic is that, for all
+       uses of tr so far, command-line arguments can be involved, and
+       getargs.h is already included.
+       * src/main.c (main): Update access.
+       * src/muscle_tab.c (muscle_percent_define_insert): Convert old
+       variable names to new variable names before assigning value.
+       * src/reader.c (reader): Update setting default.
+       * tests/calc.at: Update uses.
+       * tests/conflicts.at (Unreachable States After Conflict
+       Resolution): Update use.
+       * tests/input.at (%define enum variables): Update use.
+       (%define backward compatibility): New test group.
+       * tests/push.at: Update uses.
+       * tests/reduce.at: Update uses.
+       * tests/torture.at: Update uses.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Set all front-end %define defaults in one place.
+       * src/main.c (main): Move lr.keep_unreachable_states default...
+       * src/reader.c (reader): ... to here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Rename lr.default_reductions to lr.default-reductions.
+       * NEWS (2.5): Here.
+       * doc/bison.texinfo: Here.
+       * src/lalr.c (initialize_LA): Here.
+       * src/print.c (print_reductions): Here.
+       * src/reader.c (reader): Here.
+       * src/tables.c (action_row): Here.
+       * tests/input.at (%define enum variables): Here.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Pacify ./configure --enable-gcc-warnings.
+       * tests/input.at (Symbols): Prototype yyerror and yylex.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document how `%define "var" "value"' is not M4-friendly.
+       * src/parse-gram.y (variable): In comments here.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up recent patches a little.
+       Reported by Akim Demaille.
+       * doc/bison.texinfo (Understanding): Fix typos.
+       * src/print.c (print_reductions): Don't use negated variable.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       List accepted values for a %define enum variable with an invalid value.
+       Suggested by Akim Demaille at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
+       * data/bison.m4 (_b4_percent_define_check_values): Implement.
+       * src/muscle-tab.c (muscle_percent_define_check_values): Implement.
+       * tests/input.at (%define lr.default_reductions invalid values): Merge
+       into...
+       (%define enum variables): ... here, and update output.
+
+2009-04-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Rename "default rule" to "default reduction".
+       This includes changing variable names in code, changing
+       comments, and renaming %define lr.default_rules to %define
+       lr.default_reductions.
+       * NEWS (2.5): Update IELR documentation.
+       * data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
+       documentation.
+       * data/glr.c, data/lalr1.java: Sync copyright dates.
+       * doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
+       and lr.type documentation.  Make some other wording
+       improvements.
+       (Glossary): Adjust cross-references and Default Reduction
+       definition.
+       * src/lalr.c (state_lookahead_tokens_count): Adjust code.
+       Remove a confusing comment pointed out by Akim Demaille.
+       (initialize_LA): Adjust code.
+       * src/print-xml.c (print_reductions): Adjust code.
+       * src/print.c (print_reductions): Adjust code.
+       * src/reader.c (reader): Adjust code.
+       * src/tables.c (action_row): Adjust code.
+       (token_actions): Adjust code.
+       * src/tables.h: Adjust YYDEFACT documentation.
+       * tests/input.at (%define lr.default_rules invalid values):
+       Rename test group to...
+       (%define lr.default_reductions invalid values): ... this, and
+       update grammar file and expected output.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
+       (AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
+
+2009-04-21  Akim Demaille  <demaille@gostai.com>
+
+       tests: check the use of dashes and periods in symbols.
+       * tests/input.at (Symbol): New test group.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document %define lr.type and lr.default_rules.
+       * NEWS (2.5): Add an entry.
+       * src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
+       besides just LALR(1) and GLR(1).
+       * doc/bison.texinfo (Introduction): Likewise.
+       (Language and Grammar): Bison is no longer limited to LALR(1)
+       restrictions.
+       (GLR parsing): Say deterministic or LR(1) rather than LALR(1)
+       when trying to distinguish from GLR.  Talk about LR(1) grammars
+       rather than LALR(1) grammars.
+       (Decl Summary): In %define api.push_pull entry, say it applies
+       to deterministic parsers in C rather than LALR(1) parsers in C.
+       Add lr.default_rules entry.
+       Add lr.type entry.
+       (Mystery Conflicts): Bison is no longer limited to LALR(1)
+       restrictions.
+       (Generalized LR Parsing): Same changes as for the previous GLR
+       section.
+       (Memory Management): Say deterministic rather than LALR(1).
+       (Understanding): Correct some bison output.
+       Index discussion of "accepting state".
+       Say deterministic rather than LALR(1).
+       (Bison Options): In --yacc entry, say deterministic rather than
+       LALR(1).
+       In --report, --graph, and --xml entries, just don't mention
+       LALR(1).
+       (C++ Parsers): Say deterministic rather than LALR(1).
+       (Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
+       (Glossary): Add Accepting State, Consistent State, Default Rule,
+       and IELR(1) definitions.
+       In Generalized LR (GLR) definition, make same changes as in
+       previous GLR sections.
+       In LALR(1) definition, say Bison uses LALR(1) by default rather
+       than implying Bison is limited to LALR(1).
+       (LocalWords): Add IELR.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Finish implementing %define lr.type.
+       Its value can be "LALR", "IELR", or "canonical LR".
+       * lib/timevar.def (TV_IELR_PHASE1): New var.
+       (TV_IELR_PHASE2): New var.
+       (TV_IELR_PHASE3): New var.
+       (TV_IELR_PHASE4): New var.
+       * src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
+       AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
+       Sbitset.h, ielr.h, and ielr.c.
+       * src/getargs.h, src/getargs.c (enum trace, trace_args,
+       trace_types): Add trace_ielr.
+       * src/lalr.h, src/lalr.c (ngotos): Export it.
+       (F): Rename to...
+       (goto_follows): ... this, update all uses, and export it.
+       (set_goto_map): Export it.
+       (map_goto): Export it.
+       (compute_lookahead_tokens): Don't free goto_follows yet.  Now
+       handled in ielr.
+       (initialize_LA): Export it.  Move lookback allocation to...
+       (lalr): ... here because, for canonical LR, initialize_LA must
+       be invoked but lookback and much of the rest of LALR isn't
+       needed.
+       * main.c (main): Instead of lalr, invoke ielr, which invokes
+       lalr.
+       * src/reader.c (reader): Default lr.type to "LALR".
+       Default lr.default_rules to "accepting" if lr.type is "canonical
+       LR".  Leave the default as "all" otherwise.
+       Check for a valid lr.type value.
+       * src/state.h, src/state.c (struct state_list): Add state_list
+       member.
+       (state_new): Initialize state_list member to NULL.
+       (state_new_isocore): New function, exported.
+       * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
+       exercises all values of lr.type.
+       (GNU AWK Grammar): Rename test group to...
+       (GNU AWK 3.1.0 Grammar): ... this, and extend to use
+       AT_TEST_EXISTING_GRAMMAR.
+       (GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
+       (GNU pic Grammar): Rename test group to...
+       (GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
+       AT_TEST_EXISTING_GRAMMAR.
+       * tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
+       all values of lr.type.
+       (Single State Split): New test groups using AT_TEST_LR_TYPE.
+       (Lane Split): Likewise.
+       (Complex Lane Split): Likewise.
+       (Split During Added Lookahead Propagation): Likewise.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add new files for IELR and canonical LR implementation.
+       * src/AnnotationList.c: New.
+       * src/AnnotationList.h: New.
+       * src/InadequacyList.c: New.
+       * src/InadequacyList.h: New.
+       * src/Sbitset.c: New.
+       * src/Sbitset.h: New.
+       * src/ielr.c: New.
+       * src/ielr.h: New.
+
+2009-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Implement %define lr.default_rules.
+       Its value describes the states that are permitted to contain
+       default rules: "all", "consistent", or "accepting".
+       * src/reader.c (reader): Default lr.default_rules to "all".
+       Check for a valid lr.default_rules value.
+       * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
+       is "accepting", then only mark the accepting state as
+       consistent.
+       (initialize_LA): Tell state_lookahead_tokens_count whether
+       lr.default_rules is "accepting".
+       * src/tables.c (action_row): If lr.default_rules is not "all",
+       then disable default rules in inconsistent states.
+       * src/print.c (print_reductions): Use this opportunity to
+       perform some assertions about whether lr.default_rules was
+       obeyed correctly.
+       * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
+       helps with checking the parser tables for a grammar.
+       * tests/input.at (%define lr.default_rules invalid values): New
+       test group.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
+       AT_TEST_TABLES_AND_PARSE.
+       (`no %define lr.default_rules'): New test group generated by
+       AT_TEST_LR_DEFAULT_RULES.
+       (`%define lr.default_rules "all"'): Likewise.
+       (`%define lr.default_rules "consistent"'): Likewise.
+       (`%define lr.default_rules "accepting"'): Likewise.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       Formatting change.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       bison: factoring.
+       * src/output.c (token_definitions_output): Use symbol_id_get
+       instead of duplicating its logic.
+       * TODO (YYERRCODE): Extend.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       variables: prefer error-verbose to error_verbose.
+       * data/bison.m4 (b4_error_verbose_if): Based on error-verbose
+       instead of error_verbose.
+       * src/scan-gram.l (%error-verbose): Map to the error-verbose
+       variable.
+       * doc/bison.texinfo: Promote %define error-verbose instead of
+       %error-verbose.
+       * tests/actions.at: Prefer %define error-verbose to %error-verbose.
+
+2009-04-15  Akim Demaille  <demaille@gostai.com>
+
+       variables: accept dashes.
+       * data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
+       underscores.
+       * src/scan-gram.l ({id}): Also accept dashes after the initial
+       letter.
+       ({directive}): Use {id}.
+       * src/parse-gram.y: Comment and formatting changes.
+       * doc/bison.texinfo (Symbols): Adjust the lexical definitions of
+       symbols.
+       * src/complain.h, src/complain.c (yacc_at): New.
+       * src/symtab.c (symbol_new): Use yacc_at to report inappropriate
+       symbol names.
+       * src/output.c (token_definitions_output): Do not #define token
+       names with dashes.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       Consistently refer to Yacc, not YACC.
+       * src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
+
+2009-04-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Pacify make maintainer-check-posix.
+       * tests/input.at (%define, --define): Move bison command-line
+       options before grammar file name.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document semicolon warnings.
+       * NEWS (2.5): Here.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       variables: use `parse.assert' instead of `assert'.
+       * TODO (assert): Remove.
+       * data/bison.m4 (b4_assert_if): Replace with...
+       (b4_parse_assert_if): this.
+       * data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust.
+       * doc/bison.texinfo (Decl Summary): Document parse.assert.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       variables: use `parse.trace' instead of `debug'.
+       * src/getargs.c (getargs): Map -t to %define trace.parse.
+       * src/scan-gram.l (%debug): Map to %define trace.parse.
+       * data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
+       names to `_' in macro names.
+       (b4_debug_if): Replace with...
+       (b4_parse_trace_if): this.
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
+       * data/yacc.c: Adjust.
+       * doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
+       Use @code to label the variable list.
+       Document the variable parse.trace.
+       (Tracing): Promote the parse.trace variable.
+       * TODO: %printer is not documented.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       doc: minor fixes.
+       * doc/bison.texinfo (Decl Summary): Fix entry about %debug.
+       (Table of Symbols): Remove duplicate entry for %debug.
+
+2009-04-10  Eric Blake  <ebb9@byu.net>
+
+       submodules: update to latest
+       * submodules/autoconf: Use latest upstream Autoconf.
+
+2009-04-06  Eric Blake  <ebb9@byu.net>
+
+       Work around autoconf 2.63b bug in testsuite.
+       * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
+       autoconf bug related to # in test.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.5): New section.  Describe new -D/--define feature.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       rename muscle_tab.* as muscle-tab.* for consistency.
+       * src/muscle_tab.h, src/muscle_tab.c: Rename as...
+       * src/muscle-tab.h, src/muscle-tab.c: these.
+       * src/getargs.c, src/local.mk, src/main.c, src/output.c,
+       * src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Makefile: introduce $(BISON).
+       * src/local.mk (BISON): New.
+       (YACC): Use it.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       parser: handle %locations as %define locations.
+       * src/getargs.h, src/getargs.c (locations_flag): Remove.
+       * src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure
+       to set "locations" to true.
+       * src/output.c (prepare): Don't output "locations".
+       * src/scan-gram.l (%locations): Handle it as a %<flag>.
+       * src/parse-gram.y: It's no longer a token.
+       Don't handle it.
+       * data/bison.m4 (b4_locations_if): Define it with
+       b4_percent_define_if_define.
+       * data/c.m4, data/glr.cc: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       muscle: factor the handling of obsolete of obsolete directives.
+       Suggested by Joel E. Denny.
+
+       * src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure):
+       New, extracted from...
+       * src/parse-gram.y (prologue_declaration: pure-parser): here.
+       Remove it.
+       (prologue_declaration: "%<flag>"): Use
+       muscle_percent_define_ensure.
+       (%error-verbose, %pure-parser): No longer tokens.
+       * src/scan-gram.l (pure-parser): Return as a %<flag>.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix options documentation.
+       * build-aux/cross-options.pl: As in --help output, write optional
+       arguments as [=ARG] not =[ARG].
+       * doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
+       If the first m4 in $PATH is wrong, it keeps looking.  Moreover, its
+       requirements for a correct m4 are stricter.
+       * m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4.
+       * configure.ac: Update to use AC_PROG_GNU_M4.
+       Reported by Eric Blake.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Help with updating web manual.
+       * HACKING: Incorporate instructions from gnulib/doc/README.
+       * bootstrap.conf (gnulib_modules): Add gendocs.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+       Factor %FLAG at scan level.
+       * src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
+       definitions and associated rules, replaced by....
+       (PERCENT_FLAG): this new token type, and rule.
+       * src/scan-gram.l (RETURN_PERCENT_FLAG): New.
+       Use it for %debug and %error-verbose.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+       Treat %debug as %define debug.
+       * data/bison.m4 (b4_debug_if): New.
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c,
+       * data/lalr1.java: Use it instead of b4_debug_flag.
+       * src/getargs.h, src/getargs.c (debug_flag): Remove.
+       * src/output.c (prepare): Don't output it.
+       * src/parse-gram.y: Treat %debug as %define debug.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+       Treat %error-verbose as %define error_verbose.
+       This allows to pass -Derror_verbose on the command line.  Better
+       yet, it allows to pass -Derror_verbose=$(ERROR_VERBOSE), with
+       ERROR_VERBOSE being defined as false or true.
+       * data/bison.m4 (b4_percent_define_if_define): Instead of relying
+       on b4_percent_define_ifdef, for does not check the defined value,
+       but only whether the symbol is defined, rely on
+       b4_percent_define_flag_if, so that a value of "false" is processed
+       as a false.
+       If not defined, define the flag to "false".
+       (b4_error_verbose_if): New.
+       * data/glr.c, data/lalr1.cc, data/yacc.c: Use it instead of
+       b4_error_verbose_flag.
+       * src/getargs.h, src/getargs.c (error_verbose_flag): Remove.
+       * src/output.c (prepare): Don't output it.
+       * src/parse-gram.y (%error-verbose): Treat as %define error_verbose.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix strange %define locations for default values.
+       Reported by Akim Demaille at
+       <http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
+       and discussed again starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
+       * data/bison.m4 (b4_percent_define_default): Leave syncline blank
+       because location information is bogus.
+       Use angle brackets to delimit fake file name because square brackets
+       look like underexpanded m4.  Choose a better fake file name.
+       Use negative line numbers.
+       * src/muscle_tab.c (muscle_percent_define_default): Likewise.
+       * src/location.c (location_print): If line for a boundary is negative,
+       only print that boundary's file name.
+       * src/location.h: Document that.
+       * tests/skeletons.at (%define Boolean variables: invalid skeleton
+       defaults): Update output.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Pacify ./configure --enable-gcc-warnings.
+       * Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS) because many files
+       in lib won't compile with it.
+       * src/local.mk (src_bison_CFLAGS): Use $(WERROR_CFLAGS) here only.
+
+2009-03-31  Akim Demaille  <demaille@gostai.com>
+
+       bootstrap: --help to stdout.
+       * bootstrap (usage): Don't send --help to stderr.
+       Use a here doc instead of a long string.
+
+2009-03-31  Akim Demaille  <demaille@gostai.com>
+
+       bootstrap: README-hacking no longer exists
+       * bootstrap (checkout_only_file): Set to HACKING.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+       doc: merge HACKING and README-hacking.
+       Two files is confusing.
+       Reported by Alexandre Duret-Lutz.
+
+       * README-hacking: Merge into...
+       * HACKING (Working from the repository): here.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+       doc: update README-hacking.
+       * README-hacking: We now use git and git submodules.
+       Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+       lalr1.cc: avoid GCC 4.3 warnings.
+       GCC 4.3 now warns about "a || b && c" and asks for explicit
+       parentheses.
+       Reported by Alexandre Duret-Lutz.
+       * data/location.cc: Update copyright years.
+       (Position::operator==): Use parens to make precedence explicit.
+       Compare lines and columns first, as they are more likely to be
+       different, and they are faster to compare.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: update.
+       * gnulib: Update to latest.
+       * src/local.mk (AM_CFLAGS): Move to...
+       * Makefile.am: here.
+       * etc/prefix-gnulib-mk (prefix_assignment): Also transform
+       AM_CFLAGS.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Comment changes.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Share b4_yytranslate_define.
+       * data/lalr1.cc (b4_yytranslate_define): Move to...
+       * data/c++.m4: here.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Use locations in the variant example.
+       Yes, this obfuscates the point of this example, variants only.
+       But glr.cc cannot work (yet?) without locations.  This change
+       makes it easier to use this example with glr.cc.
+
+       * examples/variant.yy (assert): %define it.
+       (locations): Request them.
+       (yylex): Bind the location to the stage.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Dub make_TOKEN as a public type interface.
+       * data/c++.m4 (b4_symbol_constructor_declare)
+       (b4_symbol_constructor_define): New empty stubs.
+       (b4_public_types_declare, b4_public_types_define): Use them.
+       * data/lalr1.cc (b4_symbol_constructor_declare)
+       (b4_symbol_constructor_declare_)
+       (b4_symbol_constructor_define_, b4_symbol_constructor_define):
+       Move to...
+       * data/variant.hh: here.
+       Remove the "b4_variant_if" parts, as variant.hh is loaded only if
+       needed.
+       * data/lalr1.cc: No longer invoke b4_symbol_constructor_define and
+       b4_symbol_constructor_declare, as it is now done by
+       b4_public_types_define and b4_public_types_declare.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Coding style changes.
+       * data/lalr1.cc (b4_symbol_constructor_declaration_)
+       (b4_symbol_constructor_declarations)
+       (b4_symbol_constructor_definition_)
+       (b4_symbol_constructor_definitions)
+       (b4_yytranslate_definition): Rename as...
+       (b4_symbol_constructor_declare_)
+       (b4_symbol_constructor_declare)
+       (b4_symbol_constructor_define_)
+       (b4_symbol_constructor_define)
+       (b4_yytranslate_define): these.
+       * data/variant.hh (b4_variant_definition): Rename as...
+       (b4_variant_define): this.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
+       * data/bison.m4 (b4_percent_define_if_define): New.
+       * data/c++.m4 (b4_variant_if): Move to...
+       * data/bison.m4: Here, using b4_percent_define_if_define.
+       * data/lalr1.cc (b4_assert_if, b4_lex_symbol_if): Move to...
+       * data/bison.m4: Here, using b4_percent_define_if_define.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       Dub symbol_type_base as a public type.
+       * data/c++.m4 (b4_public_types_declare): Now define
+       symbol_type_base and symbol_type.
+       (b4_public_types_define): New.
+       In both cases, the definitions are taken verbatim from lalr1.cc.
+       * data/lalr1.cc: Adjust.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       b4_public_types_declare.
+       * data/c++.m4 (b4_public_types_declare): New.
+       * data/glr.cc, data/lalr1.cc: Use it.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+       b4_semantic_type_declare.
+       * data/c++.m4 (b4_semantic_type_declare): New.
+       Factors and generalizes what was in glr.cc and lalr1.cc.
+       * data/variant.hh (b4_semantic_type_declare): Redefine it for
+       variants.
+       * data/lalr1.cc, data/glr.cc: Use it.
+
+2009-02-26  Akim Demaille  <demaille@gostai.com>
+
+       Upgrade gnulib.
+       * gnulib: Upgrade from master.
+       * lib/.cvsignore, lib/.gitignore, m4/.cvsignore, m4/.gitignore:
+       Regen.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+       Remove useless arguments.
+       * data/glr.c (yy_reduce_print): $$ and @$ are not used and not
+       relevant.
+
 2009-02-25  Akim Demaille  <demaille@gostai.com>
 
        Comment changes.
 2009-02-25  Akim Demaille  <demaille@gostai.com>
 
        Comment changes.
 2009-02-19  Akim Demaille  <demaille@gostai.com>
 
        Remove trailing blanks.
 2009-02-19  Akim Demaille  <demaille@gostai.com>
 
        Remove trailing blanks.
-       The epilogue has its own ending 
-       , no need to add another.
-       
+       The epilogue has its own ending \n, no need to add another.
+
        * data/glr.c, data/lalr1.java, data/yacc.c: dnl when outputing the
        epilogue.
        * data/glr.cc: dnl when extending the epilogue.
        * data/glr.c, data/lalr1.java, data/yacc.c: dnl when outputing the
        epilogue.
        * data/glr.cc: dnl when extending the epilogue.
 
 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
-       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