]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
deterministic user-token-number redeclaration errors.
[bison.git] / ChangeLog
index d175ccc6f2c51172d4c2230738eaf564554248c8..a8c6c588ae8b408bd8c238cf30f7726b44b78e41 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+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>
+
+       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.
+
+2008-08-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update for recent .gitignore fix in Gnulib.
+       * bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
+       anchored .gitignore entries.
+
+2008-08-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Set gnu or gnits strictness.
+       * configure.ac (AM_INIT_AUTOMAKE): Set gnu strictness during
+       development and gnits strictness for releases.  Based on Eric Blake's
+       suggestion at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00019.html>.
+
+2008-07-31  Paolo Bonzini  <bonzini@gnu.org>
+
+       * NEWS: Clarify documentation of %language.
+
+2008-07-31  Paolo Bonzini  <bonzini@gnu.org>
+
+       Support usage of git-merge-changelog.
+       * .gitattributes: New.
+       * HACKING: Document usage of git-merge-changelog.
+       * bootstrap: Install git-merge-changelog entries in .git/config
+       if appropriate.
+
+2008-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Remove remaining dependence on CVS Id keyword.
+       * ChangeLog: For the sake of people still using CVS, don't use dollars
+       when mentioning Id.
+       * data/xslt/bison.xsl: Remove Id from header comments, where it was
+       unusual anyway.
+       * data/xslt/xml2dot.xsl: Likewise.
+       * data/xslt/xml2text.xsl: Likewise.
+       * data/xslt/xml2xhtml.xsl: Likewise.
+       * doc/Doxyfile.in (PROJECT_NUMBER): Don't use ID.
+       * doc/Makefile.am (neutralize): Remove, no longer needed.
+       (.x.1): Don't use neutralize.
+       (edit): Don't substitute for ID.
+       (Doxyfile): Don't define Id, and thus don't depend on ChangeLog.
+
+2008-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix dependence on computed configure variables.
+       * doc/Makefile.am (common_dep): Depend on $(top_srcdir)/configure not
+       $(top_srcdir)/configure.ac so that changes to computed variables, such
+       as PACKAGE_VERSION, are seen.
+       * tests/Makefile.am ($(srcdir)/package.m4): Likewise.
+
+2008-07-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update copyright dates for recent changes.
+       * Makefile.am: Here.
+       * src/Makefile.am: Here.
+       * src/reduce.c: Here.
+       * tests/reduce.at: Here.
+
+2008-07-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Use git-version-gen for version names between releases.
+       * .cvsignore (.tarball-version, GNUmakefile, *~): Add.
+       * .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
+       * .prev-version: New.
+       * .version.in: Remove.
+       * ChangeLog: Remove the Id previously used for capturing the CVS
+       revision.
+       * GNUmakefile: Remove, now copied from Gnulib.
+       * Makefile.am: Add code suggested by comments in
+       build-aux/git-version-gen.
+       (EXTRA_DIST): Remove GNUmakefile, handled by Gnulib.  Add maint.mk,
+       .prev-version, and .version.
+       * NEWS (2.3b+): Rename to...
+       (?.?): ... this because we're dropping the "+" version naming scheme,
+       but, in general, we still can't be sure of our next release name.
+       * bootstrap: Add a quick hack to remove from .gitignore the
+       GNUmakefile entry that gnulib adds.  We already have a /GNUmakefile
+       entry.  This should really be fixed in gnulib instead.
+       * bootstrap.conf (gnulib_modules): Add gnumakefile.
+       * configure.ac (AC_INIT): Set version name by invoking
+       build-aux/git-version-gen.
+       (AC_CONFIG_FILES): Remove .version, now generated by
+       build-aux/git-version-gen.
+       * maint.mk: New, copied from coreutils.
+       * doc/.cvsignore (bison.1): Add.
+       * doc/.gitignore (/bison.1): Add.
+       * doc/bison.1: Remove, generated.
+       * src/.cvsignore (revision.c): Remove.
+       * src/.gitignore (/revision.c): Remove.
+       * src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
+       (BUILT_SOURCES): Remove revision.c.
+       (revision.c): Remove.
+       * src/getargs.c (version): Don't print revision after the VERSION.
+       * src/revision.h: Remove.
+
+2008-07-16  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix untranslatable composition of sentences.  Reported by Goran
+       Uddeborg at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-06/msg00000.html>.
+       * THANKS (Goran Uddeborg): Add.
+       * src/reduce.c (reduce_print): Report the number of nonterminals and
+       rules useless in the grammar in separate sentences.
+       * tests/reduce.at (Useless Rules): Update output.
+       (Reduced Automaton): Likewise.
+       (Underivable Rules): Likewise.
+       (Empty Language): Likewise.
+
+2008-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix some .gitignore and .cvsignore problems.
+       * bootstrap (insert_sorted_if_absent): Replace all uses with...
+       (insert_vc_ignore): ... this new function, which prepends `/' to all
+       .gitignore entries before passing them to insert_sorted_if_absent.
+       * bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
+       .cvsignore files are maintained even though Bison developers run
+       bootstrap while using Git.
+       * .cvsignore (*.patch *.log log patches applied): Remove, apparently
+       unneeded by Bison.
+       (gnulib): Add.
+       * .gitignore (/*.patch *.log log patches applied): Remove, broken and
+       unneeded.  Reported by Eric Blake.
+       * lib/.gitignore (/*~): Add.
+       * po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
+       * examples/calc++/.gitignore (/calc++.exe): Add.  Reported by Eric
+       Blake.
+       * src/.gitignore (/bison.exe): Add.  Reported by Eric Blake.
+
+2008-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Improve forward-compatibility with GNU M4.  Reported by Eric Blake at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00000.html>.
+       * bootstrap.conf (gnulib_modules): Add unsetenv.
+       * lib/.gitignore, lib/.cvsignore (/unsetenv.c): Add.
+       * m4/.gitignore, m4/.cvsignore (/environ.m4): Add.
+       (/setenv.m4): Add.
+       * src/output.c (output_skeleton): For the m4 invocation, pass -dV as
+       the first argument because it may become position-dependent, and unset
+       POSIXLY_CORRECT so Bison's skeletons have access to GNU M4 extensions.
+       Add comments explaining these issues in more detail.
+
+2008-07-14  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add .gitignore everywhere based on .cvsignore.
+       * .gitignore: New.
+       * build-aux/.gitignore: New.
+       * data/.gitignore: New.
+       * doc/.gitignore: New.
+       * etc/.gitignore: New.
+       * examples/.gitignore: New.
+       * examples/calc++/.gitignore: New.
+       * lib/.gitignore: New.
+       * m4/.gitignore: New.
+       * po/.gitignore: New.
+       * runtime-po/.gitignore: New.
+       * src/.gitignore: New.
+       * tests/.gitignore: New.
+
+2008-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3b+): New section, empty for now.
+       * configure.ac (AC_INIT): 2.3b -> 2.3b+.
+
+2008-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3b): Update release date since there has been a delay in
+       getting the announcements and tarballs out.
+
+2008-05-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS: Version 2.3b.
+       * configure.ac (AC_INIT): Likewise.
+       (PACKAGE_COPYRIGHT_YEAR): Update to 2008.
+
+2008-05-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * HACKING: Don't say don't mention HACKING in the ChangeLog.  We've
+       been doing it for years.
+       (Test suite): Mention maintainer-push-check and maintainer-xml-check.
+       (Release Procedure): Add FIXME about make alpha being unmaintained.
+
+2008-05-13  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/yacc.c: Reformat m4 a little for readability.
+       * src/lalr.c (build_relations): Correct comment.
+
+2008-05-12  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       DJGPP specific issue.
+       * djgpp/config.sed: Fixes required to run configure scripts generated
+       by autoconf 2.62.
+
+2008-05-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * HACKING (Release Procedure): translation@iro.umontreal.ca is now
+       coordinator@translationproject.org.
+
+2008-05-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * THANKS: Add Eric Blake.
+
+2008-04-23  Eric Blake  <ebb9@byu.net>
+
+       Revert prior patch, by working around autoconf regression.
+       * tests/output.at (m4_expand): Add workaround for autoconf 2.62.
+       ("Output file name: ("): Uncomment test.
+       ("Output file name: )"): Likewise.
+       Based on an idea from Noah Misch.
+
+2008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
+       2.61.  Reported by Juan Manuel Guerrero at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-04/msg00011.html>.
+       * tests/output.at ("Output file name: ("): Comment out test case for
+       now.
+       ("Output file name: )"): Likewise.
+
+2008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * GNUmakefile: Update git-version-gen invocation so make dist
+       succeeds.
+
+2008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update to the current gnulib CVS repository, and fix trigraph handling
+       in Bison.
+       * bootstrap: Update gnulib CVS repository URL.
+       (symlink_to_dir): Encapsulate the code that guarantees the destination
+       directory exists into...
+       (check_dst_dir): ... this new function, and...
+       (cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
+       fail when copying files into lib/uniwidth/.
+       * src/output.c (prepare_symbols): When writing yytname muscles, where
+       symbol names will be encoded in C-string literals, tell quotearg to
+       escape trigraphs.  This used to be the default in gnulib.
+       * tests/regression.at (Token definitions): Because of the change in
+       gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
+       escapes trigraphs in symbol names.  Thus, yytname no longer has
+       trigraphs unnecessarily doubly escaped.  Update test case output.
+       Extend test case to be sure Bison's own error messages will no longer
+       have trigraphs in symbol names unnecessarily escaped once.
+
+2008-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix make dist infinite loop reported by Juan Manuel Guerrero at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00009.html>.
+       * .cvsignore: Add .version.
+       * .version.in: New.
+       * bootstrap.conf (gnulib_modules): Add git-version-gen.
+       * configure.ac (AC_CONFIG_FILES): Add .version.
+       * build-aux/.cvsignore: Add git-version-gen.
+
+2008-03-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3a+): Mention that -g now takes an argument.
+       * doc/bison.texinfo (Bison Options): Reword -W entry a little for
+       consistency.  Update the -g and -x entries now that they take
+       arguments.  Use brackets to indicate optional arguments.
+       * src/getargs.c (usage): Explain the relationship between arguments of
+       long and short options more completely.  Document --defines and -d
+       separately since the former takes an argument but, for POSIX Yacc, the
+       latter does not.
+       (short_options): Let -W take an optional argument like --warnings.
+       (getargs): Sort cases.
+
+2008-02-28  Akim Demaille  <demaille@gostai.com>
+
+       * doc/bison.texinfo: Fix a few typos.
+
+2008-02-28  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Bison Options): Document -W.
+       Based on Joel E. Denny's NEWS entry, and Automake's documentation.
+
+2008-02-28  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.c (short_options): Split and sort for readability.
+       -g and -x take optional arguments, just like their long options.
+       * build-aux/cross-options.pl: Use /x to make the regexp easier to
+       understand.
+       Fix the handling of $opt which resulted in all the argument to be
+       considered as optional.
+
+2008-02-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3a+): Don't say %language is experimental.  Mention Java and
+       say its interface is experimental.
+       * doc/bison.texinfo (Decl Summary): In the %language entry, mention
+       Java.
+       (Bison Options): In the -L and --language entry, mention Java.
+       (Java Bison Interface): Say the interface is experimental.
+       * src/getargs.c (usage): Mention -L and --language.
+
+       * NEWS (2.3a+): Say the push parsing interface is experimental.
+       * doc/bison.texinfo (Push Decl): Likewise.
+       (Decl Summary): Likewise in the "%define api.push_pull" entry.
+       (Push Parser Function): Likewise.
+       (Pull Parser Function): Likewise.
+       (Parser Create Function): Likewise.
+       (Parser Delete Function): Likewise.
+       (Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
+       yypull_parse, and yypush_parse entries.
+
+       * NEWS (2.3a+): Mention XML support, and say the schema is
+       experimental.
+       * doc/bison.texinfo (Bison Options): Mention -x and --xml.
+       * src/getargs.c (usage): Say the XML schema is experimental.
+
+       * NEWS (2.3a+): Say option instead of flag.
+
+2008-02-21  Wojciech Polak  <polak@gnu.org>
+
+       * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer
+       text.
+
+2008-02-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix impure push parser compile error reported by Bob Rossi at
+       <http://lists.gnu.org/archive/html/help-bison/2008-02/msg00023.html>.
+       * data/yacc.c: Clean up whitespace in the output a little.
+       (yypstate_allocated): Define for impure push parsers regardless of
+       whether the pull interface is also requested.
+       * tests/push.at (Push Parsing: Multiple impure instances): Extend to
+       check impure push parsers without the pull interface.
+
+       * data/yacc.c (yypstate_new): Don't try to invoke yyerror since
+       yyerror takes arguments specified by %parse-param while yypstate_new
+       does not.
+       * doc/bison.texinfo (Parser Create Function): Document that
+       yypstate_new returns 0 for multiple impure parser instances.
+       * tests/push.at (Push Parsing: Multiple impure instances): Update
+       expected stderr output.
+
+2008-02-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * runtime-po/POTFILES.in (push.c): Remove.
+
+2008-02-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
+       * data/push.c: Rename to...
+       * data/yacc.c: ... this, overwriting it.
+       * etc/bench.pl.in (bench_grammar): `%pure-parser'-> `%define api.pure'.
+       `%push-pull-parser' -> `%define api.push_pull "both"'.
+       Remove old yacc.c tests, and update push.c tests to yacc.c.
+
+2008-02-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/bison.m4 (b4_percent_code_get): Output %code block comments like
+       `"%code top" blocks' instead of `%code "top" blocks'.
+       * data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
+       Clean up whitespace in the output a little.
+
+2008-02-16  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix documentation problems reported by Tim Josling at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00013.html>.
+       * NEWS (2.3a+): Mention removal of --no-parser, -n, and %no-parser.
+       * doc/bison.texinfo (Token Decl): Token numbers are *nonnegative*
+       integers.  Explain the effect of literal string aliases on error
+       messages.  Copy token 0 documentation from the C++ skeleton
+       documentation.
+
+2008-02-16  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Accept a token number in a %left, %right, or %nonassoc for POSIX
+       conformance.  Reported by Tim Josling at
+       <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00010.html>.
+       * NEWS (2.3a+): Mention.
+       * doc/bison.texinfo (Precedence Decl): Describe how literal strings
+       and code numbers are treated by precedence declarations.
+       * src/parse-gram.y (precedence_declaration): Use symbols.prec instead
+       of symbols.1.
+       (symbols.prec): New, just like symbols.1 but uses symbol.prec instead
+       of symbol.
+       (symbol.prec): New, just like symbol but allows INT.
+       * src/symtab.c (symbol_user_token_number_set): Remove an aver that no
+       longer holds.
+       * tests/regression.at (Token number in precedence declaration): New
+       test case.
+
+2008-02-06  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       DJGPP specific issues.
+       * djgpp/config.bat: Add filenames that are not 8.3 clean and that must
+       be changed.  Copyright timestamp adjusted.
+       * djgpp/config.sed: Add filenames that are not 8.3 clean and that must
+       be changed.  Copyright timestamp adjusted.
+       * djgpp/config.site: Copyright timestamp adjusted.
+       * djgpp/config_h.sed: Copyright timestamp adjusted.
+       * djgpp/djunpack.bat: Copyright timestamp adjusted.
+       * djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
+       filename translation list.
+       * djgpp/subpipe.c (init_subpipe): Check the environment variables
+       TMPDIR, TMP and TEMP, in that order, to determinate where the temp
+       files shall be created.  Before trying to use the temp dir where the
+       environment variable points to check that the dir really exists. If
+       not default to the cwd as temp dir.  Copyright timestamp adjusted.
+       * djgpp/subpipe.h: Copyright timestamp adjusted.
+       * djgpp/testsuite.sed: Copyright timestamp adjusted.
+
+2008-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
+
+2008-01-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yyparse): Correct the comment when locations aren't used.
+       Problem reported by Claudio Saavedra in
+       <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00003.html>.
+
+2008-01-05  Wojciech Polak  <polak@gnu.org>
+
+       * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
+       document's title with the input grammar file name.
+
+2007-12-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Automate regression testing of the XML/XSLT implementation.  Discussed
+       starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
+       * configure.ac (XSLTPROC): New substitution.
+       * Makefile.am (maintainer-xml-check): New phony target invoking...
+       * tests/Makefile.am (maintainer-xml-check): ... this new phony target
+       invoking make maintainer-check with BISON_TEST_XML=1.
+       * tests/atlocal.in (XSLTPROC): New.
+       * tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
+       not to report reachable memory when Bison is expected to have a
+       non-zero exit status and (2) to compare XML/XSLT output with --graph
+       and --report=all output for every working grammar when
+       BISON_TEST_XML=1.
+       (AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
+       (AT_BISON_CHECK_XML): New.
+       (AT_QUELL_VALGRIND): New.
+       * tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
+       (AT_CHECK): ... don't redefine this since this was the old way to
+       quell Valgrind.
+       * tests/actions.at: Rewrite all AT_CHECK invocations for bison as
+       AT_BISON_CHECK invocations.
+       * tests/c++.at: Likewise.
+       * tests/calc.at: Likewise.
+       * tests/conflicts.at: Likewise.
+       * tests/cxx-type.at: Likewise.
+       * tests/existing.at: Likewise.
+       * tests/glr-regression.at: Likewise.
+       * tests/headers.at: Likewise.
+       * tests/input.at: Likewise.
+       * tests/java.at: Likewise.
+       * tests/output.at: Likewise.
+       * tests/push.at: Likewise.
+       * tests/reduce.at: Likewise.
+       * tests/regression.at: Likewise.
+       * tests/sets.at: Likewise.
+       * tests/skeletons.at: Likewise.
+       * tests/synclines.at: Likewise.
+       * tests/torture.at: Likewise.
+       (Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
+       tends to hang xsltproc.
+       (Big horizontal): Likewise.
+
+2007-12-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       In XML output, remove redundant class attribute on symbol element.
+       * data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
+       * data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
+       look up a symbol to determine whether it's a nonterminal or terminal.
+       * src/gram.c (rule_rhs_print_xml): Remove class attribute.
+       * src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.
+
+       Add prec/assoc information to XML output.
+       * src/gram.c (grammar_rules_print_xml): For each rule that has a
+       %prec, add a percent_prec attribute.
+       * src/print-xml.c (print_grammar): For each terminal that has a
+       precedence or associativity, add a prec or assoc attribute.
+       (xml_indent): New.
+       (xml_puts): Use xml_indent.
+       (xml_printf): Use xml_indent.
+       * src/print-xml.h (xml_indent): Prototype.
+
+       * tests/existing.at (GNU pic Grammar): Fix a rule miscopied from
+       <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
+
+2007-12-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/xslt/bison.xsl (bison:ruleNumber): Rename to...
+       (bison:ruleByNumber): ... this for clarity.
+       * data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
+       * data/xslt/xml2text.xsl (xsl:template match="item"): Update.
+       (xsl:template match="reduction"): Update.
+       (xsl:template match="item"): Update.
+       (xsl:template match="reduction"): Update.
+
+       In the XML output, don't print the list of rules where symbols appear.
+       Compute it in XSLT instead.  Discussed at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>.
+       * data/xslt/bison.xsl (bison:ruleByLhs): New.
+       (bison:ruleByRhs): New.
+       * data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
+       bison:ruleByRhs.
+       (xsl:template match="terminal/rule"): Remove.
+       (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+       bison:ruleByRhs.
+       (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+       Remove.
+       * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
+       bison:ruleByRhs and mode="number-link" for rule template.
+       (xsl:template match="terminal/rule"): Remove.
+       (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+       bison:ruleByRhs and mode="number-link" for rule template.
+       (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+       Rewrite as...
+       (xsl:template match="rule" mode="number-link"): ... this.
+       * src/print-xml.c (print_grammar): Don't print the list of rules.
+
+2007-12-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't let --report affect XML output; always print all information.
+       Discussed at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00020.html>.
+       * src/conflicts.c (log_resolution): Implement.
+       * src/print-xml.c (print_core): Implement.
+       (print_state): Implement.
+       (print_xml): Implement.
+
+       * NEWS (2.3a+): Fix quotes.
+       * src/parse-gram.y (prologue_declaration): For consistency with -v,
+       don't let %verbose clear the list specified by --report.
+
+2007-11-26  Akim Demaille  <akim@epita.fr>
+
+       * data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
+
+2007-11-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       In the XML output, list useless and unused symbols and rules with the
+       useful ones and add a "usefulness" attribute.  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00017.html>.
+       * src/gram.c (grammar_rules_partial_print_xml): Remove.
+       (grammar_rules_print_xml): Print all rules instead of just those
+       useful in the grammar, and add a "usefulness" attribute.
+       * src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
+       * src/print-xml.c (print_rules_useless_in_parser): Remove.
+       (print_grammar): Print all nonterminals instead of just useful ones,
+       and add a "usefulness" attribute to nonterminals and terminals.
+       (print_xml): Don't print a separate "reductions" or
+       "rules-useless-in-parser" element.
+       * src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
+       (reduce_xml): Remove.
+       (reduce_token_unused_in_grammar): New.
+       (reduce_nonterminal_useless_in_grammar): New.
+       * src/reduce.h (reduce_xml): Remove prototype.
+       (reduce_token_unused_in_grammar): Add prototype.
+       (reduce_nonterminal_useless_in_grammar): Add prototype.
+       * data/xslt/xml2text.xsl: Update for XML changes.
+       * data/xslt/xml2xhtml.xsl: Update for XML changes.
+       * tests/reduce.at (Useless Terminals): Update output.
+       (Useless Rules): Update output.
+       (Reduced Automaton): Update output.
+
+       Say "Terminals unused in grammar" instead of "Unused terminals".
+       * NEWS (2.3a+): Update.
+       * doc/bison.texinfo (Understanding): Update example output.
+       * src/reduce.c (reduce_output): Implement.
+       * data/xslt/xml2text.xsl: Implement.
+       * data/xslt/xml2xhtml.xsl: Implement.
+
+2007-11-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Accept --report-file=FILE to override the default `.output' filename.
+       * NEWS (2.3a+): Mention.
+       * doc/bison.texinfo (Bison Options): Add an entry.
+       * src/files.c (compute_output_file_names): Don't override
+       spec_verbose_file if already set.
+       * src/getargs.c (usage): Document --report-file.
+       (REPORT_FILE_OPTION): New anonymous enum member.
+       (long_options): Add entry for it.
+       (getargs): Add case for it setting spec_verbose_file.
+
+       * build-aux/cross-options.pl: Don't record a short option just because
+       there's an arg.
+       * doc/.cvsignore: Add yacc.1.
+
+2007-11-14  Akim Demaille  <akim@epita.fr>
+
+       * doc/yacc.1.in: New.
+       * configure.ac, doc/Makefile.am: Adjust.
+       * configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
+       config.h symbol.
+       Use AC_SUBST for assignments too.
+       * src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
+
+2007-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/gram.c: Remove comments that duplicate comments in gram.h.
+
+       When reporting useless rules and nonterminals, say "useless in grammar"
+       instead of "useless", and say "useless in parser" instead of "never
+       reduced".  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00033.html>.
+       * NEWS (2.3a+): Mention this change.
+       * data/xslt/xml2text.xsl: Update output text and expected input XML
+       element names to match changes below.
+       * data/xslt/xml2xhtml.xsl: Likewise.
+       (xsl:template match="bison-xml-report"): Add missing entry in Table of
+       Contents: "Rules useless in parser due to conflicts".
+       * doc/bison.texinfo (Decl Summary): Reword a little.
+       (Understanding): Update example output for changes below.
+       * src/gram.c: (rule_useful_p): Rename to...
+       (rule_useful_in_grammar_p): ... this.
+       (rule_useless_p): Rename to...
+       (rule_useless_in_grammar_p): ... this.
+       (rule_never_reduced_p): Rename to...
+       (rule_useless_in_parser_p): ... this.
+       (grammar_rules_print): Update for renames.
+       (grammar_rules_print_xml): Update for renames.
+       (grammar_rules_never_reduced_report): Rename to...
+       (grammar_rules_useless_report): ... this since it is used for either
+       kind of useless rule.
+       * src/gram.h: Reword comments and update function names in prototypes.
+       * src/main.c (main): Say "rule useless in parser due to conflicts".
+       * src/print-xml.c (print_rules_never_reduced): Rename to...
+       (print_rules_useless_in_parser): ... this, and rename output XML
+       element "rules-never-reduced" to "rules-useless-in-parser".
+       (print_xml): Update for rename.
+       * src/print.c (print_results): Say "Rules useless in parser due to
+       conflicts".
+       * src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
+       (nonterminals_reduce): Say "nonterminal useless in grammar".
+       (reduce_output): Say "Nonterminals useless in grammar".
+       Say "Rules useless in grammar".
+       (reduce_xml): Rename output XML element "useless" to
+       "useless-in-grammar".
+       (reduce_print): Don't report the count of grammatically useless rules
+       as "rules never reduced" just because %yacc is specified.
+       In the correct report of this count, say nonterminal(s) and rule(s)
+       "useless in grammar".
+       * tests/conflicts.at (S/R in initial): Update expected output.
+       (Defaulted Conflicted Reduction): Likewise.
+       (Unreachable States After Conflict Resolution): Likewise.
+       * tests/existing.at (GNU pic Grammar): Likewise.
+       * tests/reduce.at (Useless Nonterminals): Likewise.
+       (Useless Rules): Likewise.
+       (Reduced Automaton): Likewise.
+       (Underivable Rules): Likewise.
+       (Empty Language): Likewise.
+
+2007-11-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
+       here document and before the EOF so that BSD's implementation of Bourne
+       shell doesn't parse the delimiter as part of the here document.
+       * doc/.cvsignore: Add cross-options.texi.
+       * src/getargs.c (usage): Add a blank line after the warning categories.
+
+2007-11-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       * data/lalr1.java (Lexer): Remove usage of b4_pure_if.
+
+2007-11-05  Akim Demaille  <akim@epita.fr>
+
+       Remove Id: from bison.1.
+       * doc/Makefile.am (remove_time_stamp): Include the sed invocation.
+       (perl -0777 -pi -e 's/\.PP\nId): New.
+       (.x.1): Use it to ignore the version control revision.
+
+2007-11-05  Akim Demaille  <demaille@gostai.com>
+
+       * build-aux/Makefile.am: Ship cross-options.pl.
+       * doc/Makefile.am: Always refer to cross-options.texi with
+       $(srcdir).
+       (MAINTAINERCLEANFILES): Add it.
+
+2007-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Generate the long/short option cross-table.
+       * build-aux/cross-options.pl: New.
+       * doc/Makefile.am (cross-options.texi): New.
+       * doc/bison.texinfo: Use it.
+
+2007-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Generate bison.1 using help2man.
+       * doc/common.x, doc/bison.x: New.
+       * doc/Makefile.am (bison.1, .x.1): New.
+       The code is taken from autoconf-2.61/man/Makefile.am.
+       * configure.ac: Look for help2man.
+
+2007-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Complete --help.
+       * src/getargs.c (usage): Document -W, make it clear that -d,
+       -g and -x have optional arguments.
+
+2007-11-04  Akim Demaille  <demaille@gostai.com>
+
+       Find sha1sum when named gsha1sum.
+       * bootstrap (find_tool): New.
+       ($SHA1SUM): New.
+
+2007-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Deprecate %pure-parser and add `%define api.pure'.  Discussed starting
+       at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00006.html>.
+       * NEWS (2.3a+): Mention.
+       * data/bison.m4 (b4_pure_if): Don't define it here.
+       * data/c.m4 (b4_identification): Depend on individual skeletons to
+       define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
+       values of the %define variables api.pure or api.push_pull.  Define
+       YYPURE, YYPUSH, and YYPULL accordingly.
+       * data/glr.c: Define b4_pure_if based on `%define api.pure' unless
+       glr.cc has already defined b4_pure_flag.
+       * data/push.c: Define b4_pure_if based on `%define api.pure'.
+       Remove YYPUSH and YYPULL since they're back in b4_identification again.
+       * data/yacc.c: Define b4_pure_if based on `%define api.pure'.
+       * doc/bison.texinfo (Pure Decl): Update.
+       (Push Decl): Update.
+       (Decl Summary): Add api.pure to %define entry.
+       In %pure-parser entry, say it's deprecated and reference %define.
+       (Pure Calling): Update.
+       (Error Reporting): Update.
+       (C++ Scanner Interface): Update.
+       (How Can I Reset the Parser): Update.
+       (Table of Symbols): In %pure-parser entry, say it's deprecated and
+       reference %define.
+       * src/getargs.c (pure_parser): Remove global variable.
+       * src/getargs.h (pure_parser): Remove extern.
+       * src/output.c (prepare): Don't define pure_flag muscle.
+       * src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
+       wrapper around `%define api.pure'.
+       * tests/calc.at (Simple LALR Calculator): Update.
+       (Simple GLR Calculator): Update.
+       * tests/cxx-type.at (GLR: Resolve ambiguity, pure, no locations):
+       Update.
+       (GLR: Resolve ambiguity, pure, locations): Update.
+       (GLR: Merge conflicting parses, pure, no locations): Update.
+       (GLR: Merge conflicting parses, pure, locations): Update.
+       * tests/glr-regression.at (Uninitialized location when reporting
+       ambiguity): Update
+       * tests/input.at (Unused %define api.pure): New test case.
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Update definition for
+       AT_PURE_IF and AT_PURE_AND_LOC_IF.
+       * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+
+2007-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       %define push_pull -> %define api.push_pull.  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00005.html>.
+       * data/push.c: Expect the new name.
+       * data/yacc.c: Likewise.
+       * doc/bison.texinfo (Push Decl): Update.
+       (Decl Summary): Update %define entry.
+       (Push Parser Function): Update.
+       (Pull Parser Function): Update.
+       (Parser Create Function): Update.
+       (Parser Delete Function): Update.
+       * tests/calc.at (Simple LALR Calculator): Update.
+       * tests/input.at (%define enum variables): Update.
+       * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+       (Push Parsing: Multiple impure instances): Update.
+       (Push Parsing: Unsupported Skeletons): Update.
+       * tests/torture.at (Exploding the Stack Size with Alloca): Update.
+       (Exploding the Stack Size with Malloc): Update.
+
+       * NEWS (2.3a+): Add an entry for the push parser, and clean up the
+       other entries some.
+
+2007-10-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       For the XML output's terminal element, rename @number to @token-number,
+       and add @symbol-number.  In the nonterminal element, rename @number to
+       @symbol-number.  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00040.html>.
+       * data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
+       renames.
+       (xsl:template match="nonterminal"): Likewise.
+       * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
+       (xsl:template match="nonterminal"): Likewise.
+       * src/print-xml.c (print_grammar): Implement.
+
+2007-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
+       2007-10-11 change, the child elements here are items not rules.
+       (xsl:template match="item"): New.
+       (xsl:template match="rule"): Update for new reduced itemset.
+       (xsl:template match="point"): Remove.
+       (xsl:template match="empty"): For consistency with --graph, don't
+       output "/* empty */".
+       * data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
+       line-wrap, don't pass a negative value as first-line-length since this
+       won't work with the following changes.
+       (xsl:template name="line-wrap"): Simplify slightly.
+       (xsl:template name="ws-search"): Eliminate recursion.
+       * src/print_graph.c (print_core): Don't print a reduction's lookahead
+       set next to an item whose dot is not at the end of the RHS even if it
+       happens to be associated with the same rule.
+
+2007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add %define lr.keep_unreachable_states.
+       * NEWS (2.3a+): Mention it in the entry for unreachable state removal.
+       * doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
+       * src/main.c (main): Implement it.
+       * tests/conflicts.at (Unreachable States After Conflict Resolution):
+       Extend to test it, and fix a typo.
+
+2007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3a+): Add entry for recent .output file lookahead set fix.
+       * doc/bison.texinfo (Understanding): Remove a bogus lookahead set in
+       the example .output text.
+       * tests/regression.at (Extra lookahead sets in report): Improve wording
+       of comments.
+
+2007-10-17  Wojciech Polak  <polak@gnu.org>
+
+       * src/print-xml.c (print_grammar): Renamed
+       <terminal> and <nonterminal> attributes:
+       "type" to "number" and "symbol" to "name".
+       * data/xslt/xml2text.xsl (xsl:template match="terminal"):
+       Use new attribute names.
+       (xsl:template match="nonterminal"): Likewise.
+       * data/xslt/xml2xhtml.xsl: Likewise.
+
 2007-10-17  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        * doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
 
 2007-03-07  Paolo Bonzini  <bonzini@gnu.org>
 
-        * data/java.m4 (b4_single_class_if): Remove.
-        (b4_abstract_if): Look at "%define abstract".
-        (b4_lexer_if): New.
-        (b4_union_name): Rename...
-        (b4_yystype): ... to this.  Map to "%define stype".
-        (b4_rhs_value, b4_parse_param_decl, b4_lex_param_decl,
-        b4_maybe_throws): Fix quoting.
-        (b4_lex_param_call): Move below to keep b4_*_param_decl close.
-        * data/lalr1.java (Lexer interface): Always define.
-        (Lexer interface within parser class): Remove.
-        (YYLexer class): New, used when "%code lexer" is present.
-        (constructor): When "%code lexer" is used, pass %lex-param
-        to the lexer constructor.
-        (yylex, yyparse): Remove %lex-param from method invocations
-        (YYStack, yyaction, yyparse): Rename b4_union_name to b4_yystype.
-
-        * doc/bison.texinfo (Java Bison Interface): Mention "%define
-        abstract".  Rename "%define union_name" to "%define stype".
-        Rename method names according to previous patch.
-        (Java Scanner Interface): Describe "%code lexer" instead of
-        "%pure-parser" and "%define single_class".
-        (Java Differences): Mention "%code lexer".
-
-        * tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove final argument.
-        Include scanner here, using macros from tests/local.at.
-        (AT_DATA_CALC_Y): Remove final argument.
-        (_AT_CHECK_JAVA_CALC): Likewise.
-        (AT_CHECK_JAVA_CALC): Likewise.  Test all four combinations
-        of %locations and %error-verbose.
-        (main): Test with and without %lex-param.
-        * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_LEXPARAM_IF.
-        (AT_BISON_OPTION_POPDEFS): Pop it.
+       * data/java.m4 (b4_single_class_if): Remove.
+       (b4_abstract_if): Look at "%define abstract".
+       (b4_lexer_if): New.
+       (b4_union_name): Rename...
+       (b4_yystype): ... to this.  Map to "%define stype".
+       (b4_rhs_value, b4_parse_param_decl, b4_lex_param_decl,
+       b4_maybe_throws): Fix quoting.
+       (b4_lex_param_call): Move below to keep b4_*_param_decl close.
+       * data/lalr1.java (Lexer interface): Always define.
+       (Lexer interface within parser class): Remove.
+       (YYLexer class): New, used when "%code lexer" is present.
+       (constructor): When "%code lexer" is used, pass %lex-param
+       to the lexer constructor.
+       (yylex, yyparse): Remove %lex-param from method invocations
+       (YYStack, yyaction, yyparse): Rename b4_union_name to b4_yystype.
+
+       * doc/bison.texinfo (Java Bison Interface): Mention "%define
+       abstract".  Rename "%define union_name" to "%define stype".
+       Rename method names according to previous patch.
+       (Java Scanner Interface): Describe "%code lexer" instead of
+       "%pure-parser" and "%define single_class".
+       (Java Differences): Mention "%code lexer".
+
+       * tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove final argument.
+       Include scanner here, using macros from tests/local.at.
+       (AT_DATA_CALC_Y): Remove final argument.
+       (_AT_CHECK_JAVA_CALC): Likewise.
+       (AT_CHECK_JAVA_CALC): Likewise.  Test all four combinations
+       of %locations and %error-verbose.
+       (main): Test with and without %lex-param.
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_LEXPARAM_IF.
+       (AT_BISON_OPTION_POPDEFS): Pop it.
 
 2007-03-07  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
 
        -----
 
        Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
-       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-       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
        notice are preserved.
-
-$Id$