X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1e547e6e8c125d5b847269b2888e3db2703ee02a..3a4734aa9704c289b0b0435a7226fde7b1df3ae6:/ChangeLog?ds=sidebyside diff --git a/ChangeLog b/ChangeLog index 6312dcce..5ad47e86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,194 @@ +2004-12-25 Paul Eggert + + * 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 + + * 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 + + * 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 + + * data/lalr1.cc (parser::parse): Return a bool instead of an int. + +2004-12-21 Akim Demaille + + 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 + + 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 + + * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions. + * data/yacc.c (YYLLOC_DEFAULT): Likewise. + +2004-12-17 Paul Eggert + + 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 + + * 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 + + * 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 + + * 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 + + * src/print_graph.c (print_graph): Remove layoutalgorithm uses for + real. + +2004-12-16 Akim Demaille + + 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 + + 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 Fix some problems reported by twlevo at xs4all.