]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
gnulib: improve prefixing.
[bison.git] / ChangeLog
index 141039d8d61c37eea68f0ee83b24c494c2746e28..5668c7217ac8e3d9ff1d2662f9a29e38a6a4788e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,906 @@
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: improve prefixing.
+       * configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+       change the value of...
+       (gl_LIBOBJS): this.
+       Adjust more variables.
+       * etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+       gl_LIBOBJS.
+       (prefix): Also transform rules whose targets have slashes.
+       Use $prefix liberally.
+       Map @MKDIR_P@ to $(MKDIR_P).
+       Prefix directories that are mkdir'd.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       build: fix paths.
+       When using $(top_builddir) inconsistently, Make (including GNU
+       Make) is sometimes confused.  As a result it may want to build
+       lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
+       file, different names) concurrently, which, amusingly enough,
+       might end with:
+
+         ranlib lib/libbison.a
+         ranlib lib/libbison.a
+         make[2]: *** [lib/libbison.a] Segmentation fault
+
+       on OS X.
+
+       * doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
+       needed.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       distcheck: fix.
+
+        * examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       * tests/local.mk (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+       Miscellaneous code readability improvements.
+
+       * src/reader.c (reader): Move %define front-end variable
+       defaults and checking into...
+       (prepare_percent_define_front_end_variables): ... this new
+       function.
+
+       * src/scan-gram.l (INITIAL): For consistency with string
+       literals, don't store open quote on character literal.  It's
+       discarded before returning anyway.
+       (SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
+       Make length test more readable, and make the character stored
+       for an empty literal more obvious while consistent with the
+       previous behavior.
+
+       * src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
+       USER_NUMBER_HAS_STRING_ALIAS throughout.
+       * src/symtab.c (symbol_make_alias): Remove comment from symtab.c
+       that is repeated in symtab.h.  Improve argument names to make it
+       clear which side of the symbol-string alias pair is which.
+       (symbol_check_alias_consistency): Improve local variable names
+       for the same purpose.
+       * src/symtab.h (struct symbol): Make comments about aliases
+       clearer.
+       (symbol_make_alias): Improve comments and argument name.
+       * src/output.c (token_definitions_output): Update for rename to
+       USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
+
+2009-08-08  Alex Rozenman  <rozenman@gmail.com>
+
+       Convert "misleading reference" messages to warnings.
+       * src/scan-code.l: New function 'show_sub_messages', more
+       factoring.
+       * tests/named-ref.at: Adjust tests.
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: run "make update-copyright"
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: make update-b4-copyright easier to use
+       * build-aux/update-b4-copyright: In warnings, report line
+       numbers rather than character positions.
+       * cfg.mk (update-copyright-local): Set to update-b4-copyright so
+       that update-copyright runs it.
+       * gnulib: Update.
+
+2009-08-05  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: clean up update-b4-copyright code
+       * build-aux/update-b4-copyright: Do not accept 2-digit
+       UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
+       Don't accept a `[' in a b4_copyright argument.
+       Format code more consistently.
+       Don't assume b4*copyright never occurs.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: automate b4_copyright updates.
+       * Makefile.am (update-b4-copyright): New target rule.
+       * build-aux/local.mk (EXTRA_DIST): Add update-b4-copyright.
+       * build-aux/update-b4-copyright: New.
+       * data/yacc.c: Remove stray characters around b4_copyright
+       invocations.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       maint: automate annual package-wide copyright-year update.
+       * .x-update-copyright: New.
+       * Makefile.am (EXTRA_DIST): Remove maint.mk.
+       * bootstrap.conf (gnulib_modules): Add maintainer-makefile and
+       update-copyright.  Remove gnumakefile, which is implied by
+       maintainer-makefile.
+       * cfg.mk (bootstrap-tools): Copy from old maint.mk.
+       * gnulib: Update.
+       * maint.mk: Remove, now copied from gnulib.
+       * examples/extexi: Add missing "(C)" in copyright statement so
+       update-copyright can recognize it.
+       * src/LR0.h: Likewise.
+       * src/print.h: Likewise.
+       * src/print_graph.h: Likewise.
+       * src/gram.c: Add missing comma in copyright statement.
+       * src/gram.h: Likewise.
+
+2009-08-04  Joel E. Denny  <jdenny@clemson.edu>
+
+       Fix "make distcheck".
+       * examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
+       of just calc.stamp.
+
+2009-08-01  Joel E. Denny  <jdenny@clemson.edu>
+
+       Pacify "gcc -Wunused" for the input function from Flex.
+       Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
+       and later.
+       * src/scan-code.l: Add "%option noinput", which I cannot find in
+       the Flex manual, but which Flex has supported since at least as
+       far back as 2.5.4.  However, if any of our developers still use
+       Flex 2.5.4, they'll need to stop configuring with
+       --enable-gcc-warnings because "%option noinput" didn't work
+       correctly until Flex 2.5.6.
+       * src/scan-gram.l: Likewise.
+       * src/scan-skel.l: Likewise.
+
+2009-07-31  Alex Rozenman  <rozenman@gmail.com>
+
+       Fix --enable-gcc-warnings problems.
+       * src/reader.c: Adjust variable names.
+       * src/scan-code.l: Fix prototypes and adjust names.
+       * src/named-ref.c: Remove redundant "if".
+
+2009-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix a --enable-gcc-warnings problem.
+       * src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
+       variable.
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Warn about character literals not of length one.
+       * NEWS (2.5): Document.
+       * src/scan-gram.l (INITIAL): Remove comment that we don't check
+       the length.
+       (SC_ESCAPED_CHARACTER): Warn if length is wrong.
+       * tests/input.at (Bad character literals): New test group.
+
+2009-07-24  Alex Rozenman  <rozenman@gmail.com>
+
+       Fix some memory leaks.
+       * src/named-ref.c: Add a pointer check (named_ref_free).
+       * src/scan-code.l: New function (variant_table_free). Called in
+       code_scanner_free.
+       * src/symlist.c: Call to named_ref_free (symbol_list_free).
+
+2009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/lalr.c (state_lookahead_tokens_count): Correct comment.
+
+2009-07-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Some M4 cleanup in the testsuite.
+       Suggested by Eric Blake at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
+       * tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
+       complicate the code by distinguishing between a missing value
+       and an empty string value for an optional argument.  This fix is
+       allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
+       * tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
+       (AT_TEST_TABLES_AND_PARSE): ... this now that the special
+       arguments are not needed because of the following changes.
+       Fix stale comments.
+       Bison developers should use GNU M4 and should not use
+       POSIXLY_CORRECT when building the test suite, so do not
+       complicate the code by avoiding $10 and above.
+       Do not quote an empty string value for an optional argument, and
+       do not distinguish between a missing value and an empty string
+       value.
+
+2009-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Revert unnecessary column realignment in --help output.
+       Reported by Akim Demaille at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
+       * src/getargs.c (usage): Here.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+       Alphabetical order in src/local.mk.
+       * src/local.mk: Adjust.
+
+2009-07-04  Alex Rozenman  <rozenman@gmail.com>
+
+       Style changes and factoring.
+       * src/named-ref.h: Add comments.
+       * src/parse-gram.y: Readability and style changes.
+       * src/reader.c: Factoring: assign_named_ref function.
+       * src/scan-code.l: Factoring and style changes. Rename
+       parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
+       Use "unsigned" type for variant index. Improve readablity.
+       * src/scan-gram.l: Change error messages and add comments.
+       * src/symlist.h: symbol_list_null: New function decl.
+       * src/symlist.c: symbol_list_null: Implement here.
+       * tests/named-refs.at: Adjust for new error messages.
+
+2009-06-29  Eric Blake  <ebb9@byu.net>
+
+       scan-code: avoid compiler warnings
+       * src/scan-code.l (parse_named_ref): Use correct specifiers.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       build: avoid concurrent extraction of calc++.
+       * examples/calc++/Makefile.am (calc.stamp): New.
+       Depend on it to create the sources of calc++ so that concurrent
+       builds don't launch several "extexi" in parallel.
+       Not only this is inefficient, this also builds incorrect sources
+       with several extractions mixed together.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       parse.error: fix.
+       * data/bison.m4: Move code related to specific variables after the
+       definition of the variable-maintaining macros so that we don't
+       "invoke" b4_percent_define_check_values before it is defined.
+
+2009-06-29  Akim Demaille  <demaille@gostai.com>
+
+       variables: parse.error
+
+       Implement, document, and test the replacement of %error-verbose
+       by %define parse.error "verbose".
+       * data/bison.m4 (b4_error_verbose_if): Reimplement to track the
+       values of the parse.error variable.
+       Make "simple" its default value.
+       Check the valid values.
+       * src/parse-gram.y: Use %define parse.error.
+       (PERCENT_ERROR_VERBOSE): New token.
+       Support it.
+       * src/scan-gram.l: Support %error-verbose.
+
+       * doc/bison.texinfo (Decl Summary): Replace the documentation of
+       %define error-verbose by that of %define parse.error.
+       * NEWS: Document it.
+
+       * tests/actions.at, tests/calc.at: Use parse.error instead of
+       %error-verbose.
+
+2009-06-27  Alex Rozenman  <rozenman@gmail.com>
+
+       Implement support for named symbol references.
+       * src/parse-gram.y: Add new syntax (named_ref.opt).
+       * src/reader.c: Store named refs in symbol lists.
+       * src/reader.h: New argument for symbol_append and
+       action_append functions.
+       * src/scan-code.h: Add new field (named_ref) into
+       code_props data structure. Keeps named ref of midrule
+       actions.
+       * src/scan-code.l: Support for named refs in semantic
+       action code. New function 'parse_named_ref'.
+       * src/scan-gram.l: Support bracketed id.
+       * src/symlist.c: Store named refs in symbol lists.
+       * src/symlist.h: New field in symbol list: named_ref.
+       * src/named-ref.h: New file, a struct for named_ref.
+       * src/named-ref.cp: New file, named_ref_new function.
+       * src/local.mk: Add two new files.
+       * tests/testsuite.at: Include new test group:
+       * tests/named-refs.at: this new file.
+
+2009-06-25  Akim Demaille  <demaille@gostai.com>
+
+       hash: check insertion for memory exhaustion.
+       * src/uniqstr.c (uniqstr_new): New.
+
+2009-06-24  Akim Demaille  <demaille@gostai.com>
+
+       variables: rename namespace as api.namespace.
+       Discussed in
+       http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00033.html
+
+       * data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+       New.
+       (b4_percent_define_use): New.
+       Use it where applicable.
+       * data/c++.m4: Replace uses of the variable "namespace" by
+       "api.namespace".
+       Default the latter to the former.
+       * doc/bison.texinfo (Decl Summary): Document "namespace" as
+       obsolete.
+       Document api.namespace.
+       Use @samp to document %define uses, keep @code for identifiers.
+       * NEWS: Likewise.
+       * tests/c++.at, tests/input.at: Test api.namespace instead of
+       namespace. (The tests passed with namespace.)
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       style changes.
+       * data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
+       * src/print-xml.c: Style changes.
+       * tests/conflicts.at: Comment changes.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       xml: beware of user strings used to give a %prec to rules.
+       * tests/conflicts.at (%prec with user strings): New.
+       * src/gram.c (grammar_rules_print_xml): Escape the precedence for
+       XML output.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       hash: check insertion for memory exhaustion.
+       * src/muscle-tab.c (muscle_insert, muscle_grow)
+       * src/state.c (state_hash_insert): Check the return value of
+       hash_insert.
+
+2009-06-11  Akim Demaille  <demaille@gostai.com>
+
+       tests: honor TESTSUITEFLAGS in every check target.
+       * tests/local.mk (RUN_TESTSUITE): New.
+       (check-local, installcheck-local, maintainer-check-g++)
+       (maintainer-check-posix, maintainer-check-valgrind): Use it.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       deterministic test suite.
+       Some consistency checks on symbols are performed after all the
+       symbols were read, by an iteration over the symbol table.  This
+       traversal is nondeterministic, which can be a problem for test
+       cases.
+       Avoid this.
+       Addresses another form of nondeterminism reported by Joel E. Denny.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+       * tests/input.at (Numbered tokens): Split the hexadecimal/decimal
+       test in two.
+       Use different file names for the three tests to make the
+       maintenance easier.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: update.
+        * gnulib: Update to latest.
+        * lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
+        * m4/.gitignore: Regen.
+        * src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
+        Call xalloc_die on hash_insert failures.
+        Requested by the new __warn_unused_result__ attribute of
+        hash_insert.
+
+2009-06-10  Akim Demaille  <demaille@gostai.com>
+
+       deterministic user-token-number redeclaration errors.
+       Address nondeterminism reported by Joel E. Denny.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
+
+       * src/uniqstr.h: Comment changes.
+       * src/location.h (boundary_cmp, location_cmp): New.
+       * src/symtab.c (user_token_number_redeclaration): New.
+       (symbol_translation): Use it.
+       * tests/input.at (Numbered tokens): Adjust the expected output.
+
+2009-05-25  Akim Demaille  <demaille@gostai.com>
+
+       build: avoid ignored errors.
+       * doc/local.mk ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
+       errors, they pollute the output.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Convert multiple variable definition warnings to complaints.
+       * NEWS (2.5): Add a new entry for that change.
+       * doc/bison.texinfo (Decl Summary): Update %define entry.
+       (Bison Options): Update -D/--define/-F/--force-define entry.
+       * src/muscle-tab.c (muscle_percent_define_insert): Implement.
+       * src/muscle-tab.h (muscle_percent_define_insert): Update
+       comments.
+       * tests/input.at (`%define errors'): Update.
+       (`%define, --define, --force-define'): Update.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       -F/--force-define and relative %define/-D/--define priorities.
+       * NEWS (2.5): Add documentation to -D/--define entry.
+       * build-aux/cross-options.pl: Hard-code association of
+       --force-define with %define.
+       * doc/bison.texinfo (Decl Summary): In %define entry,
+       cross-reference command-line options.
+       (Bison Options): Add documentation to -D/--define entry.
+       (Option Cross Key): Widen column for --force-define row.
+       * src/getargs.c (usage): Document -F/--force-define.  Realign
+       options in output.
+       (short_options, long_options, getargs): Parse -F/--force-define,
+       and update muscle_percent_define_insert invocations.
+       * src/muscle-tab.h (muscle_percent_define_how): New enum type.
+       (muscle_percent_define_insert): Add argument with that type.
+       * src/muscle-tab.c (muscle_percent_define_insert): Implement
+       -F/--force-define behavior and priorities.
+       (muscle_percent_define_ensure): Update
+       muscle_percent_define_insert invocation.
+       * src/parse-gram.y (prologue_declaration): Update
+       muscle_percent_define_insert invocations.
+       * tests/input.at (`%define, --define'): Rename to...
+       (`%define, --define, --force-define'): ... this and extend.
+
+2009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Update some comments to make sense for -D.
+       * data/bison.m4 (b4_check_user_names): In header comments, say
+       "user occurrence" instead of "grammar occurrence".
+       * src/muscle-tab.h (muscle_percent_define_insert): Likewise.
+       (muscle_percent_code_grow): Likewise just for consistency.
+
+2009-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/c++.m4 (b4_namespace_close): Simplify slightly.
+
+2009-05-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Handle a trailing `:' in a user-supplied C++ namespace better.
+       * data/c++.m4 (b4_namespace_close): Don't let it be printed
+       among the closing braces here.  This fix might make the
+       generated code easier to debug, but otherwise it should be
+       insignificant because a trailing `:' is a C++ error already.
+
+2009-05-19  Akim Demaille  <demaille@gostai.com>
+
+       remove useless variable.
+       * src/getargs.c (skeleton_arg): Remove now useless variable.
+       Should help the compiler see that this printf-like call is sane.
+
+2009-05-15  Akim Demaille  <demaille@gostai.com>
+
+       Rename token.prefix as api.tokens.prefix.
+       Discussed here.
+       http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00024.html.
+
+       * NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
+       * tests/c++.at, tests/calc.at, tests/java.at, tests/local.at
+       (token.prefix): Rename as...
+       (api.tokens.prefix): this.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: use C++ headers.
+       * doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+       headers.
+
+2009-05-11  Akim Demaille  <demaille@gostai.com>
+
+       doc: token.prefix
+       * doc/bison.simple (Decl Summary): Document token.prefix.
+       (Calc++ Parser): Various fixes.
+       Formatting changes.
+       Use token.prefix.
+       Introduce a macro TOKEN to shorten the code and make it more
+       readable.
+       (Calc++ Scanner): Adjust.
+       * NEWS (Variable token.prefix): New.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+       bison: catch bad symbol names.
+       * src/scan-gram.l({int}{id}): Report as an invalid identifier.
+       * tests/input.at: Adjust.
+
+2009-05-04  Akim Demaille  <demaille@gostai.com>
+
+       identifiers: dashes are letters.
+       Dashes can now start identifiers (symbols and directives).
+
+       * src/scan-gram.l ({letter}): Add dash.
+       ({id}): Remove it.
+       * tests/input.at (Symbols): Adjust.
+       Remove stray comment.
+       * tests/regression.at (Invalid inputs): Adjust error message.
+       * doc/bison.texinfo (Symbols): Update.
+
+2009-05-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Declare %code to be a permanent feature.
+       * NEWS (2.4.2): Here.
+       * doc/bison.texinfo (Prologue Alternatives): Don't say it's
+       experimental.
+       (Decl Summary): Likewise.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Convert underscores to dashes in some %define variable names.
+       For now, just api.push-pull and lr.keep-unreachable-states.
+       Maintain old names for backward compatibility.
+       * NEWS (2.5): Document.
+       * data/c.m4 (b4_identification): Update comment.
+       * data/yacc.c: Update access.
+       * doc/bison.texinfo: Update.
+       * etc/bench.pl.in (bench_push_parser): Update use.
+       * src/files.c (tr): Move to...
+       * src/getargs.c, src/getargs.h (tr): ... here because I can't
+       think of a better place to expose it.  My logic is that, for all
+       uses of tr so far, command-line arguments can be involved, and
+       getargs.h is already included.
+       * src/main.c (main): Update access.
+       * src/muscle_tab.c (muscle_percent_define_insert): Convert old
+       variable names to new variable names before assigning value.
+       * src/reader.c (reader): Update setting default.
+       * tests/calc.at: Update uses.
+       * tests/conflicts.at (Unreachable States After Conflict
+       Resolution): Update use.
+       * tests/input.at (%define enum variables): Update use.
+       (%define backward compatibility): New test group.
+       * tests/push.at: Update uses.
+       * tests/reduce.at: Update uses.
+       * tests/torture.at: Update uses.
+
+2009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Set all front-end %define defaults in one place.
+       * src/main.c (main): Move lr.keep_unreachable_states default...
+       * src/reader.c (reader): ... to here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Rename lr.default_reductions to lr.default-reductions.
+       * NEWS (2.5): Here.
+       * doc/bison.texinfo: Here.
+       * src/lalr.c (initialize_LA): Here.
+       * src/print.c (print_reductions): Here.
+       * src/reader.c (reader): Here.
+       * src/tables.c (action_row): Here.
+       * tests/input.at (%define enum variables): Here.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Pacify ./configure --enable-gcc-warnings.
+       * tests/input.at (Symbols): Prototype yyerror and yylex.
+
+2009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document how `%define "var" "value"' is not M4-friendly.
+       * src/parse-gram.y (variable): In comments here.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up recent patches a little.
+       Reported by Akim Demaille.
+       * doc/bison.texinfo (Understanding): Fix typos.
+       * src/print.c (print_reductions): Don't use negated variable.
+
+2009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       List accepted values for a %define enum variable with an invalid value.
+       Suggested by Akim Demaille at
+       <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
+       * data/bison.m4 (_b4_percent_define_check_values): Implement.
+       * src/muscle-tab.c (muscle_percent_define_check_values): Implement.
+       * tests/input.at (%define lr.default_reductions invalid values): Merge
+       into...
+       (%define enum variables): ... here, and update output.
+
+2009-04-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Rename "default rule" to "default reduction".
+       This includes changing variable names in code, changing
+       comments, and renaming %define lr.default_rules to %define
+       lr.default_reductions.
+       * NEWS (2.5): Update IELR documentation.
+       * data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
+       documentation.
+       * data/glr.c, data/lalr1.java: Sync copyright dates.
+       * doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
+       and lr.type documentation.  Make some other wording
+       improvements.
+       (Glossary): Adjust cross-references and Default Reduction
+       definition.
+       * src/lalr.c (state_lookahead_tokens_count): Adjust code.
+       Remove a confusing comment pointed out by Akim Demaille.
+       (initialize_LA): Adjust code.
+       * src/print-xml.c (print_reductions): Adjust code.
+       * src/print.c (print_reductions): Adjust code.
+       * src/reader.c (reader): Adjust code.
+       * src/tables.c (action_row): Adjust code.
+       (token_actions): Adjust code.
+       * src/tables.h: Adjust YYDEFACT documentation.
+       * tests/input.at (%define lr.default_rules invalid values):
+       Rename test group to...
+       (%define lr.default_reductions invalid values): ... this, and
+       update grammar file and expected output.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
+       (AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
+
+2009-04-21  Akim Demaille  <demaille@gostai.com>
+
+       tests: check the use of dashes and periods in symbols.
+       * tests/input.at (Symbol): New test group.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document %define lr.type and lr.default_rules.
+       * NEWS (2.5): Add an entry.
+       * src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
+       besides just LALR(1) and GLR(1).
+       * doc/bison.texinfo (Introduction): Likewise.
+       (Language and Grammar): Bison is no longer limited to LALR(1)
+       restrictions.
+       (GLR parsing): Say deterministic or LR(1) rather than LALR(1)
+       when trying to distinguish from GLR.  Talk about LR(1) grammars
+       rather than LALR(1) grammars.
+       (Decl Summary): In %define api.push_pull entry, say it applies
+       to deterministic parsers in C rather than LALR(1) parsers in C.
+       Add lr.default_rules entry.
+       Add lr.type entry.
+       (Mystery Conflicts): Bison is no longer limited to LALR(1)
+       restrictions.
+       (Generalized LR Parsing): Same changes as for the previous GLR
+       section.
+       (Memory Management): Say deterministic rather than LALR(1).
+       (Understanding): Correct some bison output.
+       Index discussion of "accepting state".
+       Say deterministic rather than LALR(1).
+       (Bison Options): In --yacc entry, say deterministic rather than
+       LALR(1).
+       In --report, --graph, and --xml entries, just don't mention
+       LALR(1).
+       (C++ Parsers): Say deterministic rather than LALR(1).
+       (Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
+       (Glossary): Add Accepting State, Consistent State, Default Rule,
+       and IELR(1) definitions.
+       In Generalized LR (GLR) definition, make same changes as in
+       previous GLR sections.
+       In LALR(1) definition, say Bison uses LALR(1) by default rather
+       than implying Bison is limited to LALR(1).
+       (LocalWords): Add IELR.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Finish implementing %define lr.type.
+       Its value can be "LALR", "IELR", or "canonical LR".
+       * lib/timevar.def (TV_IELR_PHASE1): New var.
+       (TV_IELR_PHASE2): New var.
+       (TV_IELR_PHASE3): New var.
+       (TV_IELR_PHASE4): New var.
+       * src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
+       AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
+       Sbitset.h, ielr.h, and ielr.c.
+       * src/getargs.h, src/getargs.c (enum trace, trace_args,
+       trace_types): Add trace_ielr.
+       * src/lalr.h, src/lalr.c (ngotos): Export it.
+       (F): Rename to...
+       (goto_follows): ... this, update all uses, and export it.
+       (set_goto_map): Export it.
+       (map_goto): Export it.
+       (compute_lookahead_tokens): Don't free goto_follows yet.  Now
+       handled in ielr.
+       (initialize_LA): Export it.  Move lookback allocation to...
+       (lalr): ... here because, for canonical LR, initialize_LA must
+       be invoked but lookback and much of the rest of LALR isn't
+       needed.
+       * main.c (main): Instead of lalr, invoke ielr, which invokes
+       lalr.
+       * src/reader.c (reader): Default lr.type to "LALR".
+       Default lr.default_rules to "accepting" if lr.type is "canonical
+       LR".  Leave the default as "all" otherwise.
+       Check for a valid lr.type value.
+       * src/state.h, src/state.c (struct state_list): Add state_list
+       member.
+       (state_new): Initialize state_list member to NULL.
+       (state_new_isocore): New function, exported.
+       * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
+       exercises all values of lr.type.
+       (GNU AWK Grammar): Rename test group to...
+       (GNU AWK 3.1.0 Grammar): ... this, and extend to use
+       AT_TEST_EXISTING_GRAMMAR.
+       (GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
+       (GNU pic Grammar): Rename test group to...
+       (GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
+       AT_TEST_EXISTING_GRAMMAR.
+       * tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
+       all values of lr.type.
+       (Single State Split): New test groups using AT_TEST_LR_TYPE.
+       (Lane Split): Likewise.
+       (Complex Lane Split): Likewise.
+       (Split During Added Lookahead Propagation): Likewise.
+
+2009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add new files for IELR and canonical LR implementation.
+       * src/AnnotationList.c: New.
+       * src/AnnotationList.h: New.
+       * src/InadequacyList.c: New.
+       * src/InadequacyList.h: New.
+       * src/Sbitset.c: New.
+       * src/Sbitset.h: New.
+       * src/ielr.c: New.
+       * src/ielr.h: New.
+
+2009-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Implement %define lr.default_rules.
+       Its value describes the states that are permitted to contain
+       default rules: "all", "consistent", or "accepting".
+       * src/reader.c (reader): Default lr.default_rules to "all".
+       Check for a valid lr.default_rules value.
+       * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
+       is "accepting", then only mark the accepting state as
+       consistent.
+       (initialize_LA): Tell state_lookahead_tokens_count whether
+       lr.default_rules is "accepting".
+       * src/tables.c (action_row): If lr.default_rules is not "all",
+       then disable default rules in inconsistent states.
+       * src/print.c (print_reductions): Use this opportunity to
+       perform some assertions about whether lr.default_rules was
+       obeyed correctly.
+       * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
+       helps with checking the parser tables for a grammar.
+       * tests/input.at (%define lr.default_rules invalid values): New
+       test group.
+       * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
+       AT_TEST_TABLES_AND_PARSE.
+       (`no %define lr.default_rules'): New test group generated by
+       AT_TEST_LR_DEFAULT_RULES.
+       (`%define lr.default_rules "all"'): Likewise.
+       (`%define lr.default_rules "consistent"'): Likewise.
+       (`%define lr.default_rules "accepting"'): Likewise.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       Formatting change.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       bison: factoring.
+       * src/output.c (token_definitions_output): Use symbol_id_get
+       instead of duplicating its logic.
+       * TODO (YYERRCODE): Extend.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       variables: prefer error-verbose to error_verbose.
+       * data/bison.m4 (b4_error_verbose_if): Based on error-verbose
+       instead of error_verbose.
+       * src/scan-gram.l (%error-verbose): Map to the error-verbose
+       variable.
+       * doc/bison.texinfo: Promote %define error-verbose instead of
+       %error-verbose.
+       * tests/actions.at: Prefer %define error-verbose to %error-verbose.
+
+2009-04-15  Akim Demaille  <demaille@gostai.com>
+
+       variables: accept dashes.
+       * data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
+       underscores.
+       * src/scan-gram.l ({id}): Also accept dashes after the initial
+       letter.
+       ({directive}): Use {id}.
+       * src/parse-gram.y: Comment and formatting changes.
+       * doc/bison.texinfo (Symbols): Adjust the lexical definitions of
+       symbols.
+       * src/complain.h, src/complain.c (yacc_at): New.
+       * src/symtab.c (symbol_new): Use yacc_at to report inappropriate
+       symbol names.
+       * src/output.c (token_definitions_output): Do not #define token
+       names with dashes.
+
+2009-04-20  Akim Demaille  <demaille@gostai.com>
+
+       Consistently refer to Yacc, not YACC.
+       * src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
+
+2009-04-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Pacify make maintainer-check-posix.
+       * tests/input.at (%define, --define): Move bison command-line
+       options before grammar file name.
+
+2009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document semicolon warnings.
+       * NEWS (2.5): Here.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       variables: use `parse.assert' instead of `assert'.
+       * TODO (assert): Remove.
+       * data/bison.m4 (b4_assert_if): Replace with...
+       (b4_parse_assert_if): this.
+       * data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust.
+       * doc/bison.texinfo (Decl Summary): Document parse.assert.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       variables: use `parse.trace' instead of `debug'.
+       * src/getargs.c (getargs): Map -t to %define trace.parse.
+       * src/scan-gram.l (%debug): Map to %define trace.parse.
+       * data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
+       names to `_' in macro names.
+       (b4_debug_if): Replace with...
+       (b4_parse_trace_if): this.
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
+       * data/yacc.c: Adjust.
+       * doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
+       Use @code to label the variable list.
+       Document the variable parse.trace.
+       (Tracing): Promote the parse.trace variable.
+       * TODO: %printer is not documented.
+
+2009-04-14  Akim Demaille  <demaille@gostai.com>
+
+       doc: minor fixes.
+       * doc/bison.texinfo (Decl Summary): Fix entry about %debug.
+       (Table of Symbols): Remove duplicate entry for %debug.
+
+2009-04-10  Eric Blake  <ebb9@byu.net>
+
+       submodules: update to latest
+       * submodules/autoconf: Use latest upstream Autoconf.
+
+2009-04-06  Eric Blake  <ebb9@byu.net>
+
+       Work around autoconf 2.63b bug in testsuite.
+       * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
+       autoconf bug related to # in test.
+
+2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.5): New section.  Describe new -D/--define feature.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.h, src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       rename muscle_tab.* as muscle-tab.* for consistency.
+       * src/muscle_tab.h, src/muscle_tab.c: Rename as...
+       * src/muscle-tab.h, src/muscle-tab.c: these.
+       * src/getargs.c, src/local.mk, src/main.c, src/output.c,
+       * src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Makefile: introduce $(BISON).
+       * src/local.mk (BISON): New.
+       (YACC): Use it.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       parser: handle %locations as %define locations.
+       * src/getargs.h, src/getargs.c (locations_flag): Remove.
+       * src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure
+       to set "locations" to true.
+       * src/output.c (prepare): Don't output "locations".
+       * src/scan-gram.l (%locations): Handle it as a %<flag>.
+       * src/parse-gram.y: It's no longer a token.
+       Don't handle it.
+       * data/bison.m4 (b4_locations_if): Define it with
+       b4_percent_define_if_define.
+       * data/c.m4, data/glr.cc: Adjust.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.c: Regen.
+
+2009-04-06  Akim Demaille  <demaille@gostai.com>
+
+       muscle: factor the handling of obsolete of obsolete directives.
+       Suggested by Joel E. Denny.
+
+       * src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure):
+       New, extracted from...
+       * src/parse-gram.y (prologue_declaration: pure-parser): here.
+       Remove it.
+       (prologue_declaration: "%<flag>"): Use
+       muscle_percent_define_ensure.
+       (%error-verbose, %pure-parser): No longer tokens.
+       * src/scan-gram.l (pure-parser): Return as a %<flag>.
+
 2009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Fix options documentation.