X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/4d1801f1a888fc5687ae103fb76935ef0d24cbaf..fd2df2ede47e0254d528ffb890a6d5b9b1dbb3a6:/ChangeLog diff --git a/ChangeLog b/ChangeLog index fbc23993..0c4f8132 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,105 @@ +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. @@ -7621,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.