+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ gnulib: update to latest.
+
+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
+
+2010-01-15 Joel E. Denny <jdenny@clemson.edu>
+
+ Thank the developer of the initial push parser implementation.
+ This unfortunate oversight is several years old.
+ * THANKS (Odd Arild Olsen): Add.
+
+2010-01-04 Joel E. Denny <jdenny@clemson.edu>
+
+ Fix some comments concerning LR(0) versus LALR(1).
+
+ Stop equating LR(0) with nondeterminism and LALR(1) with
+ determinism. That is, if all states are consistent, then LR(0)
+ tables are deterministic. On the other hand, LALR(1) tables
+ might be nondeterministic before conflict resolution, and GLR
+ permits LALR(1) tables to remain nondeterministic.
+ * src/LR0.c, src/LR0.h: Here.
+ * src/lalr.c, src/lalr.h: Here.
+ * src/main.c (main): Here.
+ * src/state.c, src/state.h: Here.
+
+ * src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
+ parser tables.
+
+2010-01-04 Joel E. Denny <jdenny@clemson.edu>
+
+ maint: run "make update-copyright"
+
+2009-12-30 Joel E. Denny <jdenny@clemson.edu>
+
+ POSIX: complain if %prec's token was not defined.
+ * NEWS (2.5): Document.
+ * src/reader.c (grammar_rule_check): Convert warning to
+ complaint.
+ * tests/input.at (%prec's token must be defined): Update.
+
+2009-12-30 Joel E. Denny <jdenny@clemson.edu>
+
+ POSIX: warn if %prec's token was not defined.
+ Reported by Florian Krohm at
+ <http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
+ * NEWS (2.4.2): Document.
+ * src/reader.c (grammar_rule_check): Implement.
+ (grammar_current_rule_prec_set): Add comments explaining that we
+ here assume a %prec identifier is a token, but we still manage
+ to support POSIX.
+ * tests/input.at (%prec's token must be defined): New test
+ group.
+
+2009-12-31 Joel E. Denny <jdenny@clemson.edu>
+
+ * HACKING (Release Procedure): Recommend a secure automake.
+
+2009-12-29 Joel E. Denny <jdenny@clemson.edu>
+
+ portability: `<' and `>' are not always defined on addresses.
+ Specifically, don't sort objects by their memory addresses when
+ they're not allocated in the same array or other object. Though
+ I haven't found a test case where that fails on my platform, C
+ says the behavior is undefined.
+ * src/AnnotationList.c (AnnotationList__insertInto): Remove
+ FIXME. Use new id field of InadequacyList nodes rather than
+ their memory addresses when sorting.
+ (AnnotationList__compute_from_inadequacies): Add
+ inadequacy_list_node_count argument to pass to
+ InadequacyList__new_conflict.
+ * src/AnnotationList.h
+ (AnnotationList__compute_from_inadequacies): Update prototype
+ and documentation for new argument.
+ * src/InadequacyList.c (InadequacyList__new_conflict): Add
+ node_count argument and use it to assign a unique ID.
+ * src/InadequacyList.h (InadequacyListNodeCount): New typedef.
+ (InadequacyList): Add id field.
+ (InadequacyList__new_conflict): Update prototype and
+ documentation for new argument.
+ * src/ielr.c (ielr_compute_annotation_lists): Update
+ AnnotationList__compute_from_inadequacies invocation.
+
+2009-12-20 Joel E. Denny <jdenny@clemson.edu>
+
+ Fix handling of yychar manipulation in user semantic actions.
+ The problem was that yacc.c didn't always update the yychar
+ translation afterwards. However, other skeletons appear to be
+ fine. glr.c appears to already translate yychar before every
+ use. lalr1.cc does not define yychar and does not document its
+ replacement, yyla, for users. It does provide yyclearin, but
+ that does not manipulate yyla and thus requires no translation
+ update. In lalr1.java, yychar is out of scope during semantic
+ actions.
+ * NEWS (2.5): Document.
+ * data/yacc.c (YYBACKUP): Don't bother translating yychar into
+ yytoken here.
+ (yyparse, yypush_parse): Instead, translate before every use of
+ yytoken, and add comments explaining this approach.
+ * tests/actions.at (Destroying lookahead assigned by semantic
+ action): New test group checking that translation happens before
+ lookahead destructor calls at parser return. Previously,
+ incorrect destructors were called.
+ * tests/conflicts.at (parse.error=verbose and consistent
+ errors): New test group checking that translation happens at
+ syntax error detection before the associated verbose error
+ message and the associated lookahead destructor calls. While
+ the destructor call is fixed by this patch, the verbose error
+ message is currently incorrect due to another bug (see
+ comments in test group), so this is an expected failure for now.
+
+2009-12-21 Joel E. Denny <jdenny@clemson.edu>
+
+ YYFAIL: warn about uses and remove from lalr1.java.
+ * NEWS (2.5): Document.
+ * data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
+ and make it private. Update all uses.
+ * src/scan-code.l (SC_RULE_ACTION): Implement warning.
+
+2009-12-21 Joel E. Denny <jdenny@clemson.edu>
+
+ YYFAIL: deprecate.
+ * NEWS (2.4.2): Document deprecation and the phase-out plan.
+ * data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
+ deprecation.
+ * data/yacc.c (YYFAIL): Likewise, and suppress warnings about
+ YYFAIL from GCC cpp's -Wunused-macros.
+ * doc/bison.texinfo (Java Action Features): Remove YYFAIL
+ documentation.
+ (LocalWords): Remove YYFAIL.
+
+2009-12-20 Joel E. Denny <jdenny@clemson.edu>
+
+ tests: cleanup.
+ * tests/c++.at (Syntax error discarding no lookahead): Don't
+ ignore stderr. Instead, eliminate remaining warnings.
+
+2009-12-18 Joel E. Denny <jdenny@clemson.edu>
+
+ lalr1.cc: don't discard non-existent lookahead on syntax error.
+ * data/lalr1.cc (parser::parse): Check yyempty first.
+ * tests/c++.at (Syntax error discarding no lookahead): New test
+ group.
+
+2009-12-17 Joel E. Denny <jdenny@clemson.edu>
+
+ Code cleanup.
+ * src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
+ function, which is no longer used.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ Add gcc's -Wundef to test suite and fix another warning from it.
+ * NEWS (2.4.2): Update description of -Wundef fix.
+ * configure.ac (WARN_CXXFLAGS_TEST): New substitution.
+ (WARN_CFLAGS_TEST): New substitution.
+ * data/glr.c: Avoid warning about __STRICT_ANSI__.
+ * tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
+ WARN_CFLAGS.
+ (NO_WERROR_CFLAGS): Likewise.
+ (CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ * data/yacc.c: Reformat m4 a little.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ Document gcc -Wundef fix.
+ * NEWS (2.4.2): Here.
+ * THANKS (Jonathan Nieder): Add.
+
+2009-12-15 Jonathan Nieder <jrnieder@gmail.com> (tiny change)
+
+ Simplify y.tab.c when location tracking is disabled.
+ * data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
+ tracking is not enabled. Instead, unconditionally define
+ YY_LOCATION_PRINT as a no-op for backward compatibility.
+
+2009-12-15 Jonathan Nieder <jrnieder@gmail.com> (tiny change)
+
+ Avoid warnings from gcc -Wundef y.tab.c.
+ * data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
+ defined before using them.
+ * data/lalr1.cc: Likewise.
+ * data/yacc.c: Likewise.
+
+2009-12-15 Joel E. Denny <jdenny@clemson.edu>
+
+ autoconf: update to latest for fix of M4 detection.
+ Reported by Eric Blake.
+ * submodules/autoconf: Update.
+
+2009-12-15 Joel E. Denny <jdenny@clemson.edu>
+
+ portability: use -DGNULIB_POSIXCHECK.
+ Reported by Eric Blake. See discussions at
+ <http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
+ and
+ <http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
+ * HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
+ * bootstrap.conf (gnulib_modules): Add all the printf modules
+ suggested by -DGNULIB_POSIXCHECK. Add realloc-posix as
+ suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
+ (excluded_files): Remove m4/printf-posix.m4.
+ * tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add
+ lib/libbison.a so gnulib libraries can be linked.
+
+2009-12-15 Joel E. Denny <jdenny@clemson.edu>
+
+ gnulib: update for fix of fprintf-posix, which we'll use soon.
+ * etc/prefix-gnulib-mk (prefix): Adjust regex for make file
+ targets so that gnulib's new arg-nonnull.h and link-warning.h
+ are matched.
+ * gnulib: Update.
+
+2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+
+ Enable assertion output and --disable-assert for configure.
+ * bootstrap.conf (gnulib_modules): Add assert module.
+ * src/system.h (aver): Define as assert, and summarize the
+ discussion on this issue.
+
+2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+
+ Expand GLR acronym in summary of Bison.
+ Based on discussion with Akim Demaille starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
+ * doc/bison.texinfo (Introduction): Here.
+ * src/getargs.c (usage): Here.
+
+2009-10-03 Alex Rozenman <rozenman@gmail.com>
+
+ Document named references.
+ * doc/bison.texinfo (Actions): Add new example and xref to
+ Using Named References node.
+ (Using Named References): New node.
+
+2009-10-16 Joel E. Denny <jdenny@clemson.edu>
+
+ cleanup.
+ * src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
+ of char*.
+ (Sbitset__isEmpty): Use Sbitset instead of char*.
+ * src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
+ instead of char. This helps to avoid casting errors.
+ (Sbitset__or): Use Sbitset instead of char*.
+
+2009-10-16 Joel E. Denny <jdenny@clemson.edu>
+
+ portability: don't assume 8-bit bytes.
+ That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
+ * src/Sbitset.h (Sbitset__nbytes): Here.
+ (Sbitset__byteAddress): Here.
+ (Sbitset__bit_mask): Here.
+ (Sbitset__last_byte_mask): Here.
+ (Sbitset__ones): Here.
+ (SBITSET__FOR_EACH): Here.
+
+2009-10-11 Joel E. Denny <jdenny@clemson.edu>
+
+ portability: use va_start and va_end in the same function.
+ * src/complain.c (error_message): Move va_end from here...
+ (ERROR_MESSAGE): ... to here.
+
+2009-10-08 Joel E. Denny <jdenny@clemson.edu>
+
+ * data/bison.m4: Update comments for rename to muscle-tab.h.
+
+2009-10-07 Joel E. Denny <jdenny@clemson.edu>
+
+ Minor code cleanup.
+ * src/muscle-tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
+ replace all uses with UNIQSTR_CONCAT.
+ * src/uniqstr.c (uniqstr_vsprintf): New function.
+ * src/uniqstr.h (uniqstr_vsprintf): Add prototype.
+ (UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
+ macros.
+
+2009-10-06 Joel E. Denny <jdenny@clemson.edu>
+
+ * TODO (Complaint submessage indentation): New.
+
+2009-10-04 Joel E. Denny <jdenny@clemson.edu>
+
+ Minor code cleanup.
+ * src/parse-gram.y: Clean up sorting of declarations.
+ Use types to simplify %printer declarations where possible.
+ Provide %printer for BRACKETED_ID and symbol.prec.
+ * src/symtab.c: Whitespace change.
+
+2009-10-04 Joel E. Denny <jdenny@clemson.edu>
+
+ tests: skip tests of file names that platform does not support.
+ Reported by Michael Raskin at
+ <http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
+ * THANKS (Michael Raskin): Add.
+ * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix. Cygwin used
+ to fail at least for file names containing ":" or "\".
+
+2009-09-23 Joel E. Denny <jdenny@clemson.edu>
+
+ yysyntax_error: avoid duplicate lookahead collection.
+ Except when memory reallocation is required, this change
+ eliminates the need to invoke yysyntax_error twice and thus to
+ repeat the collection of lookaheads. It also prepares for
+ future extensions that will make those repetitions more
+ expensive and that will require additional memory management in
+ yysyntax_error. Finally, it fixes an obscure bug already
+ exercised in the test suite.
+ * data/yacc.c (yysyntax_error): Add arguments for message
+ buffer variables stored in the parser. Instead of size, return
+ status similar to yyparse status but indicating success of
+ message creation. Other than the actual reallocation of the
+ message buffer, import and clean up memory management code
+ from...
+ (yyparse, yypush_parse): ... here.
+ * tests/regression.at (parse.error=verbose overflow): No longer
+ an expected failure.
+
+2009-09-23 Joel E. Denny <jdenny@clemson.edu>
+
+ yysyntax_error: test memory management more.
+ * tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
+ * tests/regression.at (parse.error=verbose and
+ YYSTACK_USE_ALLOCA): New test group.
+ (parse.error=verbose overflow): New test group that reveals an
+ obscure bug. Expected fail for now.
+
+2009-10-04 Joel E. Denny <jdenny@clemson.edu>
+
+ benchmarks: use %debug consistently among grammars.
+ * etc/bench.pl.in (generate_grammar_triangular): Do not activate
+ %debug by default. It can affect the timings even if yydebug=0.
+ (generate_grammar_calc): For consistency with other grammars,
+ use YYDEBUG environment variable to set yydebug.
+
+2009-10-03 Joel E. Denny <jdenny@clemson.edu>
+
+ Remove dead code.
+ * src/symtab.c (symbol_pack): Here because every symbol's number
+ is always defined by this time.
+
+2009-10-03 Alex Rozenman <rozenman@gmail.com>
+
+ Add additional space after periods in NEWS.
+ * NEWS (2.5): here.
+
+2009-09-29 Joel E. Denny <jdenny@clemson.edu>
+
+ Use the correct conversion specifier for size_t.
+ Reported by Jim Meyering.
+ * src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
+ because Sbitset__Index is size_t.
+ * src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
+
+2009-09-27 Joel E. Denny <jdenny@clemson.edu>
+
+ tests: don't abuse AT_BISON_CHECK.
+ * tests/regression.at (parse-gram.y: LALR = IELR): Move
+ additional shell commands outside of AT_BISON_CHECK.
+
+2009-09-26 Joel E. Denny <jdenny@clemson.edu>
+
+ tests: check that parse-gram.y's IELR and LALR are identical.
+ * tests/atlocal.in (abs_top_srcdir): New shell variable.
+ * tests/regression.at (parse-gram.y: LALR = IELR): New test
+ group.
+
+2009-09-19 Alex Rozenman <rozenman@gmail.com>
+
+ Keep sub-messages aligned. Fix strings for translation.
+ * src/location.h (location_print): Add return value.
+ * src/location.c (location_print): Return number of printed
+ characters.
+ * src/complain.h (complain_at_indent, warn_at_indent): Prototype
+ new functions.
+ * src/complain.cpp (indent_ptr): New static variable.
+ (error_message, complain_at_indent, warn_at_indent): Implement
+ the alignment mechanism.
+ * src/scan-code.l (parse_ref, show_sub_messages): Fix strings
+ for translations. Use new alignment mechanism.
+ * tests/named-ref.at: Adjust test-cases.
+ * NEWS (2.5): Add an announcement about named references.
+
+2009-09-17 Akim Demaille <demaille@gostai.com>
+
+ doc: fixes.
+ * doc/bison.texinfo: here.
+ Reported by Alex Rozenman.
+
+2009-09-16 Akim Demaille <demaille@gostai.com>
+
+ doc: lalr1.cc and variants.
+ * doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and
+ "variant" %define variables.
+ (C++ Semantic Values): Split into...
+ (C++ Unions, C++ Variants): these.
+ The latter is new.
+ (C++ Parser Interface): Fix type names.
+ Document parser::syntax_error.
+ Document the fact that locations are not mandatory.
+ (C++ Scanner Interface): Split into...
+ (Split Symbols, Complete Symbols): these.
+ The later is new.
+ (Calc++ Parsing Driver): Use variants.
+ Add more comments.
+ Adjust style.
+ (Calc++ Parser): Declare all the tokens, no
+ longer accept raw characters.
+ Remove %union.
+ Adjust types and printers.
+ Remove destructors.
+ (Calc++ Scanner): Use make_<SYMBOL> functions.
+ Use strerror in error message.
+
2009-09-16 Akim Demaille <demaille@gostai.com>
doc: spell checking.
2006-09-15 Bob Rossi <bob@brasko.net>
+ Add support for push parsing. Based on the original work of
+ Odd Arild Olsen <oao@fibula.no>.
* 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.
+ * data/push.c: New file.
* src/getargs.c (push_parser): New var.
* src/getargs.h (push_parser): New declaration.
* src/output.c (prepare): Add macro insertion of `push_flag'.
-----
- Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1987-1988, 1991-2010 Free Software Foundation,
+ Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this