X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9668e2be96bf8af3027f6dfa2021fd412ea9be0d..337116ba3d598b027c4e5ca1d174e6af193a38f9:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 00e50485..f98b5afb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,677 @@ +2004-12-10 Paul Eggert + + * 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 is expected to fail. Use it tp + specify that the [%defines %skeleton "lalr1.cc"] tests currently + fail. + +2004-12-08 Paul Eggert + + * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers + changed to use xcalloc, xnmalloc, xnrealloc, respectively, + unless otherwise specified below. + + * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc, + to allocate kernel_base, kernel_items, kernel_size, since + they needn't be initialized to 0. + (allocate_storgae): Likewise, for shiftset, redset, shift_symbol. + * src/closure.c (new_closure): Likewise, for itemset. + * src/derives.c (derives_compute): Likewise, for delts, derives, q. + * src/lalr.c (set_goto_map): Likewise, for temp_map. + (initialize_F): Likewise, for reads, edge, reads[i], includes[i]. + (build_relations): Likewise for edge, states1, includes. + * src/nullable.c (nullable_compute): Likewise, for squeue, relts. + * src/reader.c (packgram): Likewise, for ritem, rules. + * src/reduce.c (nonterminals_reduce): Likewise for nontermmap. + * src/relation.c (relation_digraph): Likewise for VERTICES. + (relation_transpose): Likewise for new_R, end_R. + * src/symtab.c (symbols_token_translations_init): Likewise for + token_translations. + * src/tables.c (save_row): Likewise for froms, tos, conflict_tos. + (token_actions): Likewise for yydefact, actrow, conflrow, + conflict_list. + (save_column): Likewise for froms[symno], tos[symno]. + (goto_actions): Likewise for state_count. + (pack_table): Likewise for base, pos, check. + (tables_generate): Likewise for width. + + * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base + for initial core. Just have a separate core, so we needn't worry + about whether kernel_size and kernel_base are initialized. + + * src/LR0.c (shift_symbol, redset, shiftset, kernel_base, + kernel_size, kernel_items): Remove unnecessary initialization. + * src/conflicts.c (conflicts): Likewise. + * src/derives.c (derives): Likewise. + * src/muscle_tablc (muscle_insert): Likewise. + * src/relation.c (relation_digraph): Likewise. + * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order, + conflrow, conflict_table, conflict_list, table, check): + Likewise. + + * src/closure.c (new_closure): Arg is of type unsigned int, not int. + This is because all callers pass unsigned int. + * src/closure.h (new_closure): Likewise. + + * src/lalr.c (initialize_F): Initialize reads[i] in all cases. + (build_relations): Initialize includes[i] in all cases. + * src/reader.c (packgram): Always initialize rules[ruleno].prec + and rules[ruleno].precsym. Initialize members in order. + * src/relation.c (relation_transpose): Always initialize new_R[i] + and end_R[i]. + * src/table.c (conflict_row): Initialize 0 at end of conflict_list. + + * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0]; + conflict_list[0] was always 0, but now it isn't initialized. + + * src/table.c (table_grow): When conflict_table grew, the grown + area wasn't cleared. Fix this. + + * lib/.cvsignore: Add strdup.c, strdup.h. + * m4/.cvsignore: Add strdup.m4. + +2004-12-07 Paul Eggert + + * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro. + * src/lalr.c (set_goto_map): Don't allow ngotos to equal + GOTO_NUMBER_MAXIMUM, since we occasionally compute + ngotos + 1 without checking for overflow. + (build_relations): Use END_NODE, not -1, to denote end of edges. + * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge, + build_relations): Use goto_number, not int, for goto numbers. + * src/tables.c (save_column, default_goto): Likewise. + +2004-11-23 Akim Demaille + + * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead + of #defining from yystype. + Don't typedef yystype, C++ does not need it. + This lets it possible to forward declare it as union. + +2004-11-23 Paul Eggert + + * bootstrap (gnulib_modules): Add extensions. + Problem reported by Jim Meyering. + +2004-11-22 Paul Eggert + + * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, + src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l, + src/system.h, src/tables.c: XFREE -> free, to accommodate + recent change to gnulib xalloc.h. + Problem reported by Jim Meyering. + +2004-11-17 Akim Demaille + + * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings. + +2004-10-28 Akim Demaille , + Alexandre Duret-Lutz + + * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow + changes. + (YYCDEBUG): Adjust. + Use it instead of cdebug_. + (Parser::debug_stream, Parser::set_debug_stream): New. + (Parser::symprint_): Define cdebug_ for temporary backward + compatibility. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use + debug_stream (). + +2004-11-17 Akim Demaille + + * data/lalr1.cc (Parser:print_): Remove, use %printer instead. + * tests/regression.at (_AT_DATA_DANCER_Y): Adjust. + * tests/calc.at (_AT_DATA_CALC_Y): Ditto. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise. + +2004-10-27 Paul Eggert + + * data/glr.c (yyloc_default): Remove; not used. + Problem reported by Frank Heckenbach. + +2004-10-25 Akim Demaille + + * data/glr.c (YYRHSLOC): Move its definition next to its uses. + Introduce another definition to address simple location arrays. + (yyGLRStack): New member: yyerror_range. + (yyrecoverSyntaxError, yyparse): Update it. + (yyrecoverSyntaxError): Use it when shifting the error token to + have an accurate range, equivalent to the one computed by both + yacc.c and lalr1.cc. + * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so + that column numbers start at column 0, as per GNU Coding + Standards, the others tests, and the doc. + (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC): + Adjust to the above change (first column is 0). + And adjust the location of the "", now covering the whole + line. + +2004-10-22 Akim Demaille + and Paul Eggert + + Remove some arbitrary limits on goto numbers and relations. + * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit + initial values, since they're never used. + (set_goto_map): ngotos is now unsigned, so test for overflow + by seeing whether it wraps around to zero. + * src/lalr.h (goto_number): Now size_t, not short int. + (GOTO_NUMBER_MAXIMUM): Remove. + * src/relation.c (relation_print, traverse, relation_transpose): + Check for END_NODE rather than looking at sign. + * src/relation.h (END_NODE): New macro. + (relation_node): Now size_t, not short int. + +2004-10-22 Paul Eggert + + * doc/bison.texinfo (Language and Grammar): In example, "int" is a + keyword, not an identifier. Problem reported by Baron Schwartz in + . + +2004-10-11 Akim Demaille + + * src/symtab.c (symbol_check_alias_consistency): Also check + type names, destructors, and printers. + Reported by Alexandre Duret-Lutz. + Recode the handling of associativity and precedence in terms + of symbol_precedence_set. + Accept no redeclaration at all, not even equal to the previous + value. + (redeclaration): New. + Use it to factor redeclaration complaints. + (symbol_make_alias): Don't set the type of the alias, let + symbol_check_alias_consistency do it as for other features. + * src/symtab.h (symbol): Add new member prec_location, and + type_location. + * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them. + * tests/input.at (Incompatible Aliases): New. + +2004-10-09 Paul Eggert + + .cvsignore fixes to accommodate gnulib changes, + and the practice of naming build directories "_build". + * .cvsignore: Add "_*". Sort. + * lib/.cvsignore: Add getopt_.h, xalloc-die.c. + * m4/.cvsignore: Add "*_gl.m4". + +2004-10-06 Akim Demaille + + * src/parse-gram.y (add_param): Fix the truncation of trailing + spaces. + +2004-10-05 Akim Demaille + + In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless + whether the reducion was empty or not. This leaves room to + improve the use of YYLLOC_DEFAULT in such a case. + lalr1.cc is still experimental, so changing this is acceptable. + And finally, there are probably not many users who changed the + handling of locations in GLR, so changing is admissible too. + + * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an + empty reduction, set @$ to an empty location ending the previously + stacked symbol. + Adjust uses to make sure the code is triggered on empty + reductions. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the + expected output: empty reductions have empty locations. + +2004-09-29 Akim Demaille + + * data/lalr1.cc: Move towards a more standard C++ coding style + for templates: Class < T > -> Class. + +2004-09-29 Akim Demaille + + * data/lalr1.cc: Reinstall the former ctor, for sake of + compatibility, but warn it will be removed. + Move towards a more standard C++ coding style (i.e., type *var -> + type* var). + +2004-09-27 Paul Eggert + + * src/parse-gram.y (add_param): Rewrite to avoid strchr, + since it's less likely to work if NULs are involved in the future. + +2004-09-27 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration. + +2004-09-27 Akim Demaille + + * data/lalr1.cc (b4_parse_param_decl_1): New. + (b4_parse_param_decl): Use it to have different names between attribute + and argument names. + (b4_cc_constructor_call): Likewise. + +2004-09-24 Akim Demaille + + * src/parse-gram.y (add_param): Strip the leading and trailing + blanks from a formal argument declaration. + (YY_LOCATION_PRINT): New. + +2004-09-24 Akim Demaille + + * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation + after the location. + +2004-09-24 Akim Demaille + + * doc/bison.texinfo (Table of Symbols): Sort. + +2004-09-21 Akim Demaille + + * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove + the useless parentheses. + Suggested by Paul Eggert. + +2004-09-20 Akim Demaille + + Let the initial-action act on the look-ahead, and use it for the + "initial push" (corresponding to an hypothetical beginning-of-file). + And let lalr1.cc honor %initial-action. + + * doc/bison.texinfo (Initial Action Decl): Clarify, and add an + example. + * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment. + (Parser::Parser): Remove the ctor that used to initialize it. + (Parser::parse): Like in the other skeletons, issue the "starting + parse" message before any action. + Honor %initial-action. + Initialize the stacks with the lookahead. + * data/yacc.c: Let $$ and @$ in %initial-action designate the + look-ahead. + Push them in the stacks. + * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations. + +2004-09-20 Akim Demaille + + * doc/bison.texinfo (Initial Action Decl): New. + +2004-09-20 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a + clearer criterion to define it. + (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL. + When reducing on an empty RHS, use the latest stacked location as + location. + yylloc is not always available. + * data/glr.c: Likewise. + Also, honor initial-actions. + +2004-09-20 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): New. + Define when we know YYLTYPE's structure, i.e., when the default + YYLLOC_DEFAULT is used. + * data/c.m4 (b4_yysymprint_generate): Use it. + * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial + value of the result. + (error_start_): Replace with... + (error_range_): this location array. + This allows to replace code relying on the implementation of + locations by portable code. + * data/yacc.c (yylerrsp): Replace with... + (yyerror_range): this. + Every time a token is popped, update yyerror_range[0], to have an + accurate location for the error token. + * data/glr.c (YY_LOCATION_PRINT): New. + (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT: + deference a pointer. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer + report the location in %printers. + + * src/scan-skel.l: Instead of abort, report error messages to ease + understanding skeleton scanning failures. + +2004-09-16 Akim Demaille + + * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as... + (iterator, const_iterator): these, to be more in the C++ spirit. + Also, return reverse iterators so that when displaying the stack + we display its bottom first. + (Parser::stack_print_, Parser::reduce_print_): Match the messages + from yacc.c. + We should probably use vector here though. + +2004-09-16 Akim Demaille + + Have more complete shift traces. + + * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT + to report Shifts instead of ad hoc YYDPRINTF invocations, + including for the error token. + * data/lalr1.cc (symprint_): Output the location. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't + output the location within the %printer. + Activate GLR tests, at least to make sure they compile properly. + They still don't pass though. + * tests/calc.at: Adjust expect verbose output, since now "Entering + state..." is on a different line than the "Shifting" message. + +2004-09-08 Akim Demaille + + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the + Bison directive from the Bison file to the invocation of this + macro, so that these directives are passed to + AT_BISON_OPTION_PUSHDEFS to get correct help macros. + Use these helping macros (e.g., AT_LOC, AT_VAL and so forth). + Move the AT_SETUP/AT_CLEANUP outside, to report as test title + the extra Bison directives instead of the whole series. + Change the grammar so that there are recoverable errors, and + unrecoverable errors. Now we can have the parser give up before + consuming the whole input. As a result we now can observe that + the lookahead is freed when needed. + Change the parser source to parse argv[1] instead of a hard coded + string. + Simplify yylex, and give a value and location to EOF. + Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that + passed directives already coded in the file. + Add some tests to check the location of "error". + For some tests, the C++ parser is correct, and not yacc.c. + For other tests, they provide different, but unsatisfying, values, + so keep the C++ value so that at least one parser is "correct" + according to the test suite. + (Actions after errors): Remove, this is subsumed by the + AT_CHECK_PRINTER_AND_DESTRUCTOR series. + +2004-09-06 Akim Demaille + + * data/lalr1.cc: Adjust the indentation of the labels. + (Parser::pop): New. + Use it. + +2004-09-06 Akim Demaille + + * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional + argument, an informative message. + Call YY_SYMBOL_PRINT. + Adjust all callers: integrate the associated YY_SYMBOL_PRINT. + * data/lalr1.cc (destruct_): Likewise. + In addition, no longer depend on b4_yysymprint_generate and + b4_yydestruct_generate to generate these functions, do it "by + hand". + +2004-09-03 Akim Demaille + + * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was + invoked, yydestruct the lookahead. + * tests/calc.at (Calculator $1): Update the expected lengths of + traces: there is an added line for the discarded lookahead. + * doc/bison.texinfo (Destructor Decl): Some rewording. + Define "discarded" symbols. + +2004-09-02 Akim Demaille + + * data/lalr1.cc (translate_, destruct_): No reason to be static. + +2004-09-02 Akim Demaille + + * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used. + (YYDSYMPRINTF): Rename as... + (YY_SYMBOL_PRINT): this. + * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous + two. + Use it instead of direct symprint_ calls. + (yybackup): Tweak the "Now at end of input" case to match yacc.c's + one. + +2004-09-02 Akim Demaille + + * data/lalr1.cc (b4_yysymprint_generate): New. + (symprint_): New member function, defined when YYDEBUG. + Use it consistently instead of token/nterm debugging output by + hand. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust + %printer calls to use cdebug_ when using lalr1.cc. + +2004-08-30 Florian Krohm + + * data/glr.c: Guard the declarations of yypstack and yypdumpstack + with #ifdef YYDEBUG. + +2004-08-26 Akim Demaille + + * doc/bison.texinfo (Implementing Loops): Rename as... + (Implementing Gotos/Loops): this. + +2004-08-13 Paul Eggert + + Adjust to latest gnulib. + * bootstrap (gnulib_modules): Add xalloc-die. + Set LC_ALL=C so that file names sort consistently. + Prefer the gnulib copies of gettext.m4, glibc21.m4, + inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4, + uintmax_t.m4, ulonglong.m4. + (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4, + po.m4 since we are now using _gl.m4 instead. + +2004-08-10 Florian Krohm + + * src/scan-action.l: Remove. Scanning of semantic actions is + handled in scan-gram.l. + +2004-08-07 Florian Krohm + + * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup. + + * src/location.h (struct): The file member is a uniqstr. + (equal_boundaries): Use UNIQSTR_EQ for comparison. + +2004-07-22 Paul Eggert + + Fix bug with non-%union parsers that have printers or destructors, + which led to a Bison core dump. Reported by Peter Fales in + . + + * data/c.m4 (b4_symbol_actions): Don't assume %union was used. + * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE, + not to our own type. + * src/output.c (symbol_destructors_output, symbol_printers_output): + Don't assume %union. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR, + AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument + UNION-FLAG. All callers changed. + (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union. + Use type char, not unsigned int, when declaring an array of char; + this lets us remove a cast. + (Printers and Destructors): Add non-%union test cases. + +2004-06-21 Paul Eggert + + * doc/bison.texinfo: Minor editorial changes, mostly to the new + GLR writeups. E.g., avoid frenchspacing and the future tense, + change "lookahead" to "look-ahead", and change "wrt" to "with + respect to". + +2004-06-21 Paul Hilfinger + + * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements): + New sections, split off from the GLR Parsers section. Put the new + Simple GLR Parser near the start of the GLR section, for clarity. + Rewrite connective text. + +2004-06-21 Frank Heckenbach + + * doc/bison.texinfo (Simple GLR Parsers): New section. + +2004-06-21 Paul Eggert + + * NEWS, TODO, doc/bison.texinfo: + Use "look-ahead" instead of "lookahead", to be consistent. + * REFERENCES: Fix incorrect reference to DeRemer and Pennello, + while we're fixing "look-ahead". + * src/conflicts.c (shift_set): Renamed from shiftset. + (look_ahead_set): Renamed from lookaheadset. + * src/print.c: Likewise. + * src/getargs.c (report_args): Add "look-ahead" as the new canonical + name for "lookahead". + (report_types, usage): Likewise. + * src/getargs.h (report_look_ahead_tokens): Renamed from + report_lookaheads. + * src/lalr.c (compute_look_ahead_tokens): Renamed from + compute_lookaheads. + (state_look_ahead_tokens_count): Renamed from state_lookaheads_count. + (look_ahead_tokens_print): Renamed from lookaheads_print. + * src/state.c (state_rule_look_ahead_tokens_print): Renamed from + state_rule_lookaheads_print. + * src/state.h: Likewise. + (reductions.look_ahead_tokens): Renamed from lookaheads. + * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from + AT_DATA_LOOKAHEADS_GRAMMAR. + +2004-06-03 Paul Eggert + + * README: Update location of patched M4 distribution. + +2004-05-30 Albert Chin-A-Young + + Don't assume the C++ compiler takes the same arguments as the C compiler + (trivial change). + * configure.ac (O0CXXFLAGS): New var. + * tests/atlocal.in (CXXFLAGS): Use it. + +2004-05-29 Paul Eggert + + Fix some "make check" problems with C++ reported by + Albert Chin-A-Young for Tru64 C++ in this thread: + http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html + + * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): + Output to a .cc file for C++, not to a .c file. + * tests/calc.at (AT_CHECK_CALC): Likewise. + * tests/regression.at (AT_CHECK_DANCER): Likewise. + * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c. + +2004-05-28 Albert Chin-A-Young + + * tests/calc.at, tests/actions.at: Workaround for SGI + C++ compiler. (trivial change) + +2004-05-27 Paul Eggert + + Spent a few hours checking out which prerequisite versions the + current sources actually require. I went all the way back to + Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated + a seemingly endless set of combinations of versions more recent + than that. The bottom line is that the current sources require + fairly recent versions of the build tools, and it'll be some work + to change this. + * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59. + (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8. + (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12. + Add comments explaining why those particular versions are + currently needed. + + * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug + in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in + . + + * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work + (it fails with a Autoconf-without-aclocal-m4 diagnostic). + +2004-05-26 Paul Eggert + + * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to + 0.11.5. Suggested by Bruno Haible. + * bootstrap: Remove gettext version checking. + + * doc/bison.texinfo (Decl Summary): Also mention that %union + can depend on prerequisite types. Problem reported by Tim + Van Holder. + +2004-05-25 Paul Eggert + + * README: Mention GNU m4 1.4 bugs and Akim's patched version. + * README-alpha: Don't tell people not to package this. + + * bootstrap: Don't assume $(...) works; use `...` instead. + Problem reported by Paul Hilfinger. Also, diagnose non-GNU + gettext better. + + * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's + put into the -d output file, and mention what to do if YYSTYPE is + defined as a macro. + +2004-05-24 Paul Eggert + + Undo change made earlier today: it caused autopoint to not bring + in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for + autopoint's. + + * bootstrap: Check that gettext version matches what's in + configure.ac. Warn users to ignore robots.txt ERROR 404. + * bootstrap: Undo today's earlier change (logged below). + * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise. + + The gettext version checking is causing more trouble than it's + curing; remove it. Problem reported by Paul Hilfinger. + + * bootstrap: Issue a warning that one can expect a message + 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'. + * configure.ac (AM_GNU_GETTEXT_VERSION): Remove. + +2004-05-23 Paul Eggert + + Ensure that the C++ compiler used for testing actually works on a + simple test program; if not, skip the C++-related tests. Problem + reported by Vin Shelton in: + http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html + + * m4/cxx.m4: New file. + * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add. + * tests/atlocal.in (BISON_CXX_WORKS): Add. + * tests/local.at (AT_COMPILE_CXX): Use it. + +2004-05-21 Paul Eggert + + * data/glr.c (yylloc): Output this macro even if locations are not + being generated, as the GLR parser needs it even in that case. + Problem reported by Troy A. Johnson + . + + * configure.ac (AC_INIT): Update to 1.875e. + +2004-05-21 Paul Eggert + + * NEWS: Version 1.875d. + * configure.ac (AC_INIT): Likewise. + * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d. + + * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow, + -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current + lalr1.cc runs afoul of the first, and the last two are no longer + supported by GCC 3.4.0. + * README: Mention GNU m4 1.4 or later; mention m4 patches. + * HACKING: Use ./bootstrap, not "make update" to import foreign files. + +2004-05-06 Paul Eggert + + * src/muscle_tab.c (hash_muscle): Accept and return size_t, not + unsigned int, for compatibility with latest gnulib hash module. + * src/state.c (state_hash, state_hasher): Likewise. + * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise. + * src/uniqstr.c (hash_uniqstr): Likewise. + 2004-05-03 Paul Eggert * NEWS: Unescaped newlines are no longer allowed in char & strings. @@ -10,7 +684,7 @@ (unexpected_newline): New function. (): Coalesce duplicate actions. - + * NEWS: Document %expect-rr. * bootstrap (--gnulib-srcdir=*, --cvs-user=*): @@ -30,7 +704,7 @@ * src/parse-gram.y: Put copyright notice inside %{ %} so it gets copied to the output file. - + 2004-04-28 Paul Eggert Get files from the gnulib and po repositories, instead of relying @@ -248,7 +922,7 @@ 2004-03-08 Paul Eggert Add support for hex token numbers. Suggested by Odd Arild Olsen in - . + . * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor in lalr1.cc. @@ -265,7 +939,7 @@ * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from compilers. This fixes a problem with Intel's C++ compiler being chatty, reported by Guido Trentalancia in - . + . 2004-02-09 Alexandre Duret-Lutz @@ -461,7 +1135,7 @@ Have lalr1.cc catch with Paul Eggert's patch to fix the infinite error recovery loops. This patch is based on - . + . Also, augment the similarity between lalr1.cc and yacc.c. Note: the locations of error recovery rules are not correct yet. @@ -510,14 +1184,14 @@ * data/glr.c (yyglrReduce): Don't use C89 string concatenation, for portability to K&R C (after ansi2knr, presumably). See - + by Frank Heckenbach, though I have omitted the structure-initialization part of his glr-knr.diff patch since I recall that the Portable C Compiler didn't require that change. Let the user specify how to allocate and free memory. Derived from a suggestion by Frank Heckenbach in - . + . * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros. All uses of free, malloc, realloc changed to use these macros, and unnecessary casts removed. @@ -527,7 +1201,7 @@ * data/lalr1.cc (operator<<(std::ostream&, const Position&)): use s.empty() rather than s == "" to test for empty string; see - + (trivial change) 2003-06-25 Akim Demaille @@ -550,7 +1224,7 @@ yyreportTree): Do not assume that size_t is the same width as int, when printing sizes. Print sizes using an unsigned format. Problem reported by Frank Heckenbach in - . + . Port to Forte Developer 7 C compiler. * data/glr.c (struct YYLTYPE): If locations are not being used, @@ -595,7 +1269,7 @@ (ATTRIBUTE_UNUSED): Define unconditionally. Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in: - + * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h. * lib/vbitset.c, lib/vbitset.h: New files. * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h, @@ -715,7 +1389,7 @@ * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS. Fix a GLR parser bug I reported in February; see - . + . The problem was that GLR parsers did not conform to the C standard, because actions like { $1 = $2 + $3; } expanded to expressions that invoked YYFILL in separate subexpressions, and YYFILL assigned @@ -736,7 +1410,7 @@ parser can loop. Provide a test case and a fix for yacc.c. I don't have a fix for lalr1.cc or for glr.c, unfortunately. The original bug report is in: - + * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the macro's size was becoming unwieldy. @@ -869,14 +1543,14 @@ * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes C89. This avoids a diagnostic on compilers that define __STDC__ to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in - . + . 2003-05-03 Paul Eggert * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE): Do not overrun array bounds. This should fix a bug reported today by Olatunji Oluwabukunmi in - . + . 2003-04-29 Akim Demaille @@ -908,7 +1582,7 @@ 2003-04-27 Paul Eggert Avoid gcc -Wundef warnings reported by Gerald Pfeifer in - . + . * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA if it is not defined. (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined. @@ -920,13 +1594,13 @@ type suitable for the corresponding table, since the latter might be unsigned but the ninf value might be negative. This fixes a bug reported by Alexandre Duret-Lutz in - . + . * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR invokes it. We shouldn't invoke it twice because it will attempt to put error.o in the archive twice. This fixes a glitch reported by Martin Mokrejs in - . + . 2003-04-21 Paul Eggert @@ -953,7 +1627,7 @@ * src/conflicts.c (set_conflicts): Resolve all conflicts, not just the first one. This change is from Paul Hilfinger, and it fixes regression reported by Werner Lemberg in - . + . (resolve_sr_conflict): Don't invoke state_errs_set unless one or more tokens have been explicitly made errors. @@ -1002,7 +1676,7 @@ (<>, <>): Set *loc to the scanner cursor, instead of leaving it undefined. This fixes a bug reported by Tim Van Holder in - . + . * tests/input.at (Torturing the Scanner): Test the scanner on an empty input file, which was Tim Van Holder's test case. @@ -1010,7 +1684,7 @@ can be included, include sys/time.h and sys/times.h first, if available. This works around the SunOS 4.1.4 porting bug reported by Bruce Becker in - . + . * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't AC_CHECK_HEADERS([sys/wait.h]), as this interferes with @@ -1124,7 +1798,7 @@ * lib/mbswidth.c: Include before "mbswidth.h", to work around a UnixWare 7.1.1 porting bug reported by John Hughes in - . + . 2003-02-26 Paul Eggert @@ -1139,7 +1813,7 @@ * data/glr.c (yy_reduce_print): yylineno -> yylno, to avoid collision with flex use of yylineno. Problem reported by Bruce Lilly in - . + . * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise. * data/yacc.c (yy_reduce_print): Likewise. @@ -1209,13 +1883,13 @@ * tests/atlocal.in (LDFLAGS, LIBS): New vars. * tests/testsuite.at (AT_COMPILE): Use them. This fixes the testsuite problem reported by Robert Lentz in - . + . 2003-02-12 Paul Eggert * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]: Avoid subscript error in yycheck. Bug reported by Andrew Suffield in - . + . * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise. Check for malloc failure, for consistency with yacc.c. (yytname_size): Remove, for consistency with yacc.c. @@ -1345,7 +2019,7 @@ Changes in response to error report by S. Eken: GLR mode does not handle negative $ indices or $ indices in embedded rules correctly. - See . + See . * data/glr.c (b4_rhs_value): Change to use YYFILL macro. (b4_rhs_location): Ditto. @@ -1376,8 +2050,8 @@ * data/lalr1.cc: Do not use @output_header_name@ unless b4_defines_flag is set. This fixes two bugs reported by Tim Van Holder in - - and . + + and . 2003-01-21 Paul Eggert @@ -1395,7 +2069,7 @@ * src/output.c (symbol_printers_output): Fix typo that led to core dump. Problem reported by Antonio Rus in - . + . 2003-01-13 Akim Demaille , Quoc Peyrot , @@ -1413,7 +2087,7 @@ * NEWS: %expect-violations are now just warnings, reverting to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2 bootstrapping problem reported by Matthias Klose; see - . + . * src/conflicts.c (conflicts_print): Likewise. * tests/conflicts.at (%expect not enough, %expect too much, %expect with reduce conflicts): Likewise. @@ -1541,7 +2215,7 @@ Fix a bug where error locations were not being recorded correctly. This problem was originally reported by Paul Hilfinger in - . + . * data/yacc.c (yyparse): New local var yylerrsp, to record the top of the location stack's error locations. @@ -1589,7 +2263,7 @@ Remove obsolete references to bison.simple and bison.hairy. Problem mentioned by Aubin Mahe in - . + . * data/glr.c: Comment fix. * doc/bison.1: Remove references. Also, mention "yacc". @@ -1724,7 +2398,7 @@ * config/install-sh: Sync with autotools. Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in - . + . * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless locations are requested. (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless @@ -2005,7 +2679,7 @@ sequences like "@" that are treated specially by src/scan-skel.l. Instead, just use the file's basename. This fixes the bug reported by Martin Mokrejs in - . + . 2002-12-06 Paul Eggert @@ -2103,7 +2777,7 @@ * configure.ac (AC_REPLACE_FUNCS): Add strtoul. * lib/strtoul.c: New file, from gnulib. This fixes a porting bug reported by Peter Klein in - . + . 2002-11-30 Paul Eggert @@ -2155,7 +2829,7 @@ * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput, to avoid collision with lex macro described by Bruce Lilly in - . + . * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise. * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value. * src/parse-gram.y (print_token_value): Renamed from yyprint. @@ -2253,7 +2927,7 @@ * data/glr.c (yygetLRActions): Replace `yyindex' with `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch. This fixes the regression with Sun ONE Studio 7 cc that I reported in - . + . 2002-11-18 Akim Demaille @@ -2371,7 +3045,7 @@ duplicating xfopen's body. Fix bugs reported by Nelson H. F. Beebe in - . + . * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC -E foo.h" is allowed, as this doesn't work with the Portland @@ -2414,7 +3088,7 @@ 2002-11-13 Paul Eggert Fix some bugs reported by Albert Chin-A-Young in - . + . * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c -o c"; the HP C compiler chatters during compilation. @@ -2443,7 +3117,7 @@ (yyglrReduce): Return yyok, not 0. This should avoid the enumerated-type warnings reported by Nelson H. F. Beebe in - . + . * lib/bbitset.h (BITSET_INLINE): Remove. * lib/bitset.h [! BITSET_INLINE]: Remove. @@ -2453,12 +3127,12 @@ * data/glr.c (inline): Remove #define. It's the user's responsibility to #define it away, just like 'const'. This fixes one of the bugs reported by Nelson H. F. Beebe in - . + . * Makefile.maint (po-check): Scan .l and .y files instead of the .c and the .h files that they generate. This fixes the bug reported by Tim Van Holder in: - + Look for N_ as well as for _. Try to avoid matching #define for N_ and _. * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c, @@ -2619,7 +3293,7 @@ Revamp to fix many (but not all) of the C- and M4-related quoting problems. Among other things, this fixes the Bison bug reported by Jan Hubicka when processing the Bash grammar; see: - + Use new @ escapes consistently. Represent brackets with @{ and @} rather than @<:@ and @:>@, since this works a bit better with dumb @@ -2687,7 +3361,7 @@ 2002-11-09 Paul Eggert Fix the test failure due to GCC warnings described in - . + . * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which evaluate to 0 if it's impossible for NINF to be in the respective table. @@ -3039,8 +3713,8 @@ * data/glr.c (struct yyltype): Define members even when not doing locations. This is more consistent with yacc.c, and it works around the following bug reports: - http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html - http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html + http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html + http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html * doc/bison.texinfo: Minor spelling and typographical fixes. Use @acronym consistently. Standardize on "Yacc" instead of "YACC", @@ -3472,7 +4146,7 @@ 2002-10-13 Paul Eggert Fix problem reported by Henrik Grubbstroem in - : + : "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected, because the Bison parser reads the second action before reducing the first one. @@ -3489,7 +4163,7 @@ Include when checking for clock_t and struct tms. Use same include order as source. This is for the SunOS 4.1.4 porting bug reported by Peter Klein in - . + . * lib/timevar.c: Update copyright date and clarify comments. (get_time) [IN_GCC]: Keep the GCC version for reference. @@ -3502,13 +4176,13 @@ * src/reader.c (grammar_current_rule_check): Don't worry about the default action if $$ is untyped. Prevents bogus warnings reported by Jim Gifford in - . + . * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE. * data/glr.c, data/lalr1.cc, data/yacc.c: Output token definitions before the first part of user declarations. Fixes compatibility problem reported by Jim Gifford for kbd in - . + . 2002-10-11 Paul Eggert @@ -3633,7 +4307,7 @@ * lib/bitset.h (bitset_reset): Do not assume that bitset_word is the same width as int. This reapplies a hunk of the 2002-08-12 patch - , + , which was inadvertently undone by the 2002-09-30 patch. * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is the same width as int.