]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
[bison.git] / ChangeLog
index dbd051c2f341c20c2294335121714e93dce2e9a9..0b94fe9a8b6454e6b02b4bb4595dec6615430266 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,406 @@
+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
 
 2005-09-19  Akim Demaille  <akim@epita.fr>
 
-       * NEWS, configure.ac: Version 2.1a.
+       * NEWS, configure.ac: update version number to 2.1a.
 
 2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>