+2008-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ DJGPP specific issues.
+ * djgpp/config.bat: Add filenames that are not 8.3 clean and that must
+ be changed. Copyright timestamp adjusted.
+ * djgpp/config.sed: Add filenames that are not 8.3 clean and that must
+ be changed. Copyright timestamp adjusted.
+ * djgpp/config.site: Copyright timestamp adjusted.
+ * djgpp/config_h.sed: Copyright timestamp adjusted.
+ * djgpp/djunpack.bat: Copyright timestamp adjusted.
+ * djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
+ filename translation list.
+ * djgpp/subpipe.c (init_subpipe): Check the environment variables
+ TMPDIR, TMP and TEMP, in that order, to determinate where the temp
+ files shall be created. Before trying to use the temp dir where the
+ environment variable points to check that the dir really exists. If
+ not default to the cwd as temp dir. Copyright timestamp adjusted.
+ * djgpp/subpipe.h: Copyright timestamp adjusted.
+ * djgpp/testsuite.sed: Copyright timestamp adjusted.
+
+2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
+
+2008-01-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (yyparse): Correct the comment when locations aren't used.
+ Problem reported by Claudio Saavedra in
+ <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00003.html>.
+
+2008-01-05 Wojciech Polak <polak@gnu.org>
+
+ * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
+ document's title with the input grammar file name.
+
+2007-12-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Automate regression testing of the XML/XSLT implementation. Discussed
+ starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
+ * configure.ac (XSLTPROC): New substitution.
+ * Makefile.am (maintainer-xml-check): New phony target invoking...
+ * tests/Makefile.am (maintainer-xml-check): ... this new phony target
+ invoking make maintainer-check with BISON_TEST_XML=1.
+ * tests/atlocal.in (XSLTPROC): New.
+ * tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
+ not to report reachable memory when Bison is expected to have a
+ non-zero exit status and (2) to compare XML/XSLT output with --graph
+ and --report=all output for every working grammar when
+ BISON_TEST_XML=1.
+ (AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
+ (AT_BISON_CHECK_XML): New.
+ (AT_QUELL_VALGRIND): New.
+ * tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
+ (AT_CHECK): ... don't redefine this since this was the old way to
+ quell Valgrind.
+ * tests/actions.at: Rewrite all AT_CHECK invocations for bison as
+ AT_BISON_CHECK invocations.
+ * tests/c++.at: Likewise.
+ * tests/calc.at: Likewise.
+ * tests/conflicts.at: Likewise.
+ * tests/cxx-type.at: Likewise.
+ * tests/existing.at: Likewise.
+ * tests/glr-regression.at: Likewise.
+ * tests/headers.at: Likewise.
+ * tests/input.at: Likewise.
+ * tests/java.at: Likewise.
+ * tests/output.at: Likewise.
+ * tests/push.at: Likewise.
+ * tests/reduce.at: Likewise.
+ * tests/regression.at: Likewise.
+ * tests/sets.at: Likewise.
+ * tests/skeletons.at: Likewise.
+ * tests/synclines.at: Likewise.
+ * tests/torture.at: Likewise.
+ (Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
+ tends to hang xsltproc.
+ (Big horizontal): Likewise.
+
+2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In XML output, remove redundant class attribute on symbol element.
+ * data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
+ * data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
+ look up a symbol to determine whether it's a nonterminal or terminal.
+ * src/gram.c (rule_rhs_print_xml): Remove class attribute.
+ * src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.
+
+ Add prec/assoc information to XML output.
+ * src/gram.c (grammar_rules_print_xml): For each rule that has a
+ %prec, add a percent_prec attribute.
+ * src/print-xml.c (print_grammar): For each terminal that has a
+ precedence or associativity, add a prec or assoc attribute.
+ (xml_indent): New.
+ (xml_puts): Use xml_indent.
+ (xml_printf): Use xml_indent.
+ * src/print-xml.h (xml_indent): Prototype.
+
+ * tests/existing.at (GNU pic Grammar): Fix a rule miscopied from
+ <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
+
+2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/xslt/bison.xsl (bison:ruleNumber): Rename to...
+ (bison:ruleByNumber): ... this for clarity.
+ * data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
+ * data/xslt/xml2text.xsl (xsl:template match="item"): Update.
+ (xsl:template match="reduction"): Update.
+ (xsl:template match="item"): Update.
+ (xsl:template match="reduction"): Update.
+
+ In the XML output, don't print the list of rules where symbols appear.
+ Compute it in XSLT instead. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>.
+ * data/xslt/bison.xsl (bison:ruleByLhs): New.
+ (bison:ruleByRhs): New.
+ * data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
+ bison:ruleByRhs.
+ (xsl:template match="terminal/rule"): Remove.
+ (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+ bison:ruleByRhs.
+ (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+ Remove.
+ * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
+ bison:ruleByRhs and mode="number-link" for rule template.
+ (xsl:template match="terminal/rule"): Remove.
+ (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+ bison:ruleByRhs and mode="number-link" for rule template.
+ (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+ Rewrite as...
+ (xsl:template match="rule" mode="number-link"): ... this.
+ * src/print-xml.c (print_grammar): Don't print the list of rules.
+
+2007-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't let --report affect XML output; always print all information.
+ Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00020.html>.
+ * src/conflicts.c (log_resolution): Implement.
+ * src/print-xml.c (print_core): Implement.
+ (print_state): Implement.
+ (print_xml): Implement.
+
+ * NEWS (2.3a+): Fix quotes.
+ * src/parse-gram.y (prologue_declaration): For consistency with -v,
+ don't let %verbose clear the list specified by --report.
+
+2007-11-26 Akim Demaille <akim@epita.fr>
+
+ * data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
+
+2007-11-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In the XML output, list useless and unused symbols and rules with the
+ useful ones and add a "usefulness" attribute. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00017.html>.
+ * src/gram.c (grammar_rules_partial_print_xml): Remove.
+ (grammar_rules_print_xml): Print all rules instead of just those
+ useful in the grammar, and add a "usefulness" attribute.
+ * src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
+ * src/print-xml.c (print_rules_useless_in_parser): Remove.
+ (print_grammar): Print all nonterminals instead of just useful ones,
+ and add a "usefulness" attribute to nonterminals and terminals.
+ (print_xml): Don't print a separate "reductions" or
+ "rules-useless-in-parser" element.
+ * src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
+ (reduce_xml): Remove.
+ (reduce_token_unused_in_grammar): New.
+ (reduce_nonterminal_useless_in_grammar): New.
+ * src/reduce.h (reduce_xml): Remove prototype.
+ (reduce_token_unused_in_grammar): Add prototype.
+ (reduce_nonterminal_useless_in_grammar): Add prototype.
+ * data/xslt/xml2text.xsl: Update for XML changes.
+ * data/xslt/xml2xhtml.xsl: Update for XML changes.
+ * tests/reduce.at (Useless Terminals): Update output.
+ (Useless Rules): Update output.
+ (Reduced Automaton): Update output.
+
+ Say "Terminals unused in grammar" instead of "Unused terminals".
+ * NEWS (2.3a+): Update.
+ * doc/bison.texinfo (Understanding): Update example output.
+ * src/reduce.c (reduce_output): Implement.
+ * data/xslt/xml2text.xsl: Implement.
+ * data/xslt/xml2xhtml.xsl: Implement.
+
+2007-11-18 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Accept --report-file=FILE to override the default `.output' filename.
+ * NEWS (2.3a+): Mention.
+ * doc/bison.texinfo (Bison Options): Add an entry.
+ * src/files.c (compute_output_file_names): Don't override
+ spec_verbose_file if already set.
+ * src/getargs.c (usage): Document --report-file.
+ (REPORT_FILE_OPTION): New anonymous enum member.
+ (long_options): Add entry for it.
+ (getargs): Add case for it setting spec_verbose_file.
+
+ * build-aux/cross-options.pl: Don't record a short option just because
+ there's an arg.
+ * doc/.cvsignore: Add yacc.1.
+
+2007-11-14 Akim Demaille <akim@epita.fr>
+
+ * doc/yacc.1.in: New.
+ * configure.ac, doc/Makefile.am: Adjust.
+ * configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
+ config.h symbol.
+ Use AC_SUBST for assignments too.
+ * src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
+
+2007-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/gram.c: Remove comments that duplicate comments in gram.h.
+
+ When reporting useless rules and nonterminals, say "useless in grammar"
+ instead of "useless", and say "useless in parser" instead of "never
+ reduced". Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00033.html>.
+ * NEWS (2.3a+): Mention this change.
+ * data/xslt/xml2text.xsl: Update output text and expected input XML
+ element names to match changes below.
+ * data/xslt/xml2xhtml.xsl: Likewise.
+ (xsl:template match="bison-xml-report"): Add missing entry in Table of
+ Contents: "Rules useless in parser due to conflicts".
+ * doc/bison.texinfo (Decl Summary): Reword a little.
+ (Understanding): Update example output for changes below.
+ * src/gram.c: (rule_useful_p): Rename to...
+ (rule_useful_in_grammar_p): ... this.
+ (rule_useless_p): Rename to...
+ (rule_useless_in_grammar_p): ... this.
+ (rule_never_reduced_p): Rename to...
+ (rule_useless_in_parser_p): ... this.
+ (grammar_rules_print): Update for renames.
+ (grammar_rules_print_xml): Update for renames.
+ (grammar_rules_never_reduced_report): Rename to...
+ (grammar_rules_useless_report): ... this since it is used for either
+ kind of useless rule.
+ * src/gram.h: Reword comments and update function names in prototypes.
+ * src/main.c (main): Say "rule useless in parser due to conflicts".
+ * src/print-xml.c (print_rules_never_reduced): Rename to...
+ (print_rules_useless_in_parser): ... this, and rename output XML
+ element "rules-never-reduced" to "rules-useless-in-parser".
+ (print_xml): Update for rename.
+ * src/print.c (print_results): Say "Rules useless in parser due to
+ conflicts".
+ * src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
+ (nonterminals_reduce): Say "nonterminal useless in grammar".
+ (reduce_output): Say "Nonterminals useless in grammar".
+ Say "Rules useless in grammar".
+ (reduce_xml): Rename output XML element "useless" to
+ "useless-in-grammar".
+ (reduce_print): Don't report the count of grammatically useless rules
+ as "rules never reduced" just because %yacc is specified.
+ In the correct report of this count, say nonterminal(s) and rule(s)
+ "useless in grammar".
+ * tests/conflicts.at (S/R in initial): Update expected output.
+ (Defaulted Conflicted Reduction): Likewise.
+ (Unreachable States After Conflict Resolution): Likewise.
+ * tests/existing.at (GNU pic Grammar): Likewise.
+ * tests/reduce.at (Useless Nonterminals): Likewise.
+ (Useless Rules): Likewise.
+ (Reduced Automaton): Likewise.
+ (Underivable Rules): Likewise.
+ (Empty Language): Likewise.
+
+2007-11-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
+ here document and before the EOF so that BSD's implementation of Bourne
+ shell doesn't parse the delimiter as part of the here document.
+ * doc/.cvsignore: Add cross-options.texi.
+ * src/getargs.c (usage): Add a blank line after the warning categories.
+
+2007-11-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/lalr1.java (Lexer): Remove usage of b4_pure_if.
+
+2007-11-05 Akim Demaille <akim@epita.fr>
+
+ Remove Id: from bison.1.
+ * doc/Makefile.am (remove_time_stamp): Include the sed invocation.
+ (perl -0777 -pi -e 's/\.PP\nId): New.
+ (.x.1): Use it to ignore the version control revision.
+
+2007-11-05 Akim Demaille <demaille@gostai.com>
+
+ * build-aux/Makefile.am: Ship cross-options.pl.
+ * doc/Makefile.am: Always refer to cross-options.texi with
+ $(srcdir).
+ (MAINTAINERCLEANFILES): Add it.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Generate the long/short option cross-table.
+ * build-aux/cross-options.pl: New.
+ * doc/Makefile.am (cross-options.texi): New.
+ * doc/bison.texinfo: Use it.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Generate bison.1 using help2man.
+ * doc/common.x, doc/bison.x: New.
+ * doc/Makefile.am (bison.1, .x.1): New.
+ The code is taken from autoconf-2.61/man/Makefile.am.
+ * configure.ac: Look for help2man.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Complete --help.
+ * src/getargs.c (usage): Document -W, make it clear that -d,
+ -g and -x have optional arguments.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Find sha1sum when named gsha1sum.
+ * bootstrap (find_tool): New.
+ ($SHA1SUM): New.
+
+2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Deprecate %pure-parser and add `%define api.pure'. Discussed starting
+ at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00006.html>.
+ * NEWS (2.3a+): Mention.
+ * data/bison.m4 (b4_pure_if): Don't define it here.
+ * data/c.m4 (b4_identification): Depend on individual skeletons to
+ define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
+ values of the %define variables api.pure or api.push_pull. Define
+ YYPURE, YYPUSH, and YYPULL accordingly.
+ * data/glr.c: Define b4_pure_if based on `%define api.pure' unless
+ glr.cc has already defined b4_pure_flag.
+ * data/push.c: Define b4_pure_if based on `%define api.pure'.
+ Remove YYPUSH and YYPULL since they're back in b4_identification again.
+ * data/yacc.c Define b4_pure_if based on `%define api.pure'.
+ * doc/bison.texinfo (Pure Decl): Update.
+ (Push Decl): Update.
+ (Decl Summary): Add api.pure to %define entry.
+ In %pure-parser entry, say it's deprecated and reference %define.
+ (Pure Calling): Update.
+ (Error Reporting): Update.
+ (C++ Scanner Interface): Update.
+ (How Can I Reset the Parser): Update.
+ (Table of Symbols): In %pure-parser entry, say it's deprecated and
+ reference %define.
+ * src/getargs.c (pure_parser): Remove global variable.
+ * src/getargs.h (pure_parser): Remove extern.
+ * src/output.c (prepare): Don't define pure_flag muscle.
+ * src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
+ wrapper around `%define api.pure'.
+ * tests/calc.at (Simple LALR Calculator): Update.
+ (Simple GLR Calculator): Update.
+ * tests/cxx-type.at (GLR: Resolve ambiguity, pure, no locations):
+ Update.
+ (GLR: Resolve ambiguity, pure, locations): Update.
+ (GLR: Merge conflicting parses, pure, no locations): Update.
+ (GLR: Merge conflicting parses, pure, locations): Update.
+ * tests/glr-regression.at (Uninitialized location when reporting
+ ambiguity): Update
+ * tests/input.at (Unused %define api.pure): New test case.
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Update definition for
+ AT_PURE_IF and AT_PURE_AND_LOC_IF.
+ * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+
+2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ %define push_pull -> %define api.push_pull. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00005.html>.
+ * data/push.c: Expect the new name.
+ * data/yacc.c: Likewise.
+ * doc/bison.texinfo (Push Decl): Update.
+ (Decl Summary): Update %define entry.
+ (Push Parser Function): Update.
+ (Pull Parser Function): Update.
+ (Parser Create Function): Update.
+ (Parser Delete Function): Update.
+ * tests/calc.at (Simple LALR Calculator): Update.
+ * tests/input.at (%define enum variables): Update.
+ * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+ (Push Parsing: Multiple impure instances): Update.
+ (Push Parsing: Unsupported Skeletons): Update.
+ * tests/torture.at (Exploding the Stack Size with Alloca): Update.
+ (Exploding the Stack Size with Malloc): Update.
+
+ * NEWS (2.3a+): Add an entry for the push parser, and clean up the
+ other entries some.
+
+2007-10-27 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ For the XML output's terminal element, rename @number to @token-number,
+ and add @symbol-number. In the nonterminal element, rename @number to
+ @symbol-number. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00040.html>.
+ * data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
+ renames.
+ (xsl:template match="nonterminal"): Likewise.
+ * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
+ (xsl:template match="nonterminal"): Likewise.
+ * src/print-xml.c (print_grammar): Implement.
+
+2007-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
+ 2007-10-11 change, the child elements here are items not rules.
+ (xsl:template match="item"): New.
+ (xsl:template match="rule"): Update for new reduced itemset.
+ (xsl:template match="point"): Remove.
+ (xsl:template match="empty"): For consistency with --graph, don't
+ output "/* empty */".
+ * data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
+ line-wrap, don't pass a negative value as first-line-length since this
+ won't work with the following changes.
+ (xsl:template name="line-wrap"): Simplify slightly.
+ (xsl:template name="ws-search"): Eliminate recursion.
+ * src/print_graph.c (print_core): Don't print a reduction's lookahead
+ set next to an item whose dot is not at the end of the RHS even if it
+ happens to be associated with the same rule.
+
+2007-10-19 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Add %define lr.keep_unreachable_states.
+ * NEWS (2.3a+): Mention it in the entry for unreachable state removal.
+ * doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
+ * src/main.c (main): Implement it.
+ * tests/conflicts.at (Unreachable States After Conflict Resolution):
+ Extend to test it, and fix a typo.
+