X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/31283fc38a9168a3d191f1db5ff3a76bc3c4ccbf..02975b9aade52df362645b82a81ac2134290e221:/ChangeLog?ds=sidebyside diff --git a/ChangeLog b/ChangeLog index 583d8eb8..c5affb72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,202 @@ +2006-12-01 Joel E. Denny + + Support a file name argument to %defines. Deprecate `=' in + %file-prefix, %name-prefix, and %output. Discussed at + . + * NEWS (2.3a+): Mention. + * doc/bison.texinfo (Decl Summary, Bison Symbols): Add entry for new + form of %defines, and remove `=' from entries for %file-prefix, + %name-prefix, and %output. + * src/parse-gram.y (prologue_declaration): Implement. + * tests/calc.at (Simple LALR Calculator, Simple GLR Calculator, Simple + LALR1 C++ Calculator, Simple GLR C++ Calculator): Remove the `=' from + all but one occurrence of %name-prefix. + * tests/headers.at (export YYLTYPE): Remove the `=' from %name-prefix. + * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Likewise. + * tests/output.at (AT_CHECK_OUTPUT): Remove the `=' from all but one + occurrence of each of %file-prefix and %output. Add check for %defines + with argument. + * tests/reduce.at (Useless Terminals, Useless Nonterminals, + Useless Rules, Reduced Automaton, Underivable Rules, Empty Language): + Remove the `=' from %output. + +2006-11-21 Joel E. Denny + + Don't escape $ in test case titles since Autoconf 2.61 now does that + correctly. + * tests/actions.at (Default %printer and %destructor are not for error + or $undefined): Here. + (Default %printer and %destructor are not for $accept): Here. + * tests/input.at (Invalid $n and @n): Here. + +2006-11-20 Joel E. Denny + + Rename to <>. Discussed starting at + . + * NEWS (2.3a+): Update. + * doc/bison.texinfo (Freeing Discarded Symbols, Bison Symbols): + Update. + * src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement. + * src/scan-gram.l (INITIAL): Implement. + * src/symlist.c (symbol_list_default_tagless_new): Update comment. + * src/symlist.h (symbol_list, symbol_list_default_tagless_new): Update + comment. + * tests/actions.at (Default tagless %printer and %destructor, + Default tagged and per-type %printer and %destructor, + Default %printer and %destructor are not for error or $undefined, + Default %printer and %destructor are not for $accept, + Default %printer and %destructor for mid-rule values): Update. + * tests/input.at (Default %printer and %destructor redeclared, + Unused values with default %destructor): Update. + +2006-11-17 Joel E. Denny + + Don't let %prec take a nonterminal. + * src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a + token. + * tests/input.at (%prec takes a token): New test checking that %prec + won't take a nonterminal. + +2006-11-10 Joel E. Denny + + * tests/testsuite.at (AT_CHECK): Don't miss an exit value of 0 because + it was double-quoted. + * src/Makefile.am (YACC): Use --warnings=all,error so that Bison's own + grammar is maintained with Bison's highest standards. + * src/getargs.c: Fix some typos in Doxygen comments. + +2006-11-10 Joel E. Denny + + Fix memory leaks in scanners generated by at least Flex 2.5.9 and + later. Reported by Paul Eggert in + . + * src/flex-scanner.h (yylex_destroy): Define for Flex before 2.5.9. + * src/scan-code.l (translate_action): Don't bother invoking + yy_delete_buffer (YY_CURRENT_BUFFER) before creating the first buffer. + (code_scanner_free): Instead of invoking + yy_delete_buffer (YY_CURRENT_BUFFER) directly, invoke yylex_destroy, + which frees more. + * src/scan-gram.l (gram_scanner_free): Likewise. + * src/scan-skel.l (scan_skel): Likewise. + +2006-11-09 Joel E. Denny + + * src/files.c (tr): Change return type to void. + * src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow + has been called previously for the same key. + (muscle_find): Return storage instead of value so that + --enable-gcc-warnings doesn't produce warnings that the return discards + const. aver that the value and storage are the same since storage + could potentially be NULL when value is not. + * tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the + same as 0. + +2006-11-08 Paul Eggert + + * bootstrap.conf (excluded_files): Exclude m4/codeset.m4 (undoing + the earlier change today), m4/intl.m4, m4/intldir.m4. This gives + us a slightly cleaner distribution, and also works. + * m4/.cvsignore: Add inline.m4, wint_t.m4 to accommodate recent + gnulib changes. + +2006-11-08 Joel E. Denny + and Paul Eggert + + Don't let Bison leak memory except when it complains. + * src/files.h (parser_file_name, spec_verbose_file, spec_graph_file): + (spec_defines_file, dir_prefix): Now char *, not const char *, + since they are freed. + * src/files.c: Likewise. + (all_but_ext, all_but_tab_ext, src_extension, header_extension): + Likewise. + (tr): Now operates in-place. All uses changed. + (compute_exts_from_gf, compute_exts_from_src): Don't leak temporary + values. + (compute_file_name_parts, compute_output_file_names): Don't store + read-only data in variables that will be freed. + (compute_output_file_names): Free all_but_ext, all_but_tab_ext, + src_extension, and header_extension. + (output_file_names_free): New public function to free + spec_verbose_file, spec_graph_file, spec_defines_file, + parser_file_name, and dir_prefix. + * src/getargs.c (getargs): Don't store read-only data in variables that + will be freed. + * src/main.c (main): Invoke output_file_names_free, code_scanner_free + (which previously existed but was unused), and quotearg_free. + * src/muscle_tab.h (muscle_insert): value arg is now a `char const *'. + * src/muscle_tab.c: Likewise. + (muscle_entry): Make the value char const *, + and add a new storage member that is char * and can be freed. + (muscle_entry_free): New private function. + (muscle_init): Use it instead of free. + (muscle_insert, muscle_grow): Update and use new storage member. + (muscle_code_grow): Free the string passed to muscle_grow + since it's not needed anymore. + * src/parse-gram.y (%union): Make `chars' member a `char const *', and + add a new `char *code' member. + ("{...}"): Declare semantic type as code. + * src/scan-code.h (translate_rule_action): + (translate_symbol_action, translate_code, translate_action): Return + `char const *' rather than `char *' since external code should not free + these strings. + * src/scan-code.l: Likewise. + * src/scan-gram.l (): Use val->code for BRACED_CODE, + which is "{...}" in the parser. + * tests/Makefile.am (maintainer-check-valgrind): Set + VALGRIND_OPTS='--leak-check=full --show-reacheable=yes' before invoking + Valgrind. + * tests/calc.at (_AT_DATA_CALC_Y): fclose the FILE* so Valgrind doesn't + complain. + * tests/testsuite.at (AT_CHECK): Redefine so that running Bison and + expecting a non-zero exit status sets --leak-check=summary and + --show-reachable=no for Valgrind. Bison unabashedly leaks memory in + this case, and we don't want to hear about it. + +2006-11-08 Paul Eggert + + * bootstrap (runtime-po/Makevars): Derive from po/Makevars + instead of from the template, to simplify configuration a bit. + * bootstrap.conf (excluded_files): Don't exclude m4/codeset.m4 + and m4/wint_t.m4, as they are needed with the latest gnulib. + +2006-10-31 Joel E. Denny + + Disable unset/unused mid-rule value warnings by default, and recognize + --warnings=midrule-values to enable them. Discussed starting at + . + * NEWS (2.3a+): Mention. + * src/getargs.c, src/getargs.h (warnings_args, warnings_types, enum + warnings): Add entry for midrule-values subargument. + * src/reader.c (symbol_should_be_used): Don't return true just because + the value is a set/used mid-rule value unless + --warnings=midrule-values was specified. + * tests/input.at (Unused values, Unused values before symbol + declarations): Run tests with and without --warnings=midrule-values. + + * src/reader.c (check_and_convert_grammar): Use symbol_list_free rather + than LIST_FREE directly. + +2006-10-31 Joel E. Denny + + Finish implementing --warnings=error, which should not be implied by + --warnings=all (or by its synonyms -W and --warnings without + subarguments). + * src/complain.c (set_warning_issued): New function to report that + warnings are being treated as errors and to record an error if so. + Invoke... + (warn_at, warn): ... here. + * src/getargs.c (warnings_args, warnings_types): Reorder so that + "error - warnings are errors" does not appear above "all - all of the + above". + (getargs): For -W and --warnings without subarguments, don't let + FLAGS_ARGMATCH set warnings_error in warnings_flag. + * src/getargs.h (enum warnings): Unset warnings_error in warnings_all. + +2006-10-31 Joel E. Denny + + * src/getargs.c (flags_argmatch): Don't cause segmentation fault for + empty subargument list. For example: `bison --warnings= parser.y'. + 2006-10-21 Joel E. Denny * data/push.c, data/yacc.c: Make sure there's a newline at the end of @@ -12,7 +211,7 @@ * doc/bison.texinfo (Freeing Discarded Symbols): Document this and the previous change today related to mid-rules. (Bison Symbols): Remove %symbol-default and add <*> and . - * src/parser-gram.y (PERCENT_SYMBOL_DEFAULT): Remove. + * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove. (TYPE_TAG_ANY): Add as <*>. (TYPE_TAG_NONE): Add as . (generic_symlist_item): Remove RHS for %symbol-default and add RHS's