-2006-01-08
+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/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
+ * 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.
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>
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this
notice are preserved.
+
+$Id$