X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/14462c2b1b55540d78ce1f1dc4fe67fcd1c701ac..b328890a9e62573176b34279fb59f0b97935f33a:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 1449cd1c..2713a500 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1842 @@
+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.
+	(Option Cross Key): Likewise.
+
+	* src/print-xml.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.
+	* src/print.c (print_core): Likewise.
+	* tests/conflicts.at (Unresolved SR Conflicts): Update output.
+	(Resolved SR Conflicts): Update output.
+	* tests/regression.at (Extra lookahead sets in report): New test case.
+
+2007-10-11  Wojciech Polak  <polak@gnu.org>
+
+	* src/print-xml.c (print_core): Remove item set
+	redundancy.
+	* data/xslt/bison.xsl (bison:ruleNumber): New key.
+	Improve processing time. Suggested by Joel E. Denny.
+	* data/xslt/xml2dot.xsl (xsl:template name="escape"):
+	Write xsl:param "required" attribute as comment.
+	* data/xslt/xml2text.xsl (xsl:template match="item"): New.
+	(xsl:template match="rule"): Support new reduced itemset.
+	(xsl:template match="point"): Remove.
+	* data/xslt/xml2xhtml.xsl: Likewise.
+
+2007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/getargs.c (version): Update copyright year.
+
+2007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Make xml2dot.xsl and --graph produce the same output.
+	* data/xslt/xml2dot.xsl (xsl:template match="rule"): Use a `&#10;'
+	instead of a `\n'.  That is, don't add escapes yet or they'll be doubly
+	escaped later.
+	(xsl:template name="output-node"): Use the new escape template instead
+	of the string-replace template directly.
+	(xsl:template name="output-edge"): Likewise.
+	(xsl:template name="escape"): New, escapes backslashes and newlines in
+	addition to quotation marks.
+	* src/graphviz.c (start_graph, output_node, output_edge): Add
+	whitespace to output for legibility.
+
+	Make xml2text.xsl and --report produce the same output, and remove the
+	XML "conflicts" element since a conflict summary is easily extracted
+	from the automaton.
+	* data/xslt/bison.xsl: New.
+	(xsl:template match="state" mode="bison:count-conflicts): New.
+	* data/xslt/xml2text.xsl: Import bison.xsl.
+	(xsl:template match="bison-xml-report"): Instead of styling the
+	"conflicts" element, style the "automaton" element with mode
+	"conflicts".  Unlike the former, the latter lists S/R and R/R
+	conflicts for a state on the same line.
+	(xsl:template match="conflicts"): Remove.
+	(xsl:template match="conflict"): Remove.
+	(xsl:template match="terminal"): Line-wrap the list of rules in which
+	the terminal is used.
+	(xsl:template match="nonterminal"): Likewise for nonterminals.
+	(xsl:template match="automaton" mode="conflicts"): New.
+	(xsl:template match="state" mode="conflicts"): New.
+	(xsl:template name="line-wrap"): New.
+	(xsl:template name="ws-search"): New.
+	* data/xslt/xml2xhtml.xsl: Import bison.xsl.
+	(xsl:template match="bison-xml-report"): Instead of styling the
+	"conflicts" element, style the "automaton" element with mode
+	"conflicts."
+	(xsl:template match="conflicts"): Remove.
+	(xsl:template match="conflict"): Remove.
+	(xsl:template match="automaton" mode="conflicts"): New.
+	(xsl:template match="state" mode="conflicts): New.
+	* src/conflicts.c (conflicts_output_xml): Remove.
+	* src/conflicts.h (conflicts_output_xml): Remove prototype.
+	* src/print-xml.c (print_xml): Don't invoke conflicts_output_xml.
+	* src/print.c (print_grammar): Consistently wrap at the 66th column so
+	the corresponding XSLT is easier.  Also, never wrap between a word and
+	the comma that follows it.
+
+2007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Improve C++ namespace support.  Discussed starting at
+	<http://lists.gnu.org/archive/html/help-bison/2007-09/msg00016.html>.
+	* data/c++.m4: (b4_namespace_ref, b4_namespace_open,
+	b4_namespace_close): New macros that interpret the %define variable
+	"namespace" so its value can contain "::" to indicate nested
+	namespaces.
+	* data/glr.cc (b4_namespace): Don't define, and replace all uses with
+	the above macros.
+	* data/lalr1.cc (b4_namespace): Likewise.
+	* data/location.cc (b4_namespace): Likewise.
+	* doc/bison.texinfo (Decl Summary): Move `%define push_pull' entry
+	inside a new table in the general %define entry.  Document `%define
+	namespace' there as well.  Point the %name-prefix entry to it since it
+	explains it more completely in the case of C++.
+	(C++ Bison Interface): Mention `%define namespace' instead of
+	%name-prefix.
+	(Table of Symbols): Remove the `%define push_pull' entry.  The %define
+	entry suffices.
+	* tests/c++.at (Relative namespace references): New test case.
+	(Absolute namespace references): New test case.
+	(Syntactically invalid namespace references): New test case.
+	* tests/input.at (C++ namespace reference errors): New test case.
+
+2007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Add syncline support and location accessor to internal %define
+	interfaces.
+	* data/bison.m4 (b4_percent_define_get_loc): New.
+	(b4_percent_define_get_syncline): New.
+	(b4_percent_define_flag_if): Use b4_percent_define_get_loc.
+	(b4_percent_define_default): Record defining location as line 1 rather
+	than 0 for the sake of synchronizing #line's, and define
+	b4_percent_define_syncline(VARIABLE).
+	(b4_percent_define_check_values): Use b4_percent_define_get_loc.
+	* src/muscle_tab.c (muscle_syncline_grow): New.
+	(muscle_code_grow): Use muscle_syncline_grow.
+	(muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
+	define b4_percent_define_syncline(VARIABLE).
+	(muscle_percent_define_get_loc): New.
+	(muscle_percent_define_get_syncline): New.
+	(muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
+	remove some unused variables.
+	(muscle_percent_define_default): Record defining location as line 1
+	rather than 0 for the sake of synchronizing #line's, and define
+	b4_percent_define_syncline(VARIABLE).
+	(muscle_percent_define_check_values): Use
+	muscle_percent_define_get_loc.
+	* src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
+	(muscle_percent_define_get_syncline): Prototype.
+	* tests/skeletons.at (%define Boolean variables: invalid skeleton
+	defaults): Update output for location change.
+	(Complaining during macro argument expansion): Extend to test
+	b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
+
+2007-10-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix some error-reporting macro bugs.
+	* data/bison.m4 (b4_cat): New.
+	(b4_error, b4_error_at): Use b4_cat to send error directives directly
+	to stdout so they don't become arguments to other macros.  Update
+	comments and add examples.
+	(b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
+	add examples.
+	(b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
+	after printing the error directive so that M4 doesn't report subsequent
+	problems that are induced by this problem.
+	* src/scan-skel.l: Recognize @` digraph outside of directive arguments
+	instead of just in them.  Recognize @\n in both places.  Both expand to
+	the empty string.  Needed by b4_cat.
+	* tests/skeletons.at (Complaining during macro argument expansion):
+	New test case.
+	(Fatal errors make M4 exit immediately): New test case.
+
+2007-10-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Implement --print-datadir.
+	* src/getargs.c (usage): Mention.
+	(PRINT_DATADIR_OPTION): New anonymous enum member.
+	(long_options): Add entry for it.
+	(getargs): Add case for it calling compute_pkgdatadir.
+	* src/output.c (output_skeleton): Encapsulate data directory
+	computation from here...
+	(prepare): ... and from here...
+	(compute_pkgdatadir): ... into this new function.
+	* src/output.h (compute_pkgdatadir): Prototype.
+
+2007-09-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/print-xml.c (escape_bufs): New static global variable
+	replacing...
+	(xml_escape_n): ... the static local variable buf here.
+	(print_xml): Free memory for escape_bufs.
+	* src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
+
+2007-09-25  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Replace `%push-parser' and `%push-pull-parser' with
+	`%define push_pull "push"' and `%define push_pull "both"'.
+	`%define push_pull "pull"' is the default.
+	* doc/bison.texinfo (Push Decl, Push Parser Function,
+	Pull Parser Function, Parser Create Function, Parser Delete Function):
+	Update declarations.
+	(Decl Summary, Table of Symbols): Replace %push-parser and
+	%push-pull-parser entries with a %define push_pull entry.
+	* data/bison.m4 (b4_percent_define_check_values): New macro.
+	(b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these
+	definitions...
+	* data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp
+	definitions...
+	* data/push.c: ... to here and compute them from the value of the
+	%define variable push_pull.
+	* data/c-skel.m4: Instead of choosing the push.c skeleton for push
+	parsing requests here...
+	* data/yacc.c: ... hack this to switch to push.c any time
+	b4_use_push_pull_flag or the %define variable push_pull is set.  This
+	will go away when we mv push.c yacc.c.
+	* data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that
+	push parsing is not supported since unused %define variables are
+	reported anyway.
+	* src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove.
+	* src/muscle_tab.h (muscle_percent_define_check_values): Update
+	comments for consistency with b4_percent_define_check_values.
+	* src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag
+	muscles.
+	* src/parse-gram.y (PERCENT_PUSH_PARSER, PERCENT_PUSH_PULL_PARSER):
+	Remove.
+	(prologue_declaration): Remove %push-parser and %push-pull-parser
+	rules.
+	* src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules.
+	* tests/calc.at: Update declarations.
+	* tests/input.at (%define enum variables): New test case.
+	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update
+	declaration.
+	(Push Parsing: Multiple impure instances): Update declaration.
+	(Push Parsing: Unsupported Skeletons): New test case.
+	* tests/torture.at (Exploding the Stack Size with Alloca): Update
+	declaration.
+	(Exploding the Stack Size with Malloc): Update declaration.
+
+2007-09-24  Wojciech Polak  <polak@gnu.org>
+
+	Add XSLT transformations.
+
+	* data/xslt/xml2dot.xsl: Transform XML into DOT.
+	* data/xslt/xml2text.xsl: Transform XML into plain text.
+	* data/xslt/xml2xhtml.xsl: Transform XML into XHTML.
+	* data/Makefile.am (xsltdir): New variable.
+	(dist_xslt_DATA): Add xslt/*.xsl files.
+
+2007-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
+	Problem reported by Wojciech Polak.
+	* src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2.
+	(xml_printf): Undo change I made on 21 September; that is,
+	indent 2 spaces, not 1.
+
+2007-09-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify ./configure --enable-gcc-warnings.
+	* src/print-xml.c, src/print-xml.h (xml_puts): Make third argument
+	`char const *' instead of `char *'.
+	* src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused
+	local variable `sep'.
+
+2007-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
+	elsewhere.
+	* src/print-xml.c: Prefer "const" after types; that's more consistent.
+	(xml_printf): Indent just 1 space for level.
+	(e_char, xlate_char): Remove.
+	(xml_escape_string): Rewrite to avoid undefined behavior (used
+	storage that was freed from the stack).
+	(xml_escape_n): Don't bother checking for subscript error.
+
+2007-09-21  Wojciech Polak  <polak@gnu.org>
+
+	Add Bison XML Automaton Report.
+
+	Add support for an -x option to generate an XML report.
+	It is not documented yet.
+	* src/print-xml.c: New file.
+	* src/print-xml.h: Likewise.
+	* lib/timevar.def (TV_XML): New var.
+	* src/Makefile.am (bison_SOURCES): Add print-xml.c, print-xml.h.
+	* src/conflicts.c: Include print-xml.h.
+	(solved_conflicts_xml_obstack): New var.
+	(log_resolution, conflicts_solve, conflicts_free):
+	Add support for XML report.
+	(conflicts_output_val): New function.
+	* src/conflicts.h (conflicts_output_val): New decl.
+	* src/files.c (spec_xml_file): New var.
+	(compute_output_file_names, output_file_names_free): Add XML support.
+	* src/files.h (spec_xml_file): New decl.
+	* src/getargs.c (xml_flag): New var.
+	(usage, short_options, long_options, getargs): Add XML support.
+	* src/getargs.h (xml_flag): New decl.
+	* src/gram.c: Include print-xml.h.
+	(rule_lhs_print_xml, rule_rhs_print_xml):
+	(grammar_rules_partial_print_xml, grammar_rules_print_xml):
+	New functions.
+	* src/gram.h: Declare external ones.
+	* src/main.c: Include print-xml.h.
+	(main): Add XML support.
+	* src/reduce.c: Include print-xml.h.
+	(reduce_xml): New function.
+	* src/reduce.h: Declare it.
+	* src/state.c: Include print-xml.h.
+	(state_new): Add XML support.
+	(state_rule_lookahead_tokens_print_xml): New function.
+	* src/state.h: Declare it.
+	(struct state): New member solved_conflicts_xml.
+	* src/symtab.c (symbol_class_get_string): New function.
+	* src/symtab.h: Declare it.
+
+2007-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* GNUmakefile: Switch to coreutils's version.
+	* bootstrap: Likewise.
+	* Makefile.cfg: Adjust to new GNUmakefile.
+	* README-hacking: Likewise.
+
+	Import from gnulib:
+
+	2006-08-18  Paul Eggert  <eggert@cs.ucla.edu>
+		    Bruno Haible  <bruno@clisp.org>
+
+	* m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
+	and is a script that invokes bison. Tighten the code. Add comments.
+
+2007-08-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Spell "boolean" as "Boolean".  Reported by Akim Demaille.
+	* data/bison.m4 (b4_percent_define_flag_if): Fix complaint.
+	* doc/bison.texinfo (Decl Summary): Fix.
+	* src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint.
+	* tests/input.at (Boolean %define variables): Update output.
+	* tests/skeletons.at (%define boolean variables: invalid skeleton
+	defaults): Rename to...
+	(%define Boolean variables: invalid skeleton defaults): ... this and
+	update output.
+
+2007-08-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	In impure push mode, don't allow more than one yypstate to be allocated
+	since multiple impure parsers would corrupt yynerrs.
+	* data/push.c (yypstate_allocated): New static global variable
+	initialized to 0.
+	(yypull_parse): If yypstate_new returns 0, don't report it as memory
+	exhaustion if yypstate_allocated is 1, but still return 2.
+	(yypstate_new): Invoke yyerror and return 0 if yypstate_allocated is
+	already 1.  Otherwise, set it to 1.
+	(yypstate_delete): Set it to 0.
+	* tests/push.at (Push Parsing: Multiple impure instances): New test
+	case.
+
+2007-08-17  Bob Rossi  <bob@brasko.net>
+
+	* doc/bison.texinfo (Push Decl): Document the push parser.
+	(Table of Symbols): Ditto.
+	(Pure Decl): Ditto.
+	(Decl Summary): Ditto.
+	(Multiple Parsers, Push Parser Function, Pull Parser Function,
+	Parser Create Function, Parser Delete Function):
+	Add new push parser symbols.
+	(Table of Symbols): Document push-parser, push-pull-parser,
+	yypush_parse, yypull_parse, yypstate_new and yypstate_delete.
+
+2007-08-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Update to GPLv3.
+	* doc/gpl-3.0.texi: New file.
+	* doc/gpl.texi: Remove.
+	* COPYING, GNUmakefile, HACKING, Makefile.am, Makefile.cfg:
+	* Makefile.maint, NEWS, PACKAGING, README, README-alpha:
+	* README-hacking, TODO, bootstrap, bootstrap.conf:
+	* configure.ac, data/Makefile.am, data/README, data/bison.m4:
+	* data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4:
+	* data/glr.c, data/glr.cc, data/java-skel.m4, data/java.m4:
+	* data/lalr1.cc, data/lalr1.java, data/location.cc:
+	* data/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
+	* djgpp/Makefile.maint, djgpp/README.in, djgpp/config.bat:
+	* djgpp/config.sed, djgpp/config.site, djgpp/config_h.sed:
+	* djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
+	* djgpp/testsuite.sed, doc/Makefile.am, doc/bison.texinfo:
+	* doc/fdl.texi, doc/refcard.tex, etc/Makefile.am, etc/README:
+	* etc/bench.pl.in, examples/Makefile.am, examples/extexi:
+	* examples/calc++/Makefile.am, lib/Makefile.am, lib/abitset.c:
+	* lib/abitset.h, lib/bbitset.h, lib/bitset.c, lib/bitset.h:
+	* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
+	* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
+	* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
+	* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
+	* lib/libiberty.h, lib/main.c, lib/subpipe.c, lib/subpipe.h:
+	* lib/timevar.c, lib/timevar.def, lib/timevar.h:
+	* lib/vbitset.c, lib/vbitset.h, lib/yyerror.c:
+	* m4/c-working.m4, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4:
+	* m4/timevar.m4, src/LR0.c, src/LR0.h, src/Makefile.am:
+	* src/assoc.c, src/assoc.h, src/closure.c, src/closure.h:
+	* src/complain.c, src/complain.h, src/conflicts.c:
+	* src/conflicts.h, src/derives.c, src/derives.h, src/files.c:
+	* src/files.h, src/flex-scanner.h, src/getargs.c:
+	* src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c:
+	* src/lalr.c, src/lalr.h, src/location.c, src/location.h:
+	* src/main.c, src/muscle_tab.c, src/muscle_tab.h:
+	* src/nullable.c, src/nullable.h, src/output.c, src/output.h:
+	* src/parse-gram.c, src/parse-gram.h, src/parse-gram.y:
+	* src/print.c, src/print.h, src/print_graph.c:
+	* src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c:
+	* src/reduce.h, src/relation.c, src/relation.h:
+	* src/revision.h, src/scan-code.h, src/scan-code.l:
+	* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
+	* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
+	* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
+	* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
+	* tests/Makefile.am, tests/actions.at, tests/c++.at:
+	* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
+	* tests/existing.at, tests/glr-regression.at:
+	* tests/headers.at, tests/input.at, tests/java.at:
+	* tests/local.at, tests/output.at, tests/push.at:
+	* tests/reduce.at, tests/regression.at, tests/sets.at:
+	* tests/skeletons.at, tests/synclines.at, tests/testsuite.at:
+	* tests/torture.at:
+	Update to GPLv3.
+
+2007-08-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Get rid of broken %no-parser, -n, and --no-parser implementation and
+	documentation.
+	* TODO: Don't mention them.
+	* doc/bison.1: Likewise.
+	* doc/bison.texinfo (Decl Summary): Likewise.
+	(Bison Options): Likewise.
+	(Option Cross Key): Likewise.
+	* src/getargs.c (no_parser_flag): Remove global variable.
+	(usage): Don't print description of -n and --no-parser.
+	(long_options): Remove --no-parser entry here.
+	(getargs): Remove -n case in the switch here.
+	* src/getargs.h (no_parser_flag): Remove extern.
+	* tests/regression.at (Web2c Actions): Remove comment that mentions
+	--no-parser.
+
+2007-08-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Do not
+	name user variables starting with `yy'.  Just pass NULL instead of a
+	dummy local &yylval to yypush_parse.
+	* tests/torture.at (AT_DATA_STACK_TORTURE): Do not name user variables
+	starting with `yy'.
+
+2007-08-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/yacc.c (yyexhaustedlab): Define it when YYERROR_VERBOSE is
+	true since it's then always used regardless of whether yyoverflow is
+	defined.  Reported by Christian Burger at
+	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00031.html>.
+	* THANKS: Add Christian Burger.
+
+	* ChangeLog: For changes in doc/bison.texinfo, consistently reference
+	node names: say "Decl Summary" not "Bison Declaration Summary".
+
+2007-07-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/muscle_tab.c (muscle_percent_define_flag_if): In order to
+	determine whether this function has already complained about an invalid
+	value for a %define boolean variable, don't check whether Bison has
+	ever examined the value.  As written, the check was a tautology.
+	Instead, record and check for this complaint using a separate muscle.
+
+2007-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix push parsing memory leak reported by Brandon Lucia at
+	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00032.html>.
+	* THANKS: Add Brandon Lucia.
+	* data/push.c (yypstate_delete): Free the stack if it was reallocated
+	but the parse never completed and thus freed it.
+	* tests/Makefile.am (TESTSUITE_AT): Add push.at.
+	* tests/testsuite.at: Include push.at.
+	* test/push.at: New.
+	(Push Parsing: Memory Leak for Early Deletion): New test case.
+
+2007-07-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Improve handling of multiple S/R conflicts in the same state and of S/R
+	conflicts involving multiple reductions.
+	* src/conflicts.c (resolve_sr_conflict): Don't assign the error action
+	set for a state here or Bison will abort if it is reassigned on a
+	later conflicted reduction in the same state.
+	Similarly, don't finalize and assign the solved conflicts report here
+	or it will be lost if it is reassigned on a later conflicted reduction
+	in the same state.
+	(set_conflicts): Instead, assign them both here after all S/R conflicts
+	in the state have been fully examined.
+	* src/print.c (shift_set): Rename to...
+	(no_reduce_set): ... this.
+	(print_reductions): Update for rename, and add %nonassoc error action
+	tokens to no_reduce_set so that, when printing the first remaining
+	reduction on an error action token, the reduction is enclosed in
+	brackets.
+	(print_results): Update for rename.
+	* tests/conflicts.at (Solved conflicts report for multiple reductions
+	in a state): New test case.
+	(%nonassoc error actions for multiple reductions in a state): New test
+	case.
+
+	* src/main.c (main): Don't depend on C99 features.
+
+2007-07-16  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* build-aux/.cvsignore: Add compile.
+	* lib/.cvsignore: Add charset.alias, ref-add.sed, ref-del.sed, and
+	uniwidth.
+
+2007-07-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* bootstrap (slurp): Create target directories that don't exist.
+	Specifically, we need lib/uniwidth/ because of recent Gnulib changes.
+
+2007-07-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* LR0.c (new_itemsets): Fix wording in comments: say item index rather
+	than item number.
+	* closure.c (closure): Likewise.
+	* state.h (reductions): Comment sorting of rules.
+	(state): Comment sorting of items.
+
+2007-07-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix C++ test cases after recent Gnulib changes.  Discussed starting at
+	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00000.html>.
+	* examples/calc++/Makefile.am (DEFAULT_INCLUDES): Override Automake's
+	definition in order to avoid Gnulib headers since we don't use config.h
+	here.
+	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use AT_DATA_GRAMMAR
+	rather than AT_DATA so that config.h is included.
+
+2007-07-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/glr.c (yy_yypstack, yypstates, yypdumpstack): Use YYFPRINTF
+	instead of fprintf.  Guard these functions with #if YYDEBUG instead of
+	#ifdef YYDEBUG for consistency with all other uses of YYDEBUG in Bison
+	and so that YYFPRINTF is guaranteed to be defined here.
+
+2007-05-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/muscle_tab.c (muscle_percent_define_invalid_value): Replace
+	with...
+	(muscle_percent_define_check_values): ... this more helpful function.
+	Again, it's not used yet, but it will be.
+	* src/muscle_tab.h: Likewise.
+
+	Improve some comments in parser table construction.
+	* src/LR0.c (new_itemsets): Explain sorting of itemset and kernel_base.
+	(generate_states): Don't mention ruleset, which is internal to closure.
+	* src/closure.c (closure): Explain sorting of core and itemset, which
+	is required for this function to behave correctly.
+	* src/closure.h (closure): Mention sorting.
+
+2007-05-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/lalr.c (state_lookahead_tokens_count): For code readability,
+	move the check for disabled transitions to an aver since conflict
+	resolution hasn't happened yet.
+
+	* src/lalr.c (state_lookahead_tokens_count): Remove the check that
+	labels a state as inconsistent just because it has error transitions.
+	The original form of this check appeared in revision 1.1 of lalr.c,
+	which was committed on 1991-12-21.  Now (at least), changing the
+	consistency label on such a state appears to have no useful effect in
+	any of the places it is examined, which I enumerate below.  The key
+	point to understanding each item in this enumeration is that a state
+	with an error transition is labelled consistent in the first place only
+	if it has no rules, so the check cannot matter for states that have
+	rules.  (1) Labelling a state as inconsistent will cause set_conflicts
+	to try to identify its conflicts, and a state must have *rules* to have
+	conflicts.  (2) Labelling a state as inconsistent will affect how
+	action_row sets the default *rule* for the state.  (3) Labelling a
+	state as inconsistent will cause build_relations to add lookback edges
+	to *rules* in that state.
+	* src/state.h (struct state): Word the comment for member consistent
+	more carefully.
+
 2007-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
 
 	Don't depend on C99 features.
@@ -121,38 +1960,38 @@
 
 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>
 
@@ -608,8 +2447,8 @@
 	* NEWS (2.3a+): Add entry for the change to %define.  Update entry for
 	%code.
 	* doc/bison.texinfo (Prologue Alternatives): Update.
-	(Bison Declaration Summary): In %defines entry, update mention of
-	`%code requires' and `%code provides'.
+	(Decl Summary): In %defines entry, update mention of `%code requires'
+	and `%code provides'.
 	(C++ Location Values): Update %define uses.
 	(Calc++ Parser Interface): Likewise.
 	(Calc++ Parser): Likewise, and update `%code requires' uses.
@@ -2886,7 +4725,7 @@
 	* doc/bison.texinfo (The prologue): Update names, and replace remaining
 	prologue blocks with %*-header declarations.
 	(Calc++ Parser): Likewise.
-	(Bison Declaration Summary): Update names.
+	(Decl Summary): Update names.
 	(Table of Symbols): Update description.
 	* src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
 	(PERCENT_END_HEADER): ... this.
@@ -2963,9 +4802,8 @@
 	header and code file.
 	* doc/bison.texinfo (Prologue): Show use of %before-definitions instead
 	of prologues for %union dependencies.
-	(Bison Declaration Summary): In %defines description, mention the
-	effect of %before-definitions and %after-definitions on the header
-	file.
+	(Decl Summary): In %defines description, mention the effect of
+	%before-definitions and %after-definitions on the header file.
 	(Calc++ Parser): Forward declare driver in a %before-definitions rather
 	than in the pre-prologue so that make check succeeds.
 	(Table of Symbols): Add entries for %before-definitions and
@@ -19301,11 +21139,9 @@
 	-----
 
 	Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
-	1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+	1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 	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$