+2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyFail): Drastically simplify; since the format argument
+ never had any % directives, we can simply pass it to yyerror.
+ (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
+ be modified later, as that is the usual style in glr.c.
+ Problems reported by Paul Hilfinger.
+
+ Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
+ and size overflow errors.
+ * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
+ in case the user prolog sets feature-test macros like _GNU_SOURCE.
+ (YYSIZEMAX): New macro.
+ (yystpcpy): New function, taken from yacc.c.
+ (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
+ (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
+ so that we don't have to maintain their signatures.
+ (yyFail): Check for buffer overflow, by using vsnprintf rather
+ than vsprintf. Allocate a bigger buffer if possible.
+ Report an error if buffer allocation fails.
+ (yyStackOverflow): New function.
+ (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
+ the initialization was successful. It might fail if storage was
+ exhausted.
+ (yyexpandGLRStack): Add more checks for storage allocation failure.
+ Use yyStackOverflow to report failures.
+ (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
+ (yysplitStack, yyprocessOneStack, yyparse, yypstack):
+ Don't assume stack number fits in int.
+ (yysplitStack): Check for storage allocation failure.
+ (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
+ can print diagnostics on storage allocation failure. All callers
+ changed.
+ (yyresolveValue): Use yybool for boolean.
+ (yyreportSyntaxError): Check for size-calculation overflow.
+ This code is taken from yacc.c.
+ (yyparse): Check for storage allocation errors when allocating
+ the initial stack.
+
+2005-07-05 Akim Demaille <akim@epita.fr>
+
+ Extract calc++ from the documentation.
+ * doc/bison.texinfo (Calc++): Add the extraction marks.
+ * examples/extexi: New, from the aborted GNU Programming 2E.
+ Separate the different paragraph of a file with empty lines.
+ * examples/Makefile: Use it to extract the whole calc++ example.
+
+2005-06-24 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
+ class typedefs.
+
+2005-06-22 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (C++ Language Interface): First stab.
+ (C++ Parsers): Remove.
+
+2005-06-22 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (yylex_): Honor %lex-param.
+
+2005-06-22 Akim Demaille <akim@epita.fr>
+
+ Start a set of simple examples.
+ * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
+ * examples/calc++/calc++-driver.hh,
+ * examples/calc++/calc++-parser.yy,
+ * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
+ * examples/calc++/compile, examples/calc++/test: New.
+
+2005-06-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
+ extern "C" {}. This fixes a problem reported by Paul Hilfinger,
+ which stems from the 2005-05-27 patch.
+
+2005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
+
+ * data/glr.c: Modify treatment of unused parameters to permit use
+ of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
+
+2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix infringement on user name space reported by Janos Zoltan Szabo.
+ * data/yacc.c (yyparse): strlen -> yystrlen.
+
+2005-05-30 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (_): New.
+ Translate the various messages.
+
+2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix infringement on user name space reported by Bruno Haible.
+ * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
+ Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
+ the user's name space.
+ (alloca): Include <stdlib.h> to get it, if it's not built in.
+ (YYMALLOC, YYFREE): Define only if needed.
+ (malloc, free): Declare, but only if needed, as this infringes on
+ the user name space.
+
+2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
+ * lib/bitset.c (bitset_print): Don't assume size_t can be printed
+ with %d format.
+ * lib/ebitset.c (min, max): Undef before defining.
+ * lib/vbitset.c (min, max): Likewise.
+ * lib/subpipe.c (create_subpipe): Save local variables in case
+ vfork clobbers them.
+
+2005-05-24 Bruno Haible <bruno@clisp.org>
+
+ * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
+ error message syntax used by gcc-4.0.
+
+2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * README: Mention m4 1.4.3. Remove obsolete advice about
+ Sun Forte Developer 6 update 2, VMS, and MS-DOS.
+
+ * bootstrap: Remove workaround for problem I encountered with
+ gettext 0.14.1; it seems to be fixed now.
+
+2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.0a.
+
+ * src/files.c: Include "stdio-safer.h"; this fixes a typo in
+ the previous change.
+
+ Various maintainer cleanups.
+ * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
+ conftest*, for benefit of CVS commands run at the same time as
+ "configure". Add build-aux, since "bootstrap" now creates it and
+ its subfiles.
+ * Makefile.cfg (move_if_change): Remove.
+ * Makefile.maint: Remove the update stuff; we now use "bootstrap".
+ (ftp-gnu, www-gnu, move_if_change, local_updates, update):
+ (po_repo, do-po-update, po-update, wget_files, get-targets):
+ (config.guess-url_prefix, config.sub-url_prefix):
+ (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
+ (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
+ ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
+ Remove.
+ * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
+ this is now the recommended name.
+ * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
+ depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
+ ylwrap. These files now go into build-aux.
+ * config/move-if-change: Remove.
+ * config/prev-version.txt: Bump from 1.75 to 2.0.
+
+ * bootstrap: Add stdio-safer, unistd-safer modules.
+ Remove m4/glibc2.m4 (introduced by latest gnulib, but
+ we don't need it).
+ * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
+ fopen-safer.c, stdio-safer.h, unistd-safer.h.
+ * lib/subpipe.c: Include "unistd-safer.h".
+ (create_subpipe): Make sure all the newly-created
+ file descriptors are > 2, so that diagnostics don't
+ get sent down them (which might cause Bison to hang, in theory).
+ * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
+ * src/files.c (xfopen): Use fopen_safer, not fopen.
+
+ * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
+ yesterday's yacc.c fix.
+
+2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c, data/lalr1.cc: Update copyright date.
+
+ Fix a destructor bug reported by Wolfgang Spraul in
+ <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
+ * data/yacc.c (yyabortlab): Don't call destructor, and
+ don't set yychar to EMPTY.
+ (yyoverflowlab): Don't call destructor.
+ (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
+ * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
+ since we no longer output the message "discarding lookahead token
+ end of input ()".
+
+2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
+
+ * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
+ fix a small glitch in debugging output.
+ (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
+ after YY_SYMBOL_PRINT where needed.
+
+ (struct yyGLRState): Add some comments.
+ (struct yySemanticOption): Add some comments.
+ (union yyGLRStackItem): Add comment.
+
+ (yymergeOptionSets): Correct this to properly perform the union,
+ avoiding infinite reported by Michael Rosien.
+ Update comment.
+
+ * tests/glr-regression.at: Add test for GLR merging error reported
+ by M. Rosien.
+
+2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
+ Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
+ README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
+ data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
+ data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
+ doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
+ lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
+ lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
+ lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
+ lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
+ lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
+ lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
+ lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
+ lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
+ m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
+ src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
+ src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
+ src/derives.h, src/files.c, src/files.h, src/getargs.c,
+ src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
+ src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
+ src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
+ src/output.h, src/parse-gram.c, src/parse-gram.h,
+ src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
+ src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
+ src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
+ src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
+ src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
+ src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
+ src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
+ tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
+ tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
+ tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
+ tests/reduce.at, tests/regression.at, tests/sets.at,
+ tests/synclines.at, tests/testsuite.at, tests/torture.at:
+ Update FSF postal mail address.
+
+2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
+ Problem reported by Ralf Menzel.
+
+2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/actions.at: Test that stack overflow invokes destructors.
+ From Marcus Holland-Moritz.
+ * data/yacc.c (yyerrlab): Move the code that destroys the stack
+ from here....
+ (yyreturn): to here. That way, destructors are called properly
+ even if the stack overflows, or the user calls YYACCEPT or
+ YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
+ (yyoverflowlab): Destroy the lookahead.
+
+2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
+
+2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Bison-generated C parsers no longer quote literal strings
+ associated with tokens.
+ * src/output.c (prepare_symbols): Don't escape strings,
+ since users don't want to see C escapes.
+ * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
+ in diagnostics.
+ * tests/input.at (Torturing the Scanner): Likewise.
+ * tests/regression.at (Token definitions, Web2c Actions): Likewise.
+
2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
* tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
* tests/atlocal.at (GCC): New.
* tests/synclines.at (AT_TEST_SYNCLINE): New macro.
- (Prologue synch line, ,%union synch line, Postprologue synch line)
+ (Prologue synch line, %union synch line, Postprologue synch line)
(Action synch line, Epilogue synch line): New tests.
* src/reader.c (parse_union_decl): Define the muscle stype_line.
* data/bison.simple, data/bison.c++: Use it.
You should have received a copy of the GNU General Public License
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.
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.