X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6f5be1abf7a9b83edfe86ca81b31e786bcc710c8..1d0f55cc843d6dfca01e2c13fd49ee2c119c6631:/ChangeLog diff --git a/ChangeLog b/ChangeLog index e4c83d24..af426e5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,350 @@ +2009-04-29 Joel E. Denny + + Rename lr.default_reductions to lr.default-reductions. + * NEWS (2.5): Here. + * doc/bison.texinfo: Here. + * src/lalr.c (initialize_LA): Here. + * src/print.c (print_reductions): Here. + * src/reader.c (reader): Here. + * src/tables.c (action_row): Here. + * tests/input.at (%define enum variables): Here. + * tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here. + +2009-04-29 Joel E. Denny + + Pacify ./configure --enable-gcc-warnings. + * tests/input.at (Symbols): Prototype yyerror and yylex. + +2009-04-21 Akim Demaille + + tests: check the use of dashes and periods in symbols. + * tests/input.at (Symbol): New test group. + +2009-04-29 Joel E. Denny + + Document how `%define "var" "value"' is not M4-friendly. + * src/parse-gram.y (variable): In comments here. + +2009-04-29 Joel E. Denny + + Add copyright updates missed during previous cherry pick. + * src/output.c: Here. + * src/parse-gram.y: Here. + * src/scan-gram.l: Here. + +2009-04-20 Akim Demaille + + variables: accept dashes. + * src/scan-gram.l ({id}): Also accept dashes after the initial + letter. + ({directive}): Use {id}. + * src/parse-gram.y: Comment and formatting changes. + * doc/bison.texinfo (Symbols): Adjust the lexical definitions of + symbols. + * src/complain.h, src/complain.c (yacc_at): New. + * src/symtab.c (symbol_new): Use yacc_at to report inappropriate + symbol names. + * src/output.c (token_definitions_output): Do not #define token + names with dashes. + +2009-04-24 Joel E. Denny + + Clean up recent patches a little. + Reported by Akim Demaille. + * doc/bison.texinfo (Understanding): Fix typos. + * src/print.c (print_reductions): Don't use negated variable. + +2009-04-24 Joel E. Denny + + List accepted values for a %define enum variable with an invalid value. + Suggested by Akim Demaille at + . + * data/bison.m4 (_b4_percent_define_check_values): Implement. + * src/muscle_tab.c (muscle_percent_define_check_values): Implement. + * tests/input.at (%define lr.default_reductions invalid values): Merge + into... + (%define enum variables): ... here, and update output. + +2009-04-23 Joel E. Denny + + Rename "default rule" to "default reduction". + This includes changing variable names in code, changing + comments, and renaming %define lr.default_rules to %define + lr.default_reductions. + * NEWS (2.5): Update IELR documentation. + * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: + Adjust YYDEFACT and yydefact_ documentation. + * doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions + and lr.type documentation. Make some other wording + improvements. + (Glossary): Adjust cross-references and Default Reduction + definition. + * src/lalr.c (state_lookahead_tokens_count): Adjust code. + Remove a confusing comment pointed out by Akim Demaille. + (initialize_LA): Adjust code. + * src/print-xml.c (print_reductions): Adjust code. + * src/print.c (print_reductions): Adjust code. + * src/reader.c (reader): Adjust code. + * src/tables.c (action_row): Adjust code. + (token_actions): Adjust code. + * src/tables.h: Adjust YYDEFACT documentation. + * tests/input.at (%define lr.default_rules invalid values): + Rename test group to... + (%define lr.default_reductions invalid values): ... this, and + update grammar file and expected output. + * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to... + (AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update. + +2009-04-21 Joel E. Denny + + Document %define lr.type and lr.default_rules. + * NEWS (2.5): Add an entry. + * src/getargs.c (usage): Mention IELR(1) and canonical LR(1) + besides just LALR(1) and GLR(1). + * doc/bison.texinfo (Introduction): Likewise. + (Language and Grammar): Bison is no longer limited to LALR(1) + restrictions. + (GLR parsing): Say deterministic or LR(1) rather than LALR(1) + when trying to distinguish from GLR. Talk about LR(1) grammars + rather than LALR(1) grammars. + (Decl Summary): In %define api.push_pull entry, say it applies + to deterministic parsers in C rather than LALR(1) parsers in C. + Add lr.default_rules entry. + Add lr.type entry. + (Mystery Conflicts): Bison is no longer limited to LALR(1) + restrictions. + (Generalized LR Parsing): Same changes as for the previous GLR + section. + (Memory Management): Say deterministic rather than LALR(1). + (Understanding): Correct some bison output. + Index discussion of "accepting state". + Say deterministic rather than LALR(1). + (Bison Options): In --yacc entry, say deterministic rather than + LALR(1). + In --report, --graph, and --xml entries, just don't mention + LALR(1). + (C++ Parsers): Say deterministic rather than LALR(1). + (Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry. + (Glossary): Add Accepting State, Consistent State, Default Rule, + and IELR(1) definitions. + In Generalized LR (GLR) definition, make same changes as in + previous GLR sections. + In LALR(1) definition, say Bison uses LALR(1) by default rather + than implying Bison is limited to LALR(1). + (LocalWords): Add IELR. + +2009-04-21 Joel E. Denny + + Finish implementing %define lr.type. + Its value can be "LALR", "IELR", or "canonical LR". + * lib/timevar.def (TV_IELR_PHASE1): New var. + (TV_IELR_PHASE2): New var. + (TV_IELR_PHASE3): New var. + (TV_IELR_PHASE4): New var. + * src/Makefile.am (bison_SOURCES): Add AnnotationList.c, + AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c, + Sbitset.h, ielr.h, and ielr.c. + * src/getargs.h, src/getargs.c (enum trace, trace_args, + trace_types): Add trace_ielr. + * src/lalr.h, src/lalr.c (ngotos): Export it. + (F): Rename to... + (goto_follows): ... this, update all uses, and export it. + (set_goto_map): Export it. + (map_goto): Export it. + (compute_lookahead_tokens): Don't free goto_follows yet. Now + handled in ielr. + (initialize_LA): Export it. Move lookback allocation to... + (lalr): ... here because, for canonical LR, initialize_LA must + be invoked but lookback and much of the rest of LALR isn't + needed. + * main.c (main): Instead of lalr, invoke ielr, which invokes + lalr. + * src/reader.c (reader): Default lr.type to "LALR". + Default lr.default_rules to "accepting" if lr.type is "canonical + LR". Leave the default as "all" otherwise. + Check for a valid lr.type value. + * src/state.h, src/state.c (struct state_list): Add state_list + member. + (state_new): Initialize state_list member to NULL. + (state_new_isocore): New function, exported. + * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that + exercises all values of lr.type. + (GNU AWK Grammar): Rename test group to... + (GNU AWK 3.1.0 Grammar): ... this, and extend to use + AT_TEST_EXISTING_GRAMMAR. + (GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR. + (GNU pic Grammar): Rename test group to... + (GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use + AT_TEST_EXISTING_GRAMMAR. + * tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises + all values of lr.type. + (Single State Split): New test groups using AT_TEST_LR_TYPE. + (Lane Split): Likewise. + (Complex Lane Split): Likewise. + (Split During Added Lookahead Propagation): Likewise. + +2009-04-21 Joel E. Denny + + Add new files for IELR and canonical LR implementation. + * src/AnnotationList.c: New. + * src/AnnotationList.h: New. + * src/InadequacyList.c: New. + * src/InadequacyList.h: New. + * src/Sbitset.c: New. + * src/Sbitset.h: New. + * src/ielr.c: New. + * src/ielr.h: New. + +2009-04-20 Joel E. Denny + + Implement %define lr.default_rules. + Its value describes the states that are permitted to contain + default rules: "all", "consistent", or "accepting". + * src/reader.c (reader): Default lr.default_rules to "all". + Check for a valid lr.default_rules value. + * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules + is "accepting", then only mark the accepting state as + consistent. + (initialize_LA): Tell state_lookahead_tokens_count whether + lr.default_rules is "accepting". + * src/tables.c (action_row): If lr.default_rules is not "all", + then disable default rules in inconsistent states. + * src/print.c (print_reductions): Use this opportunity to + perform some assertions about whether lr.default_rules was + obeyed correctly. + * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that + helps with checking the parser tables for a grammar. + * tests/input.at (%define lr.default_rules invalid values): New + test group. + * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using + AT_TEST_TABLES_AND_PARSE. + (`no %define lr.default_rules'): New test group generated by + AT_TEST_LR_DEFAULT_RULES. + (`%define lr.default_rules "all"'): Likewise. + (`%define lr.default_rules "consistent"'): Likewise. + (`%define lr.default_rules "accepting"'): Likewise. + +2009-04-20 Akim Demaille + + Consistently refer to Yacc, not YACC. + * src/getargs.c (usage, warnings_args): s/YACC/Yacc/. + +2009-04-17 Joel E. Denny + + Pacify make maintainer-check-posix. + * tests/input.at (%define, --define): Move bison command-line + options before grammar file name. + +2009-04-04 Joel E. Denny + + Document semicolon warnings. + * NEWS (2.5): Here. + +2008-12-08 Akim Demaille + + Fix portability issue in the test suite. + * tests/local.at (AT_MATCHES_CHECK): New. + Based on Perl instead of Sed. Sed has too many portability + pitfalls, not ever Sed is GNU Sed. + * tests/actions.at (Fix user actions without a trailing semicolon): + Use it. + +2008-12-07 Di-an Jan + + Implement the FIXME that ends an user action with a semicolon + if it seems necessary. + * src/scan-code.l (flex rules section): Flag cpp directive from + any `#' to the first unescaped end-of-line. Semicolon is not + needed after `;', `{', '}', or cpp directives and is needed after + any other token (whitespaces and comments have no effect). + * tests/actions.at (Fix user actions without a trailing semicolon): + New test. + * tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to + to make user actions complete statements. + Adjust column numbers in error messages. + * tests/regression.at (Fix user actions without a trailing semicolon): + Remove. Covered by new test. + +2009-04-14 Akim Demaille + + doc: minor fixes. + * doc/bison.texinfo (Decl Summary): Fix entry about %debug. + (Table of Symbols): Remove duplicate entry for %debug. + +2009-04-10 Eric Blake + + submodules: update to latest + * submodules/autoconf: Use latest upstream Autoconf. + +2009-04-06 Eric Blake + + Work around autoconf 2.63b bug in testsuite. + * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping + autoconf bug related to # in test. + +2009-04-06 Joel E. Denny + + * NEWS (2.5): Describe new -D/--define feature. + +2008-11-10 Akim Demaille + + --trace=muscles + * src/getargs.h, src/getargs.c (trace_muscle): New. + (trace_types, trace_args): Support it. + * src/output.c (output_skeleton): Use it. + +2008-11-10 Akim Demaille + + muscles_output. + * src/output.c (muscles_output): New, extracted from... + (output_skeleton): here. + Adjust. + +2008-11-21 Akim Demaille + + Display the changes in cross-options.texi. + * build-aux/cross-options.pl ($sep): New, to separate items. + * doc/Makefile.am ($(srcdir)/cross-options.texi): Use diff to display + the changes. + +2008-11-20 Di-an Jan + + Improves options in the manual. + * doc/bison.texinfo (-g, -x): Add space before argument. + (Option Cross Key): Implement FIXME: listing directives also. + * build-aux/cross-options.pl: Read from rather than <>. + (Short Option): Special case -d. Put arguments inside @option. + (Bison Directive): Add column, automatically extracted from + src/scan-gram.l (actual name passed as the first argument) + with special case for %define. + * doc/Makefile.am (doc/cross-options.texi): Pass src/scan-gram.l + to build-aux/cross-options.pl. + * src/getargs.c (usage): Document limitations of cross-options.pl. + * src/scan-gram.l: Likewise. + +2009-02-25 Akim Demaille + + Copyright years. + * data/glr.c: Add 2007 and 2008 here, consistenly with the comments. + +2008-12-08 Akim Demaille + + Install autoconf as a submodule to get m4sugar. + * .gitmodules: Add submodules/autoconf. + * data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into + submodules/autoconf. + +2008-11-17 Joel E. Denny + + Simplify last patch slightly. + * src/getargs.c (getargs): Here. + +2008-11-17 Joel E. Denny + + Fix last warning from --enable-gcc-warnings. + * src/getargs.c (getargs): Don't assign const address to non-const + pointer. + 2008-11-17 Di-an Jan Handle --enable-gcc-warnings.