X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c21493b89f5f5dd49e1f46d311326d5d4f49f8a4..1f4cc0f4ae46c746a90b97a71d70fe698a89f742:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 28a4198b..8aecae0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1372 @@
+2006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Instead of %union, you can define and use your own union type
+	YYSTYPE if your grammar contains at least one <type> tag.
+	Your YYSTYPE need not be a macro; it can be a typedef.
+	* doc/bison.texinfo (Value Type, Multiple Types, Location Type):
+	(Union Decl, Decl Summary): Document this.
+	* data/glr.c (YYSTYPE): Implement this.
+	* data/glr.cc (YYSTYPE): Likewise.
+	* data/lalr1.cc (YYSTYPE): Likewise.
+	* data/yacc.c (YYSTYPE): Likewise.
+	* src/output.c (prepare): Output tag_seen_flag.
+	* src/parse-gram.y (declaration, grammar_declaration):
+	Use 'union_seen' rather than 'typed' to determine whether
+	%union has been seen, since grammars can now be typed without
+	%union.
+	(symbol_declaration, type.opt, symbol_def):
+	Keep track of whether a tag has been seen.
+	* src/reader.c (union_seen, tag_seen): New vars.
+	(typed): remove.
+	* src/reader.h (union_seen, tag_seen, typed): Likewise.
+	* src/scan-code.l (untyped_var_seen): New variable.
+	(handle_action_dollar): Adjust to above changes.
+	(handle_action_dollar, handle_action_at):
+	Improve overflow checking for outlandish numbers.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to
+	avoid new diagnostics generated by above changes.
+	* tests/regression.at (YYSTYPE typedef): Add test to check
+	for type tags without %union.
+
+	* src/symlist.c (symbol_list_length): Return int, not unsigned
+	int, since callers expect int.  This may need to get revisited
+	once we have proper integer overflow checking.
+
+	* src/scan-gram.h (gram_scanner_cursor): Remove decl, since this
+	object is now static.
+
+	* src/getargs.c (flags_argmatch): Return void, not int,
+	to pacify ./configure --enable-gcc-warnings.
+
+	* src/flex-scanner.h (STRING_FREE): Don't use FLEX_PREFIX (last_string)
+	since last_string is already defined to FLEX_PREFIX (last_string).
+
+2006-07-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	Implement --warnings/-W.
+	* src/getargs.c (report_argmatch, trace_argmatch): Remove,
+	replaced by...
+	(flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
+	Adjust callers.
+	* src/getargs.h, src/getargs.c (warnings, warnings_flags)
+	(warnings_args, warnings_types): New.
+	(getargs, short_options, long_options): Accept -W/--warnings.
+	Sort the options by alphabetical order, upper case letter right
+	before its lower case.
+
+2006-07-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Change %merge result type clash warnings to errors.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>.
+	* src/reader.c (record_merge_function_type): Use complain_at.
+	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
+	declared later): Update test case results.
+
+2006-07-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	* src/getargs.h, src/getargs.c: Swap --report and --trace handling
+	to be in alphabetical order.
+	(trace_args): Spelling fixes.
+
+2006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy"
+	so they don't collide with user-defined macros.
+	(yy_stack_print): Don't assume that yytype_int16 promotes to int;
+	this was never guaranteed, and now that we're using gnulib stdint,
+	which defines int_fast16_t to long int, the problem is exposed.
+
+2006-07-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/c.m4 (b4_basename): Simplify a bit, since we don't
+	need the full POSIX semantics (and weren't implementing them
+	anyway).
+
+	Adjust to Autoconf 2.60 and today's gnulib.
+	* bootstrap (gnulib_modules): Add stdint.
+	Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
+	no longer copies it.
+	(intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
+	since stdint needs the former and wcwidth (which is now required
+	by mbswidth) needs the latter.
+	Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
+	work around a compatibility glitch between gettext 0.14.6 and
+	Autoconf 2.60.
+	* configure.ac (AC_PREREQ): Require Autoconf 2.60.
+	Do not check for uintptr_t, since new stdint module does the right
+	thing.
+	* lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
+	Add stdint.h, stdint_.h, wcwidth.h.
+	* m4/.cvsignore: Remove alloca.m4, onceonly.m4.
+	Add absolute-header.m4, double-slash-root.m4, longlong.m4,
+	stdint.m4, wchar_t.m4, wcwidth.m4.
+	* src/files.c: Include <dirname.h> and <stdio-safer.h> in the
+	usual order for ../lib/*.h files.
+	(file_name_split): Use last_component, not base_name, to adjust
+	to gnulib changes.
+	* src/parse-gram.h: Include <strverscmp.h> in the usual order
+	for ../lib/*.h files.
+	(YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
+	Define unconditionally, since we now assume the stdint module.
+	* src/scan-skel.l: Include <dirname.h>.
+	(BASE_QPUTS): Use last_component, not base_name.
+	* src/system.h: Include <unlocked-io.h> in the usual order
+	for ../lib/*.h files.  Include <stdint.h> unconditionally,
+	since we now use the stdint module.
+	(uintptr_t): Declare if UINTPTR_MAX is not defined, not
+	HAVE_UINTPTR_T, since we now use the stdint module.
+	(base_name): Remove decl, since files now include <dirname.h>
+	to get the decl.
+
+2006-07-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/c.m4 (b4_location_initial_column, b4_location_initial_line):
+	New, default to 1.
+	* data/yacc.c, data/glr.c, data/location.cc: Use them.
+	* NEWS, doc/bison.texinfo: The initial column and line are 1 by
+	default.
+	* tests/calc.at: Adjust.
+
+2006-07-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/c.m4 (b4_basename): New.
+	(b4_syncline): Also output the location of its invocation (from
+	the skeleton).
+	(b4_user_action, b4_define_user_action, b4_user_actions)
+	(b4_user_initial_action, b4_user_post_prologue,	b4_user_start_header)
+	(b4_user_stype): New.
+	* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
+
+2006-07-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	In the grammar file, the first column is 1 not 0 on the first line as
+	on every other line.
+	* src/parse-gram.y (%initial-action): Initialize @$ correctly.
+	* tests/input.at (Torturing the Scanner): Update output.
+
+	* src/scan-gram.l (scanner_cursor): Declare it static.
+
+2006-07-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	In warnings, say "previous declaration" rather than "first
+	declaration".
+	* src/symtab.c (redeclaration): Do that here.
+	* src/reader.c (record_merge_function_type): In the case of a result
+	type clash, report the previous declaration rather than the very first
+	one in the grammar file.
+	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
+	declared later): Add a third declaration to check this behavior.
+	* tests/input.at (Incompatible Aliases): Update output.
+
+2006-06-27  Akim Demaille  <akim@epita.fr>
+
+	* doc/Doxyfile.in: New.
+	* doc/Makefile.am: Use it.
+	* src/lalr.h, src/symtab.h: Initial doxygenation.
+
+2006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Don't miss %merge result type warnings just because the LHS types are
+	declared after the %merge.  This continues the effort of the previous
+	patch.
+	* src/reader.c (get_merge_function): Don't set the merger type yet.
+	(record_merge_function_type): New function for setting the merger type
+	and checking for clashes.
+	(grammar_current_rule_merge_set): Set the location of the %merge for
+	the current rule.
+	(packgram): Invoke record_merge_function_type for each rule now that
+	all symbol type declarations have been parsed.
+	* src/reader.h (merger_list.type_declaration_location): New member
+	storing the location of the first %merge from which the type for this
+	merging function was derived.
+	* src/symlist.h (symbol_list.merger_declaration_location): New member
+	storing the location of a rule's %merge, if any.
+	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
+	declared later): New test to catch the error fixed by the above patch.
+
+2006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Get action warnings (grammar_rule_check) right even when symbol
+	declarations appear after the rules.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00108.html>
+	and
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00151.html>.
+	Don't mistake the type of $$ in a midrule to be that of its parent
+	rule's $$.
+	* src/reader.c (grammar_current_rule_end): Don't invoke
+	grammar_rule_check yet since not all symbol declarations may have been
+	parsed yet.
+	(grammar_midrule_action): Likewise.
+	Don't record whether the midrule's $$ has been used yet since actions
+	haven't been translated yet.
+	Record the midrule's parent rule and its RHS index within the parent
+	rule.
+	(grammar_current_rule_action_append): Don't translate the action yet
+	since not all symbol declarations may have been parsed yet and, thus,
+	warnings about types for $$, $n, @$, and @n can't be reported yet.
+	(packgram): Translate the action and invoke grammar_rule_check now that
+	all symbol declarations have been parsed.
+	* src/scan-code.l (handle_action_dollar): Now that this is invoked
+	after parsing the entire grammar file, the symbol list here in the case
+	of a midrule is actually the midrule's empty RHS, so reference its
+	parent rule's RHS where necessary.
+	On the other hand, now that you can already know it's a midrule, you
+	aren't forced to think $$ has the same type as its parent rule's $$.
+	(handle_action_at): In the case of a midrule, reference the parent rule
+	where necessary.
+	* src/symlist.c (symbol_list_new): Initialize new midrule-related
+	members.
+	(symbol_list_length): Now that this is invoked after all rules have
+	been parsed, a NULL symbol (rather than a NULL symbol list node)
+	terminates a rule.  symbol_list_print already does this correctly.
+	* src/symlist.h (symbol_list.midrule_parent_rule,
+	symbol_list.midrule_parent_rhs_index): New members so that midrules can
+	remember their relationships with their parents.
+	* tests/input.at (Type Clashes): Extend to catch the midrule $$ error
+	fixed by the above patch.
+	(_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
+	implementing...
+	(Unused values): ... this old test case and...
+	(Unused values before symbol declarations): ... this new test case.
+	This one is the same as `Unused values' except that all symbol
+	declarations appear after the rules in order to catch the rest of the
+	errors fixed by the above patch.
+
+2006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	More cleanup.
+	* src/reader.c (current_rule): Declare it static since it's no longer
+	used outside this file.
+	(grammar_current_rule_action_append): Remove redundant arguments from
+	translate_rule_action invocation.
+	* src/reader.h (current_rule): Remove this unused extern.
+	* src/scan-code.h (translate_rule_action): Remove redundant arguments.
+	* src/scan-code.l (translate_rule_action): Likewise.
+
+2006-06-25  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Clean up yesterday's patch.
+	* parse-gram.y (rhs): Move grammar_midrule_action invocation from here
+	to...
+	* src/reader.c (grammar_current_rule_action_append): ... here for
+	consistency with grammar_current_rule_symbol_append.
+	* tests/regression.at (Braced code in declaration in rules section):
+	Make yyerror and yylex static as usual.
+
+2006-06-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix bug that mistakes braced code in a declaration in the rules section
+	to be a rule action.  Mentioned at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
+	* src/scan-gram.l: Move midrule action detection from the start of the
+	scanning of any braced code to...
+	* src/parse-gram.y (rhs): ... the parsing of braced code as a rule
+	action.  For readability, use $2 and @2 rather than the equivalent
+	global variables.
+	* tests/regression.at (Braced code in declaration in rules section):
+	New test to catch the error fixed by the above patch.
+
+	Work on code readability some.
+	* src/scan-code.l (current_rule): Get rid of this misleading and
+	redundant declaration: it's actually extern'ed in reader.h.
+	(YY_DECL, code_lex, handle_action_dollar, handle_action_at,
+	translate_action): Add a rule argument and use it instead of the global
+	current_rule.
+	(translate_rule_action): This already receives current_rule through an
+	argument, so pass it on to translate_action instead of assigning
+	current_rule to current_rule.
+	(translate_symbol_action, translate_code): Pass rule = NULL to
+	translate_action.
+
+2006-06-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Rename %before-definitions to %start-header and %after-definitions to
+	%end-header.  Don't use these declarations to separate pre-prologue
+	blocks from post-prologue blocks.  Add new order-independent
+	declarations %before-header and %after-header as alternatives to the
+	traditional Yacc pre-prologue and post-prologue blocks.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
+	* NEWS (2.3+): Update for these changes.
+	* data/glr.c (b4_before_definitions): Update to...
+	(b4_start_header): ... this.
+	(b4_after_definitions): Update to...
+	(b4_end_header): ... this.
+	* data/glr.cc: Likewise.
+	* data/lalr1.cc: Likewise.
+	* data/yacc.c: Likewise.
+	* doc/bison.texinfo (The prologue): Update names, and replace remaining
+	prologue blocks with %*-header declarations.
+	(Calc++ Parser): Likewise.
+	(Bison Declaration Summary): Update names.
+	(Bison Symbols): Update description.
+	* src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
+	(PERCENT_END_HEADER): ... this.
+	(PERCENT_BEFORE_DEFINITIONS): Update to...
+	(PERCENT_START_HEADER): ... this.
+	(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
+	(declaration): Update token names and m4 macro names.
+	When parsing %end-header and %start-header, invoke translate_code
+	before muscle_code_grow, and no longer set global booleans to remember
+	whether these declarations have been seen.
+	Parse new %after-header and %before-header.
+	* src/reader.c (before_definitions, after_definitions): Remove.
+	(prologue_augment): Accept a new bool argument to specify whether to
+	augment the pre-prologue or post-prologue.
+	* src/reader.h (before_definitions, after_definitions): Remove these
+	extern's.
+	(prologue_augment): Add new bool argument.
+	* src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
+	(PERCENT_END_HEADER): ... this.
+	(PERCENT_BEFORE_DEFINITIONS): Update to...
+	(PERCENT_START_HEADER): ... this.
+	(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
+	* tests/actions.at (Printers and Destructors): Update names.
+
+2006-06-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Add comparison operators for C++ location classes.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
+	* data/c++.m4 (b4_define_location_comparison): New boolean %define
+	declaration indicating whether filename_type has an operator==.  If
+	filename_type is `std::string', it defaults to `1', `0' otherwise.
+	* data/location.cc: Iff b4_define_location_comparison is `1', add
+	operator== and operator!= for class position and for class location.
+
+	Some minor fixes.
+	* src/scan-action.l: Remove unused file.
+	* src/symtab.c (symbol_printer_set): Use printer_location not
+	destructor_location.
+	* src/symtab.h (struct symbol): Replace incorrect source comment for
+	printer members.
+	* tests/input.at (Incompatible Aliases): Update output with correct
+	printer location.
+
+2006-06-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Don't put the pre-prologue in the header file.  For the yacc.c code
+	file and the glr.c header and code files, move the pre-prologue before
+	the token definitions.  Add new %before-definitions and
+	%after-definitions to declare code that will go in both the header file
+	and code file.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
+	<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
+	and
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
+	* NEWS (2.3+): Describe these changes.
+	* data/glr.c (b4_pre_prologue): Move from within to before...
+	(b4_shared_declarations): ... this.
+	Add new b4_before_definitions before b4_token_enums.
+	Add new b4_after_definitions at the end.
+	* data/glr.cc (b4_pre_prologue): Replace with...
+	(b4_before_definitions): ... this in the header file.
+	(b4_after_definitions): New near the end of the header file.
+	* data/lalr1.cc (b4_pre_prologue): Move from the header file to the
+	code file right before including the header file.
+	(b4_before_definitions): New in the previous position of
+	b4_pre_prologue in the header file.
+	(b4_after_definitions): New near the end of the header file.
+	* data/yacc.c: Clean up some m4 quoting especially in the header file.
+	(b4_token_enums_defines): In the code file, move to right before
+	YYSTYPE for consistency with the header file.
+	(b4_before_definitions): New right before b4_token_enums_defines in
+	both the header and code file.
+	(b4_after_definitions): New right after YYLTYPE and yylloc in both the
+	header and code file.
+	* doc/bison.texinfo (Prologue): Show use of %before-definitions instead
+	of prologues for %union dependencies.
+	(Bison Declaration Summary): In %defines description, mention the
+	effect of %before-definitions and %after-definitions on the header
+	file.
+	(Calc++ Parser): Forward declare driver in a %before-definitions rather
+	than in the pre-prologue so that make check succeeds.
+	(Bison Symbols): Add entries for %before-definitions and
+	%after-definitions.
+	* src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
+	%before-definitions.
+	(PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
+	(declaration): Parse those declarations and append to
+	b4_before_definitions and b4_after_definitions, respectively.
+	* src/reader.c (before_definitions, after_definitions): New bools to
+	track whether those declarations have been seen.
+	(prologue_augment): Add to the post-prologue if %union,
+	%before-definitions, or %after-definitions has been seen.
+	* src/reader.h (before_definitions, after_definitions): New extern's.
+	* src/scan-gram.l: Scan the new declarations.
+	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
+	prologue block in a %before-definitions or a %after-definitions based
+	on whether the %union is declared.
+	* tests/regression.at (Early token definitions with --yacc, Early token
+	definitions without --yacc): Move tests for token definitions into the
+	post-prologue since token names are no longer defined in the
+	pre-prologue.
+
+2006-06-20  Akim Demaille  <akim@epita.fr>
+
+	* src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
+	(symbol_get): Use it.
+	* src/parse-gram.y: Use it.
+
+2006-06-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/scan-gram.l: Remove unused declaration of last_string_1 so the
+	build succeeds when configured with --enable-gcc-warnings.
+
+2006-06-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/parse-gram.y (char_name): New function.
+	(CHAR, STRING, string_content): For %printer, properly escape.
+	(ID): Prefer fputs to fprintf.
+	(id): Reindent to be consistent with other rules.
+	Properly quote char.
+
+	The Translation Project changed its way of publishing translations
+	to maintainers.  I haven't received any responses to my request
+	for supporting the old way, or for documenting the new way.  I
+	have modified 'bootstrap' to use screen scraping
+	(in this case, HTML scraping).  This is unreliable and inelegant,
+	but I don't see any better way.  Yuck.
+	* bootstrap (TP_URL, WGET_COMMAND): New vars.
+	(get_translations): New function, which uses HTML scraping to
+	deduce locations of latest translations.
+	Use this function to grab both bison and bison-runtime .po files.
+	Don't bother priming the pump for the runtime-po domain any more,
+	as it's now translated better than bison is.
+
+2006-06-19  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-gram.l: No longer "parse" things after `%union' until
+	`{'.  Rather, return a single "%union" token.
+	No longer make symbols: return strings, and leave the conversion
+	to symbols to the parser.
+	(SC_PRE_CODE, token_type): Remove.
+	* src/parse-gram.y (%union): New field `character'.
+	Sort tokens.
+	(CHAR): New token.
+	(ID, ID_COLON): Now that the scanner no longer makes them
+	identifiers, adjust all uses to invoke symbol_get.
+	(id_colon): New, wraps the conversion from string to symbol.
+	(%union): Accept a possible union_name.
+	(symbol): Now can be a char.
+	* data/c.m4 (b4_union_name): Leave a default value.
+	* data/glr.c, data/yacc.c: Use it.
+
+2006-06-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	For associating token numbers with token names for "yacc.c", don't use
+	#define statements unless `--yacc' is specified; always use enum
+	yytokentype.  Most important discussions start at:
+	<http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
+	<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
+	and
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
+	* NEWS (2.3+): Mention.
+	* data/c.m4 (b4_yacc_if): New.
+	(b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
+	token #define's.
+	* doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
+	on token name definitions.
+	* src/getargs.c (usage): Capitalize `Yacc' in English.
+	* src/output.c (prepare): Define b4_yacc_flag.
+	* tests/regression.at (Early token definitions): Test that tokens names
+	are defined before the pre-prologue not just before the post-prologue.
+	Remove this test case and copy to...
+	(Early token definitions with --yacc): ... this to test #define's.
+	(Early token definitions without --yacc): ... and this to test enums.
+
+2006-06-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Reword the post-2.3 change to not be so optimistic about
+	removing the old "look-ahead" spelling.
+	Update previous look-ahead/lookahead change reports.
+	* REFERENCES: look-ahead -> lookahead (since that's
+	what he actually wrote).
+	* doc/refcard.tex: look ahead -> lookahead,
+	look-ahead -> lookahead
+
+2006-06-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	For consistency, use `lookahead' instead of `look-ahead' or
+	`look_ahead'.  Discussed starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
+	and then at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
+	* NEWS: For the next release, note the change to `--report'.
+	* TODO, doc/bison.1: Update English.
+	* doc/bison.texinfo: Update English.
+	(Understanding Your Parser, Bison Options): Document as
+	`--report=lookahead' rather than `--report=look-ahead'.
+	* src/conflicts.c: Update English in comments.
+	(lookahead_set): Rename from look_ahead_set.
+	(flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
+	(resolve_sr_conflict): Rename local look_ahead_tokens to
+	lookahead_tokens, and update other uses.
+	(flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
+	count_rr_conflicts, conflicts_free): Update uses.
+	* src/getargs.c (report_args): Move "lookahead" before alternate
+	spellings.
+	(report_types): Update uses.
+	(usage): For `--report' usage description, state `lookahead' spelling
+	rather than `look-ahead'.
+	* src/getargs.h (report.report_lookahead_tokens): Rename from
+	report_look_ahead_tokens.
+	* src/lalr.c: Update English in comments.
+	(compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
+	(state_lookahead_tokens_count): Rename from
+	state_look_ahead_tokens_count.
+	Rename local n_look_ahead_tokens to n_lookahead_tokens.
+	(lookahead_tokens_print): Rename from look_ahead_tokens_print.
+	Rename local n_look_ahead_tokens to n_lookahead_tokens.
+	Update other uses.
+	Update English in output.
+	(add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
+	* src/print.c: Update English in comments.
+	(lookahead_set): Rename from look_ahead_set.
+	(print_reduction): Rename argument lookahead_token from
+	look_ahead_token.
+	(print_core, state_default_rule, print_reductions, print_results):
+	Update uses.
+	* src/print_graph.c: Update English in comments.
+	(print_core): Update uses.
+	* src/state.c: Update English in comments.
+	(reductions_new): Update uses.
+	(state_rule_lookahead_tokens_print): Rename from
+	state_rule_look_ahead_tokens_print, and update other uses.
+	* src/state.h: Update English in comments.
+	(reductions.lookahead_tokens): Rename from look_ahead_tokens.
+	(state_rule_lookahead_tokens_print): Rename from
+	state_rule_look_ahead_tokens_print.
+	* src/tables.c: Update English in comments.
+	(conflict_row, action_row): Update uses.
+	* tests/glr-regression.at
+	(Incorrect lookahead during deterministic GLR,
+	Incorrect lookahead during nondeterministic GLR): Rename
+	print_look_ahead to print_lookahead.
+	* tests/torture.at: Update English in comments.
+	(AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
+	AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
+	(Many lookahead tokens): Update uses.
+	* data/glr.c: Update English in comments.
+	* lalr1.cc: Likewise.
+	* yacc.c: Likewise.
+	* src/conflicts.h: Likewise.
+	* src/lalr.h: Likewise.
+	* src/main.c: Likewise.
+	* src/output.c: Likewise.
+	* src/parse-gram.c: Likewise.
+	* src/tables.h: Likewise.
+	* tests/calc.at: Likewise.
+
+2006-06-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/flex-scanner.h (yytext): Remove stray `*/' in #define.
+
+2006-06-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* TODO: Add request from Nelson H. F. Beebe to be able to install
+	Bison without installing the yacc script.
+
+2006-06-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
+	and yytext if they're already #define'd.
+	* src/flex-scanner.h, src/location.h: Move #include "system.h" to...
+	* src/scan-code-c.c: ... here.
+	* src/scan-code.l, src/scan-gram.l: ... and here.  Also #include
+	<config.h>.
+
+2006-06-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Get Bison to build again when configured with --enable-gcc-warnings.
+	* src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
+	missing #include's.
+	* src/scan-code.l (handle_action_dollar, handle_action_at): Rename
+	loc argument as it shadows a global.
+	* src/scan-gram.l: Remove stray comma that prevents boundary_set
+	invocation.
+
+	* src/.cvsignore: Add scan-code.c.
+
+2006-06-07  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-gram.l: Move the "add a trailing ; to actions" code
+	to...
+	* src/scan-code.l: here.
+	* tests/input.at (Torturing the Scanner): Fix another location
+	error.
+
+2006-06-07  Akim Demaille  <akim@epita.fr>
+
+	* src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
+
+2006-06-06  Akim Demaille  <akim@epita.fr>
+
+	Extract the parsing of user actions from the grammar scanner.
+	As a consequence, the relation between the grammar scanner and
+	parser is much simpler.  We can also split "composite tokens" back
+	into simple tokens.
+	* src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
+	* src/scan-gram.l (add_column_width, adjust_location): Move to and
+	rename as...
+	* src/location.h, src/location.c (add_column_width)
+	(location_compute): these.
+	Fix the column count: the initial column is 0.
+	(location_print): Be robust to ending column being 0.
+	* src/location.h (boundary_set): New.
+	* src/main.c: Adjust to scanner_free being renamed as
+	gram_scanner_free.
+	* src/output.c: Include scan-code.h.
+	* src/parse-gram.y: Include scan-gram.h and scan-code.h.
+	Use boundary_set.
+	(PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
+	(PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
+	which is now, again, a separate token.
+	Adjust all dependencies.
+	Whereever actions with $ and @ are used, use translate_code.
+	(action): Remove this nonterminal which is now useless.
+	* src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
+	(grammar_current_rule_action_append): Use translate_code.
+	(packgram): Bound check ruleno, itemno, and rule_length.
+	* src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
+	(last_string, last_braced_code_loc, max_left_semantic_context)
+	(scanner_initialize, scanner_free, scanner_last_string_free)
+	(gram_out, gram_lineno, YY_DECL_): Move to...
+	* src/scan-gram.h: this new file.
+	(YY_DECL): Rename as...
+	(GRAM_DECL): this.
+	* src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
+	* src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
+	(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
+	(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
+	Move these declarations, and...
+	(obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
+	these to...
+	* src/flex-scanner.h: this new file.
+	* src/scan-gram.l (rule_length, rule_length_overflow)
+	(increment_rule_length): Remove.
+	(last_braced_code_loc): Rename as...
+	(gram_last_braced_code_loc): this.
+	Adjust to the changes of the parser.
+	Move all the handling of $ and @ into...
+	* src/scan-code.l: here.
+	* src/scan-gram.l (handle_dollar, handle_at): Remove.
+	(handle_action_dollar, handle_action_at): Move to...
+	* src/scan-code.l: here.
+	* src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
+	scan-code.h, scan-code-c.c, scan-gram.h.
+	(EXTRA_bison_SOURCES): Add scan-code.l.
+	(BUILT_SOURCES): Add scan-code.c.
+	(yacc): Be robust to white spaces.
+
+	* tests/conflicts.at, tests/input.at, tests/reduce.at,
+	* tests/regression.at: Adjust the column numbers.
+	* tests/regression.at: Adjust the error message.
+
+2006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+	Use Akim's wording from
+	<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
+
+2006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Between Bison releases, manually append `+' to the previous Bison
+	release number, and use that as a signal to automatically print the
+	ChangeLog's CVS Id keyword from --version.  Discussed starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
+	* ChangeLog: Add Id header.
+	* configure.ac (AC_INIT): Append `+' to `2.3'.
+	* src/.cvsignore: Add revision.c.
+	* src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
+	(BUILT_SOURCES): Add revision.c.
+	(revision.c): New target rule.  This file defines a new global variable
+	named revision.  It initializes it with either the Id from ChangeLog
+	or, if VERSION doesn't contain `+', with the empty string.
+	* src/getargs.c (version): Print the value of revision.
+	* src/revision.h: Extern revision.
+
+2006-06-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Version 2.3.
+	* configure.ac (AC_INIT): Likewise.
+
+2006-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c (YYRECOVERING): Define to be a function-like macro
+	with no arguments, not as an object-like macro.  This is for
+	compatibility with data/yacc.c.  Problem reported by John P. Hartmann in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
+	* doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
+	Document this.
+
+2006-05-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/getargs.c (usage): Back out yesterday's modification of the
+	--help output so that we don't have to wait for translation before
+	releasing 2.3.
+
+2006-05-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/bison.texinfo (Introduction): Don't say "GLR grammar".
+	Problem reported by Akim Demaille.
+
+2006-05-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+
+2006-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c (yy_reduce_print): Omit trailing white space in
+	generated source code.  Problem reported by Frans Englich in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
+
+2006-05-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
+	shell, not within 'make', so that 'make' by an ordinary builder
+	(using GNU make) does not worry about configuring gzip.  This also
+	works around a bug reported independently by Keith Thompson and by
+	Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
+	stderr rather than stdout, messing up the build logs.
+
+2006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
+	to make sure that YYID will never be unused.  This fixes a 'make
+	maintainer-check' failure caused by the recent changes to the 'Trivial
+	grammars' test case, which caused g++ 4.1.0 to complain that YYID was
+	not used.
+	* data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
+
+2006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
+	state before an empty RHS is always resolved here.  Only the location
+	of that state is guaranteed to be resolved, and that's enough.  This
+	fixes the remaining bug reported by Derek M. Jones in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+	* tests/glr-regression.at (Uninitialized location when reporting
+	ambiguity): Test the above case.
+	Also, the embedded comments in this test case claim it checks the case
+	of an empty RHS that has inherited the initial location.  However, the
+	corresponding LHS was already resolved, so yyresolveLocations didn't
+	actually have reason to modify it.  Fix this by forcing
+	nondeterministic operation at the beginning of the parse.
+
+2006-05-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/c.m4 (b4_yy_symbol_print_generate):
+	(b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
+	'const YYSTYPE', and similarly for YYLTYPE.  This fixes one
+	of the bugs reported today by Derek M Jones in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+	* doc/bison.texinfo (Value Type): Document that YYSTYPE must be
+	defined to be a type name without parens or brackets.
+	(Location Type): Similarly for YYLTYPE.
+	* tests/regression.at (Trivial grammars): Put in a test for this
+	bug that will be caught by 'make maintainer-check' (though not,
+	alas, by 'make check' unless your compiler is picky).
+
+2006-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Version 2.2.
+	* configure.ac (AC_INIT): Likewise.
+
+2006-05-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* data/glr.c (yyreportTree): Make room in yystates for the state
+	preceding the RHS.  This fixes the segmentation fault reported by Derek
+	M. Jones in
+	<http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
+	(yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
+	to the user.  Reported for yyreportTree by Derek M. Jones later in the
+	same thread.
+	* THANKS: Add Derek M. Jones.
+	Update my email address.
+	Fix typo in Steve Murphy's name.
+
+2006-05-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
+	checking against YYLAST that caused the parser to miss a potential
+	alternative in its diagnostic.
+	Problem reported by Maria Jose Moron Fernandez in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
+	* data/lalr1.cc (yysyntax_error_): Likewise.
+	* data/yacc.c (yysyntax_error): Likewise.
+	* tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
+	tokens, in case we run into an older C compiler.
+	(_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
+	Use them to check for the off-by-one error fixed above.
+
+	* data/yacc.c (yytnamerr): Fix typo: local var should be of type
+	YYSIZE_T, not size_t.
+	* tests/regression.at (Trivial grammars): New test, to catch
+	the error fixed by the above patch.
+
+2006-05-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	* doc/bison.texinfo (C++ Bison Interface): Clarify the naming
+	scheme.
+	Reported by Steve Murphy.
+
+2006-05-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
+	* data/glr.cc: b4_location_flag is now b4_locations_flag.
+
+2006-05-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	Implement --trace=m4.
+	* src/getargs.c (trace_types, trace_args): Accept trace_m4.
+	* src/output.c (output_skeleton): When set, pass -dV to m4.
+
+	Factor the handling of flags in m4.
+	* src/output.c (prepare): Rename the muscle names debug, defines,
+	error_verbose to debug_flag, defines_flag, error_verbose_flag.
+	* data/c.m4: Adjust.
+	(_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
+	Use b4_define_flag_if to define other b4_FLAG_if macros.
+	(b4_location_if): As a consequence, rename as...
+	(b4_locations_if): this, for consistency.
+	Adjust all the skeletons.
+
+2006-05-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	* etc/bench.pm: Shorten bench names.
+
+2006-05-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	* src/output.h, src/output.c (error_verbose): Move to...
+	* src/getargs.h, src/getargs.c: here.
+	Sort the flags.
+	Adjust dependencies.
+
+2006-05-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/c.m4 (b4_copyright): Put the special exception for Bison
+	skeletons here, so we don't have to put it in each skeleton.  All
+	uses changed.  Suggested by Akim Demaille.  Also, wrap the
+	copyright notice, in case it is longer than 80 columns.  Replace
+	comma by newline after title.
+
+2006-05-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
+	incompatibility, not a bug.  Mention that it wasn't fixed as of
+	flex 2.5.33.
+
+2006-05-11  Akim Demaille  <akim@lrde.epita.fr>
+
+	* examples/extexi: Enforce the precedence of concatenation over
+	>>.
+	Reported by Tommy Nordgren.
+
+2006-05-11  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
+	with the member "token".
+	Reported by Martin Nylin.
+
+2006-05-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c: Switch to Bison 2.2 special-exception language in
+	the copyright notice.  Use more-regular format for titles and
+	copyright notices.
+	* data/glr.cc: Likewise.
+	* data/location.cc: Likewise.
+	* data/yacc.cc: Likewise.
+	* doc/bison.texinfo (Conditions): Document this.
+	* NEWS: likewise.  Upgrade version to 2.2.
+
+2006-04-27  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/glr.cc: Remove dead code.
+
+2006-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
+	that variable and the line breaks the bootstrap.  Problem reported
+	by Juan M. Guerrero.
+
+2006-04-24  Akim Demaille  <akim@lrde.epita.fr>
+
+	* doc/bison.texinfo (Multiple start-symbols): New.
+
+2006-04-24  Akim Demaille  <akim@lrde.epita.fr>
+
+	* etc/README, etc/bench.pl: New.
+
+2006-04-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	* src/scan-gram.l: Be robust to BRACED_CODE appearing before any
+	rule.
+	Reported by Mickael Labau.
+	* tests/input.at (Torturing the Scanner): Test it.
+
+2006-03-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
+	Problem reported by Bob Rossi.
+
+2006-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/bison.texinfo: Remove @shorttitlepage stuff; it wasn't used
+	and didn't really work.
+	For the index, use @ifnotinfo, not @iftex.
+	Minor cleanups of spacing and terminology.
+
+2006-03-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
+	of AT_NAME_PREFIX when %name-prefix is not used.
+
+2006-03-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	Apply --prefix to C++ skeletons too: they change the namespace.
+	The test suite already exercize these cases.
+	* data/c++.m4 (b4_namespace): New.
+	* data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
+	* data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
+	* data/yacc.c, data/glr.c: Remove a useless `[]'.
+	* doc/bison.texinfo: Document it.
+	(Option Cross Key): Use @multitable in all formats.  It looks
+	nicer, even in TeX outputs.
+	(Rules): Use the same code whatever the output type is.
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
+	(_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
+	* tests/calc.at: Use it, instead of hard coding `yy'.
+
+2006-03-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	* TODO: Remove dead items.
+
+2006-03-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	* doc/FAQ: Remove, merged into...
+	* doc/bison.texinfo (FAQ): this.
+	* doc/Makefile.am (EXTRA_DIST): Adjust.
+
+2006-03-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	* data/c.m4 (b4_token_enum): Always define the enum of tokens,
+	even if empty.
+	* data/lalrl1.cc, data/glr.cc (parser::token_type): New.
+	* doc/bison.texinfo (Calc++ Scanner): Use it.
+
+2006-03-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Fix two nits reported by twlevo, plus one more that I discovered.
+
+	* src/assoc.h (assoc_to_string): Give a name to the arg, as
+	this is the usual Bison style.
+	* src/location.h (location_print): Likewise.
+
+	* src/reader.h (token_name): Likewise.
+
+2006-03-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Fix some nits reported by twlevo.
+	* doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
+	and "POSIX".  Use more-modern syntax for URLs.  Mention C++
+	and ask for Java.  Don't hardwire OS version numbers.  Add
+	copyright notice.
+	* m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
+	* src/conflicts.c (solved_conflicts_obstack): Now static.
+
+2006-03-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
+	page.  Say "you can use it" not "you may use it" as on the web page;
+	we're describing capabilities not granting permission.
+
+2006-03-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c (yyresolveLocations): Rename local variables to avoid
+	shadowing warnings.  Use usual patter for iterating through RHS.
+	* tests/glr-regression.at
+	(Uninitialized location when reporting ambiguity):
+	Modify yylex so that it uses its argument, rather than trying
+	to rely on ARGSUSED (which doesn't work for gcc with warnings).
+	const char -> char const.
+
+	* tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
+	Don't use tabs inside commands; it messes up 'ps'.
+	Problem reported by twlevo.
+
+2006-03-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* tests/glr-regression.at (Uninitialized location when reporting
+	ambiguity): New test case.
+	* data/glr.c (yyresolveLocations): New function, which uses
+	YYLLOC_DEFAULT.
+	(yyresolveValue): Invoke yyresolveLocations before reporting an
+	ambiguity.
+	* doc/bison.texinfo (Default Action for Locations): Note
+	YYLLOC_DEFAULT's usage for ambiguity locations.
+	(GLR Semantic Actions): Cross-reference those notes.
+
+2006-03-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* tests/glr-regression.at (Leaked semantic values when reporting
+	ambiguity): Remove unnecessary union and type declarations.
+	(Leaked lookahead after nondeterministic parse syntax error): New test
+	case.
+	* data/glr.c (yyparse): Check for zero stacks remaining before
+	attempting to shift the lookahead so that you don't lose it.
+
+2006-03-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
+	* tests/glr-regression.at (Leaked semantic values when reporting
+	ambiguity): New test case.
+	* data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
+	yyabort rather than invoking yyFail, which invokes longjmp.  Remove the
+	now unnecessary yystackp parameter.
+	(yyresolveValue): Return yyreportAmbiguity's result.  Now the necessary
+	destructors can be called.
+
+	* tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
+	in existing testcases.
+
+2006-03-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Don't leak semantic values for parent RHS when a user action cuts the
+	parser, and clean up related code a bit.
+	* tests/glr-regression.at (Leaked merged semantic value if user action
+	cuts parse): Rename to...
+	(Leaked semantic values if user action cuts parse): ... this.  Add check
+	for leaked parent RHS values.
+	* data/glr.c (yydestroyGLRState): In debugging output, distinguish
+	between an unresolved state (non-empty chain of semantic options) and
+	an incomplete one (signaled by an empty chain).
+	(yyresolveStates): Document the interface.  Move all manipulation of a
+	successfully or unsuccessfully resolved yyGLRState to...
+	(yyresolveValue): ... here so that yyresolveValue always leaves a
+	yyGLRState with consistent data and thus is easier to understand.
+	Remove the yyvalp and yylocp parameters since they are always just
+	taken from the yys parameter.  When reporting a discarded merged value
+	in debugging output, note that it is incompletely merged.  Document the
+	interface.
+	(yyresolveAction): If resolving any of the RHS states fails, destroy
+	them all rather than leaking them.  Thus, as long as user actions are
+	written to clean up the RHS correctly, yyresolveAction always cleans up
+	the RHS of a semantic option.  Document the interface.
+
+2006-02-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
+	led to a segmentation fault in GNU Pascal.  Problem reported
+	by Waldek Hebisch.
+
+2006-02-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
+	mid-rule action inside a nonterminal symbol in order to declare a
+	destructor for its semantic value.
+
+2006-02-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
+	YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
+	__cplusplus && ! defined _STDLIB_H && !
+	((defined YYMALLOC || defined malloc) && (defined YYFREE ||
+	defined free))]: Include <stdlib.h> rather than rolling our own
+	declarations of malloc and free, to avoid problems with
+	incompatible declarations (using 'throw') C++'s stdlib.h.  This
+	should fix Debian bug 340012
+	<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
+	reported by Guillaume Melquiond.
+
+2006-02-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Clarify symbols versus types in unused-value warnings.
+
+	* configure.ac (AC_INIT): Bump version number.
+
+2006-02-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Version 2.1a.
+	* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
+	since C99 requires this.
+
+2006-02-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* m4/c-working.m4: New file.
+	* configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
+
+2006-02-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* Makefile.maint: Merge from coreutils.
+
+2006-02-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	More portability fixes for problems summarized by Nelson H. F. Beebe.
+
+	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
+	configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
+	CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
+	LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
+	messes up because C++ code is compiled in 32-bit mode but linked
+	in 64-bit mode.
+
+2006-02-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	More portability fixes for problems summarized by Nelson H. F. Beebe.
+
+	* doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
+	2.5.31.  This resembles the 2005-10-10 patch to src/scan-skel.l.
+
+	* examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
+	nodist_PROGRAMS, since we don't need to actually compile the
+	example if we're just doing a plain 'make'.  This avoids bothering
+	the installer unnecessarily about problems due to weird C++
+	compilers.
+
+2006-02-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+	More portability fixes for problems summarized by Nelson H. F. Beebe.
+
+	* tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
+	than #include "...", and compile with -I'.'.  The old method was
+	not portable, according to Posix and the C standard, and it does
+	not work with Sun C 5.7, where previous #line directives affect
+	the working directory used in later #include "..." directives.
+
+2006-02-06  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+	Various DJGGP specific issues in /djgpp
+
+2006-02-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	More portability fixes for problems summarized by Nelson H. F. Beebe.
+
+	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
+	'#include <map>' works and that you can apply ++ to iterators.
+
+2006-02-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Work around portability problems summarized by Nelson H. F. Beebe in
+	<http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
+
+	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
+	that '#include <string>' works.
+
+	* data/lalr1.cc (yytranslate_): No longer inline, to work around a
+	porting problem to g++ 3.4.3 on Darwin 7.9.0, where g++ complained
+	"warning: sorry: semantics of inline function static data `const
+	unsigned char translate_table[262]' are wrong (you'll wind up with
+	multiple copies)".
+
+	* lib/bbitset.h (struct bitset_vtable): Rename members not, and,
+	or, xor to not_, and_, or_, and xor_, respectively.  This works
+	around a bug in GCC 3.4.3 on Irix 6.5, which apparently has a
+	random system header somewhere that includes the equivalent of
+	<iso646.h>.
+
+	* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
+	-E" works; it apparently doesn't work with PathScale EKO Compiler
+	Suite Version 2.0.
+
+2006-01-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	During deterministic GLR operation, user actions should be able to
+	influence the parse by changing yychar.  To make this easier to fix and
+	to make glr.c easier to evolve in general, don't maintain yytoken in
+	parallel with yychar; just compute yytoken when needed.
+	* tests/glr-regression.at (Incorrect lookahead during deterministic
+	GLR): Check that setting yychar in a user action has the intended
+	effect.
+	* data/glr.c (yyGLRStack): Remove yytokenp member.
+	(yyclearin): Don't set *yytokenp.
+	(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
+	yychar rather than *yytokenp to determine the current lookahead.
+	Compute yytoken locally when needed.
+	(yyparse): Likewise.  Remove the local yytoken that yytokenp used to
+	point to.
+
+	* doc/bison.texinfo (Bison Options): Remove stray sentence fragment
+	after `--report' documentation.
+
+2006-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/parse-gram.y (grammar_declaration): Location of printer
+	symbol is @1, not list->location.  Bug reported by twlevo.
+	* tests/input.at (Incompatible Aliases): Adjust to above change.
+
+2006-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Remove.  Instead, do
+	all the test at once.  This makes the output easier to read in the
+	normal case.
+
+	Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
+	got from <http://bro-ids.org/download.html>.  The bug is that
+	when two actions appeared in succession, the second one was
+	scanned before the first one was added to the grammar rule
+	as a midrule action.  Bison then output the incorrect warning
+	"parse.y:905.17-906.36: warning: unused value: $3".
+	* src/parse-gram.y (BRACED_CODE, action): These are no longer
+	associated with a value.
+	(rhs): Don't invoke grammar_current_rule_action_append.
+	(action): Invoke it here instead.
+	* src/reader.c (grammar_midrule_action): Now extern.
+	(grammar_current_rule_action_append): Don't invoke
+	grammar_midrule_action; that is now the scanner's job.
+	* src/reader.h (last_string, last_braced_code_loc):
+	(grammar_midrule_action): New decls.
+	* src/scan-gram.l (last_string): Now extern, sigh.
+	(last_braced_code_loc): New extern variable.
+	(<INITIAL>"{"): Invoke grammar_midrule_action if the current
+	rule already has an action.
+	(<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES):
+	Add some tests to check that the above changes fixed the bug.
+
+2006-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
+	All used changed.  Check whether the symbol has a destructor,
+	not whether it is typed.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
+	that the values are still reported as unused.  All line numbers
+	adjusted.
+
+2006-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Work around a bug in bro 0.8, which underparenthesizes its
+	definition of YYLLOC_DEFAULT.
+	* data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
+	their arguments.
+	* data/lalr1.cc: Likewise.
+	* data/yacc.cc: Likewise.
+
+2006-01-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Work around a bug in Pike 7.0, and give the Pike folks a
+	better way to override the usual int widths.
+	* data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
+	user can override the types.
+	(short): #undef, to work around a bug in Pike 7.0.
+	(yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
+	(union yyalloc.yyss): Use yytype_int16 rather than short.
+	All uses changed.
+	(yysigned_char): Remove.
+	* src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
+	(YYTYPE_INT16): New macros, to test the new facility in yacc.c.
+	* tests/regression.at (Web2c Actions): Adjust to above changes.
+
+	* src/reader.c (check_and_convert_grammar): New function.
+	(reader): Close the input file even if something went wrong during
+	parsing.  Minor file descriptor leak reported by twlevo.
+
+	* src/assoc.c (assoc_to_string): Use a default: abort (); case
+	to pacify gcc -Wswitch-default.
+	* src/scan-gram.l (adjust_location): Use a default: break; case
+	to pacify gcc -Wswitch-default.
+	* src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
+	(skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
+	(skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
+	Move these decls to scan-skel.l, since they don't need to be
+	visible elsewhere.
+	* src/scan-skel.l: Accept the above decls.
+	(skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
+	is used.
+
+2006-01-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* Makefile.cfg (local-checks-to-skip): Add changelog-check,
+	since we don't want to insist on a version number at the start
+	of the changelog every time.
+	* Makefile.maint: Sync from coreutils a bit better.
+	(sc_trailing_blank): Renamed from sc_trailing_space.
+	All uses changed.
+	(sc_no_if_have_config_h, sc_require_config_h):
+	(sc_prohibit_assert_without_use): New rules.
+	(sc_obsolete_symbols): Don't catch Makefile.maint itself.
+	(sc_dd_max_sym_length): Fix leading spaces in rule.
+	(sc_system_h_headers): Prefix with @.
+	(sc_useless_cpp_parens, m4-check): Output line numbers.
+	(changelog-check): Allow version only in head.
+	* data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
+	satisfy new Makefile.maint rule.
+	* data/glr.c: Likewise.
+	* data/glr.cc: Likewise.
+	* data/lalr1.cc: Likewise.
+	* data/yacc.c: Likewise.
+	* lib/ebitsetv.c: Likewise.
+	* lib/lbitset.c: Likewise.
+	* lib/subpipe.c: Likewise.
+	* lib/timevar.c: Likewise.
+	* src/system.h: Likewise.
+	* data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
+	* djgpp/Makefile.maint: Add copyright notice.
+	* djgpp/README.in: Likewise.
+	* djgpp/config.bat: Likewise.
+	* djgpp/config.site: Likewise.
+	* djgpp/config_h.sed: Likewise.
+	* djgpp/djunpack.bat: Likewise.
+	* djgpp/config.sed: Fix copyright notice to match standard format.
+	* djgpp/subpipe.h: Likewise.
+	* lib/bitsetv-print.c: Likewise.
+	* lib/bitsetv.c: Likewise.
+	* lib/subpipe.h: Likewise.
+	* lib/timevar.c: Likewise.
+	* lib/timevar.h: Likewise.
+	* djgpp/subpipe.c: Use standard recipe for config.h.
+	* lib/abitset.c: Likewise.
+	* lib/bitset.c: Likewise.
+	* lib/bitset_stats.c: Likewise.
+	* lib/bitsetv-print.c: Likewise.
+	* lib/bitsetv.c: Likewise.
+	* lib/ebitsetv.c: Likewise.
+	* lib/get-errno.c: Likewise.
+	* lib/lbitset.c: Likewise.
+	* lib/subpipe.c: Likewise.
+	* lib/timevar.c: Likewise.
+	* lib/vbitset.c: Likewise.
+	* tests/local.at: Likewise.
+	* src/scan-gram.l: Don't include verify.h, since system.h does
+	that for us.
+	* .x-sc_require_config_h: New file.
+	* .x-sc_unmarked_diagnostics: New file.
+
+2006-01-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Be a bit more systematic about using 'abort'.
+	* lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
+	* lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
+	Put 'default: abort ();' before some other case, to satisfy older
+	pedantic compilers.
+	* lib/bitset_stats.c (bitset_stats_init): Likewise.
+	* lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
+	* lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
+	* src/conflicts.c (resolve_sr_conflict): Likewise.
+	* src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
+	(get_decision_str, get_orientation_str, get_node_alignment_str):
+	(get_arrow_mode_str, get_crossing_type_str, get_view_str):
+	(get_linestyle_str, get_arrowstyle_str): Likewise.
+	* src/conflicts.c (resolve_sr_conflict):
+	Use a default case rather than one for the one remaining enum
+	value, to catch invalid enum values as well.
+	* src/lalr.c (set_goto_map, map_goto):
+	Prefer "assert (FOO);" to "if (!FOO) abort ();".
+	* src/nullable.c (nullable_compute, token_definitions_output):
+	Likewise.
+	* src/reader.c (packgram, reader): Likewise.
+	* src/state.c (transitions_to, state_new, state_reduction_find):
+	Likewise.
+	* src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
+	(symbol_pack): Likewise.
+	* src/tables.c (conflict_row, pack_vector): Likewise.
+	* src/scan-skel.l (QPUTS): Remove unnecessary parens.
+	(BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
+	* src/system.h: Don't include <assert.h>.
+	(assert): New macro.
+
+	* doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
+	(Destructor Decl, Parser Function, Pure Calling):
+	Describe rules for braces inside C code more carefully.
+
 2006-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 
 	Fix some porting glitches found by Nelson H. F. Beebe.
@@ -1098,7 +2467,7 @@
 
 2005-09-19  Akim Demaille  <akim@epita.fr>
 
-	* NEWS, configure.ac: Version 2.1a.
+	* NEWS, configure.ac: update version number to 2.1a.
 
 2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 
@@ -15349,3 +16718,5 @@
 	Copying and distribution of this file, with or without
 	modification, are permitted provided the copyright notice and this
 	notice are preserved.
+
+$Id$