]> git.saurik.com Git - bison.git/blobdiff - NEWS
src/scan-gram.l (<SC_BRACED_CODE>"}"): Append ";" only in braced code,
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index 51836800db71469ff3d051a3747afd1268647961..0407aad5ab66fde651f19972293fae05dbafe02d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,143 @@
 Bison News
 ----------
 
-Changes in version 1.49b, 2002-08-12:
+Changes in version 1.75f, 2002-12-28:
+
+* In Yacc-style parsers YYLLOC_DEFAULT is now used to compute error
+  locations too.  This fixes bugs in error-location computation.
+
+* Bison now uses a Yacc-style format for conflict reports, e.g.,
+  "conflicts: 2 shift/reduce, 1 reduce/reduce".
+
+* Bison now warns if it detects conflicting outputs to the same file,
+  e.g., it generates a warning for "bison -d -o foo.h foo.y" since
+  that command outputs both code and header to foo.h.
+
+Changes in version 1.75e, 2002-12-24:
+
+* 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.
+
+* References to the experimental %lex-param and %parse-param directives
+  have been temporarily removed from the manual, since we don't want
+  users to rely upon these features quite yet.
+
+Changes in version 1.75d, 2002-12-13:
+
+* Semicolons are once again optional at the end of grammar rules.
+  This reverts to the behavior of Bison 1.33 and earlier, and improves
+  compatibility with Yacc.
+
+* Type clashes now generate warnings, not errors.
+
+* Yacc command and library now available
+  The Bison distribution now installs a yacc command, as POSIX requires.
+  Also, Bison now installs a small library liby.a containing
+  implementations of Yacc-compatible yyerror and main functions.
+  This library is normally not useful, but POSIX requires it.
+
+* %lex-param, %parse-param
+  These now take just one operand, not two.
+
+* The documentation now emphasizes that yylex and yyerror must be
+  declared before use.  C99 requires this.
+
+* The documentation license has been upgraded to version 1.2
+  of the GNU Free Documentation License.
+
+Changes in version 1.75c, 2002-11-25:
+
+* "parse error" -> "syntax error"
+  Bison now uniformly uses the term "syntax error"; formerly, the code
+  and manual sometimes used the term "parse error" instead.  POSIX
+  requires "syntax error" in diagnostics, and it was thought better to
+  be consistent.
+
+* "parsing stack overflow..." -> "parser stack overflow"
+  GLR parsers now report "parser stack overflow" as per the Bison manual.
+
+* GLR and inline
+  Users of Bison have to decide how they handle the portability of the
+  C keyword `inline'.
+
+Changes in version 1.75b, 2002-11-13:
+
+* %destructor
+  It is now possible to reclaim the memory associated to symbols
+  discarded during error recovery.  This feature is still experimental.
+
+* Bison now parses C99 lexical constructs like UCNs and
+  backslash-newline within C escape sequences, as POSIX 1003.1-2001 requires.
+
+* --no-line works properly.
+
+* %error-verbose
+  This new directive is preferred over YYERROR_VERBOSE.
+
+* %lex-param, %parse-param
+  These new directives are preferred over PARSE_PARAM and LEX_PARAM.
+  In addition, they provide a means for yyerror to remain pure, and
+  to access to the current location.
+
+  #defining yyerror to steal internal variables is strongly
+  discouraged.  It is not guaranteed to work for ever.
+
+* #line
+  Bison now recognizes #line in its input, and forwards them.
+
+* #line
+  File names are properly escaped. E.g. foo\bar.y give #line 123 "foo\\bar.y".
+
+Changes in version 1.75a, 2002-10-24:
+
+* Bison can no longer be built by a K&R C compiler; it requires C89 or
+  later to be built.  This change originally took place a few versions
+  ago, but nobody noticed until we recently asked someone to try
+  building Bison with a K&R C compiler.
+
+Changes in version 1.75, 2002-10-14:
+
+* Bison should now work on 64-bit hosts.
+
+* Indonesian translation thanks to Tedi Heriyanto.
+
+* GLR parsers
+  Fix spurious parse errors.
+
+* Pure parsers
+  Some people redefine yyerror to steal yyparse' private variables.
+  Reenable this trick until an official feature replaces it.
+
+* Type Clashes
+  In agreement with POSIX and with other Yaccs, leaving a default
+  action is valid when $$ is untyped, and $1 typed:
+
+       untyped: ... typed;
+
+  but the converse remains an error:
+
+       typed: ... untyped;
+
+* Values of mid-rule actions
+  The following code:
+
+       foo: { ... } { $$ = $1; } ...
+
+  was incorrectly rejected: $1 is defined in the second mid-rule
+  action, and is equal to the $$ of the first mid-rule action.
+
+Changes in version 1.50, 2002-10-04:
 
 * GLR parsing
   The declaration
@@ -11,27 +147,30 @@ Changes in version 1.49b, 2002-08-12:
   %dprec and %merge on grammar rules allow parse-time resolution of
   ambiguities.  Contributed by Paul Hilfinger.
 
+  Unfortunately Bison 1.50 does not work properly on 64-bit hosts
+  like the Alpha, so please stick to 32-bit hosts for now.
+
 * Output Directory
   When not in Yacc compatibility mode, when the output file was not
-  specified, runnning `bison foo/bar.y' created `foo/bar.c'.  It
+  specified, running `bison foo/bar.y' created `foo/bar.c'.  It
   now creates `bar.c'.
 
 * Undefined token
   The undefined token was systematically mapped to 2 which prevented
-  the use of 2 from the user.  This is no longer the case.
+  the use of 2 by the user.  This is no longer the case.
 
 * Unknown token numbers
-  If yylex returned a code out of range, yyparse could die.  This is
+  If yylex returned an out of range value, yyparse could die.  This is
   no longer the case.
 
 * Error token
-  According to POSIX, the error token should be numbered as 256.
+  According to POSIX, the error token must be 256.
   Bison extends this requirement by making it a preference: *if* the
   user specified that one of her tokens is numbered 256, then error
   will be mapped onto another number.
 
 * Verbose error messages
-  They no longer report `..., expecting error or...' for state where
+  They no longer report `..., expecting error or...' for states where
   error recovery is possible.
 
 * End token
@@ -95,9 +234,9 @@ Changes in version 1.49b, 2002-08-12:
   the user symbol is used in the reports, the graphs, and the verbose
   error messages instead of `$end', which remains being the default.
   For instance
-     %token YYEOF 0
+     %token MYEOF 0
   or
-     %token YYEOF 0 "end of file"
+     %token MYEOF 0 "end of file"
 
 * Semantic parser
   This old option, which has been broken for ages, is removed.
@@ -107,12 +246,12 @@ Changes in version 1.49b, 2002-08-12:
   Croatian, thanks to Denis Lackovic.
 
 * Incorrect token definitions
-  When fed with `%token 'a' "A"', Bison used to output `#define 'a' 65'.
+  When given `%token 'a' "A"', Bison used to output `#define 'a' 65'.
 
 * Token definitions as enums
   Tokens are output both as the traditional #define's, and, provided
   the compiler supports ANSI C or is a C++ compiler, as enums.
-  This helps debuggers producing symbols instead of values.
+  This lets debuggers display names instead of integers.
 
 * Reports
   In addition to --verbose, bison supports --report=THINGS, which
@@ -152,7 +291,6 @@ Changes in version 1.35, 2002-03-25:
 
   This kludge also addresses some C++ problems when the stack was
   extended.
-
 \f
 Changes in version 1.34, 2002-03-12:
 
@@ -278,8 +416,8 @@ Changes in version 1.31, 2002-01-14:
 \f
 Changes in version 1.30, 2001-10-26:
 
-* `--defines' and `--graph' have now an optionnal argument which is the
-  output file name. `-d' and `-g' do not change, they do not take any
+* `--defines' and `--graph' have now an optional argument which is the
+  output file name. `-d' and `-g' do not change; they do not take any
   argument.
 
 * `%source_extension' and `%header_extension' are removed, failed
@@ -402,16 +540,17 @@ End:
 
 -----
 
-Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free
+Software Foundation, Inc.
 
-This file is part of GNU Autoconf.
+This file is part of Bison, the GNU Compiler Compiler.
 
-GNU Autoconf 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 Autoconf 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.