]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* data/Makefile.am (dist_pkgdata_DATA): Add bison.m4; this
[bison.git] / ChangeLog
index 0905232c09877a656d5e223765970e3c2478a46e..370ecd05a98edb3299f74b88a48cd900a2df4eb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2006-10-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/Makefile.am (dist_pkgdata_DATA): Add bison.m4; this
+       accommodates the 2006-10-08 change.
+
+2006-10-11  Bob Rossi  <bob@brasko.net>
+
+       * data/push.c (yypushparse, yypvarsinit, yypvars): Wrap in b4_push_if.
+       (b4_yyssa, b4_yyerror_range): New macros.
+       (struct yypvars): Remove yyssa_ptr and yyerror_range_ptr fields.
+       (yypvarsinit): Remove init of removed fields.
+       (yypushparse): Remove use of removed fields; use new macros instead.
+
+2006-10-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/push.c (yypushparse): Fix memory leak if yymsg is malloced
+       in a push parser.  Reindent slightly to match yacc.c better.
+
+2006-10-11  Bob Rossi  <bob@brasko.net>
+
+        * data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg,
+        yymsg_alloc fields.
+        (yypvarsinit, yypushparse): Remove init of removed fields.
+        (yypushparse): Use yymsgbuf instead of yymsgbuf_ptr.
+
+2006-10-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * THANKS: Add Paolo Bonzini and Bob Rossi.
+
+2006-10-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       * data/c.m4 (b4_copyright, b4_epilogue, b4_location_initial_column,
+       b4_location_initial_line, p4_parse_param, b4_ints_in, b4_flag_if,
+       b4_define_flag_if and uses, b4_basename, b4_syncline, b4_user_code,
+       b4_define_user_cde and uses): Remove.
+       (b4_comment, b4_prefix, b4_sync_start): New.
+       * data/bison.m4: New file, with most of the content removed from c.m4.
+       * src/muscle_tab.h: Use "do {...} while(0)" throughout.
+       * src/output.c (output_skeleton): Pass bison.m4.
+       (prepare): Pass glr_flag and nondeterministic_flag.  Pass prefix
+       only if specified.
+
+2006-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix test failure reported by Tom Lane in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-10/msg00000.html>
+       and try to make such failures easier to catch in the future.
+       * data/glr.c (YYTRANSLATE): Don't check for nonpositive arg;
+       that's now the caller's responsibility.
+       (yyprocessOneStack, yyrecoverSyntaxError, yyparse):
+       Set yychar = YYEOF if it's negative.
+       * tests/actions.at (yylex): Abort if asked to read past EOF.
+       * tests/conflicts.at (yylex): Likewise.
+       * tests/cxx-type.at (yylex): Likewise.
+       * tests/glr-regression.at (yylex): Likewise.
+       * tests/input.at (yylex): Likewise.
+       * tests/regression.at (yylex): Likewise.
+       * tests/torture.at (yylex): Likewise.
+
+2006-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix problems with translating English-language diagnostics.
+       * bootstrap: Fix bug introduced in recent bootstrap changes, with
+       respect to bison-runtime pot generation.  The YY_ stuff
+       wasn't being captured.
+       * bootstrap.conf (XGETTEXT_OPTIONS_RUNTIME): New var.
+       * po/POTFILES.in: Add src/location.c, src/scan-code.l.
+       * runtime-po/POTFILES.in: Add data/push.c.
+
+2006-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge bootstrap changes from coreutils.
+
+       2006-09-28  Jim Meyering  <jim@meyering.net>
+
+       Automatically generated dependencies are important even
+       when all of the sources in a directory come from gnulib.
+       * bootstrap (gnulib_tool): Remove the "no-dependencies" automake
+       option that gnulib-tool adds to what becomes our lib/gnulib.mk.
+
+       2006-09-23  Jim Meyering  <jim@meyering.net>
+
+       * bootstrap (gnulib_tool_options): Add "--local-dir gl".
+
+       2006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap: Add support for --force.
+       (usage): New function.  Describe usage less tersely.
+       (CVS_only_file): New var.
+
+2006-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/push.c (YYPUSH_MORE): Make it an enum instead.
+       (yypushparse): Use YYPUSH_MORE instead of the mystery constant.
+       Adjust white space and comments to match GNU style better.
+
+2006-09-20  Bob Rossi  <bob@brasko.net>
+
+       * data/push.c (yyresult_get): Remove function.
+       (YYPUSH_MORE): Add #define.
+       (yypushparse): Modify return value.
+
+2006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * stamp-h.in: Remove; no longer needed.
+       * .cvsignore: Replace autom4te.cache and config.cache with *.cache.
+       Remove config.h, config.hin, intl (no longer created).
+       * lib/.cvsignore: Add config.h, config.hin, configmake.h, inttypes.h,
+       stamp-h1.
+
+       Sync bootstrap from coreutils, as follows:
+
+       2006-09-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (symlink_to_gnulib): New function.
+       (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
+       to copies-of-gnulib.
+       (cp_mark_as_generated, slurp, gnulib_files):
+       Avoid making a copy if it's the same as the old version.
+       (gnulib_files): Add support for this variable (used by Bison).
+
+2006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/getargs.c (usage): Rework to use conventions similar to
+       coreutils, to make translation a bit easier and the code a bit
+       smaller.  Problem reported by Tim Van Holder.
+
+2006-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use some of gnulib's new modules, taken from coreutils.
+
+       * bootstrap: Sync from coreutils, except add support for gnulib_files.
+       * bootstrap.conf: New file.
+       (gnulib_modules): Add configmake, inttypes, unistd.
+       (XGETTEXT_OPTIONS): Add complain, complain_at,
+       fatal, fatal_at, warn, warn_at, unexpected_end.
+       * configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here.
+       (gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this.
+       (gl_EARLY): Add.
+       (AM_STDBOOL_H): Remove; gl_INIT now dows this.
+       (gl_INIT): Add
+       (GNULIB_AUTOCONF_SNIPPET): Remove.
+       (AM_GNU_GETTEXT): Add; require formatstring macros since that's
+       the pickiest.
+       * lib/.cvsignore: Add inttypes_.h.
+       * lib/Makefile.am: Include gnulib.mk first so we can append to it.
+       (AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils.
+       (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove
+       no-longer-necessary initializations.
+       (lib_SOURCES): Remove, replacing by libbison_a_SOURCES.
+       * lib/subpipe.c: Include <unistd.h> unconditionally, now that we
+       use the unistd module.
+       * src/system.h: Likewise.
+       * m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4,
+       ulonglong.m4.  Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4,
+       gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4.
+       * src/Makefile.am (DEFS): Remove, since configmake does this for us.
+       (AM_CPPFLAGS): Remove -I../lib, since Automake does that for us.
+       * src/system.h: Include inttypes.h unconditionally, now that we
+       use the inttypes module.  Don't bother to include stdint.h, since
+       inttypes.h now does that for us.
+       (LOCALEDIR): Remove, now that we use the configmake module.
+       * src/getargs.c: Include configmake.h.
+       * src/main.c: Likewise.
+       * src/output.c: Likewise.
+       * tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib,
+       not from $abs_top_builddir, since config.h moved.
+
+
+       Port to GCC 2.95.  First two problems reported by Michael Deutschmann in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>.
+
+       * src/parse-gram.y (symbol_declaration): Don't put statements
+       before declarations; it's not portable to C89.
+       * src/scan-code.l (handle_action_at): Likewise.
+
+       * src/scan-code.l: Always initialize braces_level; the old code
+       left it uninitialized and therefore had undefined behavior.
+
+       Don't attempt to redefine 'assert', since it runs afoul of
+       systems where standard headers (mistakenly) include <assert.h>.
+       Instead, define and use our own alternative, called 'aver'.
+       * src/reader.c: Don't include assert.h, since we no longer
+       use assert.
+       * src/scan-code.l: Likewise.
+       * src/system.h (assert): Remove, replacing with....
+       (aver): New function, taking a bool arg.  All uses changed.
+       * src/tables.c (pack_vector): Ensure that aver arg is bool,
+       not merely an integer.
+
+2006-09-15  Bob Rossi  <bob@brasko.net>
+
+       * data/Makefile.am (dist_pkgdata_DATA): Add push.c.
+       * data/c.m4 (YYPUSH): New.
+       (b4_push_if): New macro.  Use it instead of #ifdef YYPUSH.
+       * src/getargs.c (push_parser): New var.
+       * src/getargs.h (push_parser): New declaration.
+       * src/output.c (prepare): Add macro insertion of `push_flag'.
+       * src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
+       (prologue_declaration): Parse %push-parser.
+       * src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
+       * tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
+       list of removed lines from the traces observed.
+       (AT_CHECK_CALC_LALR): Added push parser tests.
+
+2006-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Version 2.3a.
+       * configure.ac (AC_INIT): Likewise.
+
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
+       "#define YYSTYPE int" that caused "make maintainer-check" to fail
+       due to header ordering dependencies.  I don't know why the #define
+       was there.
+
+       Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
+       runtime cost when YYDEBUG is not defined, and so that some tests
+       that used to fail now work.  Problem and initial suggestion by
+       Paolo Bonzini.
+       * data/c++.m4 (b4_parse_param_cons): Omit leading ','.
+       * data/glr.cc (b4_parser_class_name):
+       Initialize yycdebug_ only if YYDEBUG.  Also, initialize yydebug_.
+       (debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
+       (yydebug_) [YYDEBUG]: New member.
+       (yycdebug_): Now defined only if YYDEBUG.
+       * data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
+       (YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
+       (b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
+       if YYYDEBUG.
+       (debug_stream, set_debug_stream, debug_level, set_debug_level):
+       Define only if YYDEBUG.
+       * tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
+       set_debug_level.
+       * tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
+       * tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
+       AT_CHECK_CALC_GLR_CC that are working now.
+
+2006-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
+       We don't need them in glr.cc, and glr.c defines them.
+       Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
+       assumes that defining it to anything is the same as defining
+       it to 1.  Problem reported by Paolo Bonzini.
+
+2006-09-12  Paolo Bonzini  <bonzini@gnu.org>  (tiny change)
+
+       * data/c.m4 (b4_null, b4_case): Define.
+       * src/output.c (prepare_symbols): Use b4_null.
+       (user_actions_output): Use b4_case.
+
+2006-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (b4_shared_declarations): Put start-header first,
+       before any #includes that we generate, so that feature-test
+       macros work.  Problem reported by Michael Deutschmann in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
+       * data/lalr1.cc: Likewise.
+       * doc/bison.texinfo (Prologue): Document that feature-test macros
+       should be defined before any Bison declarations.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
+       that depend on location.hh after, not before, Bison decls, since
+       we now include location.hh after the first user prologue.
+
+       * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
+       Sander Brandenburg in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
+       Also, fix minor white space and comment issues.
+       (Prologue): Mention that it's better to define feature-test macros
+       before Bison declarations.  Problem reported by Michael Deutschmann.
+
+       * README-cvs: Fix typo: "&" should be "&&".  Problem reported
+       by Jim Meyering.
+       * m4/.cvsignore: Add argmatch.m4.  Remove obstack.m4, strerror_r.m4.
+       This adjusts to recent gnulib changes.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Finish implementation of per-type %destructor/%printer.  Discussed
+       starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
+       and
+       <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
+       * NEWS (2.3+): Add a description of this feature to the default
+       %destructor/%printer description.
+       * doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
+       * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
+       Invoke semantic_type_destructor_set or semantic_type_printer_set when a
+       list node contains a semantic type.
+       * src/symtab.c, src/symtab.h: Extend with a table that associates
+       semantic types with their %destructor's and %printer's.
+       (semantic_type_from_uniqstr, semantic_type_get,
+       semantic_type_destructor_set, semantic_type_printer_set): New functions
+       composing the public interface of that table.
+       (symbol_destructor_get, symbol_destructor_location_get,
+       symbol_printer_get, symbol_printer_location_get):  If there's no
+       per-symbol %destructor/%printer, look up the per-type before trying
+       the default.
+       * tests/actions.at (Per-type %printer and %destructor): New test case.
+       * tests/input.at (Default %printer and %destructor redeclared):
+       Extend to check that multiple occurrences of %symbol-default in a
+       single %destructor/%printer declaration is an error.
+       (Per-type %printer and %destructor redeclared, Unused values with
+       per-type %destructor): New test cases.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Require default %destructor/%printer to be declared using
+       %symbol-default instead of an empty symbol list, and start working on
+       new per-type %destructor/%printer.  Discussed at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
+       * NEWS (2.3+): Add %symbol-default to example.
+       * bison.texinfo (Freeing Discarded Symbols): Likewise.
+       (Bison Symbols): Add entry for %symbol-default.
+       * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
+       (generic_symlist, generic_symlist_item): New nonterminals for creating
+       a list in which each item is a symbol, semantic type, or
+       %symbol-default.
+       (grammar_declaration): Use generic_symlist in %destructor and %printer
+       declarations instead of symbols.1 or an empty list.
+       (symbol_declaration, precedence_declaration, symbols.1): Update actions
+       for changes to symbol_list.
+       * src/reader.c: Update for changes to symbol_list.
+       * src/scan-code.l: Likewise.
+       * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
+       * src/symlist.c, src/symlist.h: Extend such that a list node may
+       represent a semantic type or a %symbol-default in addition to just an
+       ordinary symbol.  Add switched functions for setting %destructor's and
+       %printer's.
+       * tests/actions.at, tests/input.at: Add %symbol-default to all default
+       %destructor/%printer declarations.
+
+2006-08-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Whether the default %destructor/%printer applies to a particular symbol
+       isn't a question of whether the user *declares* that symbol (in %token,
+       for example).  It's a question of whether the user by any means
+       *defines* the symbol at all (by simply using a char token, for
+       example).  $end is defined by Bison whereas any other token with token
+       number 0 is defined by the user.  The error token is always defined by
+       Bison regardless of whether the user declares it with %token, but we
+       may one day let the user define error as a nonterminal instead.
+       * NEWS (2.3+): Say "user-defined" instead of "user-declared".
+       * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
+       the meaning of "user-defined".
+       * tests/actions.at (Default %printer and %destructor for user-declared
+       end token): Rename to...
+       (Default %printer and %destructor for user-defined end token): ...
+       this.
+
+       * src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
+       computation of whether to apply the default, don't maintain a list of
+       every Bison-defined symbol.  Instead, just check for a first character
+       of '$', which a user symbol cannot have, and check for the error token.
+
+2006-08-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't apply the default %destructor or %printer to the error token,
+       $undefined, or $accept.  This change fits the general rule that the
+       default %destructor and %printer are only for user-declared symbols,
+       and it solves several difficulties that are described in the new test
+       cases listed below.
+       * src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
+       * tests/actions.at (Default %printer and %destructor are not for error
+       or $undefined, Default %printer and %destructor are not for $accept):
+       New test cases.
+
+2006-08-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Allow %start after the first rule.
+       * src/reader.c (grammar_current_rule_begin): Don't set the start symbol
+       when parsing the first rule.
+       (check_and_convert_grammar): Search for it here after all grammar
+       declarations have been parsed.  Skip midrules, which have dummy LHS
+       nonterminals.
+       * src/symtab.c (symbol_is_dummy): New function.
+       * src/symtab.h (symbol_is_dummy): Declare it.
+       * tests/input.at (%start after first rule): New test.
+
+2006-08-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Redo some of the previous commit: add back the ability to use
+       non-aliased/undeclared string literals since it might be useful to
+       those declaring %token-table.
+       * src/reader.c (check_and_convert_grammar): Undo changes in previous
+       commit: don't worry about complaints from symbols_pack.
+       * src/symtab.c (symbol_new, symbol_class_set,
+       symbol_check_alias_consistency): Undo changes in previous commit: count
+       each string literal as a new symbol and token, assign it a symbol
+       number, and don't complain about non-aliased string literals.
+       (symbols_pack): Since symbol_make_alias still does not decrement symbol
+       and token counts but does still set aliased tokens to the same number,
+       symbol_pack_processor now leaves empty slots in the symbols array.
+       Remove those slots.
+       * tests/regression.at (Undeclared string literal): Remove test case
+       added in previous commit since non-aliased string literals are allowed
+       again.
+       (Characters Escapes, Web2c Actions): Undo changes in previous commit:
+       remove unnecessary string literal declarations.
+       * tests/sets.at (Firsts): Likewise.
+
+2006-08-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't allow an undeclared string literal, but allow a string literal to
+       be used before its declaration.
+       * src/reader.c (check_and_convert_grammar): Don't invoke packgram if
+       symbols_pack complained.
+       * src/symtab.c (symbol_new): Don't count a string literal as a new
+       symbol.
+       (symbol_class_set): Don't count a string literal as a new token, and
+       don't assign it a symbol number since symbol_make_alias does that.
+       (symbol_make_alias): It's not necessary to decrement the symbol and
+       token counts anymore.  Don't assume that an alias declaration occurs
+       before any uses of the identifier or string, and thus don't assert that
+       one of them has the highest symbol number so far.
+       (symbol_check_alias_consistency): Complain if there's a string literal
+       that wasn't declared as an alias.
+       (symbols_pack): Bail if symbol_check_alias_consistency failed since
+       symbol_pack asserts that every token has been assigned a symbol number
+       although undeclared string literals have not.
+       * tests/regression.at (String alias declared after use, Undeclared
+       string literal): New test cases.
+       (Characters Escapes, Web2c Actions): Declare string literals as
+       aliases.
+       * tests/sets.at (Firsts): Likewise.
+
+2006-08-14  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       In the grammar scanner, STRING_FINISH unclosed constructs and return
+       them to the parser in order to improve error messages.
+       * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER,
+       SC_BRACED_CODE, SC_PROLOGUE): Implement.
+       * tests/input.at (Unclosed constructs): New test case.
+       * tests/regression.at (Invalid inputs): Update now that unclosed %{ is
+       seen.
+
+       * src/scan-gram.h, src/scan-gram.l (gram_last_braced_code_loc): Remove
+       unused global.
+
+2006-08-13  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Handle string aliases for character tokens correctly.
+       * src/symtab.c (symbol_user_token_number_set): If the token has an
+       alias, check and set its alias's user token number instead of its own,
+       which is set to indicate the alias.  Previously, every occurrence of
+       the character token in the grammar overwrote that alias indicator with
+       the character code.
+       * tests/input.at (String aliases for character tokens): New test.
+
+2006-08-12  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
+
+2006-08-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT,
+       to prevent failures when building on older platforms.
+       Check for autopoint failure.
+       Set XGETTEXT_OPTIONS to values that check for C format strings,
+       so that translators are warned about them (this also helps
+       prevent core dumps).
+
+       * lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer
+       function, since it simplifies our code a bit.
+
+       * configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
+       rather than -W, so we don't get bogus warnings about sign comparisons.
+       Add -Wpointer-arith, since that warning is useful (it reports code
+       that does not conform to C89 and that some compilers reject).
+       * data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
+       since it's no longer needed.
+
+2006-08-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up scanners a bit.
+       * src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
+       definitions so gcc won't warn when obstack_for_string is unused.
+       * src/scan-code.l: config.h and system.h are already #include'd by
+       scan-code-c.c, so get rid of them here.
+       * src/scan-gram.l: Likewise.
+       * src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
+       definitions rather than duplicating the rest of it.
+       * src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
+
+2006-08-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Suppress signed/unsigned comparison warnings for yycheck.
+       * data/c.m4 (b4_safest_int_type): New macro.
+       * data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against
+       a signed int type, cast it to b4_safest_int_type first.
+       * data/yacc.c: Likewise.
+       (b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is
+       also overwritten.
+
+2006-08-09  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>  (tiny change)
+
+       * doc/bison.texinfo: Fix some typos.
+
+2006-08-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4,
+       po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
+
+       * bootstrap (gnulib_tool): Stop using --assume-autoconf;
+       the latest gnulib does this a different way.
+       (get_translations): Sharuzzaman Ahmat Raslan reported that the ms
+       translation was patched, so stop omitting it.
+
+2006-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Enable declaration of default %printer/%destructor.  Make the parser
+       use these for all user-declared grammar symbols for which the user does
+       not declare a specific %printer/%destructor.  Thus, the parser uses it
+       for token 0 if the user declares it but not if Bison generates it as
+       $end.  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>,
+       <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>,
+       and
+       <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>.
+       * NEWS (2.3+): Mention.
+       * doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to
+       declare a %destructor for a mid-rule's semantic value.  It's just
+       impossible to declare one specific to it.
+       (Freeing Discarded Symbols): Mention that @$ can be used in %destructor
+       code.  Describe default %destructor form.
+       * src/parse-gram.y (grammar_declaration): Parse default
+       %printer/%destructor declarations.
+       * src/output.c (symbol_destructors_output): Use symbol_destructor_get
+       and symbol_destructor_location_get rather than accessing the destructor
+       and destructor_location members of struct symbol.
+       (symbol_printers_output): Likewise but for %printer's.
+       * src/reader.c (symbol_should_be_used): Likewise but for %destructor's
+       again.
+       * src/symtab.c (default_destructor, default_destructor_location,
+       default_printer, default_printer_location): New static global
+       variables to record the default %destructor and %printer.
+       (symbol_destructor_get, symbol_destructor_location_get,
+       symbol_printer_get, symbol_printer_location_get): New functions to
+       compute the appropriate %destructor and %printer for a symbol.
+       (default_destructor_set, default_printer_set): New functions to set the
+       default %destructor and %printer.
+       * src/symtab.h: Prototype all those new functions.
+       * tests/actions.at (Default %printer and %destructor): New test to
+       check that the right %printer and %destructor are called, that they're
+       not called for $end, and that $$ and @$ work correctly.
+       (Default %printer and %destructor for user-declared end token): New
+       test to check that the default %printer and %destructor are called for
+       a user-declared end token.
+       * tests/input.at (Default %printer and %destructor redeclared, Unused
+       values with default %destructor): New tests to check related grammar
+       warnings and errors.
+
+2006-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up handling of %destructor for the end token (token 0).
+       Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>
+       and
+       <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>.
+
+       Make the skeletons consistent in how they pop the end token and invoke
+       its %destructor.
+       * data/glr.c (yyrecoverSyntaxError, yyparse): Don't pop the start
+       state, which has token number 0, since this would invoke the
+       %destructor for the end token.
+       * data/lalr1.cc (yy::parser::parse): Don't check for the final state
+       until after shifting the end token, or else it won't be popped.
+       * data/yacc.c (yyparse): Likewise.
+
+       * data/glr.c (yyparse): Clear the lookahead after shifting it even when
+       it's the end token.  Upon termination, destroy an unshifted lookahead
+       even when it's the end token.
+       * data/lalr1.cc (yy::parser::parse): Likewise.
+       * data/yacc.c (yyparse): Likewise.
+
+       * src/reader.c (packgram): Don't check rule 0.  This suppresses unused
+       value warnings for the end token when the user gives the end token a
+       %destructor.
+
+       * tests/actions.at (Printers and Destructors): Test all the above.
+
+2006-07-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Update to latest gnulib and gettext versions.
+       * bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
+       Add fopen-safer.
+       (gnulib_files): Add m4/warning.m4.  Don't worry about files
+       overwritten by autopoint.
+       Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
+       Suppress "id", "ms", "tr" translations for now, since gettext 0.15
+       rejects them.
+       Don't use autoreconf; instead, invoke autopoint etc. by hand,
+       so that we can remove the intl files at a better time.
+       (intl_files_to_remove): Remove aclocal.m4, since it gets
+       rebuilt anyway.  Remove m4/inttypes_h.m4, m4/inttypes.m4,
+       m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
+       m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
+       Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
+       Remove datarootdir hack; no longer needed.
+       * configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
+       (AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
+       * lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
+       strdup.h.
+       * m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
+       * m4/warning.m4: Remove from CVS, since we now use gnulib's version.
+
+2006-07-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap: Adjust to today's change to gnulib-tool by invoking
+       it with --assume-autoconf='latest-stable'.
+
+2006-07-13  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at
+       least 1.4.7 and 1.4.4) by putting a #line between `typedef union
+       YYSTYPE' and `{'.
+       * src/muscle_tab.h (muscle_grow): Replace the header comments with
+       those from muscle_tab.c since the old ones are misleading.
+
+2006-07-13  Akim Demaille  <akim@epita.fr>
+
+       Support %define "KEY" {VALUE}.
+       * src/scan-code.h, src/scan-code.l (translate_action)
+       (translate_rule_action, translate_symbol_action, translate_code):
+       Return char *, not const char *.
+       * src/parse-gram.y (declaration): Rename as...
+       (prologue_declaration): this.
+       (string_content): Remove this nonterminal, use STRING.
+       (braceless, content, content.opt): New nonterminal.
+       Use them.
+       (%define): Now accept content.opt, i.e., accept also BRACED_CODE
+       as value.
+       * src/scan-gram.l (getargs.h): Don't include it.
+
+2006-07-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)'
+       rather than a for-loop that declares a local bool variable.  This
+       should work around a compatibility problem with a Cray x1e C++
+       compiler reported by Hung Nguyen in
+       <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00022.html>.
+       The for-loop was introduced in the 2004-11-17 change but I don't
+       know why it was needed.
+
+2006-07-12  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4: Comment changes.
+
+2006-07-10  Akim Demaille  <akim@lrde.epita.fr>
+
+       * src/complain.c (error_message, ERROR_MESSAGE): New.
+       To factor...
+       (fatal_at, fatal, warn_at, warn, complain_at, complain): these.
+       * src/complain.h, src/complain.c (warning_issued): Remove, unused.
+
+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.
+       * lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
+       compilers that don't understand that abort () does not return.
+       * src/state.c (transitions_to): Likewise.
+       * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
+       that '#include <cstdlib>' works.
+       * src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
+       (INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
+       #undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
+       for the benefit of some pre-C99 compilers.
+
+       * bootstrap: Undo changes to gnulib files that autoreconf made.
+
+       Minor fixups to get 'make maintainer-check' to work.
+       * configure.ac: Don't use -Wnested-externs, as it's incompatible
+       with the new verify.h implementation.
+       * data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
+       * data/glr.c (YYUSE): Depend on __GNUC__ as well.
+       * data/yacc.c (YYUSE): Likewise.
+       * data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
+       * lib/subpipe.c (end_of_output_subpipe): The args are unused.
+       * src/parse-gram.y (declaration): Don't pass a string constant
+       to a function that expects char *, since GCC might complain
+       about the constant value.
+       * src/reader.c (symbol_typed_p): Add parens to pacify GCC.
+       * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
+       before #defining them.
+       * tests/glr-regression.at
+       (Incorrectly initialized location for empty right-hand side in GLR):
+       In yyerror, use the msg arg.
+       (Corrupted semantic options if user action cuts parse):
+       (Incorrect lookahead during deterministic GLR):
+       (Incorrect lookahead during nondeterministic GLR):
+       Don't name a local var 'index'; it shadows string.h's 'index'.
+
+2006-01-19  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
+       location, not just parts of it.
+
+2006-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Document the fact that multiple %unions are now allowed.
+       * doc/bison.texinfo (Union Decl): Likewise.
+       * TODO: This feature is now implemented, so remove it from
+       the wishlist.
+
+       * Makefile.maint: Merge with coreutils Makefile.maint.
+       (CVS_LIST): Use build-aux version if available.
+       (VERSION_REGEXP): New macro.
+       (syntax-check-rules): Add sc_no_if_have_config_h,
+       sc_prohibit_assert_without_use, sc_require_config_h,
+       sc_useless_cpp_parens.
+       (sc_obsolete_symbols): Check for O_NDELAY.
+       (sc_dd_max_sym_length): Track coreutils.
+       (sc_unmarked_diagnostics): Look in all files, not just *.c.
+       (sc_useless_cpp_parens): New rule.
+       (news-date-check): Look for version or today's date.
+       (changelog-check): Don't require version number near head.
+       (copyright-check): Use current year instead of hardwiring 2005.
+       (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
+       (announcement): Add --gpg-key-ID.
+
+       * djgpp/config.sed: Add copyright notice, and replace "filesystem"
+       with "file system".
+
+       Avoid undefined behavior that addressed just before the start of an
+       array.  Problem reported by twlevo.
+       * src/reader.c (packgram): Prepend a new sentinel before ritem.
+       * src/lalr.c (build_relations): Rely on new sentinel.
+       * src/gram.c (gram_free): Adjust to new sentinel.
+
+2006-01-12  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
+       yylookaheadNeeds.  All uses updated.
+       (yysplitStack): Rename local yynewLookaheadStatuses to
+       yynewLookaheadNeeds.
+       * data/glr-regression.at (Incorrect lookahead during nondeterministic
+       GLR): In comments, change `lookahead status' to `lookahead need'.
+
+2006-01-11  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
+
+       * data/glr.c (yysplitStack): A little stylistic rewrite.
+
+2006-01-11  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
+
+       * data/glr.c (yyaddDeferredAction): Flesh out the comment.
+
+2006-01-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * doc/bison.texinfo: Fix some typos.
+       (GLR Semantic Actions): New subsection discussing special
+       considerations because GLR semantic actions might be deferred.
+       (Actions): Mention look-ahead usage of yylval.
+       (Actions and Locations): Mention look-ahead usage of yylloc.
+       (Special Features for Use in Actions): Add YYEOF entry and mention it
+       in the yychar entry.
+       In the yychar entry, remove mention of the local yychar case (pure
+       parser) since this is irrelevant information when writing semantic
+       actions and since it's already discussed in `Bison Symbols' where
+       yychar is otherwise described as an external variable.
+       In the yychar entry, don't call it the `current' look-ahead since it
+       isn't when semantic actions are deferred.
+       In the yychar and yyclearin entries, add note about deferred semantic
+       actions.
+       Add yylloc and yylval entries discussing look-ahead usage.
+       (Look-Ahead Tokens): When discussing yychar, don't call it the
+       `current' look-ahead, and do mention yylval and yylloc.
+       (Error Recovery): Cross-reference `Action Features' when mentioning
+       yyclearin.
+       (Bison Symbols): In the yychar entry, don't call it the `current'
+       look-ahead.
+       In the yylloc and yylval entries, mention look-ahead usage.
+
+2006-01-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * tests/glr-regression.at: Update copyright year to 2006.
+
+2006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
+       use during nondeterministic operation to track which stacks have
+       actually needed the current lookahead.
+       (yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
+       Allocate, deallocate, resize, and otherwise shuffle space for
+       yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
+       (yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
+       appropriately during nondeterministic operation.
+       (yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
+       members to store the current lookahead to be used by the deferred
+       user action.
+       (yyaddDeferredAction): Add size_t yyk parameter specifying the stack
+       from which the RHS is taken.  Set the lookahead members of the new
+       yySemanticOption according to the lookahead status for stack yyk.
+       (yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
+       yyaddDeferredAction.
+       (yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
+       members of yySemanticOption before invoking yyuserAction, and then set
+       them back to their current values afterward.
+       (yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
+       (yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
+       * tests/glr-regression.at: Remove `.' from the ends of recent test case
+       titles for consistency.
+       (Leaked merged semantic value if user action cuts parse): In order to
+       suppress lint warnings, use arguments in merge function, and assign
+       char value < 128 in main.
+       (Incorrect lookahead during deterministic GLR): New test case.
+       (Incorrect lookahead during nondeterministic GLR): New test case.
+
+2006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
+       !yyvaluep as signal that no semantic value is available to print.
+       * data/glr.c (yydestroyGLRState): If state is not resolved, don't try
+       to print a semantic value.
+
+2006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * tests/glr-regression.at: For consistency with my newer test cases,
+       don't thank myself.
+
+2006-01-05  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyresolveValue): When merging semantic options, if at
+       least one user action succeeds but a later one cuts the parse, then
+       destroy the semantic value before returning rather than leaking it.
+       (yyresolveStates): If a user action cuts the parse and thus
+       yyresolveValue fails, ignore the (unset) semantic value rather than
+       corrupting the yyGLRState, and empty the semantic options list since
+       the user actions should have called all necessary destructors.
+       Simplify code with YYCHK.
+       * tests/glr-regression.at (Corrupted semantic options if user action
+       cuts parse): New test case.
+       (Undesirable destructors if user action cuts parse): New test case.
+       Before applying any of this patch, this test case never actually failed
+       for me... but only because the corrupted semantic options usually
+       masked this bug.
+       (Leaked merged semantic value if user action cuts parse): New test
+       case.
+
+2006-01-05  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
+
+2006-01-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/c.m4 (b4_c_modern): New macro, with a new provision for
+       _MSC_VER.  Problem reported by Cenzato Marco.
+       (b4_c_function_def): Use it.
+       * data/yacc.c (YYMODERN_C): Remove.  All uses replaced by
+       b4_c_modern.
+       (yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
+       than rolling our own.
+
+2006-01-04  Akim Demaille  <akim@epita.fr>
+
+       Also warn about non-used mid-rule values.
+       * src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
+       member.
+       (symbol_list_new): Adjust.
+       * src/reader.c (symbol_typed_p): New.
+       (grammar_rule_check): Use it.
+       (grammar_midrule_action): Bind a mid-rule LHS to its rule.
+       Check its rule.
+       * tests/input.at (AT_CHECK_UNUSED_VALUES): New.
+       Use it.
+       * tests/actions.at (Exotic Dollars): Adjust.
+
+2006-01-04  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (grammar_midrule_action): If $$ is set in a
+       mid-rule, move the `used' bit to its lhs.
+       * tests/input.at (Unused values): New.
+       * tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
+
+2006-01-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Bison Options): Say more accurately what
+       --yacc does.
+       * src/parse-gram.y (rules_or_grammar_declaration): Don't complain
+       about declarations in the grammar when in Yacc mode, as POSIX does
+       not require a diagnostic when the grammar uses extensions.
+
+       * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
+
+       Warn about dubious constructions like "%token T T".
+       Reported by twlevo.
+       * src/symtab.h (struct symbol.declared): New member.
+       * src/symtab.c (symbol_new): Initialize it to false.
+       (symbol_class_set): New arg DECLARING, specifying whether
+       this is a declaration that we want to warn about, if there
+       is more than one of them.  All uses changed.
+
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
+       Allow multiple %union directives, whose contents concatenate.
+       * src/parse-gram.y (grammar_declaration): Likewise.
+       Use muscle_code_grow, so that we don't need stype_line any more.
+       All uses changed.
+
+       * src/muscle_tab.c (muscle_grow): Fix comment.
+
+       * ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
+       * data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
+       Update copyright year to 2006.
+
+2006-01-03  Akim Demaille  <akim@epita.fr>
+
+       Have glr.cc pass (some of) the calc.at tests.
+       * data/glr.cc (b4_parse_param_orig): New.
+       (b4_parse_param): Improve its definition, and bound it more
+       clearly in the skeleton.
+       (b4_epilogue): Append, instead of prepending, in order to keep
+       #line consistency.
+       Simplify the generation of auxiliary functions: locations and
+       purity are mandated.
+       (b4_global_tokens_and_yystype): Honor it.
+       * data/location.cc (c++.m4): Don't include it.
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
+       and AT_SKEL_CC_IF.
+       * tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
+       AT_LALR1_CC_IF.
+       Be sure to initialize the first position's filename.
+       (AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
+       mandated anyway.
+       (AT_CHECK_CALC_GLR_CC): New.
+       Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
+
+2006-01-02  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_skeleton): Don't hard wire the inclusion of
+       c.m4.
+       * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
+       * data/glr.cc: Do not include stack.hh.
+
+2006-01-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/glr.c: Reformat whitespace with tabs.
+       (b4_lpure_formals): Remove this unused m4 macro.
+       * tests/cxx-type.at: Reformat whitespace with tabs.
+       (_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
+       since it's a member.  Rename type to isNterm for clarity.
+
+2005-12-29  Akim  <akim@sulaco.local>
+
+       Let glr.cc catch up with symbol_value_print.
+       * data/glr.cc (b4_yysymprint_generate): Replace by...
+       (b4_yy_symbol_print_generate): this.
+       (yy_symbol_print, yy_symbol_value_print): Declare them.
+
+2005-12-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/location.h (boundary): Note that a line or column equal
+       to INT_MAX indicates an overflow.
+       * src/scan-gram.l: Include verify.h.  Don't include get-errno.h.
+       (rule_length_overflow, increment_rule_length, add_column_width):
+       New functions.
+       (<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
+       (<SC_BRACED_CODE>"}"):
+       Use increment_rule_length rather than incrementing it by hand.
+       (adjust_location, handle_syncline): Diagnose overflow.
+       (handle_action_dollar, handle_action_at):
+       Fix bug with monstrosities like $-2147483648.
+       Remove now-unnecessary checks.
+       (scan_integer): Verify assumptions and remove now-unnecessary checks.
+       (convert_ucn_to_byte): Verify assumptions.
+       (handle_syncline): New arg LOC.  All callers changed.
+       Don't store through a value derived from char const * pointer.
+
+       * src/reader.c (grammar_rule_check): Rewrite slightly to avoid
+       GCC warnings.
+
+2005-12-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/reader.c (grammar_midrule_action, grammar_symbol_append):
+       Remove unnecessary forward static decls.
+
+2005-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (grammar_current_rule_check): Also check that $$
+       is used.
+       Take the rule to check as argument, hence rename as...
+       (grammar_rule_check): this.
+       * src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
+       Rename as...
+       (grammar_rule_begin, grammar_rule_end): these, for consistency.
+       (grammar_midrule_action, grammar_symbol_append): Now static.
+       * tests/torture.at (input): Don't rely on the default action
+       being always performed.
+       * tests/calc.at: "Set" $$ even when the action is "cut" with
+       YYERROR or other.
+       * tests/actions.at (Exotic Dollars): Instead of using unused
+       values, check that the warning is issued.
+
+2005-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Improve wording for unused-value warnings.
+
+2005-12-22  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
+       (b4_yysymprint_generate): Rename as...
+       (b4_yy_symbol_print_generate): this.
+       Generate yy_symbol_print instead of yysymprint.
+       Generate also yy_symbol_value_print, and use it.
+
+2005-12-22  Akim Demaille  <akim@epita.fr>
+
+       * NEWS: Warn about unused values.
+       * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
+       a `used' member.
+       (symbol_list_n_get, symbol_list_n_used_set): New.
+       (symbol_list_n_type_name_get): Use symbol_list_n_get.
+       * src/scan-gram.l (handle_action_dollar): Flag used symbols.
+       * src/reader.c (grammar_current_rule_check): Check that values are
+       used.
+       * src/symtab.c (symbol_print): Accept 0.
+       * tests/existing.at: Remove the type information.
+       Empty the actions.
+       Remove useless actions (beware of mid-rule actions: perl -000
+       -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
+       * tests/actions.at (Exotic Dollars): Use unused values.
+       * tests/calc.at: Likewise.
+       * tests/glr-regression.at (No users destructors if stack 0 deleted):
+       Likewise.
+
+       * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
+       rule_useful_p.
+
+2005-12-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Undo 2005-12-01 tentative license wording change.  The wording is
+       still being reviewed by the lawyers, and we don't want to wait for
+       them before publishing a test release.  For now, revert to the
+       previous wording.
+       * NEWS: Undo 2005-12-01 change.
+       * data/glr.c: Revert to previous license wording.
+       * data/glr.cc: Likewise.
+       * data/lalr1.cc: Likewise.
+       * data/location.cc: Likewise.
+       * data/yacc.c: Likewise.
+
+       * NEWS: Reword %destructor vs YYABORT etc.
+       * data/glr.c: Use American spacing, for consistency.
+       * data/glr.cc: Likewise.
+       * data/lalr1.cc: Likewise.
+       * data/yacc.c: Likewise.
+       * data/yacc.c: Reformat comments slightly.
+       * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
+       for consistency.  Fix some spelling errors and reword recently-included
+       text slightly.
+       * tests/cxx-type.at: Cast results of malloc, for C++.
+
+2005-12-21  Joel E. Denny  <address@hidden>
+
+       * tests/cxx-type.at: Construct a tree, count the parents of shared
+       nodes, and free each node once and only once.  Previously, the memory
+       for semantic values was leaked instead.
+
+2005-12-21  Joel E. Denny  <address@hidden>
+
+       * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
+       (yylval, yylloc): If pure, #define to yystackp->yyval and
+       yystackp->yyloc similar to yychar and yynerrs.
+       (yyparse): If pure, remove local yylval and yylloc. Add local
+       yystackp to accommodate pure definitions of yylval and yylloc.
+       (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
+       yylvalp and yyllocp to &yylval and &yylloc.
+       (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
+       namespace. Previously, nerrs and char were missing, but lval and lloc
+       weren't necessary.
+       (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
+       yylvalp and yyllocp parameters since, if pure, these are now always
+       accessible through yystackp.  If not pure, they are still accessible
+       globally.
+       * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
+       `if (YYID (N))' to pacify lint.
+
+2005-12-21  Akim Demaille  <akim@epita.fr>
+
+       YYACCEPT, YYERROR, and YYABORT, as user actions, should not
+       destroy the RHS symbols of a rule.
+       * data/yacc.c (yylen): Initialize to 0.
+       Keep its value to the number of items to possibly shift.
+       In particular, a regular successful parse that ends on YYFINAL by
+       a (internal) YYACCEPT must not have yylen != 0.
+       (yyerrorlab, yyreturn): Pop the RHS.
+       Reorder a bit to emphasize the `shifting' bits of code.
+       (YYPOPSTACK): Now accept a number of items to pop.
+       * data/lalr1.cc: Likewise.
+       * data/glr.c: Formatting changes.
+       Use goto instead of fall through.
+       * doc/bison.texinfo (Destructor Decl): Complete.
+
+2005-12-20  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       * Makefile.am: DJGPP specific files added to EXTRA_DIST.
+       * djgpp/Makefile.maint: Fix PACKAGE variable computation.
+       * djgpp/config.bat: Replace every occurence of the file name
+       scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+       c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+       * djgpp/config.sed: Replace every occurence of the file name
+       scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+       c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+       * djgpp/djunpack.bat: DJGPP specific file.
+       * djgpp/fnchange.lst: DJGPP specific file.
+       * djgpp/README.in: Add new information about how to unpack the bison
+       source on MSDOS and other systems which have 8.3 file name restrictions
+       using djunpack.bat and fnchange.lst.
+
+2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (build_cvs_prefix): Remove; unused.
+       (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
+       when getting gnulib.
+
+2005-12-12  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+       * data/glr.c: Reorder typedef declarations for structs to match order
+       of struct declarations.
+       Rename yystack everywhere to yystackp except in yyparse where it's not
+       a pointer.
+       (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
+       consistency.
+       (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
+       (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
+       (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
+       lint.
+
+2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/sets.at (Accept): Fix typos in regular expression used to
+       sed out the final state number.
+
+       Work around portability problem on Solaris 10: flex-generated
+       files include <stdio.h> before <config.h>, which messes up
+       because the latter defines __EXTENSIONS__.  Address the problem
+       by creating two new little files that include <config.h> first,
+       then include the flex-generated files.  Rewrite everyone else
+       to include <config.h> first, as well.
+       * lib/timevar.c: Always include "config.h".
+       * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
+       scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
+       (EXTRA_bison_SOURCES): New macro.
+       * src/scan-gram-c.c, src/scan-skel-c.c: New files.
+       * src/system.h: Don't include config.h.
+       * src/LR0.c: Include <config.h> first.
+       * src/assoc.c: Likewise.
+       * src/closure.c: Likewise.
+       * src/complain.c: Likewise.
+       * src/conflicts.c: Likewise.
+       * src/derives.c: Likewise.
+       * src/files.c: Likewise.
+       * src/getargs.c: Likewise.
+       * src/gram.c: Likewise.
+       * src/lalr.c: Likewise.
+       * src/location.c: Likewise.
+       * src/main.c: Likewise.
+       * src/muscle_tab.c: Likewise.
+       * src/nullable.c: Likewise.
+       * src/output.c: Likewise.
+       * src/parse-gram.y: Likewise.
+       * src/print.c: Likewise.
+       * src/print_graph.c: Likewise.
+       * src/reader.c: Likewise.
+       * src/reduce.c: Likewise.
+       * src/relation.c: Likewise.
+       * src/state.c: Likewise.
+       * src/symlist.c: Likewise.
+       * src/symtab.c: Likewise.
+       * src/tables.c: Likewise.
+       * src/uniqstr.c: Likewise.
+       * src/vcg.c: Likewise.
+
+       * src/parse-gram.y: Fix minor problems uncovered by lint.
+       (current_lhs, current_lhs_location): Now static.
+       (current_assoc): Remove unused variable.
+
+       Cleanups so that Bison-generated parsers have less lint.
+       * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
+       Prepend /*ARGSUSED*/, for lint's sake.
+       * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
+       definition if 'lint' is defined.
+       (YYID): New macro (or function, if lint).
+       All uses of /*CONSTCOND*/0 replaced by YYID(0).
+       * data/yacc.c: Likewise.
+       * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
+       (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
+       * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
+       is C++ only.
+       * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
+       * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
+       Use YYID(0) rather than 0, for lint.
+       (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
+       (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
+
+2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/glr-regression.at
+       (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+       Close memory leak reported by twlevo.
+
+2005-12-06  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
+       all stacks.
+       (yyparse): Iterate another stack in order to call user destructors.
+       * tests/glr-regression.at (No users destructors if stack 0 deleted):
+       New test case.
+       (Duplicated user destructor for lookahead): This test now is expected
+       to succeed.
+
+2005-12-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Document the following change.
+       * data/yacc.c: Say "parser skeleton" rather than "file", since
+       it's no longer just a file.
+       * data/glr.c: Grant a special exception for C GLR parsers, that
+       reads like the already-existing exception for C LALR(1) parsers.
+       * data/glr.cc: Likewise.
+       * data/lalr1.cc: Likewise.
+       * data/location.cc: Likewise.
+       * data/yacc.c: Reword the "written by" statement to clarify that
+       it was the parser skeleton, not the entire output file.
+       * data/glr.c: Written by Paul Hilfinger.
+       * data/glr.cc: Written by Akim Demaille.
+       * data/lalr1.cc: Likewise.
+
+2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
+       Fix typos in previous change that broke 'make check'.
+       YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
+       supported in C.
+       * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
+       Don't check NUM-STDERR-LINES, since the output format is fluctuating.
+       We can revert this once things settle down.
+
+       * src/conflicts.c (conflicts_print): Don't print file name twice
+       when %expect fails because there were no conflicts.
+       * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
+       change.
+       * tests/conflicts.at (%expect not enough, %expect too much):
+       (%expect with reduce conflicts): Adjust to new behavior.
+
+2005-11-18  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
+       errors.
+       * NEWS: Document this.
+       * doc/bison.texinfo (Expect Decl): Likewise.
+
+2005-11-16  Akim Demaille  <akim@epita.fr>
+
+       Generalize the display of semantic values and locations in traces.
+       * data/glr.c (yy_reduce_print): Fix indices (again).
+       * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
+       literal integers.
+       * data/lalr1.cc (yyreduce_print): Rename as...
+       (yy_reduce_print): this.
+       Display values and locations.
+       * data/yacc.c (yy_reduce_print): Likewise.
+       (YY_REDUCE_PRINT): Adjust to pass the required arguments.
+       (yysymprint): Move higher to be visible from yy_reduce_print).
+       (yyparse): Adjust.
+       * tests/calc.at: Adjust the expected length of the traces.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
+       from 1 to N, while values and location start at 0.
+       (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yy_reduce_print): Fix the $ number.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       "Use" parse parameters.
+       * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
+       * data/glr.c, data/glr.cc: Use them.
+       * data/glr.c (YYUSE): Have a C++ definition that supports
+       non-pointer types.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yyexpandGLRStack): Declare only if defined.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.cc: New.
+       * data/m4sugar/m4sugar.m4 (m4_prepend): New.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       Let position and location be PODs.
+       * data/location.cc (position::initialize, location::initialize): New.
+       (position::position, location::location): Define only if
+       b4_location_constructors is defined.
+       * data/lalr1.cc (b4_location_constructors): Define it for backward
+       compatibility.
+       * doc/bison.texinfo (Initial Action Decl): Use initialize.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Move the body of the ctor and dtor into the
+       parser file (instead of the header).
+       Wrap the implementations in a "namespace yy".
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       Have glr.c include its header file when created.
+       * data/glr.c (b4_shared_declarations): New.
+       Output them verbatim in the parser if !%defines, otherwise
+       output then in the header file, and include it instead.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c: Comment changes.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+       When yydebug, report semantic and location values for reductions.
+       * data/glr.c (yy_reduce_print): Report the semantic values and the
+       locations.
+       (YY_REDUCE_PRINT): Adjust.
+       (yyglrReduce): Use them.
+       (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
+       * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
+       * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
+       traces.
+
+2005-11-10  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
+       (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
+       (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
+
+2005-11-09  Albert Chin-A-Young  <china@thewrittenword.com>
+
+       * m4/cxx.m4, examples/Makefile.am: Don't build
+       examples/calc++ if no C++ compiler is available.  (trivial change)
+
+2005-11-09  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-skel.l: Use a couple of asserts.
+
+2005-11-03  Akim Demaille  <akim@epita.fr>
+
+       In some (weird) cases, the final state number is incorrect.
+       Reported by Alexandre Duret-Lutz.
+       * src/LR0.c (state_list_append): Remove the computation of
+       final_state.
+       (save_reductions): Do it here.
+       (get_state): Alpha conversion.
+       (generate_states): Use a for loop.
+       * src/gram.h (item_number_is_rule_number)
+       (item_number_is_symbol_number): New.
+       * src/state.c: Use assert.
+       * src/system.h: Include assert.h.
+       * tests/sets.at (Accept): New.
+
+2005-10-30  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
+
+       * data/glr.c (yyfill): Adjust comment.
+       (yyresolveAction): Initialize default location properly
+       for empty right-hand sides.
+       (yydoAction): Ditto.
+       Add comment explaining apparently dead code.
+       * tests/glr-regression.at
+       (Incorrectly initialized location for empty right-hand side in GLR):
+       New test.
+
+2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (cleanup_gnulib): New function.  Use it to clean up
+       gnulib when interrupted.  This fixes some race conditions and
+       works around some portability problems (one noted by Paul
+       Hilfinger).
+
+2005-10-22  Akim  <akim@epita.fr>
+
+       * Makefile.cfg: Adjust to config -> build-aux.
+       Reported by twledo.
+
+2005-10-21  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
+       the %parse-params.
+       * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
+       * data/yacc.c (b4_Pure_if): Rename as...
+       (b4_yacc_pure_if): this.
+       (YY_SYMBOL_PRINT, yyparse): Adjust.
+       * doc/bison.texinfo: Formatting changes.
+
+2005-10-21  Akim Demaille  <akim@epita.fr>
+
+       Finish the transition config -> build-aux.
+       * configure.ac, Makefile.am: Use build-aux.
+       * config/prev-version, config/announce-gen, config/Makefile.am:
+       Move to...
+       * build-aux/prev-version, build-aux/announce-gen,
+       * build-aux/Makefile.am: here.
+
+2005-10-14  Akim Demaille  <akim@epita.fr>
+
+       * examples/calc++/test: Use set -x only when VERBOSE.
+
+2005-10-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
+       * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
+
+2005-10-13  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-skel.l: Output the base name parts of the parser and
+       header file names.
+       * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
+       additional checks.
+       Use this to exercise C++ outputs in subdirs.
+       Reported by Oleg Smolsky.
+
+2005-10-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
+       __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
+       Problem reported by John P. Hartmann.
+       * data/yacc.c (YYMODERN_C): Likewise.  Don't define if the user has
+       already defined it.
+
+2005-10-12  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (version_check): Exit 63 to please missing
+       (stands for "version mismatch).
+       * tests/input.at, doc/bison.texinfo: Adjust.
+
+2005-10-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Work around portability problems with Visual Age C compiler
+       (xlc and xlC_r) reported by John P. Hartmann.
+       * data/location.cc (initial_column, initial_line): Remove.
+       All uses replaced by 0 and 1.
+       * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
+       that xlc complains about.
+       * src/scan-skel.l (skel_wrap): Likewise.
+       * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
+       as __STDC__.
+       * data/yacc.c (YYMODERN_C): New macro, which also looks at
+       __STDC_VERSION__.  Use it everywhere instead of looking at
+       __STDC__ and __cplusplus.
+
+2005-10-10  Akim Demaille  <akim@epita.fr>
+
+       * examples/calc++/test: Be quiet unless VERBOSE.
+
+2005-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/c.m4 (yydestruct, yysymprint):
+       Use YYUSE instead of casting to void.
+       * data/glr.c (YYUSE): New macro.
+       (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+       Use it instead of rolling our own.
+       (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+       (YYCHK1):
+       Use /*CONSTCOND*/ to suppress lint warnings.
+       * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+       (YY_STACK_PRINT): Use 'false' not '0'.
+       (YYUSE): New macro.
+       (yysymprint_, yydestruct_): Use it instead of rolling our own.
+       * data/yacc.c (YYUSE): New macro.
+       (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
+       (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
+       (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
+
+
+       * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
+       (m4_map, m4_map_sep): Use it.  Handle the empty list correctly.
+
+2005-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Undo the parts of the unlocked-I/O change that substituted
+       putc or puts for printf.  This might hurt performance a bit,
+       but some people prefer the printf style.
+       * data/c.m4 (yysymprint): Prefer printf to puts and putc.
+       * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
+       All uses replaced by YYFPRINTF and YYDPRINTF.
+       * data/yacc.c: Likewise.
+       * lib/bitset.c (bitset_print): Likewise.
+       * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
+       putc and puts.
+       * lib/lbitset.c (debug_lbitset): Likewise.
+       * src/closure.c (print_firsts, print_fderives): Likewise.
+       * src/gram.c (grammar_dump): Likewise.
+       * src/lalr.c (look_ahead_tokens_print): Likewise.
+       * src/output.c (escaped_output): Likewise.
+       (user_actions_output): Break apart two printfs.
+       * src/parse-gram.y (%printer): Prefer printf to putc and puts.
+       * src/reduce.c (reduce_print): Likewise.
+       * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+       * src/system.h: Include unlocked-io.h rathe than stdio.h.
+
+       * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+       Use assignments rather than casts-to-void to suppress
+       unused-variable warnings.  This pacifies 'lint'.
+       * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
+       unused-variable warnings.
+
+2005-10-03  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       * Makefile.am: DJGPP specific files added to EXTRA_DIST.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use unlocked I/O for a minor performance improvement on hosts like
+       GNU/Linux and Solaris that support unlocked I/O.  The basic idea
+       is to use the gnlib unlocked-io module, and to prefer putc and
+       puts to printf when either will work (since the latter doesn't
+       come in an unlocked flavor).
+       * bootstrap (gnulib_modules): Add unlocked-io.
+       * data/c.m4 (yysymprint): Prefer puts and putc to printf.
+       * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
+       Prefer them to YYFPRINTF and YYDPRINTF if either will do,
+       and similarly for puts and putc and printf.
+       * data/yacc.c: Likewise.
+       * lib/bitset.c (bitset_print): Likewise.
+       * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
+       * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
+       to printf.
+       * lib/lbitset.c (debug_lbitset): Likewise.
+       * src/closure.c (print_firsts, print_fderives): Likewise.
+       * src/gram.c (grammar_dump): Likewise.
+       * src/lalr.c (look_ahead_tokens_print): Likewise.
+       * src/output.c (escaped_output): Likewise.
+       (user_actions_output): Coalesce two printfs.
+       * src/parse-gram.y (%printer): Prefer putc and puts to printf.
+       * src/reduce.c (reduce_print): Likewise.
+       * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+       * src/system.h: Include unlocked-io.h rather than stdio.h.
+
+       * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
+       this confuses xgettext.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * bootstrap (gnulib_modules): Add strverscmp.
+       * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
+       * m4/.cvsignore: Add strverscmp.m4.
+       * src/parse-gram.y (%require): New token, new rule.
+       (version_check): New.
+       * src/scan-gram.l (%require): Adjust.
+       * tests/input.at (AT_REQUIRE): New.
+       Use it.
+       * doc/bison.texinfo (Require Decl): New.
+       (Calc++ Parser): Use %require.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * data/location.cc: New.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>,
+           Akim Demaille  <akim@epita.fr>
+
+       Make sure -odir/foo.cc creates dir/location.hh etc.
+       * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
+       (spec_file_prefix, spec_verbose_file, spec_graph_file)
+       (spec_defines_file): Now const.
+       (dir_prefix): New.
+       (short_base_name): Remove.
+       * src/files.c: Adjust.
+       (dirname.h): Include.
+       (base_name): Don't prototype it.
+       (finput): Remove, duplicates gram_in.
+       (full_base_name, short_base_name): Replace by...
+       (all_but_ext, all_but_tab_ext): these.
+       (compute_base_names): Rename as...
+       (compute_file_name_parts): this.
+       Update to compute the new variables, including dir_prefix.
+       Adjust dependencies.
+       * src/output.c (prepare): Output them.
+       * src/reader.c: Adjust to use gram_in, not finput.
+       * src/scan-skel.l (@dir_prefix@): New.
+
+2005-10-02  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       * lib/subpipe.c: New function end_of_output_subpipe() added
+       to allow support for non-posix systems. This is a no-op function
+       for posix systems.
+
+       * lib/subpipe.h: New function end_of_output_subpipe() added
+       to allow support for non-posix systems. This is a no-op function
+       for posix systems.
+
+       * src/output.c (output_skeleton): Use end_of_output_subpipe() to
+       handle the lack of pipe/fork functionality on non-posix systems.
+
+       * djgpp/Makefile.maint: DJGPP specific file.
+
+       * djgpp/README.in: DJGPP specific file.
+
+       * djgpp/config.bat: DJGPP specific configuration file.
+
+       * djgpp/config.sed: DJGPP specific configuration file.
+
+       * djgpp/config.site: DJGPP specific configuration file.
+
+       * djgpp/config_h.sed: DJGPP specific configuration file.
+
+       * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
+
+       * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * data/location.cc: New, extract from...
+       * data/lalr1.cc: here.
+       (location.hh): Include it after the user prologue, in case the
+       filename type is defined by the user.
+       Forward declation location and position before the pre-prologue.
+       (yyresult_): Rename as...
+       (yyresult): this, it's a local variable, not an attribute.
+       * data/Makefile.am (dist_pkgdata_DATA): Adjust.
+
+2005-10-01  Akim Demaille  <akim@epita.fr>
+
+       * examples/extexi: Restore the #line generation.
+
+2005-09-30  Akim Demaille  <akim@epita.fr>,
+           Alexandre Duret-Lutz <adl@gnu.org>
+
+       Move the token type and YYSTYPE in the parser class.
+       * data/lalr1.cc (stack.hh, location.hh): Include earlier.
+       (parser::token): New, from the moved free definition of tokens.
+       (parser::semantic_value): Now a full definition instead of an
+       indirection to YYSTYPE.
+       (b4_post_prologue): No longer included in the header file, but
+       in the implementation file.
+       * doc/bison.texi (C+ Language Interface): Update.
+       * src/parse-gram.y: Support unary %define.
+       * tests/actions.at: Define global_tokens_and_yystype for backward
+       compatibility until we update the tests.
+       * tests/calc.at: Idem.
+       (first_line, first_column, last_line, last_column): Define for lalr1.cc
+       to simplify the code.
+
+2005-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to SunOS 4.1.4, which lacks strtoul and strerror.
+       Ah, the good old days!  Problem reported by Peter Klein.
+       * bootstrap (gnulib_modules): Add strerror, strtoul.
+       * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
+       * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
+
+2005-09-29  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_error_verbose_if): New.
+       * data/lalr1.cc: Use it.
+       (YYERROR_VERBOSE_IF): Remove.
+       (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
+       parser members, replaced by...
+       (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
+       local variables.
+       (yysyntax_error_): Takes the state number as argument.
+       (yyreduce_print_): Use the argument yyrule, not the former
+       attribute yyn_.
+
+2005-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (gnulib_modules): Add verify.
+       * lib/.cvsignore: Add verify.h.
+       * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
+       * src/system.h (verify): Remove.
+       Include verify.h instead.
+       * src/tables.c (tables_generate): Use new API for 'verify'.
+
+2005-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
+       local variables whose names begin with 'yy'.
+       * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
+       Trivial changes from Joel E. Denny.
+
+       * bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
+       it itself.
+       * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
+       don't use alloca any more.
+
+       * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
+       __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
+       defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
+       * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
+       to match yacc.c, to test more hosts.
+
+2005-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (YYSIZE_T): Reindent to make it clearer.  This
+       doesn't affect behavior.
+       (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
+       Solaris, AIX, MSC.
+       (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H.  All uses changed.
+       This works a bit better with glibc, if user code has already included
+       stdlib.h.
+       * doc/bison.texinfo (Bison Parser): Document that users can't
+       arbitrarily use malloc and free for other purposes.  Document
+       that <alloca.h> and <malloc.h> might be included.
+       (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
+       user must declare alloca.
+
+       * HACKING (release): Forwarn the Translation Project about
+       stable releses.
+
+2005-09-20  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
+
 2005-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * data/yacc.c (YYSIZE_MAXIMUM): New macro.
+       (YYSTACK_ALLOC_MAXIMUM): Use it.
+       (yysyntax_error): New function.
+       (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
+       multiple syntax errors are reported, and alloca is being used.
+       Instead, reallocate buffers twice as big each time, so that
+       we waste at most half the allocated memory.  Start with a small
+       (128-byte) buffer that will suffice in most cases anyway.
+       Use yysyntax_error to do most of the work.
+
+       * doc/bison.texinfo (Error Reporting, Table of Symbols):
+       yynerrs is the number of errors reported, not the number of
+       errors encountered.
+
        * tests/glr-regression.at (Duplicated user destructor for lookahead):
        Mark it as expected to fail.
        Cast result of malloc; problem reported by twlevo@xs4all.nl.
 
 2005-09-19  Akim Demaille  <akim@epita.fr>
 
-       * NEWS, configure.ac: Bump to 2.1a.
+       * NEWS, configure.ac: update version number to 2.1a.
 
 2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 
 
        * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
 
-2004-10-28  Akim Demaille  <akim@epita.fr>,
+2004-11-17  Akim Demaille  <akim@epita.fr>,
            Alexandre Duret-Lutz <adl@gnu.org>
 
        * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
        Reported by Charles-Henry de Boysson.
 
        * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
-       check the length of the traces when %glr.
+       check the length of the traces when %glr.
        (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
        GLR's traces.
        (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
        struct lbitset_struct, struct bitset_stats_struct): New types.
        All uses of struct bitset_struct changed to union bitset_union,
        etc.
-       * lib/abitset.c (struct abitset_struct, abitset,
+       * lib/abitset.c (struct abitset_struct, abitset,
        struct bitset_struct): Remove.
        * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
        struct bitset_struct): Remove.
 
 2002-06-28  Akim Demaille  <akim@epita.fr>
 
-       * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
+       * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
        * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
        pacify GCC.
        * src/output.c (save_row): Initialize all the variables to pacify GCC.
        * src/getargs.c:
 
        * src/symlist.h:  Add dprec and merger fields to symbol_list_s.
-       * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
+       * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
 
        Originally 2002-06-16  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
 
 
 2002-01-20  Marc Autret  <marc@gnu.org>
 
-       * src/system.h: Need to define __attribute__ away for non-GCC
-       compilers as well (i.e. the vendor C compiler).
+       * src/system.h: Need to define __attribute__ away for non-GCC
+       compilers as well (i.e., the vendor C compiler).
        Suggested by Albert Chin-A-Young.
 
 2002-01-11  Tim Van Holder  <tim.van.holder@pandora.be>
 
        * src/warshall.c (bitmatrix_print): New.
        (TC): Use it.
-       When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
+       When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
        j must be the outer loop.
        * tests/regression.at (Broken Closure): New.
 
 
        * src/output.c (output): Delete call to reader_output_yylsp.
        * src/reader.c (reader): Likewise.
-       * src/reader.h: Delete declaration of reader_output_yylsp.
+       * src/reader.h: Delete declaration of reader_output_yylsp.
 
 2001-09-02  Marc Autret  <autret_m@epita.fr>
 
        -----
 
        Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
-       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-       Foundation, Inc.
+       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
+       Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this
        notice are preserved.
+
+$Id$