X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/519d000408fc583144fb9c7a18d3718cefaf0de7..287b314eefdbf95b888f5f13f19bb6f472285b6d:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 0b026dfe..7451a103 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,247 @@ +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 + the parser header file so that gcc doesn't warn. + +2006-10-21 Joel E. Denny + + Split the default %destructor/%printer into two kinds: <*> and . + Discussed starting at + . + * NEWS (2.3a+): Mention. + * 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/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 + for <*> and . + * src/scan-gram.l (PERCENT_SYMBOL_DEFAULT): Remove. + (TYPE_TAG_ANY, TYPE_TAG_NONE): Add. + * src/symlist.c (symbol_list_default_new): Split into tagged and + tagless versions. + (symbol_list_destructor_set, symbol_list_printer_set): Split + SYMLIST_DEFAULT case into SYMLIST_DEFAULT_TAGGED and + SYMLIST_DEFAULT_TAGLESS. + * src/symlist.h: Update symbol_list_default*_new prototypes. + (symbol_list.content_type): Split enum value SYMLIST_DEFAULT into + SYMLIST_DEFAULT_TAGGED and SYMLIST_DEFAULT_TAGLESS. + * src/symtab.c (default_destructor, default_destructor_location, + default_printer, default_printer_location): Split each into tagged and + tagless versions. + (symbol_destructor_get, symbol_destructor_location_get, + symbol_printer_get, symbol_printer_location_get): Implement tagged + default and tagless default cases. + (default_destructor_set, default_printer_set): Split each into tagged + and tagless versions. + * src/symtab.h: Update prototypes. + * tests/actions.at (Default %printer and %destructor): Rename to... + (Default tagless %printer and %destructor): ... this, and extend. + (Per-type %printer and %destructor): Rename to... + (Default tagged and per-type %printer and %destructor): ... this, and + extend. + (Default %printer and %destructor for user-defined end token): Extend. + (Default %printer and %destructor are not for error or $undefined): + Update. + (Default %printer and %destructor are not for $accept): Update. + (Default %printer and %destructor for mid-rule values): Extend. + * tests/input.at (Default %printer and %destructor redeclared): Extend. + (Unused values with default %destructor): Extend. + +2006-10-21 Joel E. Denny + + Don't apply the default %destructor/%printer to an unreferenced midrule + value. Mentioned at + . + * src/symtab.c (dummy_symbol_get): Name all dummy symbols initially + like $@n instead of just @n so that the default %destructor/%printer + logic doesn't see them as user-defined symbols. + (symbol_is_dummy): Check for both forms of the name. + * src/reader.c (packgram): Remove the `$' from each midrule symbol + name for which the midrule value is referenced in any action. + * tests/actions.at (Default %printer and %destructor for mid-rule + values): New test. + * tests/regression.at (Rule Line Numbers, Web2c Report): Update output + for change to dummy symbol names. + 2006-10-20 Joel E. Denny Warn about unset midrule $$ if the corresponding $n is used.