]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
lalr1.cc: don't discard non-existent lookahead on syntax error.
[bison.git] / ChangeLog
index b3c36cc076f684a53082d361a36747772d8e66c4..1c15cc5e3e7fe9bbffc2a1764b996a7a08a2c6ab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+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.
 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.
 
        * README-hacking: Merge into...
        * HACKING (Working from the repository): here.
 
 2009-03-02  Akim Demaille  <demaille@gostai.com>
 
        Use locations in the variant example.
 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.
+       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.
 
        * examples/variant.yy (assert): %define it.
        (locations): Request them.
        -----
 
        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 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