]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/symtab.h, src/symtab.c (symbol_print): New.
[bison.git] / ChangeLog
index 254341c2dcc29fb62ca5d93a5dd82775b24dc787..e8c2016a80cb9a678b0e05caeae68d3c990340b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,858 @@
+2005-07-12  Akim Demaille  <akim@epita.fr>
+
+       * src/symtab.h, src/symtab.c (symbol_print): New.
+       * src/symlist.h, src/symlist.c (symbol_list_print): New.
+       * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
+
+2005-07-12  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (b4_syncline): Fix (swap) the definitions of
+       b4_at_dollar and b4_dollar_dollar.
+
+2005-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
+       and Pennello's paper.
+
+2005-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yyparse): Undo previous patch.  Instead,
+       set yylsp[0] and yyvsp[0] only if the initial action
+       sets yylloc and yylval, respectively.
+
+       * data/yacc.c (yyparse): In the initial action, set
+       yylsp[0] and yyvsp[0] rather than yylloc and yylval.
+       This avoids the use of undefined variables if the initial
+       action does not set yylloc and/or yylval.
+
+2005-07-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
+       * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
+       Remove from CVS.  These files are automatically generated.
+       * examples/extexi: Clarify that this file is now part of Bison,
+       not GNU M4, and that it works with any POSIX-compatible Awk.
+       * examples/calc++/Makefile.am (run_extexi): Remove; not used.
+       ($(calc_extracted)): Renamed from $(calc_sources_extracted),
+       so that we also get calc++-parser.yy.  Geneate it.
+       Use $(AWK), not gawk, since any conforming Awk will do.
+       Put comment before action, since older 'make' can't handle comment
+       in action.
+       $(BUILT_SOURCES): List all built sources, not just some of them.
+       $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
+       $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
+       $($(calc_sources_generated)): Remove unnecessary test for existence
+       of target.  (This had a shell syntax error anyway; a stray "x".)
+       (calc_extracted): List $(srcdir)/calc++-parser.yy, not
+       calc++-parser.yy.
+       * examples/.cvsignore, examples/calc++/.cvsignore: New files.
+
+       * bootstrap (gnulib_modules): Add gettext, now that it's no longer
+       implied by the other modules.
+
+2005-07-06  Akim Demaille  <akim@epita.fr>
+
+       Bind examples/calc++ to the package.
+       * examples/calc++/Makefile: Remove, replaced by...
+       * examples/calc++/Makefile.am: ... this new file.
+       * examples/calc++/test: Remove input.
+       * examples/calc++/compile: Remove.
+       * examples/Makefile.am: New.
+       * configure.ac, Makefile.am: Adjust.
+       * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
+
+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
+       the data size is known to be too small and we can't increase it.
+       This works around an HP-UX 11.00 glitch reported by Andrew Benham.
+
+2005-04-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/parse-gram.y: Include quotearg.h.
+       (string_as_id): Quote $1 before using it as a key, since the
+       lexer no longer quotes it for us.
+       (string_content): Don't strip quotes, since lexer no longer
+       quotes it for us.
+       * src/scan-gram.l: Include quotearg.h.
+       ("\""): Omit quote.
+       ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
+       a key, since the rest of the lexer doesn't quote it.
+       * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
+       * tests/regression.at (Token definitions): Check for backslashes
+       in token strings.
+
+       * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
+       (YYSIZE_T): Define to unsigned long int when using an older compiler.
+       (yyparse): Revamp code to generate long syntax error message, to
+       make it easier to translate, and to avoid problems with arithmetic
+       overflow.  Change "virtual memory" to "memory" in diagnostic, since
+       we don't know whether the memory is virtual.
+
+2005-04-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Bison-generated C parsers now use the _ macro to
+       translate strings.
+       * data/yacc.c (_) [!defined _]: New macro.
+       All English strings wrapped inside this macro.
+       * doc/bison.texinfo (Bison Parser): Document _.
+       * po/POTFILES.in: Include src/parse-gram.c, since it now
+       includes translateable strings that parse-gram.y doesn't.
+
+2005-04-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/symtab.c (symbol_make_alias): Call symbol_type_set,
+       reverting the 2004-10-11 change to this function.
+       (symbol_check_alias_consistency): Don't call symbol_type_set
+       if the type name is already correct.
+       * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
+
+2005-03-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/regression.at (Token definitions): Don't use a token named
+       c, as that generates a "#define c ..." that runs afoul of buggy
+       stdlib.h that uses the identifier c as a member of struct
+       drand48_data.  Problem reported by Horst Wente.
+
+2005-03-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap: Change translation URL from
+       http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
+       http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
+       redirection glitches.  Problem reported by twlevo@xs4all.nl.
+
+2005-03-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
+       after operands; POSIX says this isn't portable for the c99 command.
+
+2005-03-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/glr-regression.at (glr-regr2a.y): Try to dump core
+       immediately if a data overrun has occurred; this may help us track
+       down what may be a spurious failure on MacOS.
+
+2005-03-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Respond to problems reported by twlevo@xs4all.nl.
+
+       * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
+
+       * src/vcg.h: Comment fix.
+       * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
+       (G_CMAX): Change to -1 instead of INT_MAX.
+
+       * data/yacc.c (yyparse): Omit spaces before #line.
+
+2005-03-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/tables.c (state_number_to_vector_number): Put it inside an
+       "#if 0", since it's not currently used.  Problem reported by
+       Roland McGrath.
+
+2005-03-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/output.c (escaped_output): Renamed from
+       escaped_file_name_output, since we now use it for symbol tags as
+       well.  All uses changed.
+       (symbol_destructors_output, symbol_printers_output):
+       Escape symbol tags too.
+       Problem reported by Matyas Forstner in
+       <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
+
+       * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
+       not needed.
+       * src/output.c (user_actions_output, token_definitions_output,
+       symbol_destructors_output, symbol_printers_output): Likewise.
+       * src/reader.c (prologue_augment): Likewise.
+       * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
+
+       * src/vcg.c (output_edge): Don't quote linestyle arg.
+       Problem reported by twlevo@xs4all.nl.
+
+2005-02-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
+       example, reported by Derek M Jones.  Also, make the example even
+       more outrageous, to better illustrate how bad the problem is.
+
+2005-02-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
+       putsym.  Typo reported by Sebastian Piping.
+
+2005-02-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Language and Grammar): some -> same
+       (Epilogue): int he -> in the
+       Typos reported by Sebastian Piping via Justin Pence.
+
+2005-02-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/glr-regression.at (Improper handling of embedded actions
+       and dollar(-N) in GLR parsers): Renamed from "Improper handling of
+       embedded actions and $-N in GLR parsers", work around an Autoconf bug
+       with dollar signs in test names.
+       * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
+       for a similar reason.
+
+2005-01-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
+       wants to redefine G_VIEW.
+
+2005-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/vcg.c (get_view_str): Remove case for normal_view.
+       Problem reported by twlevo@xs4all.nl.
+
+2005-01-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
+       Problem reported by twlevo@xs4all.nl.
+
+       * doc/bison.texinfo: Change @dircategory from "GNU programming
+       tools" to "Software development".  Requested by Richard Stallman
+       via Karl Berry.
+
+2005-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
+       Problem reported by twlevo@xs4all.nl.
+
+2005-01-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
+       keyword; it's not needed with modern compilers, and it doesn't
+       affect correctness with older compilers.  Suggested by
+       twlevo@xs4all.nl.
+
+2005-01-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (yyuserAction): Add "default: break;" case to pacify
+       gcc -Wswitch-default.
+       * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
+       * data/yacc.c (yyparse): Likewise.
+
+2005-01-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
+       already.  Let config.h define any nonstandard values.
+
+2005-01-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
+       for the benefit of slower hosts.  Problem reported by
+       Nelson H. F. Beebe.
+
+2005-01-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
+       being defined and not used.
+       * data/lalr1.cc (yyparse): Likewise.
+       Use "if (false)" rather than "if (0)".
+
+2005-01-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * TODO: Mention that we should allow NUL bytes in tokens.
+
+2005-01-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/scan-skel.l (<<EOF>>): Don't close standard output.
+       Problem reported by Hans Aberg.
+
+2005-01-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/getargs.c (version): Happy new year; update overall
+       program copyright date from 2004 to 2005.
+
+       * src/scan-skel.l ("@output ".*\n): Don't close standard output.
+       Problem reported by Hans Aberg.
+       * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
+       (Output file names.): Add a test for the case when standard output
+       is closed.
+
+2004-12-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
+       to fix an oversight in the Bison 2.0 manual.
+
+2004-12-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Version 2.0.  Reformat the existing news items since
+       1.875, so that related items are grouped together.
+       * configure.ac (AC_INIT): Bump version to 2.0.
+       * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
+
+       * tests/torture.at (Exploding the Stack Size with Alloca): Set
+       YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
+       otherwise, we're not testing alloca.  Unfortunately there's no
+       simple way to consult HAVE_ALLOCA here.
+
+       * data/lalr1.cc (yydestruct_): Pacify unused variable warning
+       for yymsg, too.
+
+       * src/LR0.c (new_itemsets): Use memset rather than zeroing by
+       hand.  This avoids a warning about comparing int to size_t when
+       GCC warnings are enabled.
+
+2004-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Bison-generated parsers no longer default to using the
+       alloca function (when available) to extend the parser stack, due
+       to widespread problems in unchecked stack-overflow detection.
+       * data/glr.c (YYMAXDEPTH): Remove undef when zero.  It's the user's
+       responsibility to set it to a positive value.  This lets the user
+       specify a value that is not a preprocessor constant.
+       * data/yacc.c (YYMAXDEPTH): Likewise.
+       (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
+       * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
+       to be a compile-time constant.  However, explain the constraints on it.
+       Also, explain the constraints on YYINITDEPTH.
+       (Table of Symbols): Explain that alloca is no longer the default.
+       Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
+       to 1.
+
+       * doc/bison.texinfo (Location Default Action): Mention that n must
+       be zero when k is zero.  Suggested by Frank Heckenbach.
+
+2004-12-22  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
+       (parser::state_type, parser::semantic_type, parser::location_type):
+       Private, not public.
+       (parser::parse): Return ints, not bool.
+       Returning a bool introduces a problem: 0 corresponds to false, and
+       it seems weird to return false on success.  Returning true changes
+       the conventions for yyparse.
+       Alternatively we could return void and send an exception.
+       There is no clear consensus (yet?).
+       (state_stack, semantic_stack, location_stack): Rename as...
+       (state_stack_type, semantic_stack_type, location_stack_type): these.
+       Private, not public.
+       * tests/c++.at: New.
+       * tests/testsuite.at, tests/Makefile.am: Adjust.
+
+2004-12-21  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (parser::parse): Return a bool instead of an int.
+
+2004-12-21  Akim Demaille  <akim@epita.fr>
+
+       Don't impose std::string for filenames.
+
+       * data/lalr1.cc (b4_filename_type): New.
+       (position::filename): Use it.
+       (parser.hh): Move the inclusion of stack.hh and location.hh below
+       the user code, so that needed headers for the filename type can be
+       included first.
+       Forward declare them before the user code.
+       * tests/Makefile.am (check-local, installcheck-local): Pass
+       TESTSUITEFLAGS to the TESTSUITE.
+
+2004-12-20  Akim Demaille  <akim@epita.fr>
+
+       Use more STL like names: my_class instead of MyClass.
+
+       * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
+       (SemanticStack, SemanticType, StateStack, StateType)
+       (TokenNumberType, Stack, Slice, Traits, Parser::location)
+       (Parser::value): Rename as...
+       (location_stack, location_type, rhs_number_type, semantic_stack)
+       (semantic_type, state_stack, state_type, token_number_type, stack)
+       (slice, traits, parser::yylloc, parser::yylval): these.
+
+       * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
+
+2004-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
+       * data/yacc.c (YYLLOC_DEFAULT): Likewise.
+
+2004-12-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove uses of 'short int' and 'unsigned short int'.  This raises
+       some arbitrary limits.  It uses more memory but nowadays that's
+       not much of an issue.
+
+       This change does not affect the generated parsers; that's a different
+       task, as some users will want to conserve memory there.
+
+       Ideally we should use size_t to represent all object counts, and
+       something like ptrdiff_t to represent signed differences of object
+       counts; but that will require more code-cleanup than I have the
+       time to do right now.
+
+       * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
+       Use size_t, not int or short int, to count objects.
+       * src/closure.c (nritemset, closure): Likewise.
+       * src/closure.h (nritemset, closure): Likewise.
+       * src/nullable.c (nullable_compute): Likewise.
+       * src/print.c (print_core): Likewise.
+       * src/print_graph.c (print_core): Likewise.
+       * src/state.c (state_compare, state_hash): Likewise.
+       * src/state.h (struct state): Likewise.
+       * src/tables.c (default_goto, goto_actions): Likewise.
+
+       * src/gram.h (rule_number, rule): Use int, not short int.
+       * src/output.c (prepare_rules): Likewise.
+       * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
+       errs, reductions): Likewise.
+       * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
+       Likewise.
+       * src/tables.c (vector_number, tally, action_number,
+       ACTION_NUMBER_MINIMUM): Likewise.
+       * src/output.c (muscle_insert_short_int_table): Remove.
+
+2004-12-17  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Extensive Doxygenation.
+       (error_): Rename as...
+       (error): this, since it is visible to the user.
+       Adjust callers.
+       (Parser::message): Now an automatic variable from...
+       (Parser::yyreport_syntax_error_): here.
+       * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
+       Parser::error.
+       * tests/input.at: Escape $.
+
+2004-12-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
+       Parenthesize rhs to avoid obscure problems with mistakes like
+       "foo$$bar = foo$1bar;".  Problem reported by twlevo at xs4all.
+       * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
+       b4_rhs_location): Likewise.
+       * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
+       b4_rhs_location): Likewise.
+
+2004-12-16  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
+       yacc.c: be sure to stay within yycheck_.
+       * tests/actions.at: Re-enable C++ tests.
+
+2004-12-16  Akim Demaille  <akim@epita.fr>
+
+       * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
+       real.
+
+2004-12-16  Akim Demaille  <akim@epita.fr>
+
+       Use #define to handle the %name-prefix.
+
+       * data/glr.c, data/yacc.c: Comment changes.
+       * data/lalr1.cc (yylex): Use #define to select the name of yylex,
+       so that one can refer to yylex in the parser file, and have it
+       renamed, as is the case with other skeletons.
+
+2004-12-16  Akim Demaille  <akim@epita.fr>
+
+       Move lalr1.cc internals into yy*.
+
+       * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
+       (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
+       (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
+       (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
+       (empty_, final_, terror_, errcode_, ntokens_)
+       (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
+       (looka_, ilooka_, error_range_, nerrs_):
+       Rename as...
+       (yysemantic_stack_, yylocation_stack_, yystate_stack_)
+       (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
+       (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
+       (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
+       (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
+       (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
+       (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
+       (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
+       these.
+
+2004-12-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some problems reported by twlevo at xs4all.
+       * src/symtab.c (symbol_new): Report an error if the input grammar
+       contains too many symbols.  This is better than calling abort() later.
+       * src/vcg.h (enum layoutalgorithm): Remove.  All uses removed.
+       (struct node, struct graph):
+       Rename member expand to stretch.  All uses changed.
+       (struct graph): Remove member layoutalgorithm.  All uses removed.
+       * src/vcg.c (get_layoutalgorithm_str): Remove.  All uses removed.
+       * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
+       All uses changed.
+       (N_STRETCH): Rename from N_EXPAND.  All uses changed.
+
+2004-12-15  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Normalize /** \brief ... */ to ///.
+       Add more Doxygen comments.
+       (symprint_, stack_print_, reduce_print_, destruct_, pop)
+       (report_syntax_error_, translate_): Rename as...
+       (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
+       (yypop_, yyreport_syntax_error_, yytranslate_): this.
+
+2004-12-15  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (lex_): Rename as...
+       (yylex_): this.
+       Move the trace here.
+       Take the %name-prefix into account.
+       Reported by Alexandre Duret-Lutz.
+
+2004-12-15  Akim Demaille  <akim@epita.fr>
+
+       Simplify the C++ parser constructor.
+
+       * data/lalr1.cc (debug_): Rename as...
+       (yydebug_): so that the parser's internals are always in the yy*
+       pseudo namespace.
+       Adjust uses.
+       (b4_parse_param_decl): Remove the leading comma as it is now only
+       called as unique argument list.
+       (Parser::Parser): Remove the constructor accepting a location and
+       an initial debugging level.
+       Remove from the other ctor the argument for the debugging level.
+       (debug_level_type, debug_level, set_debug_level): New.
+
+       * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
+       constructor calls.
+
+2004-12-15  Akim Demaille  <akim@epita.fr>
+
+       Remove b4_root related material: failure experiment
+       (which goal was to allow to derive from a class).
+
+       * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
+       definitions and uses.
+
+2004-12-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
+       not 2, since it's not portable to subtract 1 from the start of an
+       array.  The new item 0 is never set or used.  All uses changed.
+
+       (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
+       the default definition of YYLLOC_DEFAULT.  Problem reported
+       by Frank Heckenbach.
+
+2004-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (YYRHSLOC): Don't have two definitions, one for
+       the normal case and one for the error case.  Just use the
+       first one uniformly.  Problem reported by Frank Heckenbach.
+       (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
+       use exactly the same macro in both places.
+       (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
+       so that the normal-case YYRHSLOC works for the error case too.
+       All uses changed.
+       * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
+       (YYLLOC_DEFAULT): Use the same macro as glr.c.
+       * doc/bison.texinfo (Location Default Action): Don't claim that
+       we have an array of locations.  Use the same macro for both glr
+       and lalr parsers.  Mention YYRHSLOC.  Mention what happens when
+       the index is 0.
+
+2004-12-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * HACKING: Update email addresses to send announcements to.
+
+       * configure.ac (AC_INIT): Bump version to 1.875f.
+
+2004-12-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Version 1.875e.
+       * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
+
+       * src/scan-skel.l: Include "complain.h", for "fatal".
+
+       * src/relation.h (relation_print, relation_digraph):
+       Relation sizes are of type relation_node, not size_t (this is
+       merely a doc fix, since the two types are equivalent).
+       (relation_transpose): Relation sizes are of type relation_node,
+       not int.
+       * src/relation.c: Likewise.
+       (top, infinity): Now of type relation_node, not int.
+       (traverse, relation_transpose): Use relation_node, not int.
+
+       * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
+       with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
+       (yyparse): Remove unused local introduced in 2004-10-25 patch.
+
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
+       specifying whether the test should be skipped.  Use it tp
+       specify that the [%defines %skeleton "lalr1.cc"] tests currently
+       fail on some hosts, and should be skipped.
+
 2004-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        * src/system.h (CALLOC, MALLOC, REALLOC): Remove.  All callers
 2004-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        * src/system.h (CALLOC, MALLOC, REALLOC): Remove.  All callers
 
        * tests/atlocal.at (GCC): New.
        * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
 
        * 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.
        (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.
 -----
 
 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
 -----
 
 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of Bison, the GNU Compiler Compiler.
 
 
 This file is part of Bison, the GNU Compiler Compiler.
 
@@ -12763,5 +13618,5 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with Bison; see the file COPYING.  If not, write to
 
 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.