+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.
+