X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f67c40374e6d6d02da9e43f88606b658ec2fb526..70afaf26037e919f6abf3904e43845d116899df3:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 4b994e07..0fd021ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1548 @@
+2009-12-22  Joel E. Denny  <jdenny@clemson.edu>
+
+	Port small part of master's 11707b2b so future ports are easier.
+	* data/lalr1.java (YYParser::yysyntax_error): Untabify.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Simplify the i18n of the error messages.
+	* data/lalr1.cc: Comment changes.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Prefer M4 to CPP.
+	* data/lalr1.cc: Use b4_error_verbose_if instead of #if
+	YYERROR_VERBOSE.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Support i18n of the parse error messages.
+	* TODO (lalr1.cc/I18n): Remove.
+	* data/lalr1.cc (yysyntax_error_): Support the translation of the
+	error messages, as done in yacc.c.
+	Stay within the yy* pseudo namespace.
+
+2009-12-22  Joel E. Denny  <jdenny@clemson.edu>
+
+	Port small part of master's 8901f32e so future ports are easier.
+	* data/lalr1.cc (yy::parser::yysyntax_error_): Always add second
+	argument, but name it in the function definition only when
+	verbose error messages are enabled and it'll thus be used.
+	(yy::parser::parse): Update use of yysyntax_error_.
+
+2009-12-29  Joel E. Denny  <jdenny@clemson.edu>
+
+	portability: `<' and `>' are not always defined on addresses.
+	Specifically, don't sort objects by their memory addresses when
+	they're not allocated in the same array or other object.  Though
+	I haven't found a test case where that fails on my platform, C
+	says the behavior is undefined.
+	* src/AnnotationList.c (AnnotationList__insertInto): Remove
+	FIXME.  Use new id field of InadequacyList nodes rather than
+	their memory addresses when sorting.
+	(AnnotationList__compute_from_inadequacies): Add
+	inadequacy_list_node_count argument to pass to
+	InadequacyList__new_conflict.
+	* src/AnnotationList.h
+	(AnnotationList__compute_from_inadequacies): Update prototype
+	and documentation for new argument.
+	* src/InadequacyList.c (InadequacyList__new_conflict): Add
+	node_count argument and use it to assign a unique ID.
+	* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
+	(InadequacyList): Add id field.
+	(InadequacyList__new_conflict): Update prototype and
+	documentation for new argument.
+	* src/ielr.c (ielr_compute_annotation_lists): Update
+	AnnotationList__compute_from_inadequacies invocation.
+
+2009-12-20  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix handling of yychar manipulation in user semantic actions.
+	The problem was that yacc.c didn't always update the yychar
+	translation afterwards.  However, other skeletons appear to be
+	fine.  glr.c appears to already translate yychar before every
+	use.  lalr1.cc does not define yychar and does not document its
+	replacement, yyla, for users.  It does provide yyclearin, but
+	that does not manipulate yyla and thus requires no translation
+	update.  In lalr1.java, yychar is out of scope during semantic
+	actions.
+	* NEWS (2.5): Document.
+	* data/yacc.c (YYBACKUP): Don't bother translating yychar into
+	yytoken here.
+	(yyparse, yypush_parse): Instead, translate before every use of
+	yytoken, and add comments explaining this approach.
+	* tests/actions.at (Destroying lookahead assigned by semantic
+	action): New test group checking that translation happens before
+	lookahead destructor calls at parser return.  Previously,
+	incorrect destructors were called.
+	* tests/conflicts.at (%error-verbose and consistent
+	errors): New test group checking that translation happens at
+	syntax error detection before the associated verbose error
+	message and the associated lookahead destructor calls.  While
+	the destructor call is fixed by this patch, the verbose error
+	message is currently incorrect due to another bug (see
+	comments in test group), so this is an expected failure for now.
+
+2009-12-21  Joel E. Denny  <jdenny@clemson.edu>
+
+	YYFAIL: warn about uses and remove from lalr1.java.
+	* NEWS (2.5): Document.
+	* data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
+	and make it private.  Update all uses.
+	* src/scan-code.l (SC_RULE_ACTION): Implement warning.
+
+2009-12-21  Joel E. Denny  <jdenny@clemson.edu>
+
+	YYFAIL: deprecate.
+	* NEWS (2.4.2): Document deprecation and the phase-out plan.
+	* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
+	deprecation.
+	* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
+	YYFAIL from GCC cpp's -Wunused-macros.
+	* doc/bison.texinfo (Java Action Features): Remove YYFAIL
+	documentation.
+	(LocalWords): Remove YYFAIL.
+
+2009-12-17  Joel E. Denny  <jdenny@clemson.edu>
+
+	Code cleanup.
+	* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
+	function, which is no longer used.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+	Add gcc's -Wundef to test suite and fix another warning from it.
+	* NEWS (2.4.2): Update description of -Wundef fix.
+	* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
+	(WARN_CFLAGS_TEST): New substitution.
+	* data/glr.c: Avoid warning about __STRICT_ANSI__.
+	* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
+	WARN_CFLAGS.
+	(NO_WERROR_CFLAGS): Likewise.
+	(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+	* data/yacc.c: Reformat m4 a little.
+
+2009-12-16  Joel E. Denny  <jdenny@clemson.edu>
+
+	Document gcc -Wundef fix.
+	* NEWS (2.4.2): Here.
+	* THANKS (Jonathan Nieder): Add.
+
+2009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
+
+	Simplify y.tab.c when location tracking is disabled.
+	* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
+	tracking is not enabled.  Instead, unconditionally define
+	YY_LOCATION_PRINT as a no-op for backward compatibility.
+
+2009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
+
+	Avoid warnings from gcc -Wundef y.tab.c.
+	* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
+	defined before using them.
+	* data/lalr1.cc: Likewise.
+	* data/yacc.c: Likewise.
+
+2009-12-15  Joel E. Denny  <jdenny@clemson.edu>
+
+	autoconf: update to latest for fix of M4 detection.
+	Reported by Eric Blake.
+	* submodules/autoconf: Update.
+
+2009-12-15  Joel E. Denny  <jdenny@clemson.edu>
+
+	portability: use -DGNULIB_POSIXCHECK.
+	Reported by Eric Blake.  See discussions at
+	<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
+	and
+	<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
+	* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
+	* bootstrap.conf (gnulib_modules): Add all the printf modules
+	suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
+	suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
+	(excluded_files): Remove m4/printf-posix.m4.
+	* tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add
+	lib/libbison.a so gnulib libraries can be linked.
+
+2009-12-14  Joel E. Denny  <jdenny@clemson.edu>
+
+	Enable assertion output and --disable-assert for configure.
+	* bootstrap.conf (gnulib_modules): Add assert module.
+	* src/system.h (aver): Define as assert, and summarize the
+	discussion on this issue.
+
+2009-12-14  Joel E. Denny  <jdenny@clemson.edu>
+
+	Expand GLR acronym in summary of Bison.
+	Based on discussion with Akim Demaille starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
+	* doc/bison.texinfo (Introduction): Here.
+	* src/getargs.c (usage): Here.
+
+2009-10-03  Alex Rozenman  <rozenman@gmail.com>
+
+	Document named references.
+	* doc/bison.texinfo (Actions): Add new example and xref to
+	Using Named References node.
+	(Using Named References): New node.
+
+2009-10-16  Joel E. Denny  <jdenny@clemson.edu>
+
+	cleanup.
+	* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
+	of char*.
+	(Sbitset__isEmpty): Use Sbitset instead of char*.
+	* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
+	instead of char.  This helps to avoid casting errors.
+	(Sbitset__or): Use Sbitset instead of char*.
+
+2009-10-16  Joel E. Denny  <jdenny@clemson.edu>
+
+	portability: don't assume 8-bit bytes.
+	That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
+	* src/Sbitset.h (Sbitset__nbytes): Here.
+	(Sbitset__byteAddress): Here.
+	(Sbitset__bit_mask): Here.
+	(Sbitset__last_byte_mask): Here.
+	(Sbitset__ones): Here.
+	(SBITSET__FOR_EACH): Here.
+
+2009-10-11  Joel E. Denny  <jdenny@clemson.edu>
+
+	portability: use va_start and va_end in the same function.
+	* src/complain.c (error_message): Move va_end from here...
+	(ERROR_MESSAGE): ... to here.
+
+2009-10-08  Joel E. Denny  <jdenny@clemson.edu>
+
+	* data/bison.m4: Update comments for rename to muscle-tab.h.
+
+2009-10-08  Joel E. Denny  <jdenny@clemson.edu>
+
+	Rename muscle_tab.* to muscle-tab.* for consistency with master.
+	* src/Makefile.am (bison_SOURCES): Update.
+	* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
+	src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
+	src/tables.c: Update include.
+	* src/muscle_tab.c, src/muscle_tab.h: Rename to...
+	* src/muscle-tab.c, src/muscle-tab.h: ... these and update
+	include.
+
+2009-10-07  Joel E. Denny  <jdenny@clemson.edu>
+
+	Minor code cleanup.
+	* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
+	replace all uses with UNIQSTR_CONCAT.
+	* src/uniqstr.c (uniqstr_vsprintf): New function.
+	* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
+	(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
+	macros.
+
+2009-10-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	Minor code cleanup.
+	* src/parse-gram.y: Clean up sorting of declarations.
+	Use types to simplify %printer declarations where possible.
+	Provide %printer for BRACKETED_ID and symbol.prec.
+	* src/symtab.c: Whitespace change.
+
+2009-10-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: skip tests of file names that platform does not support.
+	Reported by Michael Raskin at
+	<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
+	* THANKS (Michael Raskin): Add.
+	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
+	to fail at least for file names containing ":" or "\".
+
+2009-09-23  Joel E. Denny  <jdenny@clemson.edu>
+
+	yysyntax_error: avoid duplicate lookahead collection.
+	Except when memory reallocation is required, this change
+	eliminates the need to invoke yysyntax_error twice and thus to
+	repeat the collection of lookaheads.  It also prepares for
+	future extensions that will make those repetitions more
+	expensive and that will require additional memory management in
+	yysyntax_error.  Finally, it fixes an obscure bug already
+	exercised in the test suite.
+	* data/yacc.c (yysyntax_error): Add arguments for message
+	buffer variables stored in the parser.  Instead of size, return
+	status similar to yyparse status but indicating success of
+	message creation.  Other than the actual reallocation of the
+	message buffer, import and clean up memory management code
+	from...
+	(yyparse, yypush_parse): ... here.
+	* tests/regression.at (%error-verbose overflow): No longer an
+	expected failure.
+
+2009-09-23  Joel E. Denny  <jdenny@clemson.edu>
+
+	yysyntax_error: test memory management more.
+	* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
+	* tests/regression.at (%error-verbose and YYSTACK_USE_ALLOCA):
+	New test group.
+	(%error-verbose overflow): New test group that reveals an
+	obscure bug.  Expected fail for now.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Pass the token type to yysyntax_error.
+	* data/yacc.c (yysyntax_error): Take the transated token instead
+	of the raw number.
+	Adjust callers.
+
+2008-12-11  Akim Demaille  <demaille@gostai.com>
+
+	Simplify the i18n of the error messages.
+	* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
+	of building dynamically the format string.
+
+2009-10-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Remove dead code.
+	* src/symtab.c (symbol_pack): Here because every symbol's number
+	is always defined by this time.
+
+2009-10-03  Alex Rozenman  <rozenman@gmail.com>
+
+	Add additional space after periods in NEWS.
+	* NEWS (2.5): here.
+
+2009-09-29  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use the correct conversion specifier for size_t.
+	Reported by Jim Meyering.
+	* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
+	because Sbitset__Index is size_t.
+	* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
+
+2009-09-27  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: don't abuse AT_BISON_CHECK.
+	* tests/regression.at (parse-gram.y: LALR = IELR): Move
+	additional shell commands outside of AT_BISON_CHECK.
+
+2009-09-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: check that parse-gram.y's IELR and LALR are identical.
+	* tests/atlocal.in (abs_top_srcdir): New shell variable.
+	* tests/regression.at (parse-gram.y: LALR = IELR): New test
+	group.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+	doc: comment changes.
+	* doc/bison.texinfo: Comment changes.
+
+2009-09-16  Akim Demaille  <demaille@gostai.com>
+
+	doc: spell checking.
+	* doc/bison.texinfo: here.
+
+2009-09-19  Alex Rozenman  <rozenman@gmail.com>
+
+	Keep sub-messages aligned. Fix strings for translation.
+	* src/location.h (location_print): Add return value.
+	* src/location.c (location_print): Return number of printed
+	characters.
+	* src/complain.h (complain_at_indent, warn_at_indent): Prototype
+	new functions.
+	* src/complain.cpp (indent_ptr): New static variable.
+	(error_message, complain_at_indent, warn_at_indent): Implement
+	the alignment mechanism.
+	* src/scan-code.l (parse_ref, show_sub_messages): Fix strings
+	for translations. Use new alignment mechanism.
+	* tests/named-ref.at: Adjust test-cases.
+	* NEWS (2.5): Add an announcement about named references.
+
+2009-09-13  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: clean up push.at test group titles.
+	* tests/push.at: Remove "Push Parsing: " from test group titles
+	because these are already under the banner "Push Parsing Tests".
+
+2009-09-12  Alex Rozenman  <rozenman@gmail.com>
+
+	Provide an additional sub-message for clarity.
+	Add "symbol not found in production" error message when
+	an "invalid reference" is detected in named references
+	resolution.
+	* src/scan-code.l: Update "invalid reference" case.
+	* tests/named-ref.at: Adjust test-cases.
+
+2009-09-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	Clean up yacc.c a little.
+	* data/yacc.c: Clean up M4 for readability, and make output
+	whitespace more consistent.  For the main parse function
+	comment, instead of saying "yyparse or yypush_parse", say either
+	"yyparse" or "yypush_parse" depending on which it actually is.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Complain about unused %define variables and %code qualifiers.
+	* NEWS (2.5): Document.
+	* data/bison.m4 (b4_check_user_names): Complain instead of warn.
+	* doc/bison.texinfo (Decl Summary): Document complaint, and
+	improve %define documentation a little otherwise.
+	* tests/input.at (Reject unused %code qualifiers): Update.
+	(%define errors): Update.
+	(%define, --define, --force-define): Update.
+	(%define backward compatibility): Update.
+	(Unused %define api.pure): Update.
+	* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
+
+2009-09-03  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use aver not assert.
+	* src/output.c: Don't include assert.h.
+	(output_skeleton): Use aver not assert.
+	* src/system.h (aver): In documentation of why, add links to
+	Paul Eggert's explanations in the mailing lists.
+
+2009-09-05  Alex Rozenman  <rozenman@gmail.com>
+
+	Use "Unresolved reference" error message when no symbols were found
+	in a symbolic reference resolution. Remove .expr and -expr from
+	the shown reference when the reference is unresolved.
+	* src/scan-code.l: Change the error message, adjust location columns,
+	rename variable "exact_mode" to "explicit_bracketing".
+	* tests/named-ref.at: Adjust existing tests and add a new one.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+	* NEWS (2.4.2): Add "Internationalization" item.
+
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+	bootstrap: fix/improve find_tool.
+	* bootstrap (find_tool): Improve error messages.
+	Fix typo about find_tool_names.
+
+2009-08-29  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
+	See
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
+	* src/scan-code.h (code_props_rule_action_init): Rename
+	named_ref arg to name so it doesn't shadow named_ref type.  This
+	makes it consistent with the function definition in scan-code.l
+	anyway.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%define: accept unquoted values.
+	* NEWS (2.5): Group all %define changes together, and document
+	this one.  Remove quotes in IELR and canonical LR entry.
+	* doc/bison.texinfo: Remove quotes in most examples throughout.
+	(Decl Summary): Update %define documentation.
+	(Table of Symbols): Likewise.
+	* src/ielr.c (LrType): Update documentation.
+	* src/parse-gram.y (content.opt): Add production for ID.
+	* tests/calc.at: Remove quotes in most tests.
+	* tests/existing.at: Likewise.
+	* tests/input.at: Likewise.
+	* tests/local.at: Likewise.
+	* tests/push.at: Likewise.
+	* tests/reduce.at: Likewise.
+	* tests/torture.at: Likewise.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%define lr.type: make values lowercase IDs.
+	That is, "LALR" => "lalr", "IELR" => "ielr", and
+	"canonical LR" => "canonical-lr".
+	* NEWS (2.5): Update documentation.
+	* doc/bison.texinfo (Decl Summary): Likewise.
+	* src/ielr.c (ielr): Use new values.
+	* src/ielr.h (ielr): Update documentation.
+	* src/reader.c (prepare_percent_define_front_end_variables): Use
+	and validate new values.
+	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
+	grammars.
+	* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
+
+2009-08-27  Eric Blake  <ebb9@byu.net>
+
+	scan-gram: avoid portability trap with ctype usage.
+	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
+	Avoid compiler warning.
+
+2009-08-27  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: use perl for printing special sequences to files.
+	And skip tests if perl is not available.  This is better than
+	playing tricks with shell portability.  Suggested by Akim
+	Demaille.
+	* tests/input.at (Bad character literals): Use it here for
+	omitting final newlines.
+	(Bad escapes in literals): Use it here for special characters.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	tests: show a use of %define lr.default-reductions "consistent"
+	* tests/conflicts.at (%nonassoc and eof): Extend to test that it
+	prevents the omission of expected tokens for %error-verbose.
+
+2009-08-26  Akim Demaille  <demaille@gostai.com>
+
+	tests: portability fix.
+	* tests/input.at (Bad escapes in literals): Don't expect "echo
+	'\0'" to output \ then 0.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	Actually handle the yytable zero value correctly this time.
+	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Don't
+	mention zero values in the YYTABLE comments.
+	* data/glr.c (yytable_value_is_error): Don't check for zero
+	value.
+	* data/lalr1.cc (yy_table_value_is_error_): Likewise.
+	* data/yacc.c (yytable_value_is_error): Likewise.
+	* data/lalr1.java (yy_table_value_is_error_): Likewise.
+	(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
+	* src/tables.h: In header comments, explain why it's useless to
+	check for a zero value in yytable.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	More fixes related to last two patches.
+	* data/c.m4 (b4_table_value_equals): Comment that YYID must be
+	defined.
+	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Fix
+	yytable comments: zero indicates syntax error not default
+	action.
+	* data/glr.c (yyis_pact_ninf): Rename to...
+	(yypact_value_is_default): ... this.
+	(yyisDefaultedState): Update for rename.
+	(yyis_table_ninf): Rename to...
+	(yytable_value_is_error): ... this, and check for value zero
+	besides just YYTABLE_NINF.
+	(yygetLRActions): Check for default value from yypact.  It
+	appears that this check is always performed before this function
+	is invoked, and so adding the check here is probably redundant.
+	However, the code may evolve after this subtlety is forgotten.
+	Also, update for rename to yytable_value_is_error.  Because that
+	macro now checks for zero, a different but equivalent branch of
+	the if-then-else here is evaluated.
+	(yyreportSyntaxError): Update for rename to
+	yytable_value_is_error.  The zero condition was mishandled
+	before.
+	(yyrecoverSyntaxError): Update for renames.  No behavioral
+	changes.
+	* data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
+	New function.
+	(yy_table_value_is_error_): New function.
+	(parse): Use new functions where possible.  No behavioral
+	changes.
+	(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
+	The zero condition was mishandled before.
+	* data/yacc.c (yyis_pact_ninf): Rename to...
+	(yypact_value_is_default): ... this.
+	(yyis_table_ninf): Rename to...
+	(yytable_value_is_error): ... this, and check for value zero
+	besides just YYTABLE_NINF.
+	(yysyntax_error): Update for rename to yytable_value_is_error.
+	The zero condition was mishandled before.
+	(yyparse): Update for renames.  No behavioral changes.
+	* src/tables.h: Improve comments about yypact, yytable, etc.
+	more.  Most importantly, say yytable value of zero means syntax
+	error not default action.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix %error-verbose for conflicts resolved by %nonassoc.
+	* NEWS (2.5): Document.
+	* data/glr.c (yyreportSyntaxError): Fix this by checking
+	yyis_table_ninf.
+	* data/yacc.c (yysyntax_error): Likewise.
+	* data/lalr1.cc (yysyntax_error_): Fix this by checking
+	yytable_ninf_.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* tests/conflicts.at (%nonassoc and eof): Update expected output
+	and remove FIXME.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	Some code and documentation improvements.
+	* data/c.m4 (b4_table_value_equals): New macro to capture
+	some repeated code.
+	* data/glr.c (yyis_pact_ninf): Use it here.
+	(yyis_table_ninf): Likewise.
+	(yyreportSyntaxError): Improve internal comments.
+	* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
+	Use it everywhere possible.
+	(yyis_table_ninf): Likewise.
+	(yysyntax_error): Improve internal comments.
+	* data/lalr1.cc (yysyntax_error_): Likewise.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* src/tables.h: Improve comments about yypact, yytable, etc.
+
+2009-08-21  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use locale when quoting.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
+	quote rather than implementing quoting here.
+
+2009-08-20  Eric Blake  <ebb9@byu.net>
+
+	Make previous patch more robust.
+	* src/output.c (ARRAY_CARDINALITY): New macro, copied from
+	argmatch.h.
+	(output_skeleton): Use it.
+	Suggested by Akim Demaille.
+
+	Import latest m4/m4.m4.
+	* submodules/autoconf: Update to autoconf 2.64.
+	* configure.ac (M4_GNU_OPTION): New define.
+	* src/output.c (output_skeleton): Use it to resolve FIXME.
+	* NEWS: Mention this.
+
+2009-08-19  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix complaints about escape sequences.
+	Discussed starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
+	For a \0 and similar escape sequences meaning the null
+	character, report an invalid escape sequence instead of an
+	invalid null character because the latter does not actually
+	appear in the user's input.
+	In all escape sequence complaints, don't escape the initial
+	backslash, and don't quote when the sequence appears at the end
+	of the complaint line unless there's whitespace that quotearg
+	won't escape.
+	Consistently say "invalid" not "unrecognized".
+	Consistently prefer "empty character literal" over "extra
+	characters in character literal" warning for invalid escape
+	sequences; that is, consistently discard those sequences.
+	* tests/input.at (Bad escapes in literals): New.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	doc: fixes.
+	* doc/bison.texinfo: Fix minor Texinfo errors.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	doc: %initial-action to initialize yylloc.
+	Reported by Bill Allombert.
+	* doc/bison.texinfo: Set fill-column to 76.
+	(Location Type): Document the use of %initial-action to initialize
+	yylloc.
+
+2009-08-18  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: update for gnulib's recent update-copyright changes
+	* gnulib: Update.
+	* .x-update-copyright (COPYING): Add as it's no longer implied
+	when .x-update-copyright is present.
+	* cfg.mk (update-copyright-local): Remove, now ignored.
+	(update-copyright): Declare update-b4-copyright as a dependency.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	build: require gettext 0.17.
+
+	Suggested by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
+	* configure.ac: require gettext 0.17 to ensure compatibility with
+	gnulib.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	build: lower gettext requirements.
+
+	Bison was uselessly requiring the formatstring macros from
+	gettext, which resulted in mo files not being installed on systems
+	that perfectly supported Bison mo files.  Lower the requirement.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
+
+	* configure.ac: Require need-ngettext instead of
+	need-formatstring-macros.
+	Reported by Martin Jabocs.
+	Suggested by Bruno Haible.
+	* INSTALL: Restructure.
+	(Internationalization): New.
+
+2009-08-14  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: fix use of copyright year intervals.
+	* gnulib: Update.
+	* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
+	as now recommended in gnulib/NEWS.
+	* build-aux/update-b4-copyright: Fix.
+	* cfg.mk (update-copyright-env): Configure update-copyright.
+
+2009-08-13  Joel E. Denny  <jdenny@clemson.edu>
+
+	Make it easier to write deterministic tests.
+	Continues Akim's work from his 2009-06-10 commits.
+	* src/reader.c (check_and_convert_grammar): Don't add any
+	symbols after the first symbols_do invocation.
+	* src/symtab.c (symbols_sorted): New static global.
+	(user_token_number_redeclaration): Update comments.
+	(symbol_from_uniqstr): If a new symbol is being created, assert
+	that symbols_sorted hasn't been allocated yet.
+	(symbols_free): Free symbols_sorted.
+	(symbols_cmp, symbols_cmp_qsort): New functions.
+	(symbols_do): Sort symbol_table into symbols_sorted on first
+	invocation.
+	* tests/input.at (Numbered tokens): Recombine tests now that the
+	output should be deterministic across multiple numbers.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	distcheck: fix.
+
+	* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	* tests/Makefile.am (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	Miscellaneous code readability improvements.
+
+	* src/reader.c (reader): Move %define front-end variable
+	defaults and checking into...
+	(prepare_percent_define_front_end_variables): ... this new
+	function.
+
+	* src/scan-gram.l (INITIAL): For consistency with string
+	literals, don't store open quote on character literal.  It's
+	discarded before returning anyway.
+	(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
+	Make length test more readable, and make the character stored
+	for an empty literal more obvious while consistent with the
+	previous behavior.
+
+	* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
+	USER_NUMBER_HAS_STRING_ALIAS throughout.
+	* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
+	that is repeated in symtab.h.  Improve argument names to make it
+	clear which side of the symbol-string alias pair is which.
+	(symbol_check_alias_consistency): Improve local variable names
+	for the same purpose.
+	* src/symtab.h (struct symbol): Make comments about aliases
+	clearer.
+	(symbol_make_alias): Improve comments and argument name.
+	* src/output.c (token_definitions_output): Update for rename to
+	USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
+
+2009-08-08  Alex Rozenman  <rozenman@gmail.com>
+
+	Convert "misleading reference" messages to warnings.
+	* src/scan-code.l: New function 'show_sub_messages', more
+	factoring.
+	* tests/named-ref.at: Adjust tests.
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: run "make update-copyright"
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: make update-b4-copyright easier to use
+	* build-aux/update-b4-copyright: In warnings, report line
+	numbers rather than character positions.
+	* cfg.mk (update-copyright-local): Set to update-b4-copyright so
+	that update-copyright runs it.
+	* gnulib: Update.
+
+2009-08-05  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: clean up update-b4-copyright code
+	* build-aux/update-b4-copyright: Do not accept 2-digit
+	UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
+	Don't accept a `[' in a b4_copyright argument.
+	Format code more consistently.
+	Don't assume b4*copyright never occurs.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: automate b4_copyright updates.
+	* Makefile.am (update-b4-copyright): New target rule.
+	* build-aux/Makefile.am (EXTRA_DIST): Add update-b4-copyright.
+	* build-aux/update-b4-copyright: New.
+	* data/yacc.c: Remove stray characters around b4_copyright
+	invocations.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: automate annual package-wide copyright-year update.
+	* .x-update-copyright: New.
+	* Makefile.am (EXTRA_DIST): Remove maint.mk.
+	* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
+	update-copyright.  Remove gnumakefile, which is implied by
+	maintainer-makefile.
+	* cfg.mk (bootstrap-tools): Copy from old maint.mk.
+	* gnulib: Update.
+	* maint.mk: Remove, now copied from gnulib.
+	* examples/extexi: Add missing "(C)" in copyright statement so
+	update-copyright can recognize it.
+	* src/LR0.h: Likewise.
+	* src/print.h: Likewise.
+	* src/print_graph.h: Likewise.
+	* src/gram.c: Add missing comma in copyright statement.
+	* src/gram.h: Likewise.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix "make distcheck".
+	* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
+	of just calc.stamp.
+
+2009-08-01  Joel E. Denny  <jdenny@clemson.edu>
+
+	Pacify "gcc -Wunused" for the input function from Flex.
+	Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
+	and later.
+	* src/scan-code.l: Add "%option noinput", which I cannot find in
+	the Flex manual, but which Flex has supported since at least as
+	far back as 2.5.4.  However, if any of our developers still use
+	Flex 2.5.4, they'll need to stop configuring with
+	--enable-gcc-warnings because "%option noinput" didn't work
+	correctly until Flex 2.5.6.
+	* src/scan-gram.l: Likewise.
+	* src/scan-skel.l: Likewise.
+
+2009-07-31  Alex Rozenman  <rozenman@gmail.com>
+
+	Fix --enable-gcc-warnings problems.
+	* src/reader.c: Adjust variable names.
+	* src/scan-code.l: Fix prototypes and adjust names.
+	* src/named-ref.c: Remove redundant "if".
+
+2009-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix a --enable-gcc-warnings problem.
+	* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
+	variable.
+
+2009-07-24  Alex Rozenman  <rozenman@gmail.com>
+
+	Fix some memory leaks.
+	* src/named-ref.c: Add a pointer check (named_ref_free).
+	* src/scan-code.l: New function (variant_table_free). Called in
+	code_scanner_free.
+	* src/symlist.c: Call to named_ref_free (symbol_list_free).
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Warn about character literals not of length one.
+	* NEWS (2.5): Document.
+	* src/scan-gram.l (INITIAL): Remove comment that we don't check
+	the length.
+	(SC_ESCAPED_CHARACTER): Warn if length is wrong.
+	* tests/input.at (Bad character literals): New test group.
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/lalr.c (state_lookahead_tokens_count): Correct comment.
+
+2009-07-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Some M4 cleanup in the testsuite.
+	Suggested by Eric Blake at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
+	* tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
+	complicate the code by distinguishing between a missing value
+	and an empty string value for an optional argument.  This fix is
+	allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
+	* tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
+	(AT_TEST_TABLES_AND_PARSE): ... this now that the special
+	arguments are not needed because of the following changes.
+	Fix stale comments.
+	Bison developers should use GNU M4 and should not use
+	POSIXLY_CORRECT when building the test suite, so do not
+	complicate the code by avoiding $10 and above.
+	Do not quote an empty string value for an optional argument, and
+	do not distinguish between a missing value and an empty string
+	value.
+
+2009-07-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
+
+2009-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Revert unnecessary column realignment in --help output.
+	Reported by Akim Demaille at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
+	* src/getargs.c (usage): Here.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+	Alphabetical order in src/Makefile.am.
+	* src/Makefile.am: Adjust.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+	Style changes and factoring.
+	* src/named-ref.h: Add comments.
+	* src/parse-gram.y: Readability and style changes.
+	* src/reader.c: Factoring: assign_named_ref function.
+	* src/scan-code.l: Factoring and style changes. Rename
+	parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
+	Use "unsigned" type for variant index. Improve readablity.
+	* src/scan-gram.l: Change error messages and add comments.
+	* src/symlist.h: symbol_list_null: New function decl.
+	* src/symlist.c: symbol_list_null: Implement here.
+	* tests/named-refs.at: Adjust for new error messages.
+
+2009-06-29  Eric Blake  <ebb9@byu.net>
+
+	scan-code: avoid compiler warnings
+	* src/scan-code.l (parse_named_ref): Use correct specifiers.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+	build: avoid concurrent extraction of calc++.
+	* examples/calc++/Makefile.am (calc.stamp): New.
+	Depend on it to create the sources of calc++ so that concurrent
+	builds don't launch several "extexi" in parallel.
+	Not only this is inefficient, this also builds incorrect sources
+	with several extractions mixed together.
+
+2009-06-27  Alex Rozenman  <rozenman@gmail.com>
+
+	Implement support for named symbol references.
+	* src/parse-gram.y: Add new syntax (named_ref.opt).
+	* src/reader.c: Store named refs in symbol lists.
+	* src/reader.h: New argument for symbol_append and
+	action_append functions.
+	* src/scan-code.h: Add new field (named_ref) into
+	code_props data structure. Keeps named ref of midrule
+	actions.
+	* src/scan-code.l: Support for named refs in semantic
+	action code. New function 'parse_named_ref'.
+	* src/scan-gram.l: Support bracketed id.
+	* src/symlist.c: Store named refs in symbol lists.
+	* src/symlist.h: New field in symbol list: named_ref.
+	* src/named-ref.h: New file, a struct for named_ref.
+	* src/named-ref.cp: New file, named_ref_new function.
+	* src/local.mk: Add two new files.
+	* tests/testsuite.at: Include new test group:
+	* tests/named-refs.at: this new file.
+
+2009-06-25  Akim Demaille  <demaille@gostai.com>
+
+	hash: check insertion for memory exhaustion.
+	* src/uniqstr.c (uniqstr_new): New.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	style changes.
+	* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
+	* src/print-xml.c: Style changes.
+	* tests/conflicts.at: Comment changes.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	xml: beware of user strings used to give a %prec to rules.
+	* tests/conflicts.at (%prec with user strings): New.
+	* src/gram.c (grammar_rules_print_xml): Escape the precedence for
+	XML output.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+	hash: check insertion for memory exhaustion.
+	* src/muscle-tab.c (muscle_insert, muscle_grow)
+	* src/state.c (state_hash_insert): Check the return value of
+	hash_insert.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+	deterministic test suite.
+	Some consistency checks on symbols are performed after all the
+	symbols were read, by an iteration over the symbol table.  This
+	traversal is nondeterministic, which can be a problem for test
+	cases.
+	Avoid this.
+	Addresses another form of nondeterminism reported by Joel E. Denny.
+	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+	* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
+	test in two.
+	Use different file names for the three tests to make the
+	maintenance easier.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+	deterministic user-token-number redeclaration errors.
+	Address nondeterminism reported by Joel E. Denny.
+	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+	* src/uniqstr.h: Comment changes.
+	* src/location.h (boundary_cmp, location_cmp): New.
+	* src/symtab.c (user_token_number_redeclaration): New.
+	(symbol_translation): Use it.
+	* tests/input.at (Numbered tokens): Adjust the expected output.
+
+2009-05-25  Akim Demaille  <demaille@gostai.com>
+
+	gnulib: update.
+	* gnulib: Update to latest.
+	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
+	* m4/.gitignore: Regen.
+	* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
+	Call xalloc_die on hash_insert failures.
+	Requested by the new __warn_unused_result__ attribute of
+	hash_insert.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Convert multiple variable definition warnings to complaints.
+	* NEWS (2.5): Add a new entry for that change.
+	* doc/bison.texinfo (Decl Summary): Update %define entry.
+	(Bison Options): Update -D/--define/-F/--force-define entry.
+	* src/muscle_tab.c (muscle_percent_define_insert): Implement.
+	* src/muscle_tab.h (muscle_percent_define_insert): Update
+	comments.
+	* tests/input.at (`%define errors'): Update.
+	(`%define, --define, --force-define'): Update.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	-F/--force-define and relative %define/-D/--define priorities.
+	* NEWS (2.5): Add documentation to -D/--define entry.
+	* build-aux/cross-options.pl: Hard-code association of
+	--force-define with %define.
+	* doc/bison.texinfo (Decl Summary): In %define entry,
+	cross-reference command-line options.
+	(Bison Options): Add documentation to -D/--define entry.
+	(Option Cross Key): Widen column for --force-define row.
+	* src/getargs.c (usage): Document -F/--force-define.  Realign
+	options in output.
+	(short_options, long_options, getargs): Parse -F/--force-define,
+	and update muscle_percent_define_insert invocation.
+	* src/muscle_tab.h (muscle_percent_define_how): New enum type.
+	(muscle_percent_define_insert): Add argument with that type.
+	* src/muscle_tab.c (muscle_percent_define_insert): Implement
+	-F/--force-define behavior and priorities.
+	* src/parse-gram.y (prologue_declaration): Update
+	muscle_percent_define_insert invocations.
+	* tests/input.at (`%define, --define'): Rename to...
+	(`%define, --define, --force-define'): ... this and extend.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Update some comments to make sense for -D.
+	* data/bison.m4 (b4_check_user_names): In header comments, say
+	"user occurrence" instead of "grammar occurrence".
+	* src/muscle_tab.h (muscle_percent_define_insert): Likewise.
+	(muscle_percent_code_grow): Likewise just for consistency.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/c++.m4: Update copyright year.
+
+2009-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/c++.m4 (b4_namespace_close): Simplify slightly.
+
+2009-05-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Handle a trailing `:' in a user-supplied C++ namespace better.
+	* data/c++.m4 (b4_namespace_close): Don't let it be printed
+	among the closing braces here.  This fix might make the
+	generated code easier to debug, but otherwise it should be
+	insignificant because a trailing `:' is a C++ error already.
+
+2009-05-19  Akim Demaille  <demaille@gostai.com>
+
+	remove useless variable.
+	* src/getargs.c (skeleton_arg): Remove now useless variable.
+	Should help the compiler see that this printf-like call is sane.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+	doc: use C++ headers.
+	* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+	headers.
+
+2009-05-05  Akim Demaille  <demaille@gostai.com>
+
+	fix hexadecimal token number support.
+	* src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
+
+2009-05-05  Akim Demaille  <demaille@gostai.com>
+
+	tests: check token numbers.
+	* tests/input.at (Numbered tokens): New.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+	bison: catch bad symbol names.
+	* src/scan-gram.l({int}{id}): Report as an invalid identifier.
+	* tests/input.at: Adjust.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+	space changes.
+	* src/scan-gram.l: Untabify to be robust to zealous editors.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+	identifiers: dashes are letters.
+	Dashes can now start identifiers (symbols and directives).
+
+	* src/scan-gram.l ({letter}): Add dash.
+	({id}): Remove it.
+	* tests/input.at (Symbols): Adjust.
+	Remove stray comment.
+	* tests/regression.at (Invalid inputs): Adjust error message.
+	* doc/bison.texinfo (Symbols): Update.
+
+2009-05-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Declare %code to be a permanent feature.
+	* NEWS (2.4.2): Here.
+	* doc/bison.texinfo (Prologue Alternatives): Don't say it's
+	experimental.
+	(Decl Summary): Likewise.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Convert underscores to dashes in some %define variable names.
+	For now, just api.push-pull and lr.keep-unreachable-states.
+	Maintain old names for backward compatibility.
+	* NEWS (2.5): Document.
+	* data/c.m4 (b4_identification): Update comment.
+	* data/yacc.c: Update access.
+	* doc/bison.texinfo: Update.
+	* etc/bench.pl.in (bench_grammar): Update use.
+	* src/files.c (tr): Move to...
+	* src/getargs.c, src/getargs.h (tr): ... here because I can't
+	think of a better place to expose it.  My logic is that, for all
+	uses of tr so far, command-line arguments can be involved, and
+	getargs.h is already included.
+	* src/main.c (main): Update access.
+	* src/muscle_tab.c (muscle_percent_define_insert): Convert old
+	variable names to new variable names before assigning value.
+	* src/reader.c (reader): Update setting default.
+	* tests/calc.at: Update uses.
+	* tests/conflicts.at (Unreachable States After Conflict
+	Resolution): Update use.
+	* tests/input.at (%define enum variables): Update use.
+	(%define backward compatibility): New test group.
+	* tests/push.at: Update uses.
+	* tests/reduce.at: Update uses.
+	* tests/torture.at: Update uses.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Set all front-end %define defaults in one place.
+	* src/main.c (main): Move lr.keep_unreachable_states default...
+	* src/reader.c (reader): ... to here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Rename lr.default_reductions to lr.default-reductions.
+	* NEWS (2.5): Here.
+	* doc/bison.texinfo: Here.
+	* src/lalr.c (initialize_LA): Here.
+	* src/print.c (print_reductions): Here.
+	* src/reader.c (reader): Here.
+	* src/tables.c (action_row): Here.
+	* tests/input.at (%define enum variables): Here.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify ./configure --enable-gcc-warnings.
+	* tests/input.at (Symbols): Prototype yyerror and yylex.
+
+2009-04-21  Akim Demaille  <demaille@gostai.com>
+
+	tests: check the use of dashes and periods in symbols.
+	* tests/input.at (Symbol): New test group.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document how `%define "var" "value"' is not M4-friendly.
+	* src/parse-gram.y (variable): In comments here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Add copyright updates missed during previous cherry pick.
+	* src/output.c: Here.
+	* src/parse-gram.y: Here.
+	* src/scan-gram.l: Here.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	variables: accept dashes.
+	* src/scan-gram.l ({id}): Also accept dashes after the initial
+	letter.
+	({directive}): Use {id}.
+	* src/parse-gram.y: Comment and formatting changes.
+	* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
+	symbols.
+	* src/complain.h, src/complain.c (yacc_at): New.
+	* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
+	symbol names.
+	* src/output.c (token_definitions_output): Do not #define token
+	names with dashes.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Clean up recent patches a little.
+	Reported by Akim Demaille.
+	* doc/bison.texinfo (Understanding): Fix typos.
+	* src/print.c (print_reductions): Don't use negated variable.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	List accepted values for a %define enum variable with an invalid value.
+	Suggested by Akim Demaille at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
+	* data/bison.m4 (_b4_percent_define_check_values): Implement.
+	* src/muscle_tab.c (muscle_percent_define_check_values): Implement.
+	* tests/input.at (%define lr.default_reductions invalid values): Merge
+	into...
+	(%define enum variables): ... here, and update output.
+
+2009-04-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Rename "default rule" to "default reduction".
+	This includes changing variable names in code, changing
+	comments, and renaming %define lr.default_rules to %define
+	lr.default_reductions.
+	* NEWS (2.5): Update IELR documentation.
+	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c:
+	Adjust YYDEFACT and yydefact_ documentation.
+	* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
+	and lr.type documentation.  Make some other wording
+	improvements.
+	(Glossary): Adjust cross-references and Default Reduction
+	definition.
+	* src/lalr.c (state_lookahead_tokens_count): Adjust code.
+	Remove a confusing comment pointed out by Akim Demaille.
+	(initialize_LA): Adjust code.
+	* src/print-xml.c (print_reductions): Adjust code.
+	* src/print.c (print_reductions): Adjust code.
+	* src/reader.c (reader): Adjust code.
+	* src/tables.c (action_row): Adjust code.
+	(token_actions): Adjust code.
+	* src/tables.h: Adjust YYDEFACT documentation.
+	* tests/input.at (%define lr.default_rules invalid values):
+	Rename test group to...
+	(%define lr.default_reductions invalid values): ... this, and
+	update grammar file and expected output.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
+	(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document %define lr.type and lr.default_rules.
+	* NEWS (2.5): Add an entry.
+	* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
+	besides just LALR(1) and GLR(1).
+	* doc/bison.texinfo (Introduction): Likewise.
+	(Language and Grammar): Bison is no longer limited to LALR(1)
+	restrictions.
+	(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
+	when trying to distinguish from GLR.  Talk about LR(1) grammars
+	rather than LALR(1) grammars.
+	(Decl Summary): In %define api.push_pull entry, say it applies
+	to deterministic parsers in C rather than LALR(1) parsers in C.
+	Add lr.default_rules entry.
+	Add lr.type entry.
+	(Mystery Conflicts): Bison is no longer limited to LALR(1)
+	restrictions.
+	(Generalized LR Parsing): Same changes as for the previous GLR
+	section.
+	(Memory Management): Say deterministic rather than LALR(1).
+	(Understanding): Correct some bison output.
+	Index discussion of "accepting state".
+	Say deterministic rather than LALR(1).
+	(Bison Options): In --yacc entry, say deterministic rather than
+	LALR(1).
+	In --report, --graph, and --xml entries, just don't mention
+	LALR(1).
+	(C++ Parsers): Say deterministic rather than LALR(1).
+	(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
+	(Glossary): Add Accepting State, Consistent State, Default Rule,
+	and IELR(1) definitions.
+	In Generalized LR (GLR) definition, make same changes as in
+	previous GLR sections.
+	In LALR(1) definition, say Bison uses LALR(1) by default rather
+	than implying Bison is limited to LALR(1).
+	(LocalWords): Add IELR.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Finish implementing %define lr.type.
+	Its value can be "LALR", "IELR", or "canonical LR".
+	* lib/timevar.def (TV_IELR_PHASE1): New var.
+	(TV_IELR_PHASE2): New var.
+	(TV_IELR_PHASE3): New var.
+	(TV_IELR_PHASE4): New var.
+	* src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
+	AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
+	Sbitset.h, ielr.h, and ielr.c.
+	* src/getargs.h, src/getargs.c (enum trace, trace_args,
+	trace_types): Add trace_ielr.
+	* src/lalr.h, src/lalr.c (ngotos): Export it.
+	(F): Rename to...
+	(goto_follows): ... this, update all uses, and export it.
+	(set_goto_map): Export it.
+	(map_goto): Export it.
+	(compute_lookahead_tokens): Don't free goto_follows yet.  Now
+	handled in ielr.
+	(initialize_LA): Export it.  Move lookback allocation to...
+	(lalr): ... here because, for canonical LR, initialize_LA must
+	be invoked but lookback and much of the rest of LALR isn't
+	needed.
+	* main.c (main): Instead of lalr, invoke ielr, which invokes
+	lalr.
+	* src/reader.c (reader): Default lr.type to "LALR".
+	Default lr.default_rules to "accepting" if lr.type is "canonical
+	LR".  Leave the default as "all" otherwise.
+	Check for a valid lr.type value.
+	* src/state.h, src/state.c (struct state_list): Add state_list
+	member.
+	(state_new): Initialize state_list member to NULL.
+	(state_new_isocore): New function, exported.
+	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
+	exercises all values of lr.type.
+	(GNU AWK Grammar): Rename test group to...
+	(GNU AWK 3.1.0 Grammar): ... this, and extend to use
+	AT_TEST_EXISTING_GRAMMAR.
+	(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
+	(GNU pic Grammar): Rename test group to...
+	(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
+	AT_TEST_EXISTING_GRAMMAR.
+	* tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
+	all values of lr.type.
+	(Single State Split): New test groups using AT_TEST_LR_TYPE.
+	(Lane Split): Likewise.
+	(Complex Lane Split): Likewise.
+	(Split During Added Lookahead Propagation): Likewise.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Add new files for IELR and canonical LR implementation.
+	* src/AnnotationList.c: New.
+	* src/AnnotationList.h: New.
+	* src/InadequacyList.c: New.
+	* src/InadequacyList.h: New.
+	* src/Sbitset.c: New.
+	* src/Sbitset.h: New.
+	* src/ielr.c: New.
+	* src/ielr.h: New.
+
+2009-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Implement %define lr.default_rules.
+	Its value describes the states that are permitted to contain
+	default rules: "all", "consistent", or "accepting".
+	* src/reader.c (reader): Default lr.default_rules to "all".
+	Check for a valid lr.default_rules value.
+	* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
+	is "accepting", then only mark the accepting state as
+	consistent.
+	(initialize_LA): Tell state_lookahead_tokens_count whether
+	lr.default_rules is "accepting".
+	* src/tables.c (action_row): If lr.default_rules is not "all",
+	then disable default rules in inconsistent states.
+	* src/print.c (print_reductions): Use this opportunity to
+	perform some assertions about whether lr.default_rules was
+	obeyed correctly.
+	* tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
+	helps with checking the parser tables for a grammar.
+	* tests/input.at (%define lr.default_rules invalid values): New
+	test group.
+	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
+	AT_TEST_TABLES_AND_PARSE.
+	(`no %define lr.default_rules'): New test group generated by
+	AT_TEST_LR_DEFAULT_RULES.
+	(`%define lr.default_rules "all"'): Likewise.
+	(`%define lr.default_rules "consistent"'): Likewise.
+	(`%define lr.default_rules "accepting"'): Likewise.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+	Consistently refer to Yacc, not YACC.
+	* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
+
+2009-04-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Pacify make maintainer-check-posix.
+	* tests/input.at (%define, --define): Move bison command-line
+	options before grammar file name.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Document semicolon warnings.
+	* NEWS (2.5): Here.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Fix portability issue in the test suite.
+	* tests/local.at (AT_MATCHES_CHECK): New.
+	Based on Perl instead of Sed.  Sed has too many portability
+	pitfalls, not ever Sed is GNU Sed.
+	* tests/actions.at (Fix user actions without a trailing semicolon):
+	Use it.
+
+2008-12-07  Di-an Jan  <dianj@freeshell.org>
+
+	Implement the FIXME that ends an user action with a semicolon
+	if it seems necessary.
+	* src/scan-code.l (flex rules section): Flag cpp directive from
+	any `#' to the first unescaped end-of-line.  Semicolon is not
+	needed after `;', `{', '}', or cpp directives and is needed after
+	any other token (whitespaces and comments have no effect).
+	* tests/actions.at (Fix user actions without a trailing semicolon):
+	New test.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
+	to make user actions complete statements.
+	Adjust column numbers in error messages.
+	* tests/regression.at (Fix user actions without a trailing semicolon):
+	Remove.  Covered by new test.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+	doc: minor fixes.
+	* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
+	(Table of Symbols): Remove duplicate entry for %debug.
+
+2009-04-10  Eric Blake  <ebb9@byu.net>
+
+	submodules: update to latest
+	* submodules/autoconf: Use latest upstream Autoconf.
+
+2009-04-06  Eric Blake  <ebb9@byu.net>
+
+	Work around autoconf 2.63b bug in testsuite.
+	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
+	autoconf bug related to # in test.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* NEWS (2.5): Describe new -D/--define feature.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+	--trace=muscles
+	* src/getargs.h, src/getargs.c (trace_muscle): New.
+	(trace_types, trace_args): Support it.
+	* src/output.c (output_skeleton): Use it.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+	muscles_output.
+	* src/output.c (muscles_output): New, extracted from...
+	(output_skeleton): here.
+	Adjust.
+
+2008-11-21  Akim Demaille  <demaille@gostai.com>
+
+	Display the changes in cross-options.texi.
+	* build-aux/cross-options.pl ($sep): New, to separate items.
+	* doc/Makefile.am ($(srcdir)/cross-options.texi): Use diff to display
+	the changes.
+
+2008-11-20  Di-an Jan  <dianj@freeshell.org>
+
+	Improves options in the manual.
+	* doc/bison.texinfo (-g, -x): Add space before argument.
+	(Option Cross Key): Implement FIXME: listing directives also.
+	* build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
+	(Short Option): Special case -d.  Put arguments inside @option.
+	(Bison Directive): Add column, automatically extracted from
+	src/scan-gram.l (actual name passed as the first argument)
+	with special case for %define.
+	* doc/Makefile.am (doc/cross-options.texi): Pass src/scan-gram.l
+	to build-aux/cross-options.pl.
+	* src/getargs.c (usage): Document limitations of cross-options.pl.
+	* src/scan-gram.l: Likewise.
+
+2009-02-25  Akim Demaille  <demaille@gostai.com>
+
+	Copyright years.
+	* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Install autoconf as a submodule to get m4sugar.
+	* .gitmodules: Add submodules/autoconf.
+	* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
+	submodules/autoconf.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Simplify last patch slightly.
+	* src/getargs.c (getargs): Here.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix last warning from --enable-gcc-warnings.
+	* src/getargs.c (getargs): Don't assign const address to non-const
+	pointer.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+	Handle --enable-gcc-warnings.
+	* src/getargs.c (command_line_location): Set parameters to void.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	AT_FULL_COMPILE.
+	* tests/actions.at, tests/regression.at: Use it.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+	Pass command line location to skeleton_arg and language_argmatch.
+	* src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
+	The location argument is now mandatory.
+	Adjust all dependencies.
+	(getargs): Use command_line_location.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+	-D, --define.
+	* src/getargs.c (usage): Document -D.
+	Fix help string for --locations.
+	(command_line_location): New.
+	(short_options, long_options, getargs): Support -D, --define.
+	(getargs): Move -d support at the right place.
+	* doc/bison.texinfo (Bison Options): Update.
+	* tests/input.at (%define, --define): New.
+
+2008-11-07  Akim Demaille  <demaille@gostai.com>
+
+	Initialize the muscle table before parsing the command line.
+	* src/getargs.c (quotearg.h, muscle_tab.h): Include.
+	(getargs): Define file_name.
+	* src/main.c (main): Initialize muscle_tab before calling
+	getargs.
+	* src/muscle_tab.c (muscle_init): No longer define file_name, as
+	its value is not available yet.
+
+2008-11-09  Akim Demaille  <demaille@gostai.com>
+
+	Require the generation of parse-gram.output.
+	* src/Makefile.am (YACC): Pass --report=all.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* NEWS (2.5): New stub.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix options documentation.
+	* build-aux/cross-options.pl: As in --help output, write optional
+	arguments as [=ARG] not =[ARG].
+	* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
+
 2008-11-07  Akim Demaille  <demaille@gostai.com>
 
 	Fix --help.