]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Fix some comments concerning LR(0) versus LALR(1).
[bison.git] / ChangeLog
index 7c06eb0caf2a84aef5dcd8b2c8619af1c35597ce..885a57401f9d1c79083a1e679870e389cbc4886c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2010-01-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix some comments concerning LR(0) versus LALR(1).
+
+       Stop equating LR(0) with nondeterminism and LALR(1) with
+       determinism.  That is, if all states are consistent, then LR(0)
+       tables are deterministic.  On the other hand, LALR(1) tables
+       might be nondeterministic before conflict resolution, and GLR
+       permits LALR(1) tables to remain nondeterministic.
+       * src/LR0.c, src/LR0.h: Here.
+       * src/lalr.c, src/lalr.h: Here.
+       * src/main.c (main): Here.
+       * src/state.c, src/state.h: Here.
+
+       * src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
+       parser tables.
+
+2010-01-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: run "make update-copyright"
+
+2009-12-30  Joel E. Denny  <jdenny@clemson.edu>
+
+       POSIX: complain if %prec's token was not defined.
+       * NEWS (2.5): Document.
+       * src/reader.c (grammar_rule_check): Convert warning to
+       complaint.
+       * tests/input.at (%prec's token must be defined): Update.
+
+2009-12-30  Joel E. Denny  <jdenny@clemson.edu>
+
+       POSIX: warn if %prec's token was not defined.
+       Reported by Florian Krohm at
+       <http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
+       * NEWS (2.4.2): Document.
+       * src/reader.c (grammar_rule_check): Implement.
+       (grammar_current_rule_prec_set): Add comments explaining that we
+       here assume a %prec identifier is a token, but we still manage
+       to support POSIX.
+       * tests/input.at (%prec's token must be defined): New test
+       group.
+
+2009-12-31  Joel E. Denny  <jdenny@clemson.edu>
+
+       * HACKING (Release Procedure): Recommend a secure automake.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       Propagate i18n changes into glr.c.
+       * data/glr.c (yyreportSyntaxError): Use "switch" instead of
+       building the error message format dynamically.
+       * data/lalr1.java: Formatting changes.
+
+2009-12-22  Joel E. Denny  <jdenny@clemson.edu>
+
+       Port small part of master's 11707b2b so future ports are easier.
+       * data/lalr1.java (YYParser::yysyntax_error): Untabify.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       Simplify the i18n of the error messages.
+       * data/lalr1.cc: Comment changes.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+       Prefer M4 to CPP.
+       * data/lalr1.cc: Use b4_error_verbose_if instead of #if
+       YYERROR_VERBOSE.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+       Support i18n of the parse error messages.
+       * TODO (lalr1.cc/I18n): Remove.
+       * data/lalr1.cc (yysyntax_error_): Support the translation of the
+       error messages, as done in yacc.c.
+       Stay within the yy* pseudo namespace.
+
+2009-12-22  Joel E. Denny  <jdenny@clemson.edu>
+
+       Port small part of master's 8901f32e so future ports are easier.
+       * data/lalr1.cc (yy::parser::yysyntax_error_): Always add second
+       argument, but name it in the function definition only when
+       verbose error messages are enabled and it'll thus be used.
+       (yy::parser::parse): Update use of yysyntax_error_.
+
+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 (%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-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-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-08  Joel E. Denny  <jdenny@clemson.edu>
+
+       Rename muscle_tab.* to muscle-tab.* for consistency with master.
+       * src/Makefile.am (bison_SOURCES): Update.
+       * src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
+       src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
+       src/tables.c: Update include.
+       * src/muscle_tab.c, src/muscle_tab.h: Rename to...
+       * src/muscle-tab.c, src/muscle-tab.h: ... these and update
+       include.
+
+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-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 (%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 (%error-verbose and YYSTACK_USE_ALLOCA):
+       New test group.
+       (%error-verbose overflow): New test group that reveals an
+       obscure bug.  Expected fail for now.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       Pass the token type to yysyntax_error.
+       * data/yacc.c (yysyntax_error): Take the transated token instead
+       of the raw number.
+       Adjust callers.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+       Simplify the i18n of the error messages.
+       * data/yacc.c (yysyntax_error): Rewrite, using a switch instead
+       of building dynamically the format string.
+
+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-16  Akim Demaille  <demaille@gostai.com>
+
+       doc: comment changes.
+       * doc/bison.texinfo: Comment changes.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+       doc: spell checking.
+       * doc/bison.texinfo: here.
+
+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-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-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>
+
+       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-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/calc.at: Remove quotes in most tests.
+       * 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/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: 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/c.m4 (b4_table_value_equals): Comment that YYID must be
+       defined.
+       * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Fix
+       yytable comments: zero indicates syntax error not default
+       action.
+       * 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>
+
+       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-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>
+
+       distcheck: fix.
+
+       * examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       * tests/Makefile.am (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/Makefile.am (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  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>
+
+       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  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-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
+
+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/Makefile.am.
+       * src/Makefile.am: 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-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-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-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>
+
+       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>
+
+       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-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 invocation.
+       * 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.
+       * 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-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/c++.m4: Update copyright year.
+
+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-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: use C++ headers.
+       * doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+       headers.
+
+2009-05-05  Akim Demaille  <demaille@gostai.com>
+
+       fix hexadecimal token number support.
+       * src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
+
+2009-05-05  Akim Demaille  <demaille@gostai.com>
+
+       tests: check token numbers.
+       * tests/input.at (Numbered tokens): 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>
+
+       space changes.
+       * src/scan-gram.l: Untabify to be robust to zealous editors.
+
+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_grammar): 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-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-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-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add copyright updates missed during previous cherry pick.
+       * src/output.c: Here.
+       * src/parse-gram.y: Here.
+       * src/scan-gram.l: Here.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       variables: accept dashes.
+       * 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-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/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c:
+       Adjust YYDEFACT and yydefact_ documentation.
+       * 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  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>
+
+       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.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+       Fix portability issue in the test suite.
+       * tests/local.at (AT_MATCHES_CHECK): New.
+       Based on Perl instead of Sed.  Sed has too many portability
+       pitfalls, not ever Sed is GNU Sed.
+       * tests/actions.at (Fix user actions without a trailing semicolon):
+       Use it.
+
+2008-12-07  Di-an Jan  <dianj@freeshell.org>
+
+       Implement the FIXME that ends an user action with a semicolon
+       if it seems necessary.
+       * src/scan-code.l (flex rules section): Flag cpp directive from
+       any `#' to the first unescaped end-of-line.  Semicolon is not
+       needed after `;', `{', '}', or cpp directives and is needed after
+       any other token (whitespaces and comments have no effect).
+       * tests/actions.at (Fix user actions without a trailing semicolon):
+       New test.
+       * tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
+       to make user actions complete statements.
+       Adjust column numbers in error messages.
+       * tests/regression.at (Fix user actions without a trailing semicolon):
+       Remove.  Covered by new test.
+
+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): Describe new -D/--define feature.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       --trace=muscles
+       * src/getargs.h, src/getargs.c (trace_muscle): New.
+       (trace_types, trace_args): Support it.
+       * src/output.c (output_skeleton): Use it.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       muscles_output.
+       * src/output.c (muscles_output): New, extracted from...
+       (output_skeleton): here.
+       Adjust.
+
+2008-11-21  Akim Demaille  <demaille@gostai.com>
+
+       Display the changes in cross-options.texi.
+       * build-aux/cross-options.pl ($sep): New, to separate items.
+       * doc/Makefile.am ($(srcdir)/cross-options.texi): Use diff to display
+       the changes.
+
+2008-11-20  Di-an Jan  <dianj@freeshell.org>
+
+       Improves options in the manual.
+       * doc/bison.texinfo (-g, -x): Add space before argument.
+       (Option Cross Key): Implement FIXME: listing directives also.
+       * build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
+       (Short Option): Special case -d.  Put arguments inside @option.
+       (Bison Directive): Add column, automatically extracted from
+       src/scan-gram.l (actual name passed as the first argument)
+       with special case for %define.
+       * doc/Makefile.am (doc/cross-options.texi): Pass src/scan-gram.l
+       to build-aux/cross-options.pl.
+       * src/getargs.c (usage): Document limitations of cross-options.pl.
+       * src/scan-gram.l: Likewise.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+       Copyright years.
+       * data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+       Install autoconf as a submodule to get m4sugar.
+       * .gitmodules: Add submodules/autoconf.
+       * data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
+       submodules/autoconf.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Simplify last patch slightly.
+       * src/getargs.c (getargs): Here.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix last warning from --enable-gcc-warnings.
+       * src/getargs.c (getargs): Don't assign const address to non-const
+       pointer.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+       Handle --enable-gcc-warnings.
+       * src/getargs.c (command_line_location): Set parameters to void.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+       AT_FULL_COMPILE.
+       * tests/actions.at, tests/regression.at: Use it.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       Pass command line location to skeleton_arg and language_argmatch.
+       * src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
+       The location argument is now mandatory.
+       Adjust all dependencies.
+       (getargs): Use command_line_location.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       -D, --define.
+       * src/getargs.c (usage): Document -D.
+       Fix help string for --locations.
+       (command_line_location): New.
+       (short_options, long_options, getargs): Support -D, --define.
+       (getargs): Move -d support at the right place.
+       * doc/bison.texinfo (Bison Options): Update.
+       * tests/input.at (%define, --define): New.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       Initialize the muscle table before parsing the command line.
+       * src/getargs.c (quotearg.h, muscle_tab.h): Include.
+       (getargs): Define file_name.
+       * src/main.c (main): Initialize muscle_tab before calling
+       getargs.
+       * src/muscle_tab.c (muscle_init): No longer define file_name, as
+       its value is not available yet.
+
+2008-11-09  Akim Demaille  <demaille@gostai.com>
+
+       Require the generation of parse-gram.output.
+       * src/Makefile.am (YACC): Pass --report=all.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.5): New stub.
+
+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.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       Fix --help.
+       * src/getargs.c (usage): Fix help string for -W.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       Handle more general types of option arguments.
+       * build-aux/cross-options.pl: The argument ends at the first
+       space, not the first non-symbol character.
+       Use @var for each word appearing the argument description.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Remove spurious initial empty lines.
+       * data/location.cc: End the @output lines with an @.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Remove spurious initial empty lines.
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
+       * data/yacc.c: End the @output lines with an @.
+
+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: Replace with Autoconf 2.63's 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  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.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+       Locations without columns for command line arguments.
+       * src/location.c (location_print): Don't display negative columns.
+       * src/location.h: Document this.
+
+2009-02-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add reminder about uploading public key to keys.gnupg.net.
+       * HACKING (Release Procedure): Here.
+
+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.
+       * lib/Makefile.am (AM_CPPFLAGS): It is now defined by gnulib, so
+       use +=.
+
+2009-01-08  Akim Demaille  <demaille@gostai.com>
+
+       Fix grep portability issues.
+       Grep on Solaris does not support -q.
+       Reported by Summum Bonum.
+
+       * NEWS: Add a stub for 2.4.2.
+       * THANKS: Add Summum Bonum.
+       * tests/atlocal.in (EGREP): New.
+       (CC, CXX, XSLTPROC): Make it possible to override them via
+       envvars.
+       * tests/java.at: Use $EGREP instead of egrep.
+       Use AT_CHECK's ignore instead of grep's -q.
+
+2008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Version 2.4.1.
+       * NEWS: Set version and date.
+       * lib/Makefile.am: Update copyright year.
+       * tests/atlocal.in: Update copyright year.
+
+2008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Semicolon feature removal is not about future language support.
+       * NEWS: The semicolon feature is no longer active for newer languages,
+       so don't claim that it causes trouble for them.
+
+2008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * gnulib: Update submodule to HEAD.
+
+2008-12-09  Akim Demaille  <demaille@gostai.com>
+
+       Update data/README.
+       * data/README: Document glr.cc, lalr1.java, m4sugar and xslt.
+
+2008-12-05  Eric Blake  <ebb9@byu.net>
+
+       Build testsuite with newer autoconf.
+       * tests/output.at (m4_expand): Don't override in newer autoconf,
+       where the underlying implementation changed.
+       * tests/cxx-type.at (_AT_RESOLVED_GLR_OUTPUT)
+       (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT)
+       (_AT_AMBIG_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR)
+       (_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
+       since some of them contain unbalanced ')'.
+
+2008-11-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS: Clarify a little.
+
+2008-11-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS: Update for recent changes.
+
+2008-11-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix unexpanded macros in GLR defines file.
+       Reported by Csaba Raduly at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00048.html>.
+       * THANKS (Csaba Raduly): Add.
+       * data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
+       * tests/calc.at (_AT_DATA_CALC_Y): If %defines is specified, generate
+       lexer in a separate module that includes the defines file.
+       (AT_CHECK_CALC): Use AT_FULL_COMPILE and request compilation of lexer
+       source.
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_DEFINES_IF.
+       Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
+       (AT_BISON_OPTION_POPDEFS): Pop AT_DEFINES_IF.
+       (AT_DATA_SOURCE_PROLOGUE): New.
+       (AT_DATA_GRAMMAR_PROLOGUE): Use AT_DATA_SOURCE_PROLOGUE.
+       (AT_DATA_SOURCE): New.
+       (AT_FULL_COMPILE): New, copied from master branch and extended to
+       support an additional source file.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't let maintainer-*-check targets force a version update.
+       * cfg.mk (_is-dist-target): Implement.  maintainer-check* was already
+       handled.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+       * doc/bison.texinfo: Synchronize ``Detail Node Listing''.
+       Align menus.  Adjust word wrapping.  Use node names for menu names.
+       (Examples): Don't abbreviate node names.
+       (LocalWords): Remove abbreviations.
+       (Copying): Make description a sentence.
+       (Java Action Features): Remove period to match the rest of menu.
+
+2008-11-11  Paolo Bonzini  <bonzini@gnu.org>
+
+       * bootstrap.conf: Replace m4/warning.m4 with warnings module.
+       * configure.ac: Adjust usage.
+       * lib/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
+       * src/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
+       * tests/atlocal.in: Replace $(WARNING_*FLAGS) with $(WARN_*FLAGS).
+
+2008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't add a semicolon to actions for %skeleton or %language.
+       It breaks Java test cases as reported by Akim Demaille.
+       * src/scan-code.l: Implement.
+
+2008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up %skeleton and %language priority implementation.
+       * src/getargs.c (skeleton_prio): Use default_prio rather than 2, and
+       remove static qualifier because others will soon need to see it.
+       (language_prio): Likewise.
+       (getargs): Use command_line_prio rather than 0.
+       * src/getargs.h (command_line_prio, grammar_prio, default_prio): New
+       enum fields.
+       (skeleton_prio): Extern it.
+       (language_prio): Extern it.
+       * src/parse-gram.y: Use grammar_prio rather than 1.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+       * NEWS: Mention the trailing semicolon in action.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Reformat NEWS.
+       * NEWS: Use more outline-mode markup.
+       Suggested by Jim Meyering.
+
+2008-11-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix user actions without a trailing semicolon.
+       Reported by Sergei Steshenko at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
+       * THANKS (Sergei Steshenko): Add.
+       * src/scan-code.l (SC_RULE_ACTION): Fix it.
+       * tests/regression.at (Fix user actions without a trailing semicolon):
+       New test case.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Initiate further development.
+       * NEWS: Create an empty section for new entries.
+       * gnulib: Update submodule to HEAD.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS: Version 2.4.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Prepare for next release.
+       * NEWS: Briefly mention changes since 2.3b.
+       * README: Say GNU m4 1.4.6, which we've been requiring in release
+       announcements already, not 1.4.3, which breaks the build.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Say %language is experimental.
+       We're thinking of extending it's effect on output file naming.  See the
+       thread at
+       <http://lists.gnu.org/archive/html/bison-patches/2008-10/msg00003.html>.
+       * NEWS: Say it's experimental.
+       * doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
+       recommend it over %skeleton for now.
+       (Bison Options): Likewise.
+       (C++ Bison Interface): Use %skeleton not %language.
+       (Calc++ Parser): Use %skeleton not %language.
+       * src/getargs.c (usage): Say it's experimental.
+
+2008-11-01  Di-an Jan  <dianj@freeshell.org>
+           Paolo Bonzini  <bonzini@gnu.org>
+
+       Support all Java parser class modifiers.
+       * data/java.m4 (b4_percent_define_get3): New.
+       (b4_final_if, b4_strictfp_if): New.
+       * data/lalr1.java (final, strictfp, extends, implements): Support.
+       * doc/bison.texinfo (final, strictfp, extends, implements): Add
+       documentation.
+       * tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
+       (AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
+       (AT_CHECK_JAVA_GREP): New.
+       (Java parser class modifiers): New test.
+       (Java parser class extends and implements): New test.
+
+       Model exception propagation better with throws and lex_throws.
+       * data/java.m4 (b4_list2): New.
+       (throws): Change default.
+       * data/lalr1.java (yyaction): Add throws.
+       (parse): Add lex_throws in addition to throws.
+       * doc/bison.texinfo (throws, lex_throws): Add documentation.
+       * tests/java.at (Java throws specifications): New test.
+
+       Improve documentation for Java parsers.
+       * doc/bison.texinfo (Java Parsers): Add subsections.
+       Don't quote first argument of %define.
+       (Java Bison Interface): Document output files.  Move documentation
+       of parser class and merge into Java Parser Interface.  Document
+       features that error out.  Document directives with no effect.
+       Move note about Javadoc higher.
+       (Java Semantic Values): Explicitly mention stype.
+       Document that generic types cannot be used.
+       (Java Location Values): Use @deftypeivar.  Document constructors.
+       Correct return value for toString.
+       (Java Parser Interface): List undocumented constants/fields.
+       Move documentation of fields added by %parse-param closer to list
+       of members.  Document that token names are added as fields.
+       Document constructors accurately.  Remove error method.
+       (Java Scanner Interface): Move note on %pure-parser to Java Bison
+       Interface.  Describe %code lexer and yylex accutately.
+       Remove documentation that does not match the code.
+       (Java Action Features): New.
+       (Java Differences): Add reference.  Add item on semantic values.
+       Add note about @{ ... @}.  Clarify %% epilogue placement.
+       (Java Declarations Summary): New.
+
+       Fix Java skeleton.
+       * data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
+       (b4_remove_comma): Quote test argument.
+       (b4_identification): Remove "bison" field.
+       * tests/java.at (Java parser class and package names): New test.
+       (Java %parse-param and %lex-param): New test.
+       (Java stype, position_class and location_class): New test.
+
+2008-10-31  Di-an Jan  <dianj@freeshell.org>
+
+       * data/lalr1.jave: Update copyright years.
+       (YYParser): Correct name of "generated from" file in Javadoc:
+       use b4_file_name instead of @ofile@.
+       (Location constructor): Correct Javadoc parameter name.
+       (yylloc): Add missing opening m4 quote after b4_location_if.
+       This removes a stray [ in the Javadoc of Lexer.getStartPos.
+       (Lexer.yyerror): Fix incorrect m4 and Javadoc.
+       (YYParser constructor): Correct Javadoc parameter name.
+
+2008-10-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Always put auxiliary code files in the same dir as other output files.
+       * src/files.c (compute_file_name_parts): When the user specifies
+       --output but not --file-prefix, extract the directory prefix from the
+       file prefix not from the grammar file name.  This affects the location
+       of files like location.hh generated by the C++ skeleton.  The includes
+       in the other output files require this fix.
+       * tests/output.at (AT_CHECK_OUTPUT): Automatically create directories
+       for expected output files.
+       (Output files): Add a test for the above.
+
+2008-10-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * gnulib: Update submodule to HEAD.
+
+2008-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update copyright year.
+       * src/files.c: Here.
+
+2008-10-28  Di-an Jan  <dianj@freeshell.org>  (tiny change)
+
+       Don't overwrite the input file.
+       * src/files.c (output_file_name_check): Fatal error if using input file
+       for output.
+       * tests/output.at: (AT_CHECK_CONFLICTING_OUTPUT): Add return status
+       argument.
+       (Conflicting output files): Add test.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+       Space changes.
+       * data/lalr1.cc: Formatting changes.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+       Don't define debugging functions when !YYDEBUG.
+       * data/lalr1.cc (debug_stream, set_debug_stream)
+       (debug_level_type, debug_level, set_debug_level): Don't
+       declare them when YYDEBUG is not defined.
+       The implementation are already YYDEBUG-aware.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+       Prefer "continue" for empty loop bodies.
+       * etc/bench.pl.in: Use "continue" instead of {}.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+       Space and comments changes.
+       * data/c++.m4, data/glr.c, data/lalr1.cc: Copyright year changes.
+       * data/c.m4, data/lalr1.cc: Space changes.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+       Make gnulib a submodule.
+       * gnulib: New.
+       * .gitmodules (gnulib): New.
+
+2008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix yyerror_range for user-defined location type in C++.  Reported by
+       Georg Sauthoff at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-08/msg00008.html>.
+       * data/lalr1.cc (parse): Change type of yyerror_range to location_type.
+       * THANKS (Georg Sauthoff): Add.
+
+2008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update several administrative files mainly to facilitate releasing.
+       * HACKING (Administrivia): Make the git-merge-changelog notes more
+       helpful.
+       (Test suite): Don't say lalr1.cc is not exercised in the test suite.
+       (Release Procedure): Update for git and add numerous details that were
+       previously missing.
+       * Makefile.am (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
+       * maint.mk (announcement): Don't list bison as a bootstrap tool so
+       that announcements don't claim we bootstrapped with whatever bison
+       happened to be in PATH.  Add flex as a bootstrap tool.
+       * Makefile.maint: Remove, previously replaced by maint.mk.
+       * Makefile.cfg: Remove, and migrate settings to...
+       * cfg.mk: ... here for the sake of `make announcement'.
+       * bootstrap.conf (gnulib_modules): Add announce-gen.
+       * README: Say GNU Bison instead of just Bison.  Suggested by Karl
+       Berry.
+
+2008-10-08  Di-an Jan  <dianj@freeshell.org>  (tiny change)
+
+       Small but important bugfixes for the Java skeleton.
+       * data/lalr1.java (yyerror): Change Location to b4_location_type.
+       (yy_symbol_print): Call toString on yyvaluep.
+
+2008-08-29  Akim Demaille  <demaille@gostai.com>
+
+       Clarify UPDATED use.
+       * doc/bison.texinfo: It refers to the last edition of this file,
+       not to the release date of Bison.
+       Reported by Joel E. Denny.
+
+2008-08-29  Akim Demaille  <demaille@gostai.com>
+
+       * README: Update FAQ pointer.
+       Reported by Joel E. Denny.
+
+2008-08-27  Eric Blake  <ebb9@byu.net>
+
+       Resync m4sugar from autoconf.
+       * data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
+       (m4_init): Adjust to latest m4.git changes.
+       (m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
+       effects.
+       * data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
+       (_m4_list_cmp): Reduce side effects.
+
+2008-08-27  Akim Demaille  <demaille@gostai.com>
+
+       Check yyerrok in calc.at.
+       * tests/calc.at (calc.y): Use yyerrok on "( error )".
+       (AT_CHECK_CALC): Add a check that ensures that yyerrok works as
+       expected.
+
+2008-08-27  Akim Demaille  <demaille@gostai.com>
+
+       Support yyerrok in lalr1.cc.
+       YYBACKUP is still to import back into lalr1.cc.
+       * data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
+
+2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       For maintainer-check*, don't recompile for a $(VERSION) update.
+       * cfg.mk: New file.
+       (_is-dist-target): Override the one in GNUmakefile.
+       * Makefile.am (EXTRA_DIST): Add cfg.mk.
+
+2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update for recent change to gnulib.
+       * src/parse-gram.y: Don't include strverscmp.h.  It comes from
+       string.h now.
+
+2008-08-15  Eric Blake  <ebb9@byu.net>
+
+       Remaining m4sugar merge from autoconf.
+       * data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
+       * data/m4sugar/foreach.m4: New file, copied from autoconf.
+       * data/Makefile.am (dist_m4sugar_DATA): Distribute it.
+       * src/output.c (output_skeleton): Tell m4 how to find it.
+
+       Partial m4sugar merge from autoconf: m4_map.
+       * data/m4sugar/m4sugar.m4 (m4_fst): Delete.
+       (m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
+       (m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
+       * data/java.m4 (b4_token_enums): Use more efficient short-circuit
+       for empty list.
+       * data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
+       Likewise.
+       (b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
+       declares it.
+
+2008-08-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Keep .version and PACKAGE_VERSION in sync.
+       * Makefile.am ($(top_srcdir)/.version): Declare configure as a
+       dependency, and add comments justifying this in more detail.  Discussed
+       starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2008-07/msg00022.html>.
+
+2008-08-06  Eric Blake  <ebb9@byu.net>
+
+       Partial m4sugar merge from autoconf: m4_shiftn.
+       * data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
+       (m4_shift2, m4_shift3): New macros.
+       (m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
+       * data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
+       (b4_c_ansi_function_decl, b4_c_function_call): Likewise.
+       * data/java.m4 (b4_remove_comma): Likewise.
+
+       Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
+       * data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
+       (m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
+       (m4_init): Consolidate wrapped text into single m4_wrap.
+       * data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
+       in wrapped text.
+
 2008-08-05  Eric Blake  <ebb9@byu.net>
 
 2008-08-05  Eric Blake  <ebb9@byu.net>
 
+       Partial m4sugar merge from autoconf: builtins, version.m4.
+       * data/m4sugar/m4sugar.m4 (changeword): Nuke.
+       (m4_prepend): Remove, as it is unused and inherently quadratic,
+       whereas m4_append is linear in newer m4.
+       (m4_mkstemp): New builtin.
+       (m4_symbols): Make rename conditional.
+       (m4_version_prereq): Ensure fatal error if used in bison, which
+       intentionally lacks version.m4.
+
        Fix comments in m4sugar.
        * data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.
 
        Fix comments in m4sugar.
        * data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.
 
 
        -----
 
 
        -----
 
-       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.
+       Copyright (C) 1987-1988, 1991-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