]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Version 1.75f.
[bison.git] / ChangeLog
index 39f02d5c2ba61be17710724150a8e3c7484ebb7f..71845ef998b956b3ab6e835003414a0cafc3536c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,224 @@
+2002-12-28  Paul Eggert  <eggert@twinsun.com>
+
+       Version 1.75f.
+
+       Switch back to the Yacc style of conflict reports, undoing some
+       of the 2002-07-30 change.
+       * doc/bison.texinfo (Understanding): Use Yacc style for
+       conflict reports.  Also, use new way of locating rules.
+       * src/conflicts.c (conflict_report):
+       Renamed from conflict_report_yacc, removing the old
+       'conflict_report'.  Translate the entire conflict report at once,
+       so that we don't assume that "," has the same interpretation in
+       all languages.
+       (conflicts_output): Use Yacc-style conflict report for each state,
+       instead of our more-complicated style.
+       (conflicts_print): Use Yacc-style conflict report, except print
+       the input file name when not emulating Yacc.
+       * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
+       Conflicted Reduction, %expect not enough, %expect too much,
+       %expect with reduce conflicts): Switch to Yacc-style conflict reports.
+       * tests/existing.at (GNU Cim Grammar): Likewise.
+       * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
+
+       * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
+       fatal): Don't invoke fflush; it's not needed and it might even be
+       harmful for stdout, as stdout might not be open.
+       * src/reduce.c (reduce_print): Likewise.
+
+2002-12-27  Paul Eggert  <eggert@twinsun.com>
+
+       Fix a bug where error locations were not being recorded correctly.
+       This problem was originally reported by Paul Hilfinger in
+       <http://mail.gnu.org/pipermail/bug-bison/2002-November/001901.html>.
+
+       * data/yacc.c (yyparse): New local var yylerrsp, to record the
+       top of the location stack's error locations.
+       (yyerrlab): Set it.  When discarding a token, push its location
+       onto yylerrsp so that we don't lose track of the error's end.
+       (yyerrlab1): Now is only the target of YYERROR, so that we can
+       properly record the location of the action that failed.  For GCC
+       2.93 and later, insert an __attribute__ ((__unused__)) to avoid
+       GCC warning about yyerrlab1 being unused if YYERROR is unused.
+       (yyerrlab2): New label, which yyerrlab now falls through to.
+       Compute the error's location by applying YYLLOC_DEFAULT to
+       the locations of all the symbols that went into the error.
+       * doc/bison.texinfo (Location Default Action): Mention that
+       YYLLOC_DEFAULT is also invoked for syntax errors.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
+       Error locations include the locations of all the tokens that were
+       discarded, not just the last token.
+       
+2002-12-26  Paul Eggert  <eggert@twinsun.com>
+
+       * src/files.c: Include quote.h.
+       (compute_output_file_names): Warn if we detect conflicting
+       outputs to the same file.  This should catch the misunderstanding
+       exemplified by Debian Bug 165349, reported by Bruce Stephens..
+
+       * src/conflicts.c (conflicts_print): If the user specifies
+       "%expect N", report an error if there are any reduce/reduce
+       conflicts.  This is what the manual says should happen.
+       This fixes Debian bug 130890, reported by Anthony DeRobertis.
+       * tests/conflicts.at (%expect with reduce conflicts): New test.
+
+       Don't use m4_include on relative file names, as it doesn't work as
+       desired if there happens to be a file with that name under ".".
+       
+       * m4sugar/version.m4: Remove; it was included but it wasn't used.
+       * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
+       * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
+       * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
+       * src/output.c (output_skeleton): Use full path names when
+       specifying a file to include; don't rely on include path, as
+       it's unreliable when the working file contains a file with
+       that name.
+       
+2002-12-25  Paul Eggert  <eggert@twinsun.com>
+
+       Remove obsolete references to bison.simple and bison.hairy.
+       Problem mentioned by Aubin Mahe in
+       <http://mail.gnu.org/pipermail/help-bison/2002-December/001765.html>.
+       * data/glr.c: Comment fix.
+       * doc/bison.1: Remove references.  Also, mention "yacc".
+
+       * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
+       with -g option.
+
+       * src/parse-gram.y (declaration): Use enum "report_states" rather
+       than its numeric value 1.
+
+       * src/scan-skel.l ("@output ".*\n): Close any old yyout before
+       opening a new one.  This fixes Debian bug 165349, reported by
+       Bruce Stephens.
+
+2002-12-24  Paul Eggert  <eggert@twinsun.com>
+
+       Version 1.75e.
+
+       * Makefile.maint (cvs-update): Don't assume that the shell
+       supports $(...), as Solaris sh doesn't.
+
+       * src/parse-gram.y (lloc_default): Remove test for empty
+       nonterminals at the end, since it didn't change the result.
+
+2002-12-24  Paul Eggert  <eggert@twinsun.com>
+
+       If the user does not define YYSTYPE as a macro, Bison now declares it
+       using typedef instead of defining it as a macro.  POSIX requires this.
+       For consistency, YYLTYPE is also declared instead of defined.
+
+       %union directives can now have a tag before the `{', e.g., the
+       directive `%union foo {...}' now generates the C code
+       `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
+       The default union tag is `YYSTYPE', for compatibility with Solaris 9
+       Yacc.  For consistency, YYLTYPE's struct tag is now `YYLTYPE'
+       instead of `yyltype'.
+
+       `yystype' and `yyltype' are now obsolescent macros instead of being
+       typedefs or tags; they are no longer documented and will be
+       withdrawn in a future release.
+
+       * data/glr.c (b4_location_type): Remove.
+       (YYSTYPE): Renamed from yystype.
+       (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
+       (struct YYLTYPE): Renamed from struct yyltype.
+       (YYLTYPE): Renamed from yyltype.
+       (yyltype, yystype): New (and obsolescent) macros,
+       for backward compatibility.
+       * data/yacc.c: Likewise.
+
+       * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
+       does not specify a union tag.  This is for compatibility with
+       Solaris 9 yacc.
+
+       * src/parse-gram.y (add_param): 2nd arg is now char * not char
+       const *, since it is now modified by stripping surrounding { }.
+       (current_braced_code): Remove.
+       (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
+       PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
+       trailing " {...}".  Now of type <chars>.
+       (grammar_declaration): Adjust to bundled tokens.
+       (code_content): Remove; stripping is now done by add_param.
+       (print_token_value): Print contents of bundled tokens.
+       (token_name): New function.
+
+       * src/reader.h (braced_code, current_braced_code): Remove.
+       (token_name): New decl.
+
+       * src/scan-gram.l (handle_dollar, handle_at): Now takes int
+       token_type, not braced_code code_kind.  All uses changed.
+       (SC_PRE_CODE): New state, for scanning after a keyword that
+       has (or usually has) an immediately-following braced code.
+       (token_type): New local var, to keep track of which token type
+       to return when scanning braced code.
+       (<INITIAL>"%destructor", <INITIAL>"%lex-param",
+       <INITIAL>"%parse-param", <INITIAL>"%printer,
+       <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
+       instead of returning a token type immediately.
+       (<INITIAL>"{"): Set token type.
+       (<SC_BRACED_CODE>"}"): Use it.
+       (handle_action_dollar, handle_action_at): Now returns bool
+       indicating success.  Fail if ! current_rule; this prevents a core dump.
+       (handle_symbol_code_dollar, handle_symbol_code_at):
+       Remove; merge body into caller.
+       (handle_dollar, handle_at): Complain in invalid contexts.
+
+       * NEWS, doc/bison.texinfo: Document the above.
+       * NEWS: Fix years and program names in copyright notice.
+
+2002-12-17  Paul Eggert  <eggert@twinsun.com>
+
+       * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
+       Reporting, Table of Symbols): Omit mentions of %lex-param and
+       %parse-param from the documentation for now.
+
+2002-12-15  Paul Eggert  <eggert@twinsun.com>
+
+       Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
+       GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
+       lookahead symbol, and which sets yychar in parser actions) and it
+       disagreed with the Bison documentation.  Bug
+       reported by Andrew Walrond.
+       
+       * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
+       as the caller now does that.
+       (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
+       (YYEMPTY): Parenthesize right hand side, since others use it.
+       (yyparse): Don't assume that our generated code is the only code
+       that sets yychar.
+
+2002-12-13  Paul Eggert  <eggert@twinsun.com>
+
+       Version 1.75d.
+
+       POSIX requires a "yacc" command.
+       * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
+       (MOSTLYCLEANFILES): Add yacc.
+       (yacc): New rule.
+       * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
+       as an alias for bison y.
+
+       * po/LINGUAS: Add da.
+       
+       * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
+       problem with latest <getopt.h>.
+       (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
+
+       * doc/fdl.texi: Upgrade to 1.2.
+       * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
+       lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
+       lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
+       gnulib.
+       * config/install-sh: Sync with autotools.
+
+       Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
+       <http://mail.gnu.org/pipermail/bug-bison/2002-November/001929.html>.
+       * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
+       locations are requested.
+       (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
+       locations are requested.
+
 2002-12-12  Paul Eggert  <eggert@twinsun.com>
 
        Remove unportable casts and storage allocation tricks.
        * REFERENCES: entered into RCS
 -----
 
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
-This file is part of GNU Bison.
+This file is part of Bison, the GNU Compiler Compiler.
 
-GNU Bison is free software; you can redistribute it and/or modify
+Bison is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
-GNU Bison is distributed in the hope that it will be useful,
+Bison is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Bison; see the file COPYING.  If not, write to
+along with Bison; see the file COPYING.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.