X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/42f832d680b3f5b405f4b2216b8f223b9e82ee28..2055a44ed2f27a490d7692c88ee207a7d6ac7266:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 0f1ffc04..8a9b5264 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,2871 @@
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	%param: documentation.
+	* NEWS (2.6): Document %param, %lex-param, and %parse-param
+	changes.
+	* doc/bison.texinfo: Document that %lex-param and %parse-param
+	are n-ary.
+	Changes some examples to demonstrate it.
+	(Calc++ Parser): Use %param.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	style changes.
+	* src/parse-gram.y (add_param): Scope changes.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	%parse: support several arguments.
+	* src/parse-gram.y (current_param): New.
+	(param_type): Add param_none.
+	(params): New nonterminal.
+	Use it.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+
+2009-09-09  Akim Demaille  <demaille@gostai.com>
+
+	%param.
+	Provide a means to factor lex-param and parse-param common
+	declarations.
+
+	* src/parse-gram.y (param_type): New.
+	Define a %printer for it.
+	(add_param): Use it.
+	(%parse-param, %lex-param): Merge into...
+	(%parse): this new token.
+	Adjust the grammar to use it.
+	* src/scan-gram.l (RETURN_VALUE): New.
+	(RETURN_PERCENT_FLAG): Use it.
+	(RETURN_PERCENT_PARAM): New.
+	Use it to support %parse-param, %lex-param and %param.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use aver not assert.
+	* src/output.c: Don't include assert.h.
+	(output_skeleton): Use aver not assert.
+	* src/system.h (aver): In documentation of why, add links to
+	Paul Eggert's explanations in the mailing lists.
+
+2009-09-05  Alex Rozenman  <rozenman@gmail.com>
+
+	Use "Unresolved reference" error message when no symbols were found
+	in a symbolic reference resolution. Remove .expr and -expr from
+	the shown reference when the reference is unresolved.
+	* src/scan-code.l: Change the error message, adjust location columns,
+	rename variable "exact_mode" to "explicit_bracketing".
+	* tests/named-ref.at: Adjust existing tests and add a new one.
+
+2009-09-04  Akim Demaille  <demaille@gostai.com>
+
+	Adjust synclines in src/parse-gram.[ch].
+	* tests/bison.in: Do some magic (including working around issues
+	with ylwrap) when this wrapper is used to compile
+	src/parse-gram.y.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Complain about unused %define variables and %code qualifiers.
+	* NEWS (2.5): Document.
+	* data/bison.m4 (b4_check_user_names): Complain instead of warn.
+	* doc/bison.texinfo (Decl Summary): Document complaint, and
+	improve %define documentation a little otherwise.
+	* tests/input.at (Reject unused %code qualifiers): Update.
+	(%define errors): Update.
+	(%define, --define, --force-define): Update.
+	(%define backward compatibility): Update.
+	(Unused %define api.pure): Update.
+	* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Don't suppress warnings about unused parse.error.
+	* data/bison.m4 (b4_error_verbose_flag): Don't examine value of
+	%define variable parse.error unless b4_error_verbose_flag is
+	actually expanded in a skeleton.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+	* NEWS (2.4.2): Add "Internationalization" item.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+	bootstrap: fix/improve find_tool.
+	* bootstrap (find_tool): Improve error messages.
+	Fix typo about find_tool_names.
+
+2009-08-29  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
+	See
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
+	* src/scan-code.h (code_props_rule_action_init): Rename
+	named_ref arg to name so it doesn't shadow named_ref type.  This
+	makes it consistent with the function definition in scan-code.l
+	anyway.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%define: accept unquoted values.
+	* NEWS (2.5): Group all %define changes together, and document
+	this one.  Remove quotes in IELR and canonical LR entry.
+	* doc/bison.texinfo: Remove quotes in most examples throughout.
+	(Decl Summary): Update %define documentation.
+	(Table of Symbols): Likewise.
+	* src/ielr.c (LrType): Update documentation.
+	* src/parse-gram.y (content.opt): Add production for ID.
+	* tests/actions.at: Remove quotes in most tests.
+	* tests/calc.at: Likewise.
+	* tests/existing.at: Likewise.
+	* tests/input.at: Likewise.
+	* tests/local.at: Likewise.
+	* tests/push.at: Likewise.
+	* tests/reduce.at: Likewise.
+	* tests/torture.at: Likewise.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%define lr.type: make values lowercase IDs.
+	That is, "LALR" => "lalr", "IELR" => "ielr", and
+	"canonical LR" => "canonical-lr".
+	* NEWS (2.5): Update documentation.
+	* doc/bison.texinfo (Decl Summary): Likewise.
+	* src/ielr.c (ielr): Use new values.
+	* src/ielr.h (ielr): Update documentation.
+	* src/reader.c (prepare_percent_define_front_end_variables): Use
+	and validate new values.
+	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
+	grammars.
+	* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
+
+2009-08-27  Eric Blake  <ebb9@byu.net>
+
+	scan-gram: avoid portability trap with ctype usage.
+	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
+	Avoid compiler warning.
+
+2009-08-27  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: use perl for printing special sequences to files.
+	And skip tests if perl is not available.  This is better than
+	playing tricks with shell portability.  Suggested by Akim
+	Demaille.
+	* tests/input.at (Bad character literals): Use it here for
+	omitting final newlines.
+	(Bad escapes in literals): Use it here for special characters.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: show a use of %define lr.default-reductions "consistent"
+	* tests/conflicts.at (%nonassoc and eof): Extend to test that it
+	prevents the omission of expected tokens for %error-verbose.
+
+2009-08-26  Akim Demaille  <demaille@gostai.com>
+
+	tests: portability fix.
+	* tests/input.at (Bad escapes in literals): Don't expect "echo
+	'\0'" to output \ then 0.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	Actually handle the yytable zero value correctly this time.
+	* data/bison.m4 (b4_integral_parser_tables_map): Don't mention
+	zero values in the YYTABLE comments.
+	* data/glr.c (yytable_value_is_error): Don't check for zero
+	value.
+	* data/lalr1.cc (yy_table_value_is_error_): Likewise.
+	* data/yacc.c (yytable_value_is_error): Likewise.
+	* data/lalr1.java (yy_table_value_is_error_): Likewise.
+	(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
+	* src/tables.h: In header comments, explain why it's useless to
+	check for a zero value in yytable.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	More fixes related to last two patches.
+	* data/bison.m4 (b4_integral_parser_tables_map): Fix YYTABLE
+	comments: zero indicates syntax error not default action.
+	* data/c.m4 (b4_table_value_equals): Comment that YYID must be
+	defined.
+	* data/glr.c (yyis_pact_ninf): Rename to...
+	(yypact_value_is_default): ... this.
+	(yyisDefaultedState): Update for rename.
+	(yyis_table_ninf): Rename to...
+	(yytable_value_is_error): ... this, and check for value zero
+	besides just YYTABLE_NINF.
+	(yygetLRActions): Check for default value from yypact.  It
+	appears that this check is always performed before this function
+	is invoked, and so adding the check here is probably redundant.
+	However, the code may evolve after this subtlety is forgotten.
+	Also, update for rename to yytable_value_is_error.  Because that
+	macro now checks for zero, a different but equivalent branch of
+	the if-then-else here is evaluated.
+	(yyreportSyntaxError): Update for rename to
+	yytable_value_is_error.  The zero condition was mishandled
+	before.
+	(yyrecoverSyntaxError): Update for renames.  No behavioral
+	changes.
+	* data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
+	New function.
+	(yy_table_value_is_error_): New function.
+	(parse): Use new functions where possible.  No behavioral
+	changes.
+	(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
+	The zero condition was mishandled before.
+	* data/yacc.c (yyis_pact_ninf): Rename to...
+	(yypact_value_is_default): ... this.
+	(yyis_table_ninf): Rename to...
+	(yytable_value_is_error): ... this, and check for value zero
+	besides just YYTABLE_NINF.
+	(yysyntax_error): Update for rename to yytable_value_is_error.
+	The zero condition was mishandled before.
+	(yyparse): Update for renames.  No behavioral changes.
+	* src/tables.h: Improve comments about yypact, yytable, etc.
+	more.  Most importantly, say yytable value of zero means syntax
+	error not default action.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix %error-verbose for conflicts resolved by %nonassoc.
+	* NEWS (2.5): Document.
+	* data/glr.c (yyreportSyntaxError): Fix this by checking
+	yyis_table_ninf.
+	* data/yacc.c (yysyntax_error): Likewise.
+	* data/lalr1.cc (yysyntax_error_): Fix this by checking
+	yytable_ninf_.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* tests/conflicts.at (%nonassoc and eof): Update expected output
+	and remove FIXME.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	Some code and documentation improvements.
+	* data/c.m4 (b4_table_value_equals): New macro to capture
+	some repeated code.
+	* data/glr.c (yyis_pact_ninf): Use it here.
+	(yyis_table_ninf): Likewise.
+	(yyreportSyntaxError): Improve internal comments.
+	* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
+	Use it everywhere possible.
+	(yyis_table_ninf): Likewise.
+	(yysyntax_error): Improve internal comments.
+	* data/lalr1.cc (yysyntax_error_): Likewise.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* src/tables.h: Improve comments about yypact, yytable, etc.
+
+2009-08-21  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use locale when quoting.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
+	quote rather than implementing quoting here.
+
+2009-08-20  Eric Blake  <ebb9@byu.net>
+
+	Make previous patch more robust.
+	* src/output.c (ARRAY_CARDINALITY): New macro, copied from
+	argmatch.h.
+	(output_skeleton): Use it.
+	Suggested by Akim Demaille.
+
+	Import latest m4/m4.m4.
+	* submodules/autoconf: Update to autoconf 2.64.
+	* configure.ac (M4_GNU_OPTION): New define.
+	* src/output.c (output_skeleton): Use it to resolve FIXME.
+	* NEWS: Mention this.
+
+2009-08-19  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix complaints about escape sequences.
+	Discussed starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
+	For a \0 and similar escape sequences meaning the null
+	character, report an invalid escape sequence instead of an
+	invalid null character because the latter does not actually
+	appear in the user's input.
+	In all escape sequence complaints, don't escape the initial
+	backslash, and don't quote when the sequence appears at the end
+	of the complaint line unless there's whitespace that quotearg
+	won't escape.
+	Consistently say "invalid" not "unrecognized".
+	Consistently prefer "empty character literal" over "extra
+	characters in character literal" warning for invalid escape
+	sequences; that is, consistently discard those sequences.
+	* tests/input.at (Bad escapes in literals): New.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	doc: fixes.
+	* doc/bison.texinfo: Fix minor Texinfo errors.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	tests: distcc compliance.
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Discard distcc's
+	error messages from the output.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	variables: simplify the upgrade of namespace into api.namespace.
+
+	This patch simplifies "variables: rename namespace as
+	api.namespace", commit 67501061076ba46355cfd9f9361c7eed861b389c.
+	Suggested by Joel E. Denny in
+	http://lists.gnu.org/archive/html/bison-patches/2009-07/msg00006.html
+
+	* src/muscle-tab.c (muscle_percent_variable_update): New.
+	(muscle_percent_define_insert): Use it in replacement of the
+	previous tr invocation.
+	Remove variable_tr, no longer needed.
+	* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+	Remove.
+	* data/c++.m4: No longer handle namespace -> api.namespace.
+	* tests/input.at (%define backward compatibility): Check that
+	namespace is treated as api.namespace.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	doc: %initial-action to initialize yylloc.
+	Reported by Bill Allombert.
+	* doc/bison.texinfo: Set fill-column to 76.
+	(Location Type): Document the use of %initial-action to initialize
+	yylloc.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: use state_type.
+	* data/lalr1.cc (yysyntax_error_): Use state_type.
+	Move argument names into yy*.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: get rid of yyparse's yystate.
+	yystate and yystack_[0].state are equal, keep only the latter.
+	The former was also used as a temporary variable to compute the
+	post-reduction state.  Move this computation into an auxiliary
+	function.
+
+	* data/glr.c (yyLRgotoState): Fuse variable definition and first
+	assignment.
+	* data/lalr1.cc (yy_lr_goto_state_): New.
+	(yyparse): Use it.
+	Replace remaining uses of yystate by yystate_[0].state.
+	Remove the former.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: destroy $$ when YYERROR is called.
+	* data/lalr1.cc (yyreduce): Compute the resulting state before
+	running the user action so that yylhs is a valid symbol.
+	(yyerrorlab): Since yylhs is complete (it knows its type), we can
+	simply call yy_destroy_ to destroy $$ on YYERROR invocations.
+	* tests/c++.at (AT_CHECK_VARIANTS): Test YYERROR with variants.
+
+2009-08-18  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: update for gnulib's recent update-copyright changes
+	* gnulib: Update.
+	* .x-update-copyright (COPYING): Add as it's no longer implied
+	when .x-update-copyright is present.
+	* cfg.mk (update-copyright-local): Remove, now ignored.
+	(update-copyright): Declare update-b4-copyright as a dependency.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	build: require gettext 0.17.
+
+	Suggested by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
+	* configure.ac: require gettext 0.17 to ensure compatibility with
+	gnulib.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	build: lower gettext requirements.
+
+	Bison was uselessly requiring the formatstring macros from
+	gettext, which resulted in mo files not being installed on systems
+	that perfectly supported Bison mo files.  Lower the requirement.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
+
+	* configure.ac: Require need-ngettext instead of
+	need-formatstring-macros.
+	Reported by Martin Jabocs.
+	Suggested by Bruno Haible.
+	* INSTALL: Restructure.
+	(Internationalization): New.
+
+2009-08-14  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: fix use of copyright year intervals.
+	* gnulib: Update.
+	* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
+	as now recommended in gnulib/NEWS.
+	* build-aux/update-b4-copyright: Fix.
+	* cfg.mk (update-copyright-env): Configure update-copyright.
+
+2009-08-13  Joel E. Denny  <jdenny@clemson.edu>
+
+	Make it easier to write deterministic tests.
+	Continues Akim's work from his 2009-06-10 commits.
+	* src/reader.c (check_and_convert_grammar): Don't add any
+	symbols after the first symbols_do invocation.
+	* src/symtab.c (symbols_sorted): New static global.
+	(user_token_number_redeclaration): Update comments.
+	(symbol_from_uniqstr): If a new symbol is being created, assert
+	that symbols_sorted hasn't been allocated yet.
+	(symbols_free): Free symbols_sorted.
+	(symbols_cmp, symbols_cmp_qsort): New functions.
+	(symbols_do): Sort symbol_table into symbols_sorted on first
+	invocation.
+	* tests/input.at (Numbered tokens): Recombine tests now that the
+	output should be deterministic across multiple numbers.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	tests: GCC 4.5 compliance.
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
+	messages about #error.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	build: fix the generation of the documentation.
+	Some of our targets use "bison --help", but they can't depend on
+	"bison" itself (to avoid additional requirements on the user), so
+	they used to call "make src/bison" in the commands.  Then
+	concurrent builds may fail: one make might be aiming one of its
+	jobs at compiling src/bison, and another job at generating the man
+	page.  If the latter is faster than the former, then we have two
+	makes that concurrently try to compile src/bison.
+
+	This might also be a more convincing explanation for the failure
+	described in the patch "build: fix paths".
+
+	* Makefile.am (SUFFIXES): Initialize.
+	* build-aux/move-if-change: New, symlink to gnulib's.
+	* build-aux/local.mk: Ship it.
+	* doc/common.x: Remove, merged into...
+	* doc/bison.x: here.
+	* doc/local.mk (doc/bison.help): New.
+	($(CROSS_OPTIONS_TEXI)): Depend on it.
+	Use src/bison.
+	(.x.1): Replace with...
+	(doc/bison.1): this explicit, simpler, target.
+	(common_dep): Remove, inlined where appropriate.
+	(SUFFIXES, PREPATH): Remove, unused.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	gnulib: improve prefixing.
+	* configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+	change the value of...
+	(gl_LIBOBJS): this.
+	Adjust more variables.
+	* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+	gl_LIBOBJS.
+	(prefix): Also transform rules whose targets have slashes.
+	Use $prefix liberally.
+	Map @MKDIR_P@ to $(MKDIR_P).
+	Prefix directories that are mkdir'd.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	build: fix paths.
+	When using $(top_builddir) inconsistently, Make (including GNU
+	Make) is sometimes confused.  As a result it may want to build
+	lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
+	file, different names) concurrently, which, amusingly enough,
+	might end with:
+
+	  ranlib lib/libbison.a
+	  ranlib lib/libbison.a
+	  make[2]: *** [lib/libbison.a] Segmentation fault
+
+	on OS X.
+
+	* doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
+	needed.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	distcheck: fix.
+
+	* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	* tests/local.mk (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	Miscellaneous code readability improvements.
+
+	* src/reader.c (reader): Move %define front-end variable
+	defaults and checking into...
+	(prepare_percent_define_front_end_variables): ... this new
+	function.
+
+	* src/scan-gram.l (INITIAL): For consistency with string
+	literals, don't store open quote on character literal.  It's
+	discarded before returning anyway.
+	(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
+	Make length test more readable, and make the character stored
+	for an empty literal more obvious while consistent with the
+	previous behavior.
+
+	* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
+	USER_NUMBER_HAS_STRING_ALIAS throughout.
+	* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
+	that is repeated in symtab.h.  Improve argument names to make it
+	clear which side of the symbol-string alias pair is which.
+	(symbol_check_alias_consistency): Improve local variable names
+	for the same purpose.
+	* src/symtab.h (struct symbol): Make comments about aliases
+	clearer.
+	(symbol_make_alias): Improve comments and argument name.
+	* src/output.c (token_definitions_output): Update for rename to
+	USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
+
+2009-08-08  Alex Rozenman  <rozenman@gmail.com>
+
+	Convert "misleading reference" messages to warnings.
+	* src/scan-code.l: New function 'show_sub_messages', more
+	factoring.
+	* tests/named-ref.at: Adjust tests.
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: run "make update-copyright"
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: make update-b4-copyright easier to use
+	* build-aux/update-b4-copyright: In warnings, report line
+	numbers rather than character positions.
+	* cfg.mk (update-copyright-local): Set to update-b4-copyright so
+	that update-copyright runs it.
+	* gnulib: Update.
+
+2009-08-05  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: clean up update-b4-copyright code
+	* build-aux/update-b4-copyright: Do not accept 2-digit
+	UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
+	Don't accept a `[' in a b4_copyright argument.
+	Format code more consistently.
+	Don't assume b4*copyright never occurs.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: automate b4_copyright updates.
+	* Makefile.am (update-b4-copyright): New target rule.
+	* build-aux/local.mk (EXTRA_DIST): Add update-b4-copyright.
+	* build-aux/update-b4-copyright: New.
+	* data/yacc.c: Remove stray characters around b4_copyright
+	invocations.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: automate annual package-wide copyright-year update.
+	* .x-update-copyright: New.
+	* Makefile.am (EXTRA_DIST): Remove maint.mk.
+	* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
+	update-copyright.  Remove gnumakefile, which is implied by
+	maintainer-makefile.
+	* cfg.mk (bootstrap-tools): Copy from old maint.mk.
+	* gnulib: Update.
+	* maint.mk: Remove, now copied from gnulib.
+	* examples/extexi: Add missing "(C)" in copyright statement so
+	update-copyright can recognize it.
+	* src/LR0.h: Likewise.
+	* src/print.h: Likewise.
+	* src/print_graph.h: Likewise.
+	* src/gram.c: Add missing comma in copyright statement.
+	* src/gram.h: Likewise.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix "make distcheck".
+	* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
+	of just calc.stamp.
+
+2009-08-01  Joel E. Denny  <jdenny@clemson.edu>
+
+	Pacify "gcc -Wunused" for the input function from Flex.
+	Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
+	and later.
+	* src/scan-code.l: Add "%option noinput", which I cannot find in
+	the Flex manual, but which Flex has supported since at least as
+	far back as 2.5.4.  However, if any of our developers still use
+	Flex 2.5.4, they'll need to stop configuring with
+	--enable-gcc-warnings because "%option noinput" didn't work
+	correctly until Flex 2.5.6.
+	* src/scan-gram.l: Likewise.
+	* src/scan-skel.l: Likewise.
+
+2009-07-31  Alex Rozenman  <rozenman@gmail.com>
+
+	Fix --enable-gcc-warnings problems.
+	* src/reader.c: Adjust variable names.
+	* src/scan-code.l: Fix prototypes and adjust names.
+	* src/named-ref.c: Remove redundant "if".
+
+2009-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix a --enable-gcc-warnings problem.
+	* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
+	variable.
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Warn about character literals not of length one.
+	* NEWS (2.5): Document.
+	* src/scan-gram.l (INITIAL): Remove comment that we don't check
+	the length.
+	(SC_ESCAPED_CHARACTER): Warn if length is wrong.
+	* tests/input.at (Bad character literals): New test group.
+
+2009-07-24  Alex Rozenman  <rozenman@gmail.com>
+
+	Fix some memory leaks.
+	* src/named-ref.c: Add a pointer check (named_ref_free).
+	* src/scan-code.l: New function (variant_table_free). Called in
+	code_scanner_free.
+	* src/symlist.c: Call to named_ref_free (symbol_list_free).
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/lalr.c (state_lookahead_tokens_count): Correct comment.
+
+2009-07-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Some M4 cleanup in the testsuite.
+	Suggested by Eric Blake at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
+	* tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
+	complicate the code by distinguishing between a missing value
+	and an empty string value for an optional argument.  This fix is
+	allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
+	* tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
+	(AT_TEST_TABLES_AND_PARSE): ... this now that the special
+	arguments are not needed because of the following changes.
+	Fix stale comments.
+	Bison developers should use GNU M4 and should not use
+	POSIXLY_CORRECT when building the test suite, so do not
+	complicate the code by avoiding $10 and above.
+	Do not quote an empty string value for an optional argument, and
+	do not distinguish between a missing value and an empty string
+	value.
+
+2009-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Revert unnecessary column realignment in --help output.
+	Reported by Akim Demaille at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
+	* src/getargs.c (usage): Here.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+	Alphabetical order in src/local.mk.
+	* src/local.mk: Adjust.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+	Style changes and factoring.
+	* src/named-ref.h: Add comments.
+	* src/parse-gram.y: Readability and style changes.
+	* src/reader.c: Factoring: assign_named_ref function.
+	* src/scan-code.l: Factoring and style changes. Rename
+	parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
+	Use "unsigned" type for variant index. Improve readablity.
+	* src/scan-gram.l: Change error messages and add comments.
+	* src/symlist.h: symbol_list_null: New function decl.
+	* src/symlist.c: symbol_list_null: Implement here.
+	* tests/named-refs.at: Adjust for new error messages.
+
+2009-06-29  Eric Blake  <ebb9@byu.net>
+
+	scan-code: avoid compiler warnings
+	* src/scan-code.l (parse_named_ref): Use correct specifiers.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+	build: avoid concurrent extraction of calc++.
+	* examples/calc++/Makefile.am (calc.stamp): New.
+	Depend on it to create the sources of calc++ so that concurrent
+	builds don't launch several "extexi" in parallel.
+	Not only this is inefficient, this also builds incorrect sources
+	with several extractions mixed together.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+	parse.error: fix.
+	* data/bison.m4: Move code related to specific variables after the
+	definition of the variable-maintaining macros so that we don't
+	"invoke" b4_percent_define_check_values before it is defined.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+	variables: parse.error
+
+	Implement, document, and test the replacement of %error-verbose
+	by %define parse.error "verbose".
+	* data/bison.m4 (b4_error_verbose_if): Reimplement to track the
+	values of the parse.error variable.
+	Make "simple" its default value.
+	Check the valid values.
+	* src/parse-gram.y: Use %define parse.error.
+	(PERCENT_ERROR_VERBOSE): New token.
+	Support it.
+	* src/scan-gram.l: Support %error-verbose.
+
+	* doc/bison.texinfo (Decl Summary): Replace the documentation of
+	%define error-verbose by that of %define parse.error.
+	* NEWS: Document it.
+
+	* tests/actions.at, tests/calc.at: Use parse.error instead of
+	%error-verbose.
+
+2009-06-27  Alex Rozenman  <rozenman@gmail.com>
+
+	Implement support for named symbol references.
+	* src/parse-gram.y: Add new syntax (named_ref.opt).
+	* src/reader.c: Store named refs in symbol lists.
+	* src/reader.h: New argument for symbol_append and
+	action_append functions.
+	* src/scan-code.h: Add new field (named_ref) into
+	code_props data structure. Keeps named ref of midrule
+	actions.
+	* src/scan-code.l: Support for named refs in semantic
+	action code. New function 'parse_named_ref'.
+	* src/scan-gram.l: Support bracketed id.
+	* src/symlist.c: Store named refs in symbol lists.
+	* src/symlist.h: New field in symbol list: named_ref.
+	* src/named-ref.h: New file, a struct for named_ref.
+	* src/named-ref.cp: New file, named_ref_new function.
+	* src/local.mk: Add two new files.
+	* tests/testsuite.at: Include new test group:
+	* tests/named-refs.at: this new file.
+
+2009-06-25  Akim Demaille  <demaille@gostai.com>
+
+	hash: check insertion for memory exhaustion.
+	* src/uniqstr.c (uniqstr_new): New.
+
+2009-06-24  Akim Demaille  <demaille@gostai.com>
+
+	variables: rename namespace as api.namespace.
+	Discussed in
+	http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00033.html
+
+	* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+	New.
+	(b4_percent_define_use): New.
+	Use it where applicable.
+	* data/c++.m4: Replace uses of the variable "namespace" by
+	"api.namespace".
+	Default the latter to the former.
+	* doc/bison.texinfo (Decl Summary): Document "namespace" as
+	obsolete.
+	Document api.namespace.
+	Use @samp to document %define uses, keep @code for identifiers.
+	* NEWS: Likewise.
+	* tests/c++.at, tests/input.at: Test api.namespace instead of
+	namespace. (The tests passed with namespace.)
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	style changes.
+	* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
+	* src/print-xml.c: Style changes.
+	* tests/conflicts.at: Comment changes.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	xml: beware of user strings used to give a %prec to rules.
+	* tests/conflicts.at (%prec with user strings): New.
+	* src/gram.c (grammar_rules_print_xml): Escape the precedence for
+	XML output.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	hash: check insertion for memory exhaustion.
+	* src/muscle-tab.c (muscle_insert, muscle_grow)
+	* src/state.c (state_hash_insert): Check the return value of
+	hash_insert.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	tests: honor TESTSUITEFLAGS in every check target.
+	* tests/local.mk (RUN_TESTSUITE): New.
+	(check-local, installcheck-local, maintainer-check-g++)
+	(maintainer-check-posix, maintainer-check-valgrind): Use it.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+	deterministic test suite.
+	Some consistency checks on symbols are performed after all the
+	symbols were read, by an iteration over the symbol table.  This
+	traversal is nondeterministic, which can be a problem for test
+	cases.
+	Avoid this.
+	Addresses another form of nondeterminism reported by Joel E. Denny.
+	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+	* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
+	test in two.
+	Use different file names for the three tests to make the
+	maintenance easier.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+	gnulib: update.
+	* gnulib: Update to latest.
+	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
+	* m4/.gitignore: Regen.
+	* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
+	Call xalloc_die on hash_insert failures.
+	Requested by the new __warn_unused_result__ attribute of
+	hash_insert.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+	deterministic user-token-number redeclaration errors.
+	Address nondeterminism reported by Joel E. Denny.
+	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+	* src/uniqstr.h: Comment changes.
+	* src/location.h (boundary_cmp, location_cmp): New.
+	* src/symtab.c (user_token_number_redeclaration): New.
+	(symbol_translation): Use it.
+	* tests/input.at (Numbered tokens): Adjust the expected output.
+
+2009-05-25  Akim Demaille  <demaille@gostai.com>
+
+	build: avoid ignored errors.
+	* doc/local.mk ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
+	errors, they pollute the output.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Convert multiple variable definition warnings to complaints.
+	* NEWS (2.5): Add a new entry for that change.
+	* doc/bison.texinfo (Decl Summary): Update %define entry.
+	(Bison Options): Update -D/--define/-F/--force-define entry.
+	* src/muscle-tab.c (muscle_percent_define_insert): Implement.
+	* src/muscle-tab.h (muscle_percent_define_insert): Update
+	comments.
+	* tests/input.at (`%define errors'): Update.
+	(`%define, --define, --force-define'): Update.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	-F/--force-define and relative %define/-D/--define priorities.
+	* NEWS (2.5): Add documentation to -D/--define entry.
+	* build-aux/cross-options.pl: Hard-code association of
+	--force-define with %define.
+	* doc/bison.texinfo (Decl Summary): In %define entry,
+	cross-reference command-line options.
+	(Bison Options): Add documentation to -D/--define entry.
+	(Option Cross Key): Widen column for --force-define row.
+	* src/getargs.c (usage): Document -F/--force-define.  Realign
+	options in output.
+	(short_options, long_options, getargs): Parse -F/--force-define,
+	and update muscle_percent_define_insert invocations.
+	* src/muscle-tab.h (muscle_percent_define_how): New enum type.
+	(muscle_percent_define_insert): Add argument with that type.
+	* src/muscle-tab.c (muscle_percent_define_insert): Implement
+	-F/--force-define behavior and priorities.
+	(muscle_percent_define_ensure): Update
+	muscle_percent_define_insert invocation.
+	* src/parse-gram.y (prologue_declaration): Update
+	muscle_percent_define_insert invocations.
+	* tests/input.at (`%define, --define'): Rename to...
+	(`%define, --define, --force-define'): ... this and extend.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Update some comments to make sense for -D.
+	* data/bison.m4 (b4_check_user_names): In header comments, say
+	"user occurrence" instead of "grammar occurrence".
+	* src/muscle-tab.h (muscle_percent_define_insert): Likewise.
+	(muscle_percent_code_grow): Likewise just for consistency.
+
+2009-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/c++.m4 (b4_namespace_close): Simplify slightly.
+
+2009-05-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Handle a trailing `:' in a user-supplied C++ namespace better.
+	* data/c++.m4 (b4_namespace_close): Don't let it be printed
+	among the closing braces here.  This fix might make the
+	generated code easier to debug, but otherwise it should be
+	insignificant because a trailing `:' is a C++ error already.
+
+2009-05-19  Akim Demaille  <demaille@gostai.com>
+
+	remove useless variable.
+	* src/getargs.c (skeleton_arg): Remove now useless variable.
+	Should help the compiler see that this printf-like call is sane.
+
+2009-05-15  Akim Demaille  <demaille@gostai.com>
+
+	Rename token.prefix as api.tokens.prefix.
+	Discussed here.
+	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00024.html.
+
+	* NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
+	* tests/c++.at, tests/calc.at, tests/java.at, tests/local.at
+	(token.prefix): Rename as...
+	(api.tokens.prefix): this.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+	doc: use C++ headers.
+	* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+	headers.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+	doc: token.prefix
+	* doc/bison.simple (Decl Summary): Document token.prefix.
+	(Calc++ Parser): Various fixes.
+	Formatting changes.
+	Use token.prefix.
+	Introduce a macro TOKEN to shorten the code and make it more
+	readable.
+	(Calc++ Scanner): Adjust.
+	* NEWS (Variable token.prefix): New.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+	bison: catch bad symbol names.
+	* src/scan-gram.l({int}{id}): Report as an invalid identifier.
+	* tests/input.at: Adjust.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+	identifiers: dashes are letters.
+	Dashes can now start identifiers (symbols and directives).
+
+	* src/scan-gram.l ({letter}): Add dash.
+	({id}): Remove it.
+	* tests/input.at (Symbols): Adjust.
+	Remove stray comment.
+	* tests/regression.at (Invalid inputs): Adjust error message.
+	* doc/bison.texinfo (Symbols): Update.
+
+2009-05-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Declare %code to be a permanent feature.
+	* NEWS (2.4.2): Here.
+	* doc/bison.texinfo (Prologue Alternatives): Don't say it's
+	experimental.
+	(Decl Summary): Likewise.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Convert underscores to dashes in some %define variable names.
+	For now, just api.push-pull and lr.keep-unreachable-states.
+	Maintain old names for backward compatibility.
+	* NEWS (2.5): Document.
+	* data/c.m4 (b4_identification): Update comment.
+	* data/yacc.c: Update access.
+	* doc/bison.texinfo: Update.
+	* etc/bench.pl.in (bench_push_parser): Update use.
+	* src/files.c (tr): Move to...
+	* src/getargs.c, src/getargs.h (tr): ... here because I can't
+	think of a better place to expose it.  My logic is that, for all
+	uses of tr so far, command-line arguments can be involved, and
+	getargs.h is already included.
+	* src/main.c (main): Update access.
+	* src/muscle_tab.c (muscle_percent_define_insert): Convert old
+	variable names to new variable names before assigning value.
+	* src/reader.c (reader): Update setting default.
+	* tests/calc.at: Update uses.
+	* tests/conflicts.at (Unreachable States After Conflict
+	Resolution): Update use.
+	* tests/input.at (%define enum variables): Update use.
+	(%define backward compatibility): New test group.
+	* tests/push.at: Update uses.
+	* tests/reduce.at: Update uses.
+	* tests/torture.at: Update uses.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Set all front-end %define defaults in one place.
+	* src/main.c (main): Move lr.keep_unreachable_states default...
+	* src/reader.c (reader): ... to here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Rename lr.default_reductions to lr.default-reductions.
+	* NEWS (2.5): Here.
+	* doc/bison.texinfo: Here.
+	* src/lalr.c (initialize_LA): Here.
+	* src/print.c (print_reductions): Here.
+	* src/reader.c (reader): Here.
+	* src/tables.c (action_row): Here.
+	* tests/input.at (%define enum variables): Here.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify ./configure --enable-gcc-warnings.
+	* tests/input.at (Symbols): Prototype yyerror and yylex.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document how `%define "var" "value"' is not M4-friendly.
+	* src/parse-gram.y (variable): In comments here.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Clean up recent patches a little.
+	Reported by Akim Demaille.
+	* doc/bison.texinfo (Understanding): Fix typos.
+	* src/print.c (print_reductions): Don't use negated variable.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	List accepted values for a %define enum variable with an invalid value.
+	Suggested by Akim Demaille at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
+	* data/bison.m4 (_b4_percent_define_check_values): Implement.
+	* src/muscle-tab.c (muscle_percent_define_check_values): Implement.
+	* tests/input.at (%define lr.default_reductions invalid values): Merge
+	into...
+	(%define enum variables): ... here, and update output.
+
+2009-04-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Rename "default rule" to "default reduction".
+	This includes changing variable names in code, changing
+	comments, and renaming %define lr.default_rules to %define
+	lr.default_reductions.
+	* NEWS (2.5): Update IELR documentation.
+	* data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
+	documentation.
+	* data/glr.c, data/lalr1.java: Sync copyright dates.
+	* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
+	and lr.type documentation.  Make some other wording
+	improvements.
+	(Glossary): Adjust cross-references and Default Reduction
+	definition.
+	* src/lalr.c (state_lookahead_tokens_count): Adjust code.
+	Remove a confusing comment pointed out by Akim Demaille.
+	(initialize_LA): Adjust code.
+	* src/print-xml.c (print_reductions): Adjust code.
+	* src/print.c (print_reductions): Adjust code.
+	* src/reader.c (reader): Adjust code.
+	* src/tables.c (action_row): Adjust code.
+	(token_actions): Adjust code.
+	* src/tables.h: Adjust YYDEFACT documentation.
+	* tests/input.at (%define lr.default_rules invalid values):
+	Rename test group to...
+	(%define lr.default_reductions invalid values): ... this, and
+	update grammar file and expected output.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
+	(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
+
+2009-04-21  Akim Demaille  <demaille@gostai.com>
+
+	tests: check the use of dashes and periods in symbols.
+	* tests/input.at (Symbol): New test group.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document %define lr.type and lr.default_rules.
+	* NEWS (2.5): Add an entry.
+	* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
+	besides just LALR(1) and GLR(1).
+	* doc/bison.texinfo (Introduction): Likewise.
+	(Language and Grammar): Bison is no longer limited to LALR(1)
+	restrictions.
+	(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
+	when trying to distinguish from GLR.  Talk about LR(1) grammars
+	rather than LALR(1) grammars.
+	(Decl Summary): In %define api.push_pull entry, say it applies
+	to deterministic parsers in C rather than LALR(1) parsers in C.
+	Add lr.default_rules entry.
+	Add lr.type entry.
+	(Mystery Conflicts): Bison is no longer limited to LALR(1)
+	restrictions.
+	(Generalized LR Parsing): Same changes as for the previous GLR
+	section.
+	(Memory Management): Say deterministic rather than LALR(1).
+	(Understanding): Correct some bison output.
+	Index discussion of "accepting state".
+	Say deterministic rather than LALR(1).
+	(Bison Options): In --yacc entry, say deterministic rather than
+	LALR(1).
+	In --report, --graph, and --xml entries, just don't mention
+	LALR(1).
+	(C++ Parsers): Say deterministic rather than LALR(1).
+	(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
+	(Glossary): Add Accepting State, Consistent State, Default Rule,
+	and IELR(1) definitions.
+	In Generalized LR (GLR) definition, make same changes as in
+	previous GLR sections.
+	In LALR(1) definition, say Bison uses LALR(1) by default rather
+	than implying Bison is limited to LALR(1).
+	(LocalWords): Add IELR.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Finish implementing %define lr.type.
+	Its value can be "LALR", "IELR", or "canonical LR".
+	* lib/timevar.def (TV_IELR_PHASE1): New var.
+	(TV_IELR_PHASE2): New var.
+	(TV_IELR_PHASE3): New var.
+	(TV_IELR_PHASE4): New var.
+	* src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
+	AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
+	Sbitset.h, ielr.h, and ielr.c.
+	* src/getargs.h, src/getargs.c (enum trace, trace_args,
+	trace_types): Add trace_ielr.
+	* src/lalr.h, src/lalr.c (ngotos): Export it.
+	(F): Rename to...
+	(goto_follows): ... this, update all uses, and export it.
+	(set_goto_map): Export it.
+	(map_goto): Export it.
+	(compute_lookahead_tokens): Don't free goto_follows yet.  Now
+	handled in ielr.
+	(initialize_LA): Export it.  Move lookback allocation to...
+	(lalr): ... here because, for canonical LR, initialize_LA must
+	be invoked but lookback and much of the rest of LALR isn't
+	needed.
+	* main.c (main): Instead of lalr, invoke ielr, which invokes
+	lalr.
+	* src/reader.c (reader): Default lr.type to "LALR".
+	Default lr.default_rules to "accepting" if lr.type is "canonical
+	LR".  Leave the default as "all" otherwise.
+	Check for a valid lr.type value.
+	* src/state.h, src/state.c (struct state_list): Add state_list
+	member.
+	(state_new): Initialize state_list member to NULL.
+	(state_new_isocore): New function, exported.
+	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
+	exercises all values of lr.type.
+	(GNU AWK Grammar): Rename test group to...
+	(GNU AWK 3.1.0 Grammar): ... this, and extend to use
+	AT_TEST_EXISTING_GRAMMAR.
+	(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
+	(GNU pic Grammar): Rename test group to...
+	(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
+	AT_TEST_EXISTING_GRAMMAR.
+	* tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
+	all values of lr.type.
+	(Single State Split): New test groups using AT_TEST_LR_TYPE.
+	(Lane Split): Likewise.
+	(Complex Lane Split): Likewise.
+	(Split During Added Lookahead Propagation): Likewise.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Add new files for IELR and canonical LR implementation.
+	* src/AnnotationList.c: New.
+	* src/AnnotationList.h: New.
+	* src/InadequacyList.c: New.
+	* src/InadequacyList.h: New.
+	* src/Sbitset.c: New.
+	* src/Sbitset.h: New.
+	* src/ielr.c: New.
+	* src/ielr.h: New.
+
+2009-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Implement %define lr.default_rules.
+	Its value describes the states that are permitted to contain
+	default rules: "all", "consistent", or "accepting".
+	* src/reader.c (reader): Default lr.default_rules to "all".
+	Check for a valid lr.default_rules value.
+	* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
+	is "accepting", then only mark the accepting state as
+	consistent.
+	(initialize_LA): Tell state_lookahead_tokens_count whether
+	lr.default_rules is "accepting".
+	* src/tables.c (action_row): If lr.default_rules is not "all",
+	then disable default rules in inconsistent states.
+	* src/print.c (print_reductions): Use this opportunity to
+	perform some assertions about whether lr.default_rules was
+	obeyed correctly.
+	* tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
+	helps with checking the parser tables for a grammar.
+	* tests/input.at (%define lr.default_rules invalid values): New
+	test group.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
+	AT_TEST_TABLES_AND_PARSE.
+	(`no %define lr.default_rules'): New test group generated by
+	AT_TEST_LR_DEFAULT_RULES.
+	(`%define lr.default_rules "all"'): Likewise.
+	(`%define lr.default_rules "consistent"'): Likewise.
+	(`%define lr.default_rules "accepting"'): Likewise.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	Formatting change.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	bison: factoring.
+	* src/output.c (token_definitions_output): Use symbol_id_get
+	instead of duplicating its logic.
+	* TODO (YYERRCODE): Extend.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	variables: prefer error-verbose to error_verbose.
+	* data/bison.m4 (b4_error_verbose_if): Based on error-verbose
+	instead of error_verbose.
+	* src/scan-gram.l (%error-verbose): Map to the error-verbose
+	variable.
+	* doc/bison.texinfo: Promote %define error-verbose instead of
+	%error-verbose.
+	* tests/actions.at: Prefer %define error-verbose to %error-verbose.
+
+2009-04-15  Akim Demaille  <demaille@gostai.com>
+
+	variables: accept dashes.
+	* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
+	underscores.
+	* src/scan-gram.l ({id}): Also accept dashes after the initial
+	letter.
+	({directive}): Use {id}.
+	* src/parse-gram.y: Comment and formatting changes.
+	* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
+	symbols.
+	* src/complain.h, src/complain.c (yacc_at): New.
+	* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
+	symbol names.
+	* src/output.c (token_definitions_output): Do not #define token
+	names with dashes.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	Consistently refer to Yacc, not YACC.
+	* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
+
+2009-04-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify make maintainer-check-posix.
+	* tests/input.at (%define, --define): Move bison command-line
+	options before grammar file name.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document semicolon warnings.
+	* NEWS (2.5): Here.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+	variables: use `parse.assert' instead of `assert'.
+	* TODO (assert): Remove.
+	* data/bison.m4 (b4_assert_if): Replace with...
+	(b4_parse_assert_if): this.
+	* data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust.
+	* doc/bison.texinfo (Decl Summary): Document parse.assert.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+	variables: use `parse.trace' instead of `debug'.
+	* src/getargs.c (getargs): Map -t to %define trace.parse.
+	* src/scan-gram.l (%debug): Map to %define trace.parse.
+	* data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
+	names to `_' in macro names.
+	(b4_debug_if): Replace with...
+	(b4_parse_trace_if): this.
+	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
+	* data/yacc.c: Adjust.
+	* doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
+	Use @code to label the variable list.
+	Document the variable parse.trace.
+	(Tracing): Promote the parse.trace variable.
+	* TODO: %printer is not documented.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+	doc: minor fixes.
+	* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
+	(Table of Symbols): Remove duplicate entry for %debug.
+
+2009-04-10  Eric Blake  <ebb9@byu.net>
+
+	submodules: update to latest
+	* submodules/autoconf: Use latest upstream Autoconf.
+
+2009-04-06  Eric Blake  <ebb9@byu.net>
+
+	Work around autoconf 2.63b bug in testsuite.
+	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
+	autoconf bug related to # in test.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* NEWS (2.5): New section.  Describe new -D/--define feature.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	rename muscle_tab.* as muscle-tab.* for consistency.
+	* src/muscle_tab.h, src/muscle_tab.c: Rename as...
+	* src/muscle-tab.h, src/muscle-tab.c: these.
+	* src/getargs.c, src/local.mk, src/main.c, src/output.c,
+	* src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	Makefile: introduce $(BISON).
+	* src/local.mk (BISON): New.
+	(YACC): Use it.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	parser: handle %locations as %define locations.
+	* src/getargs.h, src/getargs.c (locations_flag): Remove.
+	* src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure
+	to set "locations" to true.
+	* src/output.c (prepare): Don't output "locations".
+	* src/scan-gram.l (%locations): Handle it as a %<flag>.
+	* src/parse-gram.y: It's no longer a token.
+	Don't handle it.
+	* data/bison.m4 (b4_locations_if): Define it with
+	b4_percent_define_if_define.
+	* data/c.m4, data/glr.cc: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+	muscle: factor the handling of obsolete of obsolete directives.
+	Suggested by Joel E. Denny.
+
+	* src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure):
+	New, extracted from...
+	* src/parse-gram.y (prologue_declaration: pure-parser): here.
+	Remove it.
+	(prologue_declaration: "%<flag>"): Use
+	muscle_percent_define_ensure.
+	(%error-verbose, %pure-parser): No longer tokens.
+	* src/scan-gram.l (pure-parser): Return as a %<flag>.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix options documentation.
+	* build-aux/cross-options.pl: As in --help output, write optional
+	arguments as [=ARG] not =[ARG].
+	* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
+	If the first m4 in $PATH is wrong, it keeps looking.  Moreover, its
+	requirements for a correct m4 are stricter.
+	* m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4.
+	* configure.ac: Update to use AC_PROG_GNU_M4.
+	Reported by Eric Blake.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Help with updating web manual.
+	* HACKING: Incorporate instructions from gnulib/doc/README.
+	* bootstrap.conf (gnulib_modules): Add gendocs.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+	Factor %FLAG at scan level.
+	* src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
+	definitions and associated rules, replaced by....
+	(PERCENT_FLAG): this new token type, and rule.
+	* src/scan-gram.l (RETURN_PERCENT_FLAG): New.
+	Use it for %debug and %error-verbose.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+	Treat %debug as %define debug.
+	* data/bison.m4 (b4_debug_if): New.
+	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c,
+	* data/lalr1.java: Use it instead of b4_debug_flag.
+	* src/getargs.h, src/getargs.c (debug_flag): Remove.
+	* src/output.c (prepare): Don't output it.
+	* src/parse-gram.y: Treat %debug as %define debug.
+
+2009-04-03  Akim Demaille  <demaille@gostai.com>
+
+	Treat %error-verbose as %define error_verbose.
+	This allows to pass -Derror_verbose on the command line.  Better
+	yet, it allows to pass -Derror_verbose=$(ERROR_VERBOSE), with
+	ERROR_VERBOSE being defined as false or true.
+	* data/bison.m4 (b4_percent_define_if_define): Instead of relying
+	on b4_percent_define_ifdef, for does not check the defined value,
+	but only whether the symbol is defined, rely on
+	b4_percent_define_flag_if, so that a value of "false" is processed
+	as a false.
+	If not defined, define the flag to "false".
+	(b4_error_verbose_if): New.
+	* data/glr.c, data/lalr1.cc, data/yacc.c: Use it instead of
+	b4_error_verbose_flag.
+	* src/getargs.h, src/getargs.c (error_verbose_flag): Remove.
+	* src/output.c (prepare): Don't output it.
+	* src/parse-gram.y (%error-verbose): Treat as %define error_verbose.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix strange %define locations for default values.
+	Reported by Akim Demaille at
+	<http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
+	and discussed again starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
+	* data/bison.m4 (b4_percent_define_default): Leave syncline blank
+	because location information is bogus.
+	Use angle brackets to delimit fake file name because square brackets
+	look like underexpanded m4.  Choose a better fake file name.
+	Use negative line numbers.
+	* src/muscle_tab.c (muscle_percent_define_default): Likewise.
+	* src/location.c (location_print): If line for a boundary is negative,
+	only print that boundary's file name.
+	* src/location.h: Document that.
+	* tests/skeletons.at (%define Boolean variables: invalid skeleton
+	defaults): Update output.
+
+2009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify ./configure --enable-gcc-warnings.
+	* Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS) because many files
+	in lib won't compile with it.
+	* src/local.mk (src_bison_CFLAGS): Use $(WERROR_CFLAGS) here only.
+
+2009-03-31  Akim Demaille  <demaille@gostai.com>
+
+	bootstrap: --help to stdout.
+	* bootstrap (usage): Don't send --help to stderr.
+	Use a here doc instead of a long string.
+
+2009-03-31  Akim Demaille  <demaille@gostai.com>
+
+	bootstrap: README-hacking no longer exists
+	* bootstrap (checkout_only_file): Set to HACKING.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+	doc: merge HACKING and README-hacking.
+	Two files is confusing.
+	Reported by Alexandre Duret-Lutz.
+
+	* README-hacking: Merge into...
+	* HACKING (Working from the repository): here.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+	doc: update README-hacking.
+	* README-hacking: We now use git and git submodules.
+	Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: avoid GCC 4.3 warnings.
+	GCC 4.3 now warns about "a || b && c" and asks for explicit
+	parentheses.
+	Reported by Alexandre Duret-Lutz.
+	* data/location.cc: Update copyright years.
+	(Position::operator==): Use parens to make precedence explicit.
+	Compare lines and columns first, as they are more likely to be
+	different, and they are faster to compare.
+
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+	gnulib: update.
+	* gnulib: Update to latest.
+	* src/local.mk (AM_CFLAGS): Move to...
+	* Makefile.am: here.
+	* etc/prefix-gnulib-mk (prefix_assignment): Also transform
+	AM_CFLAGS.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Share b4_yytranslate_define.
+	* data/lalr1.cc (b4_yytranslate_define): Move to...
+	* data/c++.m4: here.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Use locations in the variant example.
+	Yes, this obfuscates the point of this example, variants only.
+	But glr.cc cannot work (yet?) without locations.  This change
+	makes it easier to use this example with glr.cc.
+
+	* examples/variant.yy (assert): %define it.
+	(locations): Request them.
+	(yylex): Bind the location to the stage.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Dub make_TOKEN as a public type interface.
+	* data/c++.m4 (b4_symbol_constructor_declare)
+	(b4_symbol_constructor_define): New empty stubs.
+	(b4_public_types_declare, b4_public_types_define): Use them.
+	* data/lalr1.cc (b4_symbol_constructor_declare)
+	(b4_symbol_constructor_declare_)
+	(b4_symbol_constructor_define_, b4_symbol_constructor_define):
+	Move to...
+	* data/variant.hh: here.
+	Remove the "b4_variant_if" parts, as variant.hh is loaded only if
+	needed.
+	* data/lalr1.cc: No longer invoke b4_symbol_constructor_define and
+	b4_symbol_constructor_declare, as it is now done by
+	b4_public_types_define and b4_public_types_declare.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Coding style changes.
+	* data/lalr1.cc (b4_symbol_constructor_declaration_)
+	(b4_symbol_constructor_declarations)
+	(b4_symbol_constructor_definition_)
+	(b4_symbol_constructor_definitions)
+	(b4_yytranslate_definition): Rename as...
+	(b4_symbol_constructor_declare_)
+	(b4_symbol_constructor_declare)
+	(b4_symbol_constructor_define_)
+	(b4_symbol_constructor_define)
+	(b4_yytranslate_define): these.
+	* data/variant.hh (b4_variant_definition): Rename as...
+	(b4_variant_define): this.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
+	* data/bison.m4 (b4_percent_define_if_define): New.
+	* data/c++.m4 (b4_variant_if): Move to...
+	* data/bison.m4: Here, using b4_percent_define_if_define.
+	* data/lalr1.cc (b4_assert_if, b4_lex_symbol_if): Move to...
+	* data/bison.m4: Here, using b4_percent_define_if_define.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	Dub symbol_type_base as a public type.
+	* data/c++.m4 (b4_public_types_declare): Now define
+	symbol_type_base and symbol_type.
+	(b4_public_types_define): New.
+	In both cases, the definitions are taken verbatim from lalr1.cc.
+	* data/lalr1.cc: Adjust.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	b4_public_types_declare.
+	* data/c++.m4 (b4_public_types_declare): New.
+	* data/glr.cc, data/lalr1.cc: Use it.
+
+2009-03-02  Akim Demaille  <demaille@gostai.com>
+
+	b4_semantic_type_declare.
+	* data/c++.m4 (b4_semantic_type_declare): New.
+	Factors and generalizes what was in glr.cc and lalr1.cc.
+	* data/variant.hh (b4_semantic_type_declare): Redefine it for
+	variants.
+	* data/lalr1.cc, data/glr.cc: Use it.
+
+2009-02-26  Akim Demaille  <demaille@gostai.com>
+
+	Upgrade gnulib.
+	* gnulib: Upgrade from master.
+	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore, m4/.gitignore:
+	Regen.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless arguments.
+	* data/glr.c (yy_reduce_print): $$ and @$ are not used and not
+	relevant.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/lalr1.cc: here.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Fix glr.cc's debug level handling.
+	* data/glr.cc (yydebug_): Remove, as it is actually yydebug from
+	glr.c which is used.
+	(debug_level, set_debug_level): Adjust.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Copyright years.
+	* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Style changes.
+	* etc/bench.pl.in (generate_grammar_list): Consitently use
+	location_type, not yy::location.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Comment change.
+	* data/lalr1.cc: here.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Make yyparser::error public.
+	* data/lalr1.cc: here.
+	There is no good reason to keep it private (and it is convenient
+	to use it from the scanner for instance).  It is already public in
+	glr.cc.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/glr.cc: here.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Remove trailing blanks.
+	The epilogue has its own ending \n, no need to add another.
+
+	* data/glr.c, data/lalr1.java, data/yacc.c: dnl when outputing the
+	epilogue.
+	* data/glr.cc: dnl when extending the epilogue.
+	Remove stray "private:".
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_c_modern.
+	* data/c.m4 (b4_c_function_decl): Here.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/lalr1.cc: here.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Extract variant.hh
+	* data/variant.hh: New, extracted from...
+	* data/lalr1.cc: here.
+	Adjust.
+	* data/local.mk: Adjust.
+
+2009-02-19  Akim Demaille  <demaille@gostai.com>
+
+	Extract stack.hh from lalr1.cc.
+	* data/stack.hh: New.
+	* data/lalr1.cc: Extract from here.
+	* data/local.mk: Adjust.
+
+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-01-28  Akim Demaille  <demaille@gostai.com>
+
+	* NEWS: Update information about 2.4.1 and 2.4.2.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Reformat NEWS.
+	* NEWS: Use more outline-mode markup.
+	Suggested by Jim Meyering.
+
+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  Akim Demaille  <demaille@gostai.com>
+
+	Pass the token type to yysyntax_error.
+	* data/yacc.c (yysyntax_error): Take the transated token instead
+	of the raw number.
+	Adjust callers.
+	* TODO: Update.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* data/glr.c: Formatting changes.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Propagate i18n changes into glr.c.
+	* TODO: Update.
+	* data/glr.c (yyreportSyntaxError): Use "switch" instead of
+	building the error message format dynamically.
+	* data/lalr1.java: Formatting changes.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Use testsuite -C.
+	* tests/local.mk: Replace "cd && testsuite" by "testsuite -C".
+	Solves problems when top_srcdir is an absolute path.
+	Suggested by Eric Blake.
+	* configure.ac: Require Autoconf 2.62.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Simplify the i18n of the error messages.
+	* data/lalr1.cc: Comment changes.
+	* data/yacc.c (yysyntax_error): Rewrite, using a switch as in
+	lalr1.cc instead of building dynamically the format string.
+
+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-08  Akim Demaille  <demaille@gostai.com>
+
+	Update data/README.
+	* data/README: Document glr.cc, lalr1.java, m4sugar and xslt.
+
+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-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Test token.prefix in all the skeletons.
+	* data/java.m4 (b4_token_enum): Use the token.prefix.
+	* tests/local.at (AT_BISON_OPTION_PUSHDEFS): Define AT_TOKEN_PREFIX.
+	* tests/calc.at (_AT_DATA_CALC_Y): Use it.
+	Add checks for yacc.c, glr.c, lalr1.cc and glr.cc.
+	* tests/java.at: Comment changes.
+	(AT_CHECK_JAVA_MINIMAL): Define the END token.
+	(Java parser class and package names): Add token.prefix check.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Fix regeneration of atconfig.
+	* tests/local.mk (tests/atconfig): The rule was incorrect, but
+	remove it: now that there is no tests/Makefile.am, the top-level
+	Makefile properly updates atconfig when needed.
+
+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.
+
+2008-12-07  Akim Demaille  <demaille@gostai.com>
+
+	Update gnulib.
+	* gnulib: Update from master.
+
+2008-12-05  Eric Blake  <ebb9@byu.net>
+
+	Avoid compiler warning.
+	* src/output.c (muscle_insert_item_number_table): Delete unused
+	function.
+
+2008-12-02  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-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_symbol for printers and destructors everywhere.
+	* data/bison.m4 (b4_symbol_action_location): New.
+	* data/c.m4 (b4_symbol_actions): Remove.
+	Adjust all callers to use by b4_symbol_foreach and the corresponding
+	b4_symbol_printer/destructor macro.
+	* data/glr.cc: Adjust.
+	* data/lalr1.java: Adjust the %destructor sanity check.
+	* src/output.c (symbol_code_props_output): Remove, we no longer
+	need the b4_symbol_printers/destructors tables.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_symbol_case_.
+	* data/lalr1.cc, data/bison.m4 (b4_symbol_action): Use
+	b4_symbol_case_.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Move b4_symbol based macro to bison.m4.
+	* data/lalr1.cc (b4_symbol_, b4_symbol, b4_symbol_if)
+	(b4_symbol_action, b4_symbol_destructor, b4_symbol_printer)
+	(b4_symbol_case_, b4_symbol_foreach, b4_type_action_)
+	(b4_type_foreach): Move to...
+	* data/bison.m4: Here.
+	* data/lalr1.cc (b4_symbol_action): Specialize for C++: use
+	b4_symbol_value_template instead of b4_symbol_value.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	b4_symbol/type_foreach.
+	* data/lalr1.cc (b4_symbol_foreach, b4_type_foreach): New.
+	Use them.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use the symbol properties to output the printer/destructor for lalr1.cc.
+	Instead of defining complex list of tuples to define various
+	properties of the symbols, we now prefer to define symbols as
+	"structs" in m4: using the symbol key (its number), and the
+	property name, b4_symbol gives it value.  Use this to handle
+	destructors and printers.
+
+	* src/output.c (CODE_PROP): New.
+	(prepare_symbol_definitions): Use it to define the printer and
+	destructor related attributes of the symbols.
+	* data/lalr1.cc (b4_symbol_actions): Rename as...
+	(b4_symbol_action): this.
+	Use b4_symbol instead of 6 arguments.
+	(b4_symbol_printer, b4_symbol_destructor): New.
+	Use them instead of b4_symbol_actions.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Avoid capturing variables too easily.
+	* src/muscle_tab.h (MUSCLE_INSERT_BOOL, MUSCLE_OBSTACK_SGROW): Use
+	v__ and p__ instead of v and p.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Remove spurious empty line before syncline.
+	* data/bison.m4 (b4_syncline): Don't output an empty line before
+	the output.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Convert lib/Makefile.am into lib/local.mk.
+	The real problem is rather gnulib.mk, which itself is extracted
+	from a Makefile.am that gnulib expects to the "recursive".  The
+	tool prefix-gnulib-mk converts such a gnulib.mk to be
+	non-recursive.  Also, some AC_SUBST variables need to be adjusted.
+
+	* etc/prefix-gnulib-mk: New.
+	* bootstrap (slurp): Use it to convert further gnulib.mk.
+	No longer try to avoid re-creation of lib/gnulib.mk as the changes
+	are deeper.
+	* lib/Makefile.am: Rename as...
+	* lib/local.mk: this.
+	Adjust to be prefixed.
+	* Makefile.am, configure.ac: Adjust.
+	* src/local.mk (AM_CPPFLAGS): Extend it, don't define it.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	s/_FLAGS/FLAGS/.
+	* tests/local.mk (TESTSUITE_FLAGS, AUTOTEST_FLAGS): Rename as...
+	(TESTSUITEFLAGS, AUTOTESTFLAGS): these to compy with the GCS.
+	Reported by Eric Blake.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_parser_tables_define in glr.cc.
+	* data/glr.c: Use b4_parser_tables_define instead of defining the
+	(deterministic integral) tables by hand.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_parser_tables_define in Java.
+	* data/java.m4 (b4_typed_parser_table): Rename as...
+	(b4_typed_parser_table_define): this, for consistency.
+	Accept a comment as $4.
+	Move $2 into yy*_.
+	(b4_integral_parser_table): Rename as...
+	(b4_integral_parser_table_define): this.
+	* data/lalr1.java: Adjust all uses.
+	Use b4_parser_tables_define instead of generation by hand.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Prepare the convergence bw C style and Java table generation.
+	* data/bison.m4 (b4_tables_map, b4_tables_declare)
+	(b4_tables_define): Rename as...
+	(b4_integral_parser_tables_map, b4_parser_tables_declare)
+	(b4_parser_tables_define): these.
+	* data/c.m4 (b4_table_define): Rename as...
+	(b4_integral_parser_table_define): this.
+	* data/lalr1.cc: Adjust.
+	(b4_table_define, b4_table_declare): Rename as...
+	(b4_integral_parser_table_define)
+	(b4_integral_parser_table_declare): these.
+	(yyrline_): Move the comment where it is actually used.
+	* data/yacc.c: Adjust.
+	(yyrline): Use b4_integral_parser_table_define.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Factor the generation of the (integral) tables bw yacc.c and lalr1.cc.
+	* data/lalr1.cc (b4_tables_map): Move to...
+	* data/bison.m4: here.
+	Update the comment for yytable during the flight.
+	(b4_tables_declare, b4_tables_define): New.
+	* data/lalr1.cc: Use them.
+	* data/c.m4 (b4_table_define): New.
+	* data/yacc.c: Use b4_tables_define instead of output the tables
+	by hand.
+	* tests/regression.at (Web2c Actions): Adjust the expected output,
+	the order of the tables changed.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of (yy)rhs and (yy)prhs.
+	These tables are no longer needed in the parsers, and they don't seem to
+	be useful.  They are not documented either.
+
+	* src/output.c (prepare_rules): Get rid of rhs and prhs.
+	Adjust the computation of (yy)r2.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Rule length is unsigned.
+	* src/gram.h, src/gram.c (rule_rhs_length): Return a size_t.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of lalr1-split.cc.
+	It was no longer maintainer.
+
+	* data/lalr1-split.cc: Remove.
+	* etc/bench.pl.in (bench_fusion_parser): Remove.
+	Adjust.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use yy* consistently.
+	* data/glr.c: Now that yyrhs no longer exists as a global
+	variable, rename local "rhs" variables into "yyrhs" for
+	consistency.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in glr.c.
+	* data/glr.c (yyrhs, yyprhs): Remove.
+	Instead, use the state stack and yystos.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Flag glr tests.
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): If glr, declare it
+	as an Autotest keyword.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Prefer TESTSUITE_FLAGS.
+	TESTSUITEFLAGS is barely readable.
+
+	* tests/local.mk (TESTSUITE_FLAGS): Default to $(TESTSUITEFLAGS)
+	for backward compatibility.
+	Use the former instead of the latter.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in larl1.java.
+	* data/lalr1.java (yyrhs_, yyprhs_): Remove.
+	(yy_reduce_print): Rather, use yystos_ and the state stack.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in yacc.c.
+	They were used to get the symbol types, given a rule number, when
+	displaying the top of the stack before a reduction.  But the
+	symbol type is available from the state stack.  This has two be
+	benefits: two tables less in the parser (making it smaller), and a
+	more consistent use of the three stacks which will help to fuse
+	them.
+
+	* data/yacc.c (yyprhs, yyrhs): Remove.
+	(YY_REDUCE_PRINT): Pass yyssp to yy_reduce_print.
+	(yy_reduce_print): Take yyssp as argument.
+	Use it, together with yystos, to get the symbol type.
+	* tests/regression.at (Web2c Report): Remove these tables from the
+	expected output.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_tables_map.
+	The point is to factor the generation of the tables across skeletons.
+	This is language dependant.
+
+	* data/c.m4 (b4_comment_): New.
+	Should be usable to define how to generate tables independently of
+	the language.
+	(b4_c_comment): New.
+	(b4_comment): Bounce to b4_c_comment.
+	Now support $2 = [PREFIX] for indentation.
+	* data/lalr1.cc (b4_table_declare): Don't output a comment if
+	there is no comment.
+	Indent it properly when there is one.
+	Output the ending semicolon.
+	(b4_table_define): Space changes.
+	Output the ending semicolon.
+	(b4_tables_map): New.
+	Use it twice instead of declaring and defining the (integral)
+	tables by hand.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_table_declare.
+	* data/lalr1.cc (b4_table_declare): New.
+	Use it to declare the tables defined with b4_table_define.
+	(b4_table_define): Declare a third arg to match b4_table_declare
+	signature.
+	Move all the comments around invocations of b4_table_define into
+	the invocations itselves.
+	Move things around to have the order for declarations and
+	definitions.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* data/lalr1.java: here.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_args is more general than only C++.
+	* data/lalr1.cc (b4_args, _b4_args): Move to...
+	* data/bison.m4: here.
+
+2008-11-21  Di-an Jan  <dianj@freeshell.org>
+
+	Implement no-XXX arguments for --warnings, --report, --trace.
+	* src/getargs.c (flags_argmatch): Handles no-XXX.
+	Fix typo in doxygen comment.
+
+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/local.mk ($(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/local.mk (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.
+
+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): From AT_FULL_COMPILE, 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): Extend to support an additional source file.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	More TODO.
+	* TODO: More short term issues.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_subtract where possible.
+	* data/lalr1.cc (b4_subtract): Move to...
+	* data/bison.m4: here.
+	* data/glr.c (b4_rhs_data): Use it.
+	* data/yacc.c (b4_rhs_value, b4_rhs_location): Use it.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Remove incorrect mode specification.
+	* data/glr.cc: Don't pretend it's C code.
+
+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  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-17  Di-an Jan  <dianj@freeshell.org>
+
+	Handles several --enable-gcc-warnings.
+	* src/getargs.c (command_line_location): Set parameters to void.
+	* src/output.c (symbol_type_name_cmp): Make static.
+	(symbols_by_type_name): Set parameters to void.
+	(symbol_definitions_output): Remove unused parameter.  Rename as...
+	(prepare_symbol_definitions): this.
+	(muscles_output): Move symbol_definitions_output to...
+	(output): here as prepare_symbol_definitions.
+	* tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main.
+	(AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+	* tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202.
+	Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.
+
+2008-11-16  Akim Demaille  <demaille@gostai.com>
+
+	Add missing $(EXEEXT).
+	* doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is
+	"src/bison$(EXEEXT)".
+	Reported by Di-an Jan.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	* TODO: Update.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* tests/input.at: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove duplicate header inclusion.
+	* src/LR0.c: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Support parametric types.
+
+	There are two issues to handle: first scanning nested angle
+	bracket pairs to support types such as std::pair< std::string,
+	std::list<std::string> > >.
+
+	Another issue is to address idiosyncracies of C++: do not glue two
+	closing angle brackets together (otherwise it's operator>>), and
+	avoid sticking blindly a TYPE to the opening <, as it can result
+	in '<:' which is a digraph for '['.
+
+	* src/scan-gram.l (brace_level): Rename as...
+	(nesting): this.
+	(SC_TAG): New.
+	Implement support for complex tags.
+	(tag): Accept
+	, but not <.
+	* data/lalr1.cc (b4_symbol_value, b4_symbol_value_template)
+	(b4_symbol_variant): Leave space around types as parameters.
+	* examples/variant.yy: Use nested template types and leading ::.
+	* src/parse-gram.y (TYPE, TYPE_TAG_ANY, TYPE_TAG_NONE, type.opt):
+	Rename as...
+	(TAG, TAG_ANY, TAG_NONE, tag.opt): these.
+	* tests/c++.at: Test parametric types.
+
+2008-11-15  Akim Demaille  <akim@betelgeuse.gostai.ensta.fr>
+
+	Test token.prefix.
+	This is not sufficient, but we test at least that the make_SYMBOL
+	interface is not affected by token.prefix.  A more general test
+	will be implemented when the support of token.prefix is generalized
+	to more skeletons.
+
+	* tests/c++.at: One more variant test, using token.prefix.
+
+2008-11-15  Akim Demaille  <akim@betelgeuse.gostai.ensta.fr>
+
+	Test the make_TOKEN interface.
+	* tests/c++.at (AT_CHECK_VARIANTS): Require and use locations.
+	Factor the common code in yylex.
+	Use it to test "%define lex_symbol".
+
+2008-11-15  Akim Demaille  <akim@betelgeuse.gostai.ensta.fr>
+
+	Formatting change.
+
+2008-11-15  Akim Demaille  <akim@betelgeuse.gostai.ensta.fr>
+
+	Simplify code for variants bench marks.
+	* etc/bench.pl.in (&generate_grammar_list): Define and use
+	location_type.
+	Factor the common code in yylex.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Better error message.
+	* bootstrap (find_tool): Fix the error message.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Update variant.yy to newest interface.
+	* examples/variant.yy: Define lex_symbol.
+	Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Don't use locations in variant.yy.
+	* examples/variant.yy: Adjust to not using locations.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/local.mk, etc/local.mk, examples/local.mk: Use Automake
+	comments for the license.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove tests/Makefile.am.
+	* tests/Makefile.am: Rename as...
+	* tests/local.mk: this.
+	* Makefile.am, configure.ac: Adjust.
+	* Makefile.am (DISTCLEANFILES): Define.
+	(maintainer-check, maintainer-xml-check, maintainer-push-check):
+	Remove, we no longer need to bounce to the real targets.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	djgpp/local.mk.
+	* Makefile.am (EXTRA_DIST): Move djgpp related part to...
+	* djgpp/local.mk: this new file.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove doc/Makefile.am.
+	* doc/Makefile.am: Rename as...
+	* doc/local.mk: this.
+	Adjust paths
+	* Makefile.am, configure.ac: Adjust.
+	* Makefile.am (MOSTLYCLEANFILES): New.
+	* src/local.mk: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Move sc_tight_scope into maint.mk.
+	It does not work, and I don't know how it was supposed to work: it
+	seems to be looking for sources in the build tree.  I just moved
+	it at a better place, fixing it is still required.
+
+	* src/local.mk (echo): Remove.
+	(sc_tight_scope): Move to...
+	* maint.mk: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.h: Regen.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove src/Makefile.am.
+	* src/Makefile.am: Rename as...
+	* src/local.mk: this.
+	Prefix all the paths with src/.
+	(AUTOMAKE_OPTIONS): Build object files in the sub dirs.
+	(AM_CPPFLAGS): Find find in builddir/src.
+	(YACC): Move the flags into...
+	(AM_YFLAGS): here.
+	* maint.mk (sc_tight_scope): Disable.
+	It used to bounce to the version in src/Makefile.am which is now
+	part of this very Makefile.
+	* Makefile.am, configure.ac: Adjust.
+	* src/scan-code-c.c, src/scan-code.l: We can no longer rely on
+	include "..." to find files "here": we are no longer in src/, so
+	qualify the includes with src/.
+	* doc/Makefile.am (PREPATH): No longer include the top_builddir
+	prefix.
+	(.x.1): Adjust to be able to create src/foo from the top level
+	Makefile, instead of going bounce to src/Makefile the creation of
+	foo.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless variable.
+	* doc/Makefile.am (srcsrcdir): Remove.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove data/Makefile.am.
+	* data/Makefile.am: Rename as...
+	* data/local.mk: this.
+	Adjust paths.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove etc/Makefile.am.
+	* etc/Makefile.am: Rename as...
+	* etc/local.mk: this.
+	Adjust.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove examples/local.mk.
+	examples/calc++/Makefile.am might be interesting to keep as is, since
+	it is an example in itself.
+
+	* examples/Makefile.am: Rename as...
+	* examples/local.mk: this.
+	Adjust.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove build-aux/Makefile.am.
+	Recursive Makefiles are really way too slow, let's get rid of some of
+	them.
+
+	* build-aux/Makefile.am: Rename as...
+	* build-aux/local.mk: this.
+	Adjust paths.
+	* Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Provide convenience constructors for locations and positions.
+	* data/location.cc (position::position): Accept file, line and
+	column as arguments with default values.
+	Always qualify initial line and column literals as unsigned.
+	(location::location): Provide convenience constructors.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Instead of using make_symbol<TOK_FOO>, generate make_FOO for each
+	token type.
+	Using template buys us nothing, and makes it uselessly complex to
+	construct a symbol.  Besides, it could not be generalized to other
+	languages, while make_FOO would work in C/Java etc.
+
+	* data/lalr1.cc (b4_symbol_): New.
+	(b4_symbol): Use it.
+	(b4_symbol_constructor_declaration_)
+	(b4_symbol_constructor_definition_): Instead of generating
+	specializations of an overloaded template function, just generate
+	several functions whose names are forged from the token names
+	without the token.prefix.
+	(b4_symbol_constructor_declarations): Generate them for all the
+	symbols, not just by class of symbol type, now that instead of
+	specializing a function template by the token, we generate a
+	function named after the token.
+	(b4_symbol_constructor_specialization_)
+	(b4_symbol_constructor_specializations): Remove.
+	* etc/bench.pl.in: Adjust to this new API.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	%define token.prefix.
+	Provide a means to add a prefix to the name of the tokens as
+	output in the generated files.  Because of name clashes, it is
+	good to have such a prefix such as TOK_ that protects from names
+	such as EOF, FILE etc.  But it clutters the grammar itself.
+
+	* data/bison.m4 (token.prefix): Empty by default.
+	* data/c.m4 (b4_token_enum, b4_token_define): Use it.
+	* data/lalr1.cc (b4_symbol): Ditto.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Compute at M4 time some of the subtractions.
+	* data/lalr1.cc (b4_subtract): New.
+	(b4_rhs_data): Use it.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	symbol::token.
+	This allows the user to get the type of a token returned by yylex.
+
+	* data/lalr1.cc (symbol::token): New.
+	(yytoknum_): Define when %define lex_symbol, independently of
+	%debug.
+	(yytoken_number_): Move into...
+	(symbol::token): here, since that's the only use.
+	The other one is YYPRINT which was not officially supported
+	by lalr1.cc, and anyway it did not work since YYPRINT uses this
+	array under a different name (yytoknum).
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	YYERRCODE.
+	* TODO (YYERRCODE): Mention the case of $undef.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	TODO: YYPRINT.
+	* TODO (YYPRINT): New.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Comment changes.
+	* data/lalr1.cc, data/yacc.c: Fix the description of the
+	yytranslate and yytoknum tables.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define make_symbol in the header.
+	To reach good performances these functions should be inlined (yet
+	this is to measure precisely).  To this end they must be available
+	to the caller.
+
+	* data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
+	location_type with the class name.
+	Since will now be output in the header, declare "inline".
+	No longer use b4_symbol_constructor_specializations, but
+	b4_symbol_constructor_definitions in the header.
+	Don't call it in the *.cc file.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define yytranslate in the header for lex_symbol.
+	* data/lalr1.cc: Move the invocation of b4_yytranslate_definition
+	into the header file when using %define lex_symbol.
+	(yytranslate_): Declare inline.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define the constructors of symbol_type in
+	b4_symbol_constructor_definitions.
+	The constructors are called by the make_symbol functions, which a
+	forthcoming patch will move elsewhere.  Hence the interest of
+	putting them together.
+
+	The stack_symbol_type does not need to be moved, it is used only
+	by the parser.
+
+	* data/lalr1.cc: Move symbol_type and symbol_base_type
+	constructors into...
+	(b4_symbol_constructor_definitions): here.
+	Adjust.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Make it easier to move the definition of yytranslate_.
+	Forthcoming changes will make it possible to use yytranslate_
+	from outside the parser implementation file.
+
+	* data/lalr1.cc (b4_yytranslate_definition): New.
+	Use it.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless class specification.
+	* data/lalr1.cc (b4_symbol_constructor_specialization_): No need
+	to refer to the class name to use a type defined by the class for
+	arguments of member functions.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Finer input type for yytranslate.
+	This patch is debatable: the tradition expects yylex to return an int
+	which happens to correspond to token_number (which is an enum).  This
+	allows for instance to return characters (such as '*' etc.).  But this
+	goes against the stronger typing I am trying to have with the new
+	lex interface which return a symbol_type.  So in this case, feed
+	yytranslate_ with a token_type.
+
+	* data/lalr1.cc (yytranslate_): When in %define lex-symbol,
+	expect a token_type.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Honor lex-params in %define lex_symbol mode.
+	* data/lalr1.cc: Use b4_lex_param.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Simplify names.
+	* src/output.c (symbol_definitions_output): Rename symbol
+	attributes type_name and has_type_name as type and has_type.
+	* data/lalr1.cc: Adjust uses.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_type_names for the union type.
+	The union used to compute the size of the variant used to iterate
+	over the type of all the symbols, with a lot of redundancy.  Now
+	iterate over the lists of symbols having the same type-name.
+
+	* data/lalr1.cc (b4_char_sizeof_): New.
+	(b4_char_sizeof): Use it.
+	Adjust to be called with a list of numbers instead of a single
+	number.
+	Adjust its caller for new-line issues.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+	Define the "identifier" of a symbol.
+	Symbols may have several string representations, for instance if
+	they have an alias.  What I call its "id" is a string that can be
+	used as an identifier.  May not exist.
+
+	Currently the symbols which have the "tag_is_id" flag set are
+	those that don't have an alias.  Look harder for the id.
+
+	* src/output.c (is_identifier): Move to...
+	* src/symtab.c (is_identifier): here.
+	* src/symtab.h, src/symtab.c (symbol_id_get): New.
+	* src/output.c (symbol_definitions_output): Use it to define "id"
+	and "has_id".
+	Remove the definition of "tag_is_id".
+	* data/lalr1.cc: Use the "id" and "has_id" whereever "tag" and
+	"tag_is_id" were used to produce code.
+	We still use "tag" for documentation.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Locations are no longer required by lalr1.cc.
+	* data/lalr1.cc (_b4_args, b4_args): New.
+	Adjust all uses of locations to make them optional.
+	* tests/c++.at (AT_CHECK_VARIANTS): No longer use the locations.
+	(AT_CHECK_NAMESPACE): Check the use of locations.
+	* tests/calc.at (_AT_DATA_CALC_Y): Adjust to be usable with or
+	without locations with lalr1.cc.
+	Test these cases.
+	* tests/output.at: Check lalr1.cc with and without location
+	support.
+	* tests/regression.at (_AT_DATA_EXPECT2_Y, _AT_DATA_DANCER_Y):
+	Don't use locations.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	AT_FULL_COMPILE.
+	* tests/local.at (AT_FULL_COMPILE): New.
+	* tests/actions.at, tests/calc.at, tests/regression.at: Use it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Support parens in calc++.
+	* doc/bison.texinfo (Calc++ Scanner, Calc++ Parser): Support parens.
+	* examples/calc++/test (run): Check the expected output.
+	Adjust callers.
+	Check parens too.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Simplify lalr1.cc since %defines is mandatory.
+	* data/lalr1.cc: Remove useless calls to b4_defines_if.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	TODO: yyfmt.
+	* TODO (yysyntax_error): New item.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Prefer M4 to CPP.
+	* data/lalr1.cc: Use b4_error_verbose_if instead of #if
+	YYERROR_VERBOSE.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Support i18n of the parse error messages.
+	* TODO (lalr1.cc/I18n): Remove.
+	* data/lalr1.cc (yysyntax_error_): Support the translation of the
+	error messages, as done in yacc.c.
+	Stay within the yy* pseudo namespace.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	More TODO.
+	* TODO (single stack, yysyntax_error): New.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Make it possible to return a symbol_type from yylex.
+	* data/lalr1.cc (b4_lex_symbol_if): New.
+	(parse): When lex_symbol is defined, expected yylex to return the
+	complete lookahead.
+	* etc/bench.pl.in (generate_grammar_list): Extend to support this
+	yylex interface.
+	(bench_variant_parser): Exercise it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless bench case.
+	* etc/bench.pl.in (bench_variant_parser): VARIANT_DESTROY is
+	no longer used.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Improve display of directives.
+	* etc/bench.pl.in (parse_term): Don't add useless eol.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Use string_cast in the bench.
+	* etc/bench.pl.in (generate_grammar_list): Define and use
+	string_cast.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Replace yychar with a Boolean.
+	* data/lalr1.cc (parse::yychar): Replace by...
+	(parse::yyempty): this.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Factor the tables.
+	* TODO: New item.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Let yytranslate handle the eof case.
+	* data/lalr1.cc (yytranslate_): Handle the EOF case.
+	Adjust callers.
+	No longer expect yychar to be equal to yyeof_, rather, test the
+	lookahead's (translated) kind.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	yychar cannot be empty in yyerrlab.
+	* TODO (yychar == yyempty_): New.
+	* data/lalr1.cc: Remove the handling of this case.
+	This eases forthcoming changes related to yychar and yytranslate.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Bench: syntactic sugar for %define/#define.
+	* etc/bench.pl.in (parse_dirs): Support %d and #d with arguments.
+	(&bench_push_parser, bench_variant_parser): Use this feature.
+	(&eat): New.
+	Use it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Less memory pressure on the "list" bench.
+	* etc/bench.pl.in (generate_grammar_list): Do not accumulate all
+	the values, to limit memory pressure.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Introduce make_symbol.
+	make_symbol provides a means to construct a full symbol (kind,
+	value, location) in a single shot.  It is meant to be a Symbol
+	constructor, parameterized by the symbol kind so that overloading
+	would prevent incorrect kind/value pairs.  Unfortunately
+	parameterized constructors do not work well in C++ (unless the
+	parameter also appears as an argument, which is not acceptable),
+	hence the use of a function instead of a constructor.
+
+	* data/lalr1.cc (b4_symbol_constructor_declaration_)
+	(b4_symbol_constructor_declarations)
+	(b4_symbol_constructor_specialization_)
+	(b4_symbol_constructor_specializations)
+	(b4_symbol_constructor_definition_)
+	(b4_symbol_constructor_definitions): New.
+	Use them where appropriate to generate declaration, declaration of
+	the specializations, and implementations of the templated
+	overloaded function "make_symbol".
+	(variant::variant): Always define a default ctor.
+	Also provide a copy ctor.
+	(symbol_base_type, symbol_type): New ctor overloads for value-less
+	symbols.
+	(symbol_type): Now public, so that functions such as yylex can use
+	it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Inform m4 whether a tag is a valid id.
+	* src/output.c (is_identifier): New.
+	(symbol_definitions_output): Use it to define tag_is_id.
+	But maybe this should be done at m4 level?
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Test 214 was failing: it greps with a pattern containing [     ]*
+	which obviously meant to catch spaces and tabs, but contained only
+	spaces. Tabulations in sources are a nuisance, so to simplify the
+	matter, get rid of all the tabulations in the Java sources.  The
+	other skeletons will be treated equally later.
+
+	* data/java.m4, data/lalr1.java: Untabify.
+	* tests/java.at: Simplify AT_CHECK_JAVA_GREP invocations:
+	tabulations are no longer generated.
+
+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-10  Di-an Jan  <dianj@freeshell.org>
+
+	Workaround Java's ``code too large'' problem for parser tables
+	in most cases, by using one function per initialization.
+	* data/java.m4 (b4_typed_parser_table, b4_integral_parser_table): New.
+	* data/lalr1.java (yypact_, yydefact_, yypgoto_, yydefgoto_,
+	yytable_, yycheck_, yystos_, yytoken_number_, yyr1_, yyr2_, yyrhs_
+	yyprhs_, yyrline_, yytranslate_table_): Use b4_integral_parser_table.
+	(yytname_): Use b4_typed_parser_table.
+	* doc/bison.texinfo (Java Bison Interface): Add note on Java's
+	``code too large'' error.
+
+2008-11-10  Di-an Jan  <dianj@freeshell.org>
+
+	* NEWS: Document them.
+
+	General Java skeleton improvements.
+	* configure.ac (gt_JAVACOMP): Request target of 1.4, which allows
+	using gcj < 4.3 in the testsuite, according to comments in
+	gnulib/m4/javacomp.m4.
+	* data/java.m4 (stype, parser_class_name, lex_throws, throws,
+	location_type, position_type): Remove extraneous brackets from
+	b4_percent_define_default.
+	(b4_lex_param, b4_parse_param): Remove extraneous brackets from
+	m4_define and m4_define_default.
+	* data/lalr1.java (b4_pre_prologue): Change to b4_user_post_prologue,
+	which marks the end of user code with appropriate syncline, like all
+	the other skeletons.
+	(b4_user_post_prologue): Add.  Don't silently drop.
+	(yylex): Remove.
+	(parse): Inline yylex.
+	* doc/bison.texinfo (bisonVersion, bisonSkeleton): Document.
+	(%{...%}): Fix typo of %code imports.
+	* tests/java.at (AT_JAVA_COMPILE): Add "java" keyword.
+
+	Support annotations on parser class with %define annotations.
+	* data/lalr1.java (annotations): Add to parser class modifier.
+	* doc/bison.texinfo (Java Parser Interface): Document
+	%define annotations.
+	(Java Declarations Summary): Document %define annotations.
+	* tests/java.at (Java parser class modifiers): Test annotations.
+
+	Do not generate code for %error-verbose unless requested.
+	* data/lalr1.java (errorVerbose): Rename to yyErrorVerbose.
+	Make private.  Make conditional on %error-verbose.
+	(getErrorVerbose, setErrorVerbose): New.
+	(yytnamerr_): Make conditional on %error-verbose.
+	(yysyntax_error): Make some code conditional on %error-verbose.
+	* doc/bison.texinfo (Java Bison Interface): Remove the parts
+	about %error-verbose having no effect.
+	(getErrorVerbose, setErrorVerbose): Document.
+
+	Move constants for token names to Lexer interface.
+	* data/lalr1.java (Lexer): Move EOF, b4_token_enums(b4_tokens) here.
+	* data/java.m4 (b4_token_enum): Indent for move to Lexer interface.
+	(parse): Qualify EOF to Lexer.EOF.
+	* doc/bison.texinfo (Java Parser Interface): Move documentation of
+	EOF and token names to Java Lexer Interface.
+	* tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove Calc qualifier.
+
+	Make yyerror public.
+	* data/lalr1.java (Lexer.yyerror): Use longer parameter name.
+	(yyerror): Change to public.  Add Javadoc comments.  Use longer
+	parameter names.  Make the body rather than the declarator
+	conditional on %locations.
+	* doc/bison.texinfo (yyerror): Document.  Don't mark as protected.
+
+	Allow user to add code to the constructor with %code init.
+	* data/java.m4 (b4_init_throws): New, for %define init_throws.
+	* data/lalr1.java (YYParser.YYParser): Add b4_init_throws.
+	Add %code init to the front of the constructor body.
+	* doc/bison.texinfo (YYParser.YYParser): Document %code init
+	and %define init_throws.
+	(Java Declarations Summary): Document %code init and
+	%define init_throws.
+	* tests/java.at (Java %parse-param and %lex-param): Adjust grep.
+	(Java constructor init and init_throws): Add tests.
+
 2008-11-10  Akim Demaille  <demaille@gostai.com>
 
 	Update TODO.
@@ -28,9 +2896,9 @@
 2008-11-10  Akim Demaille  <demaille@gostai.com>
 
 	Make parser::yytranslate static.
-	Small speedup (1%) on the list grammar.  And makes yytranslate_ available
-	in non member functions.
-	
+	Small speedup (1%) on the list grammar.  And makes yytranslate_
+	available in non member functions.
+
 	* data/lalr1.cc (yytranslate_): Does not need to be a instance
 	function.
 
@@ -50,7 +2918,7 @@
 
 	Use "enum" for integral constants.
 	This is just nicer to read, I observed no speedup.
-	
+
 	* data/lalr1.cc (yyeof_, yylast_, yynnts_, yyempty_, yyfinal_)
 	(yterror_, yyerrcode_, yyntokens_): Define as members of an enum.
 	(yyuser_token_number_max_, yyundef_token_): Move into...
@@ -98,12 +2966,12 @@
 	hard to filter these tables when only a subset of the symbols (say the
 	tokens, or the nterms, or the tokens that have and external number
 	*and* a type-name) was of interest.
-	
+
 	Now instead of monolithic tables, we define one macro per cell.  For
 	instance "b4_symbol(0, tag)" is a macro name which contents is
 	self-decriptive.  The macro "b4_symbol" provides easier access to
 	these cells.
-	
+
 	* src/output.c (type_names_output): Remove.
 	(symbol_numbers_output, symbol_definitions_output): New.
 	(muscles_output): Call them.
@@ -137,7 +3005,7 @@
 
 	Support constructor with an argument.
 	This improves the "list" bench by 2%.
-	
+
 	* data/lalr1.cc (variant::build): Add an overloaded version with
 	an argument.
 	* tests/c++.at (AT_CHECK_VARIANT): Check it.
@@ -154,12 +3022,12 @@
 	Unfortunately it is not possible to reuse the %prec directive.  This
 	is because to please POSIX, we do not require to end the rules with a
 	semicolon.  As a result,
-	
+
 	foo: bar %prec baz
-	
+
 	is ambiguous: either a rule which precedence is that of baz, or a rule,
 	and then a declaration of the precedence of the token baz.
-	
+
 	* doc/bison.texinfo: Document %precedence.
 	(Precedence Only): New.
 	* src/assoc.h, src/assoc.c (precedence_assoc): New.
@@ -289,10 +3157,11 @@
 2008-11-09  Akim Demaille  <demaille@gostai.com>
 
 	Rely on the state stack to display reduction traces.
-	To display rhs symbols before a reduction, we used information about the rule
-	reduced, which required the tables yyrhs and yyprhs.  Now use rely only on the
-	state stack to get the same information.
-	
+	To display rhs symbols before a reduction, we used information
+	about the rule reduced, which required the tables yyrhs and
+	yyprhs.  Now use rely only on the state stack to get the same
+	information.
+
 	* data/lalr1.cc (b4_rhs_data, b4_rhs_state): New.
 	Use them.
 	(parser::yyrhs_, parser::yyprhs_): Remove.
@@ -358,7 +3227,7 @@
 
 	Avoid empty-if warnings.
 	Reported by Quentin Hocquet.
-	
+
 	* data/lalr1-fusion.cc (YY_SYMBOL_PRINT, YY_REDUCE_PRINT)
 	(YY_STACK_PRINT): Provide some contents even when !YYDEBUG.
 
@@ -423,19 +3292,19 @@
 	This is used to help the user catch cases where some value gets
 	ovewritten by a new one.  This should not happen, as this will
 	probably leak.
-	
+
 	Unfortunately this uncovered a bug in the C++ parser itself: the
 	lookahead value was not destroyed between two calls to yylex.  For
 	instance if the previous lookahead was a std::string, and then an int,
 	then the value of the std::string was correctly taken (i.e., the
 	lookahead was now an empty string), but std::string structure itself
 	was not reclaimed.
-	
+
 	This is now done in variant::build(other&) (which is used to take the
 	value of the lookahead): other is not only stolen from its value, it
 	is also destroyed.  This incurs a new performance penalty of a few
 	percent, and union becomes faster again.
-	
+
 	* data/lalr1-fusion.cc (variant::build(other&)): Destroy other.
 	(b4_variant_if): New.
 	(variant::built): New.
@@ -524,7 +3393,7 @@
 	Make variant.yy more complex.
 	std::list cannot be copied via memcpy, they are more demanding than
 	std::string.  Use one std::list to strengthen the test.
-	
+
 	* examples/variant.yy: Use lalr1-fusion.cc, not lalr1.cc.
 	Adjust.
 	Create a list of strings, instead of a single large string.
@@ -716,27 +3585,31 @@
 2008-11-03  Akim Demaille  <demaille@gostai.com>
 
 	Fuse the three stacks into a single one.
-	In order to make it easy to perform benchmarks to ensure that there are no
-	performance loss, lalr1.cc is forked into lalr1-fusion.cc.  Eventually,
-	lalr1-fusion.cc will replace lalr1.cc.
-	
-	Meanwhile, to make sure that lalr1-fusion.cc is correctly exercized by the
-	test suite, the user must install a symbolic link from lalr1.cc to it.
-	
-	Instead of having three stacks (state, value, location), use a stack
-	of triples.  This considerably simplifies the code (and it will be
-	easier not to require locations as currently does the C++ parser),
-	and also gives a 10% speedup according to etc/bench (probably mainly since
-	memory allocation is done once instead of three times).
-	
+
+	In order to make it easy to perform benchmarks to ensure that
+	there are no performance loss, lalr1.cc is forked into
+	lalr1-fusion.cc.  Eventually, lalr1-fusion.cc will replace
+	lalr1.cc.
+
+	Meanwhile, to make sure that lalr1-fusion.cc is correctly
+	exercized by the test suite, the user must install a symbolic link
+	from lalr1.cc to it.
+
+	Instead of having three stacks (state, value, location), use a
+	stack of triples.  This considerably simplifies the code (and it
+	will be easier not to require locations as currently does the C++
+	parser), and also gives a 10% speedup according to
+	etc/bench (probably mainly since memory allocation is done once
+	instead of three times).
+
 	Another motivation is to make it easier to destruct properly
 	semantic values: now that they are bound to their state (hence
 	symbol type) it will be easier to call the appropriate destructor.
-	
+
 	These changes should probably benefit the C parser too.
-	
-	* data/lalr1.cc: Copy as...  * data/lalr1-fusion.cc: this new
-	file.
+
+	* data/lalr1.cc: Copy as...
+	* data/lalr1-fusion.cc: this new file.
 	(b4_rhs_value, b4_rhs_location): New definitions overriding those
 	from c++.m4.
 	(state_stack_type, semantic_stack_type, location_stack_type)
@@ -750,7 +3623,7 @@
 	Push the state, value, and location at the same time.
 	This is needed to prepare a forthcoming patch that fuses the three
 	stacks into one.
-	
+
 	* data/lalr1.cc (parser::yypush_): New.
 	(parser::yynewstate): Change the semantics: instead of arriving to
 	this label when value and location have been pushed, but yystate
@@ -779,15 +3652,16 @@
 2008-11-03  Akim Demaille  <demaille@gostai.com>
 
 	Use variants to support objects as semantic values.
-	This patch was inspired by work by Michiel De Wilde.  But he used Boost
-	variants which (i) requires Boost on the user side, (ii) is slow, and
-	(iii) has useless overhead (the parser knows the type of the semantic value
-	there is no reason to duplicate this information as Boost.Variants do).
-	
-	This implementation reserves a buffer large enough to store the largest
-	objects.  yy::variant implements this buffer.  It was implemented with
-	Quentin Hocquet.
-	
+	This patch was inspired by work by Michiel De Wilde.  But he used
+	Boost variants which (i) requires Boost on the user side, (ii) is
+	slow, and (iii) has useless overhead (the parser knows the type of
+	the semantic value there is no reason to duplicate this
+	information as Boost.Variants do).
+
+	This implementation reserves a buffer large enough to store the
+	largest objects.  yy::variant implements this buffer.  It was
+	implemented with Quentin Hocquet.
+
 	* src/output.c (type_names_output): New.
 	(output_skeleton): Invoke it.
 	* data/c++.m4 (b4_variant_if): New.
@@ -807,7 +3681,7 @@
 	Parameterize the extraction of semantic values.
 	To make future changes easier, no longer rely on ".TYPE" being the
 	way to get a semantic value.
-	
+
 	* data/c.m4 (b4_symbol_value): New.
 	Use it.
 	* data/c++.m4, data/yacc.c: Use it.
@@ -1013,9 +3887,9 @@
 2008-08-29  Akim Demaille  <demaille@gostai.com>
 
 	Clarify UPDATED use.
-        * doc/bison.texinfo: It refers to the last edition of this file,
+	* doc/bison.texinfo: It refers to the last edition of this file,
 	not to the release date of Bison.
-        Reported by Joel E. Denny.
+	Reported by Joel E. Denny.
 
 2008-08-29  Akim Demaille  <demaille@gostai.com>
 
@@ -1035,15 +3909,15 @@
 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.
+	* 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.
+	* data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
 
 2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
 
@@ -21807,8 +24681,8 @@
 	-----
 
 	Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
-	1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-	Free Software Foundation, Inc.
+	1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+	2008, 2009 Free Software Foundation, Inc.
 
 	Copying and distribution of this file, with or without
 	modification, are permitted provided the copyright notice and this