X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f50bfcd6a1750507926dd33bdd37baa8e0eda16d..34db451c379888fa593268b65518ad191bef21f5:/ChangeLog diff --git a/ChangeLog b/ChangeLog index bf7c4967..3f7a2ee0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1084 @@ +2010-10-31 Joel E. Denny + + yysyntax_error: improve invocation readability. + * data/yacc.c (yyparse, yypush_parse): For yysyntax_error + invocation, get rid of the while loop, which is misleading + because there are really at most two iterations. + +2010-10-31 Joel E. Denny + + * ChangeLog: Correct some errors in previous entries. + +2010-10-17 Joel E. Denny + + maint: re-anchor all .gitignore entries. + * bootstrap: Copy from gnulib's latest for the fix to + automatically anchor entries it constructs. + * gnulib: Update to latest just so it has the same bootstrap. + * .gitignore, build-aux/.gitignore, doc/.gitignore: + * lib/.gitignore, m4/.gitignore, po/.gitignore: + * runtime-po/.gitignore: Re-anchor all entries. + +2010-10-08 Paul Eggert + + Fix portability problem on OpenBSD 4.7. + + Jim Meyering reported this in + . + * data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h, + not _STDLIB_H. EXIT_SUCCESS has been defined by the standard + for quite some time. + * src/parse-gram.c, src/parse-gram.h: Regenerate. + * tests/regression.at: Tamper with the renamed witness. + + Adjust to recent changes to gnulib bootstrap. + + * .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore: + * examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore: + * po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore: + * tests/.cvsignore: Remove; I don't use CVS to maintain Bison + anymore and don't know of anybody else who does. If someone needs + these files, they can resurrect them. + * .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore: + * m4/.gitignore, po/.gitignore, runtime-po/.gitignore: + Omit leading '/', since bootstrap omits it. + Adjust file names to match current contents better. + * bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook + installed just for us. + * bootstrap.conf (excluded_files): Don't exclude codeset.m4, + glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now + needed somehow. Don't have time to look into why. + (gnulib_modules): Change malloc to malloc-gnu. Do we really assume + the GNU malloc behavior, where malloc (0) != NULL unless we're + out of storage? If not, we can omit malloc-gnu; but for now I left + it in to be safe. + (vc_ignore): Remove. + (gnulib_mk_hook): New function. + * README-hacking: Renamed from HACKING, since gnulib bootstrap now + uses that convention. + +2010-09-09 Paul Hilfinger + + * data/glr.c (yySymbol): Define as int to avoid compiler warnings about + possible change of value. + +2010-09-08 Paul Hilfinger + + * data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove + compiler errors when using %debug. + Add declaration of yylow when locations in use to avoid compilation + error. + (yyglrReduce): Conditionalize message "Parse ... rejected by rule..." + on whether we are in split mode, for consistency with behavior of + non-GLR parsing. + +2010-09-01 Akim Demaille + + Address GCC warnings about shadowed local variables (yyflag). + * data/glr.c (YYCHK): Rename yyflag as yychk_flag. + (yyprocessOneStack): Reduce the scope of yyaction, yyconflicts, + yyrule, and yyflag. + +2010-08-05 Joel E. Denny + + Version 2.4.3. + * NEWS (2.4.3): Set date. + +2010-08-04 Joel E. Denny + + maint: add gettext version to release announcements. + Suggested by Paul Hilfinger at + + . + * cfg.mk (bootstrap-tools): Add gettext. + +2010-08-04 Joel E. Denny + + doc: fix -W and %expect documentation some. + * NEWS (2.4.3): Mention that there are documentation fixes. + * doc/bison.texinfo (Expect Decl): Make it clear that %expect + turns conflicts into errors not warnings. + (Shift/Reduce): Likewise. + (Bison Options): Don't mention -Wsyntax. It doesn't exist. + +2010-08-01 Joel E. Denny + + -Werror: fix for rules useless in parser after conflicts. + * NEWS (2.4.3): Document fix. + * src/complain.c (error_message): Extend to handle incomplete + error messages so warn and warn_at can be used in more cases. + * src/gram.c (grammar_rules_useless_report): Use warn_at so that + -Werror is always obeyed. + * src/reduce.c (reduce_print): Use warn so that the "warnings + being treated as errors" message is printed consistently before + the first warning message. This makes testing easier. + * tests/local.at (AT_BISON_WERROR_MSG): New macro. + (AT_BISON_CHECK_NO_XML): Extend to check -Werror and + --warnings=error when warnings appear in bison's stderr. + +2010-07-29 Joel E. Denny + + maint: enable gnits only at stable releases. + * configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a + version string should disable gnits. Explain in comments. + +2010-07-28 Joel E. Denny + + i18n: update. + * po/POTFILES.in: Add src/graphviz.c. + +2010-07-28 Joel E. Denny + + i18n: fix for gnulib. + * po/POTFILES.in: Add remaining gnulib files that have + translatable strings. + +2010-07-25 Joel E. Denny + + build: fix our adjustments for gnulib files in lib. + * configure.ac: For prepending lib/ to the values of config + variables, fix detection of empty values. Also, due to recent + gnulib changes, add LIBUNISTRING_UNITYPES_H and + LIBUNISTRING_UNIWIDTH_H to the list of those variables. + +2010-07-25 Joel E. Denny + + maint: use announce-gen's new --mail-headers. + * HACKING (Announce): Update instructions. + * cfg.mk (announcement_Cc_): Define. + * configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as + required by latest gnulib. + * gnulib: Update to latest. + +2010-07-24 Joel E. Denny + + tests: handle Valgrind that complains about >&-. + * tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests. + (Output files: -dv >&-): Skip test group if running + maintainer-check-valgrind. + +2010-07-23 Paul Hilfinger + + * NEWS: Describe new semantic-predicate feature. + * data/c.m4 (b4_predicate_case): New definition. + * data/java.m4 (b4_predicate_case): New definition. + * data/glr.c (yyimmediate): Add definition. + (yydoAction): Remove comment, now obsolete. + Do YY_REDUCE_PRINT here. + (yyglrReduce): Alter comment to indicate that semantic values + need not be deferred. + Remove YY_REDUCE_PRINT from here; done in yydoAction. + (yyprocessOneStack): Pass immediate flag. + Delete stacks rejected by predicates in newly split-off parsers. + Change handling of yyerr so that only current stack gets deleted + when semantic predicate fails. + (yyfillin): Don't crash if a semantic value is unresolved (as may + happen in predicate rules). + Copy lr state as well in debugging mode. + Update comment on setting of yysval to include yyloc as well. + (yy_reduce_print): Add yynormal argument. Perform fillin properly. + Report unresolved RHS values. + (yyimmediate): New table. + * src/gram.h (struct rule): Add is_predicate field. + * src/output.c (user_actions_output): Use b4_predicate_case for + predicates. + (prepare_symbols): Output yyimmediate. + * src/scan-gram.l: Add %? token, SC_PREDICATE state. + * src/scan-code.l (code_props_rule_action_init): Add is_predicate + argument. + * src/scan-code.h (struct code_props): Add is_predicate field. + (code_props_rule_action_init): New interface. + * src/parse-gram.y (%?{...}): New token. + (rhs): Add %?{...} rule. + * src/parse-gram.c: Regenerate. + * src/parse-gram.h: Regenerate. + * src/reader.c (grammar_current_rule_action_append): Add + immediate argument. + (grammar_midrule_action): Use new interface for + code_props_rule_action_init. + (grammar_current_rule_action_append): Ditto. + (packgram): Transfer is_predicate value. + * src/reader.h (grammar_current_rule_action_append): New interface. + * doc/bison.texinfo: Document semantic predicates (%?). + + * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction) + (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet) + (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted) + (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce) + (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction) + (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter + names in comments and mention all parameters. + (struct yyGLRState): Fix description of yyposn field. + (yyresolveLocations): Correct comment so as not to imply action when + yyn1==0. + +2010-06-17 Paul Eggert + + Update from GFDL GFDL 1.2 to 1.3. + * doc/bison.texinfo: Update GFDL version number. + * doc/fdl.texi: Update to version 1.3, taken from: + http://www.gnu.org/licenses/fdl.texi + + Do not use date ranges in copyright notices. + See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices + + * HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha: + * TODO, bootstrap, bootstrap.conf: + * build-aux/update-b4-copyright, cfg.mk, configure.ac: + * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4: + * data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc: + * data/java-skel.m4, data/java.m4, data/lalr1.cc: + * data/lalr1.java, data/local.mk, data/location.cc: + * data/stack.hh, data/variant.hh, data/xslt/bison.xsl: + * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: + * data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint: + * djgpp/README.in, djgpp/config.bat, djgpp/config.sed: + * djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat: + * djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h: + * djgpp/testsuite.sed, doc/bison.texinfo, doc/local.mk: + * doc/refcard.tex, etc/README, etc/bench.pl.in, etc/local.mk: + * examples/calc++/Makefile.am, examples/extexi: + * examples/local.mk, lib/abitset.c, lib/abitset.h: + * lib/bbitset.h, lib/bitset.c, lib/bitset.h: + * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c: + * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h: + * lib/ebitset.c, lib/ebitset.h, lib/get-errno.c: + * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h: + * lib/libiberty.h, lib/local.mk, lib/main.c, lib/timevar.c: + * lib/timevar.def, lib/timevar.h, lib/vbitset.c: + * lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4: + * m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4: + * src/AnnotationList.c, src/AnnotationList.h: + * src/InadequacyList.c, src/InadequacyList.h, src/LR0.c: + * src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c: + * src/assoc.h, src/closure.c, src/closure.h, src/complain.c: + * src/complain.h, src/conflicts.c, src/conflicts.h: + * src/derives.c, src/derives.h, src/files.c, src/files.h: + * src/flex-scanner.h, src/getargs.c, src/getargs.h: + * src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c: + * src/ielr.h, src/lalr.c, src/lalr.h, src/local.mk: + * src/location.c, src/location.h, src/main.c: + * src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c: + * src/named-ref.h, src/nullable.c, src/nullable.h: + * src/output.c, src/output.h, src/parse-gram.y: + * src/print-xml.c, src/print-xml.h, src/print.c, src/print.h: + * src/print_graph.c, src/print_graph.h, src/reader.c: + * src/reader.h, src/reduce.c, src/reduce.h, src/relation.c: + * src/relation.h, src/scan-code.h, src/scan-code.l: + * src/scan-gram.h, src/scan-gram.l, src/scan-skel.h: + * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c: + * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h: + * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h: + * tests/actions.at, tests/atlocal.in, tests/c++.at: + * tests/calc.at, tests/conflicts.at, tests/cxx-type.at: + * tests/existing.at, tests/glr-regression.at: + * tests/headers.at, tests/input.at, tests/java.at: + * tests/local.at, tests/local.mk, tests/named-refs.at: + * tests/output.at, tests/push.at, tests/reduce.at: + * tests/regression.at, tests/sets.at, tests/skeletons.at: + * tests/synclines.at, tests/testsuite.at, tests/torture.at: + Don't use date ranges in copyright notices. + +2010-05-11 Akim Demaille + + lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT. + * data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the + header file to the implementation file, after the user %code + sections. + * NEWS (2.5): Document this. + +2010-05-11 Akim Demaille + + doc: please Emacs. + * doc/bison.texinfo (Local Variables): Move this after the + LocalWords, since the latter are looked for in the whole document, + while the former are looked for only at its end. + Require american spell checking. + +2010-05-10 Akim Demaille + + doc: fix lalr1.cc documentation. + * doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature. + (C++ Bison Interface): Fix lalr1.cc skeleton name. + (C++ Parser Interface): Fix semantic_type and location_type names. + Document yy::parser::token. + Reported by Jerry Quinn. + +2010-05-10 Akim Demaille + + c++: use YYRHSLOC. + * data/lalr1.cc (YYRHSLOC): New. + (YYLLOC_DEFAULT): Use it. + * data/glr.cc: If location_type was user defined, do not include + location.hh, and do not produce location.hh and position.hh. + * tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC. + Check that glr.cc supports user defined location_type. + * NEWS: Document this. + +2010-05-07 Akim Demaille + + doc: fix typo. + * tests/synclines.at: here. + +2010-05-04 Akim Demaille + + tests: enhance AT_SYNCLINES_COMPILE. + * tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns. + (AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already + taken care of in AT_SYNCLINES_COMPILE. + +2010-05-04 Akim Demaille + + lalr1.cc: don't generate location.hh when location_type is defined + * data/bison.m4 (b4_percent_define_get): Accept a default value. + * data/c++.m4: Do not provide a default value for the %define + variable location_type, rather, use b4_percent_define_get with a + default argument where its value is needed. + * data/lalr1.cc: Do not load location.cc (which outputs both + location.hh and position.hh) if the user defined location_type. + Do not include location.hh either. + +2010-05-04 Akim Demaille + + lalr1.cc: minor refactoring. + * data/lalr1.cc: Don't issue empty namespaces. + +2010-05-04 Akim Demaille + + tests: fix %printer. + Currently, there is no check that %printer ... (nor + %destructor) is about an existing type. This C++ test had + it wrong (<::std::string> vs. ). + + * tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the + pretty-printing of lists into something better for parser traces. + Update the expected output. + Fix correspondance between %type/%token and %printer. + +2010-05-04 Akim Demaille + + lalr1.cc: location_type: make sure we don't depend on loc.(begin|end). + * tests/calc.at (Span): Instead of begin/end, as in the built-in + location class, use first and last. + Define YYLLOC_DEFAULT to adjust to these changes. + * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the + location_type changes. + +2010-05-01 Joel E. Denny + + tests: fix maintainer-xml-check. + * data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"): + Update output to include comments now produced by --graph. + (xsl:template match="automaton"): As for --graph, name the + digraph after the grammar file. + * src/print-xml.c (escape_bufs): Enlarge array. + (print_xml): Add bug-report and url attributes to + bison-xml-report element. + +2010-05-01 Joel E. Denny + + In DOT output, convert from "/*" comments to "//" comments. + This handles the possibility that a "*/" might appear in + variable portions of those comments at some point in the future. + * src/graphviz.c (start_graph): Implement. + +2010-04-30 Joel E. Denny + + Document that undefined %prec identifier warnings will remain. + * NEWS (2.4.3): Here. + (2.4.2): Here. + +2010-04-30 Joel E. Denny + + Revert 2009-12-30 change for undefined %prec token complaints. + That is, keep them as warnings because that should be sufficient + to satisfy POSIX without creating backward compatibility issues. + Suggested by Richard Stallman at + . + * NEWS (2.5): Remove mention of complaint. + * src/reader.c (grammar_rule_check): Convert complaint back to + warning. + * tests/input.at (%prec's token must be defined): Update. + +2010-04-25 Joel E. Denny + + build: don't require src/bison during bootstrap. + Suggested by Eric Blake at + . + * bootstrap.conf (bootstrap_epilogue): New function to make sure + src/parse-gram.[ch] are stamped later than src/parse-gram.y. + +2010-04-25 Joel E. Denny + + i18n: fix untranslatable string. + Reported by Goran Uddeborg at + . + * src/muscle-tab.c (muscle_percent_define_insert): Here. + +2010-04-13 Akim Demaille + + tests: calc: minor refactoring. + * tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex. + +2010-04-13 Akim Demaille + + tests: calc: simplify location management. + * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New. + (_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to + define the appropriate AT_LOC accessors. + * tests/calc.at: Use AT_LOC accessors. + +2010-04-13 Akim Demaille + + test location_type. + * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): + Define AT_LOCATION_TYPE_IF. + (_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF. + * tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is + used, provide a user location type and use it. + (Simple LALR1 C++ Calculator): Add a test case for location_type. + +2010-04-13 Akim Demaille + + tests: check fclose's return value. + * tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status. + +2010-04-13 Akim Demaille + + tests: don't depend on the actual location type. + * tests/calc.at: Use yy::parser::location_type rather than + yy::location, since the former is always right, and might point to + another type than the latter. + +2010-04-13 Akim Demaille + + formatting changes. + * tests/calc.at: Formatting changes. + +2010-04-13 Akim Demaille + + lalr1.cc: remove useless forward declaration. + * data/lalr1.cc: Include location.hh before stack.hh. + Remove the useless forward declarations of position and location. + Reported by Chris Morley. + * data/glr.cc: Likewise. + +2010-04-11 Joel E. Denny + + * NEWS (2.4.3): Mention fix for Sun Studio C++. + +2010-04-10 Joel E. Denny + + tests: fix for newer Sun Studio C++. + Reported by Dagobert Michelsen at + . + * THANKS (Dagobert Michelsen): Add. + * configure.ac (AC_PREREQ): Set to 2.64 so we get the latest + Autoconf macro for handling the restrict keyword. + * gnulib: Update to latest, which no longer overrides that macro + from Autoconf. + +2010-04-03 Joel E. Denny + + portability: fix pointer arithmetic to conform to C standard. + Reported by Tys Lefering at + . + This fix is already implemented in glr.c and does not apply to + lalr1.java. + * data/lalr1.cc (yy::parser::parse): Increase size of + yyerror_range and adjust subscripting so you don't have to + subtract one from the beginning of the array. + * data/yacc.c (b4_declare_parser_state_variables, + yyparse, yypush_parse): Likewise. + +2010-04-05 Akim Demaille + + remove useless include. + * src/graphviz.h: Don't include stdbool.h. + +2010-04-05 Akim Demaille + + graph: sign the output file. + * src/graphviz.c (start_graph): Issue comments about Bison. + Suggested by Tys Lefering. + +2010-03-31 Joel E. Denny + + portability: fix test suite for GCC 4.5's new #error message. + Reported by Tys Lefering at + . + * NEWS (2.4.3): Mention. + * tests/synclines.at (AT_TEST_SYNCLINE): Implement. + +2010-03-30 Akim Demaille + + fix comments. + * src/graphviz.h: Add missing license notice. + Document. + +2010-03-25 Akim Demaille + + tests: fix 250: parse.error=verbose overflow. + * tests/regression.at (parse.error=verbose overflow): Avoid the + double inclusion of stdlib.h as it triggers hard errors. + +2010-03-23 Joel E. Denny + + portability: fix for BSD make. + Reported by Johan van Selst at + . + * tests/local.mk ($(TESTSUITE)): Qualify package.m4 in + this dependency list as in package.m4's target rule. + +2010-03-23 Joel E. Denny + + portability: fix spawning on at least FreeBSD 8 and FreeBSD 9. + Reported by Johan van Selst at + . + * NEWS (2.4.3): New. + * THANKS (Johan van Selst): Add. + * etc/prefix-gnulib-mk (prefix): Adjust regex for makefile + targets so that gnulib's new c++defs.h is matched. + * gnulib: Update to latest. + +2010-03-20 Joel E. Denny + + maint: update for changes to gnulib's announce-gen. + * HACKING (Announce): RELEASE_TYPE=major must now be written + RELEASE_TYPE=stable. + +2010-03-20 Joel E. Denny + + Version 2.4.2. + * NEWS (2.4.2): Set version and date. For the recent test suite + portability fixes, don't be so optimistic about their success + given the lack of feedback on the affected platforms. + +2010-02-22 Joel E. Denny + + tests: fix maintainer-xml-check for recent changes. + * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use + AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an + output file whose name conflicts with a previous output file + is now never generated. + +2010-02-22 Joel E. Denny + + portability: fix several issues with M4 subprocess. + + M4's output pipe was not being drained upon fatal errors during + scan_skel. As a result, broken-pipe messages from M4 were seen + on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a + failure in the test suite. The problem was that, on platforms + where the default disposition for SIGPIPE is ignore instead of + terminate, M4 sometimes saw fwrite fail with errno=EPIPE and + then reported it. However, there's some sort of race condition, + because the new test group occasionally succeeded. + Reported by Albert Chin at + . + + There were also problems with the test suite livelocking on + Tru64 5.1b. Reported by Didier Godefroy at + . + Switching to create_pipe_bidi suggested by Akim Demaille. + + To attempt to solve both of these problems, switch to gnulib's + create_pipe_bidi and register M4 process as a slave. Along the + way, clean up file name conflict handling, which was affected by + the broken-pipe problem before the switch. + * NEWS (2.4.2): Document. + * THANKS (Didier Godefroy): Add. + * bootstrap.conf (gnulib_modules): Add pipe. + * gnulib: Update to latest to make sure we have all the latest + fixes. + * lib/local.mk (lib_libbison_a_SOURCES): Remove subpipe.h and + subpipe.c. + * po/POTFILES.in (lib/subpipe.c): Remove. + * src/files.c (compute_output_file_names): Update invocations + of output_file_name_check. + (output_file_name_check): In the case that the grammar file + would be overwritten, use complain instead of fatal, but replace + the output file name with /dev/null. Use the /dev/null solution + for the case of two conflicting output files as well because it + seems safer in case Bison one day tries to open both files at + the same time. + * src/files.h (output_file_name_check): Update prototype. + * src/output.c (output_skeleton): Use create_pipe_bidi and + wait_subprocess. Assert that scan_skel completely drains the + pipe. + * src/scan-skel.l (at_directive_perform): Update + output_file_name_check invocation. + * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the + grammar file actually isn't overwritten. + (Conflicting output files: -o foo.y): Update expected output. + * tests/skeletons.at (Fatal errors but M4 continues producing + output): New test group. + +2010-02-04 Joel E. Denny + + Update POTFILES. + * HACKING (Release Procedure): Add reminder about keeping + POTFILES files up-to-date. + * po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add. + +2010-02-01 Joel E. Denny + + Code cleanup. + * tests/atlocal.in (abs_top_srcdir): Remove shell variable, + which is already defined in atconfig. + +2010-01-22 Joel E. Denny + + tests: fix missing include caught by g++ 4.4.1. + Reported by Tys Lefering. + * HACKING (Release checks): Add note about trying a recent GCC. + * tests/regression.at (_AT_DATA_DANCER_Y): For C++, include + cstdlib for abort. + (_AT_DATA_EXPECT2_Y): Likewise. + +2010-01-21 Joel E. Denny + + * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory. + +2010-01-21 Joel E. Denny + + maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it. + * HACKING (Release Procedure): Update notes on copyright years. + * Makefile.am (update-package-copyright-year): New target rule. + * build-aux/update-package-copyright-year: New file. + * cfg.mk (update-copyright): Add update-package-copyright-year + as a dependency. + +2010-01-19 Joel E. Denny + + * bootstrap: Import improvements from latest gnulib. + +2010-01-19 Joel E. Denny + + build: require Automake 1.11.1 to avoid a security flaw. + * HACKING (Release Procedure): Don't document Automake security + flaw here. + * configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain + why here. + +2010-01-19 Joel E. Denny + + gnulib: update to latest. + +2010-01-19 Joel E. Denny + + ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c. + +2010-01-15 Joel E. Denny + + Thank the developer of the initial push parser implementation. + This unfortunate oversight is several years old. + * THANKS (Odd Arild Olsen): Add. + +2010-01-04 Joel E. Denny + + Fix some comments concerning LR(0) versus LALR(1). + + Stop equating LR(0) with nondeterminism and LALR(1) with + determinism. That is, if all states are consistent, then LR(0) + tables are deterministic. On the other hand, LALR(1) tables + might be nondeterministic before conflict resolution, and GLR + permits LALR(1) tables to remain nondeterministic. + * src/LR0.c, src/LR0.h: Here. + * src/lalr.c, src/lalr.h: Here. + * src/main.c (main): Here. + * src/state.c, src/state.h: Here. + + * src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1) + parser tables. + +2010-01-04 Joel E. Denny + + maint: run "make update-copyright" + +2009-12-30 Joel E. Denny + + POSIX: complain if %prec's token was not defined. + * NEWS (2.5): Document. + * src/reader.c (grammar_rule_check): Convert warning to + complaint. + * tests/input.at (%prec's token must be defined): Update. + +2009-12-30 Joel E. Denny + + POSIX: warn if %prec's token was not defined. + Reported by Florian Krohm at + . + * NEWS (2.4.2): Document. + * src/reader.c (grammar_rule_check): Implement. + (grammar_current_rule_prec_set): Add comments explaining that we + here assume a %prec identifier is a token, but we still manage + to support POSIX. + * tests/input.at (%prec's token must be defined): New test + group. + +2009-12-31 Joel E. Denny + + * HACKING (Release Procedure): Recommend a secure automake. + +2009-12-29 Joel E. Denny + + portability: `<' and `>' are not always defined on addresses. + Specifically, don't sort objects by their memory addresses when + they're not allocated in the same array or other object. Though + I haven't found a test case where that fails on my platform, C + says the behavior is undefined. + * src/AnnotationList.c (AnnotationList__insertInto): Remove + FIXME. Use new id field of InadequacyList nodes rather than + their memory addresses when sorting. + (AnnotationList__compute_from_inadequacies): Add + inadequacy_list_node_count argument to pass to + InadequacyList__new_conflict. + * src/AnnotationList.h + (AnnotationList__compute_from_inadequacies): Update prototype + and documentation for new argument. + * src/InadequacyList.c (InadequacyList__new_conflict): Add + node_count argument and use it to assign a unique ID. + * src/InadequacyList.h (InadequacyListNodeCount): New typedef. + (InadequacyList): Add id field. + (InadequacyList__new_conflict): Update prototype and + documentation for new argument. + * src/ielr.c (ielr_compute_annotation_lists): Update + AnnotationList__compute_from_inadequacies invocation. + +2009-12-20 Joel E. Denny + + Fix handling of yychar manipulation in user semantic actions. + The problem was that yacc.c didn't always update the yychar + translation afterwards. However, other skeletons appear to be + fine. glr.c appears to already translate yychar before every + use. lalr1.cc does not define yychar and does not document its + replacement, yyla, for users. It does provide yyclearin, but + that does not manipulate yyla and thus requires no translation + update. In lalr1.java, yychar is out of scope during semantic + actions. + * NEWS (2.5): Document. + * data/yacc.c (YYBACKUP): Don't bother translating yychar into + yytoken here. + (yyparse, yypush_parse): Instead, translate before every use of + yytoken, and add comments explaining this approach. + * tests/actions.at (Destroying lookahead assigned by semantic + action): New test group checking that translation happens before + lookahead destructor calls at parser return. Previously, + incorrect destructors were called. + * tests/conflicts.at (parse.error=verbose and consistent + errors): New test group checking that translation happens at + syntax error detection before the associated verbose error + message and the associated lookahead destructor calls. While + the destructor call is fixed by this patch, the verbose error + message is currently incorrect due to another bug (see + comments in test group), so this is an expected failure for now. + +2009-12-21 Joel E. Denny + + YYFAIL: warn about uses and remove from lalr1.java. + * NEWS (2.5): Document. + * data/lalr1.java (YYParser::YYFAIL): Rename to YYERRLAB, + and make it private. Update all uses. + * src/scan-code.l (SC_RULE_ACTION): Implement warning. + +2009-12-21 Joel E. Denny + + YYFAIL: deprecate. + * NEWS (2.4.2): Document deprecation and the phase-out plan. + * data/lalr1.java (YYParser::YYFAIL): Add comment about + deprecation. + * data/yacc.c (YYFAIL): Likewise, and suppress warnings about + YYFAIL from GCC cpp's -Wunused-macros. + * doc/bison.texinfo (Java Action Features): Remove YYFAIL + documentation. + (LocalWords): Remove YYFAIL. + +2009-12-20 Joel E. Denny + + tests: cleanup. + * tests/c++.at (Syntax error discarding no lookahead): Don't + ignore stderr. Instead, eliminate remaining warnings. + +2009-12-18 Joel E. Denny + + lalr1.cc: don't discard non-existent lookahead on syntax error. + * data/lalr1.cc (yy::parser::parse): Check yyempty first. + * tests/c++.at (Syntax error discarding no lookahead): New test + group. + +2009-12-17 Joel E. Denny + + Code cleanup. + * src/symtab.c, src/symtab.h (symbol_class_get_string): Remove + function, which is no longer used. + +2009-12-16 Joel E. Denny + + Add gcc's -Wundef to test suite and fix another warning from it. + * NEWS (2.4.2): Update description of -Wundef fix. + * configure.ac (WARN_CXXFLAGS_TEST): New substitution. + (WARN_CFLAGS_TEST): New substitution. + * data/glr.c: Avoid warning about __STRICT_ANSI__. + * tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of + WARN_CFLAGS. + (NO_WERROR_CFLAGS): Likewise. + (CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS. + +2009-12-16 Joel E. Denny + + * data/yacc.c: Reformat m4 a little. + +2009-12-16 Joel E. Denny + + Document gcc -Wundef fix. + * NEWS (2.4.2): Here. + * THANKS (Jonathan Nieder): Add. + +2009-12-15 Jonathan Nieder (tiny change) + + Simplify y.tab.c when location tracking is disabled. + * data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location + tracking is not enabled. Instead, unconditionally define + YY_LOCATION_PRINT as a no-op for backward compatibility. + +2009-12-15 Jonathan Nieder (tiny change) + + Avoid warnings from gcc -Wundef y.tab.c. + * data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are + defined before using them. + * data/lalr1.cc: Likewise. + * data/yacc.c: Likewise. + +2009-12-15 Joel E. Denny + + autoconf: update to latest for fix of M4 detection. + Reported by Eric Blake. + * submodules/autoconf: Update. + +2009-12-15 Joel E. Denny + + portability: use -DGNULIB_POSIXCHECK. + Reported by Eric Blake. See discussions at + + and + . + * HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK. + * bootstrap.conf (gnulib_modules): Add all the printf modules + suggested by -DGNULIB_POSIXCHECK. Add realloc-posix as + suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c. + (excluded_files): Remove m4/printf-posix.m4. + * tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add + lib/libbison.a so gnulib libraries can be linked. + +2009-12-15 Joel E. Denny + + gnulib: update for fix of fprintf-posix, which we'll use soon. + * etc/prefix-gnulib-mk (prefix): Adjust regex for make file + targets so that gnulib's new arg-nonnull.h and link-warning.h + are matched. + * gnulib: Update. + +2009-12-14 Joel E. Denny + + Enable assertion output and --disable-assert for configure. + * bootstrap.conf (gnulib_modules): Add assert module. + * src/system.h (aver): Define as assert, and summarize the + discussion on this issue. + +2009-12-14 Joel E. Denny + + Expand GLR acronym in summary of Bison. + Based on discussion with Akim Demaille starting at + . + * doc/bison.texinfo (Introduction): Here. + * src/getargs.c (usage): Here. + +2009-10-03 Alex Rozenman + + Document named references. + * doc/bison.texinfo (Actions): Add new example and xref to + Using Named References node. + (Using Named References): New node. + +2009-10-16 Joel E. Denny + + cleanup. + * src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead + of char*. + (Sbitset__isEmpty): Use Sbitset instead of char*. + * src/Sbitset.h (Sbitset): Make it a pointer to unsigned char + instead of char. This helps to avoid casting errors. + (Sbitset__or): Use Sbitset instead of char*. + +2009-10-16 Joel E. Denny + + portability: don't assume 8-bit bytes. + That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff. + * src/Sbitset.h (Sbitset__nbytes): Here. + (Sbitset__byteAddress): Here. + (Sbitset__bit_mask): Here. + (Sbitset__last_byte_mask): Here. + (Sbitset__ones): Here. + (SBITSET__FOR_EACH): Here. + +2009-10-11 Joel E. Denny + + portability: use va_start and va_end in the same function. + * src/complain.c (error_message): Move va_end from here... + (ERROR_MESSAGE): ... to here. + +2009-10-08 Joel E. Denny + + * data/bison.m4: Update comments for rename to muscle-tab.h. + +2009-10-07 Joel E. Denny + + Minor code cleanup. + * src/muscle-tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and + replace all uses with UNIQSTR_CONCAT. + * src/uniqstr.c (uniqstr_vsprintf): New function. + * src/uniqstr.h (uniqstr_vsprintf): Add prototype. + (UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New + macros. + +2009-10-06 Joel E. Denny + + * TODO (Complaint submessage indentation): New. + +2009-10-04 Joel E. Denny + + Minor code cleanup. + * src/parse-gram.y: Clean up sorting of declarations. + Use types to simplify %printer declarations where possible. + Provide %printer for BRACKETED_ID and symbol.prec. + * src/symtab.c: Whitespace change. + +2009-10-04 Joel E. Denny + + tests: skip tests of file names that platform does not support. + Reported by Michael Raskin at + . + * THANKS (Michael Raskin): Add. + * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix. Cygwin used + to fail at least for file names containing ":" or "\". + +2009-09-23 Joel E. Denny + + yysyntax_error: avoid duplicate lookahead collection. + Except when memory reallocation is required, this change + eliminates the need to invoke yysyntax_error twice and thus to + repeat the collection of lookaheads. It also prepares for + future extensions that will make those repetitions more + expensive and that will require additional memory management in + yysyntax_error. Finally, it fixes an obscure bug already + exercised in the test suite. + * data/yacc.c (yysyntax_error): Add arguments for message + buffer variables stored in the parser. Instead of size, return + status similar to yyparse status but indicating success of + message creation. Other than the actual reallocation of the + message buffer, import and clean up memory management code + from... + (yyparse, yypush_parse): ... here. + * tests/regression.at (parse.error=verbose overflow): No longer + an expected failure. + +2009-09-23 Joel E. Denny + + yysyntax_error: test memory management more. + * tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro. + * tests/regression.at (parse.error=verbose and + YYSTACK_USE_ALLOCA): New test group. + (parse.error=verbose overflow): New test group that reveals an + obscure bug. Expected fail for now. + +2009-10-04 Joel E. Denny + + benchmarks: use %debug consistently among grammars. + * etc/bench.pl.in (generate_grammar_triangular): Do not activate + %debug by default. It can affect the timings even if yydebug=0. + (generate_grammar_calc): For consistency with other grammars, + use YYDEBUG environment variable to set yydebug. + +2009-10-03 Joel E. Denny + + Remove dead code. + * src/symtab.c (symbol_pack): Here because every symbol's number + is always defined by this time. + +2009-10-03 Alex Rozenman + + Add additional space after periods in NEWS. + * NEWS (2.5): here. + +2009-09-29 Joel E. Denny + + Use the correct conversion specifier for size_t. + Reported by Jim Meyering. + * src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu" + because Sbitset__Index is size_t. + * src/Sbitset.c (Sbitset__fprint): Use it instead of %d. + +2009-09-27 Joel E. Denny + + tests: don't abuse AT_BISON_CHECK. + * tests/regression.at (parse-gram.y: LALR = IELR): Move + additional shell commands outside of AT_BISON_CHECK. + +2009-09-26 Joel E. Denny + + tests: check that parse-gram.y's IELR and LALR are identical. + * tests/atlocal.in (abs_top_srcdir): New shell variable. + * tests/regression.at (parse-gram.y: LALR = IELR): New test + group. + +2009-09-19 Alex Rozenman + + Keep sub-messages aligned. Fix strings for translation. + * src/location.h (location_print): Add return value. + * src/location.c (location_print): Return number of printed + characters. + * src/complain.h (complain_at_indent, warn_at_indent): Prototype + new functions. + * src/complain.cpp (indent_ptr): New static variable. + (error_message, complain_at_indent, warn_at_indent): Implement + the alignment mechanism. + * src/scan-code.l (parse_ref, show_sub_messages): Fix strings + for translations. Use new alignment mechanism. + * tests/named-ref.at: Adjust test-cases. + * NEWS (2.5): Add an announcement about named references. + +2009-09-17 Akim Demaille + + doc: fixes. + * doc/bison.texinfo: here. + Reported by Alex Rozenman. + +2009-09-16 Akim Demaille + + doc: lalr1.cc and variants. + * doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and + "variant" %define variables. + (C++ Semantic Values): Split into... + (C++ Unions, C++ Variants): these. + The latter is new. + (C++ Parser Interface): Fix type names. + Document parser::syntax_error. + Document the fact that locations are not mandatory. + (C++ Scanner Interface): Split into... + (Split Symbols, Complete Symbols): these. + The later is new. + (Calc++ Parsing Driver): Use variants. + Add more comments. + Adjust style. + (Calc++ Parser): Declare all the tokens, no + longer accept raw characters. + Remove %union. + Adjust types and printers. + Remove destructors. + (Calc++ Scanner): Use make_ functions. + Use strerror in error message. + 2009-09-16 Akim Demaille doc: spell checking. @@ -7579,9 +8660,12 @@ 2006-09-15 Bob Rossi + Add support for push parsing. Based on the original work of + Odd Arild Olsen . * data/Makefile.am (dist_pkgdata_DATA): Add push.c. * data/c.m4 (YYPUSH): New. (b4_push_if): New macro. Use it instead of #ifdef YYPUSH. + * data/push.c: New file. * src/getargs.c (push_parser): New var. * src/getargs.h (push_parser): New declaration. * src/output.c (prepare): Add macro insertion of `push_flag'. @@ -24756,7 +25840,7 @@ Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009 Free Software Foundation, Inc. + 2008, 2009, 2010 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this