X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e0d634e5c3ca6578493e53d9f7c581954970f170..fd2df2ede47e0254d528ffb890a6d5b9b1dbb3a6:/ChangeLog diff --git a/ChangeLog b/ChangeLog index ba1d459f..0c4f8132 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,423 @@ +2005-07-05 Paul Eggert + + * 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 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 + + 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 + + * doc/bison.texinfo (C++ Parser Interface): Use defcv to define + class typedefs. + +2005-06-22 Akim Demaille + + * doc/bison.texinfo (C++ Language Interface): First stab. + (C++ Parsers): Remove. + +2005-06-22 Akim Demaille + + * data/lalr1.cc (yylex_): Honor %lex-param. + +2005-06-22 Akim Demaille + + 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 + + * 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 + + * 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 + + Fix infringement on user name space reported by Janos Zoltan Szabo. + * data/yacc.c (yyparse): strlen -> yystrlen. + +2005-05-30 Akim Demaille + + * data/lalr1.cc (_): New. + Translate the various messages. + +2005-05-27 Paul Eggert + + 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 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 + + 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 + + * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the + error message syntax used by gcc-4.0. + +2005-05-23 Paul Eggert + + * 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 + + * 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 + + * data/glr.c, data/lalr1.cc: Update copyright date. + + Fix a destructor bug reported by Wolfgang Spraul in + . + * 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 + + * 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 + + * 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 + + * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does. + Problem reported by Ralf Menzel. + +2005-05-01 Paul Eggert + + * 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 + + * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment. + +2005-04-17 Paul Eggert + + * 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 + + * 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 + + * 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. + ("'"): 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + . + + * 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 + + * 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 + + * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for + putsym. Typo reported by Sebastian Piping. + +2005-02-23 Paul Eggert + + * 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 + + * 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 + + * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone + wants to redefine G_VIEW. + +2005-01-27 Paul Eggert + + * src/vcg.c (get_view_str): Remove case for normal_view. + Problem reported by twlevo@xs4all.nl. + 2005-01-24 Paul Eggert + * 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. @@ -7305,7 +7723,7 @@ * 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. @@ -13121,7 +13539,7 @@ ----- 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. @@ -13137,5 +13555,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 -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.