summaryrefslogtreecommitdiff
path: root/NEWS
Commit message (Collapse)AuthorAgeFilesLines
* maint: post-release administriviaAkim Demaille2019-09-121-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.4.2v3.4.2Akim Demaille2019-09-121-1/+1
| | | | * NEWS: Record release date.
* news: more bug fixes thanks to Marc SchönefeldAkim Demaille2019-09-121-0/+3
|
* news: updateAkim Demaille2019-09-081-0/+7
|
* diagnostics: fix invalid error message indentationLászló Várady2019-09-081-0/+4
| | | | | | | | | | | | | https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00007.html When Bison is started with a flag that suppresses warning messages, the error_message() function can produce a few gigabytes of indentation because of a dangling pointer. * src/complain.c (error_message): Don't reset indent_ptr here, but... (complain_indent): here. * tests/diagnostics.at (Indentation with message suppression): Check this case.
* maint: post-release administriviaAkim Demaille2019-05-221-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.4.1v3.4.1Akim Demaille2019-05-221-1/+1
| | | | * NEWS: Record release date.
* NEWS: updateAkim Demaille2019-05-221-0/+3
|
* maint: post-release administriviaAkim Demaille2019-05-191-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.4v3.4Akim Demaille2019-05-191-1/+1
| | | | * NEWS: Record release date.
* NEWS: update for 3.4Akim Demaille2019-05-191-7/+5
|
* diagnostics: clean up convention for colored diagnosticsAkim Demaille2019-05-191-6/+7
| | | | | | | | | | * data/diagnostics.css: Rename as... * data/bison-default.css: this. Add the GPL header. This is the convention followed by Bruno Haible in gettext. Adjust dependencies. * src/complain.c (complain_init_color): Use BISON_STYLE instead of BISON_DIAGNOSTICS_STYLE.
* maint: post-release administriviaAkim Demaille2019-05-121-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.3.91v3.3.91Akim Demaille2019-05-121-1/+1
| | | | * NEWS: Record release date.
* NEWS: updateAkim Demaille2019-05-121-0/+3
|
* maint: post-release administriviaAkim Demaille2019-04-281-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.3.90v3.3.90Akim Demaille2019-04-281-1/+1
| | | | * NEWS: Record release date.
* doc: clarify -fsyntax-errorAkim Demaille2019-04-271-1/+5
| | | | * NEWS, doc/bison.texi: here.
* NEWS: updateAkim Demaille2019-04-251-31/+56
|
* api.location.type: support it in CAkim Demaille2019-04-251-0/+9
| | | | | | | | | | | | Reported by Balázs Scheidler. * data/skeletons/c.m4 (b4_location_type_define): Use api.location.type if defined. * doc/bison.texi: Document it. * tests/local.at (AT_C_IF, AT_LANG_CASE): New. Support Span in C. * tests/calc.at (Span): Convert it to be usable in C and C++. Check api.location.type with yacc.c and glr.c.
* diagnostics: better rule locationsAkim Demaille2019-04-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "identifier and colon" of a rule is implemented as a single token, but whose location is only that of the identifier (so that messages about the lhs of a rule are accurate). When reducing empty rules, the default location is the single point location on the end of the previous symbol. As a consequence, when Bison parses a grammar, the location of the right-hand side of an empty rule is based on the lhs, *independently of the position of the colon*. And the colon can be way farther, separated by comments, white spaces, including empty lines. As a result, some messages look really bad. For instance: $ cat foo.y %% foo : /* empty */ bar : /* empty */ gives $ bison -Wall foo.y foo.y:2.4: warning: empty rule without %empty [-Wempty-rule] 2 | foo : /* empty */ | ^ foo.y:3.4: warning: empty rule without %empty [-Wempty-rule] 3 | bar | ^ The carets are not at the right column, not even the right line. This commit passes the colon "again" after the "id colon" token, which gives more accurate locations for these messages: $ bison -Wall foo.y foo.y:2.10: warning: empty rule without %empty [-Wempty-rule] 2 | foo : /* empty */ | ^ foo.y:4.2: warning: empty rule without %empty [-Wempty-rule] 4 | : /* empty */ | ^ * src/scan-gram.l (SC_AFTER_IDENTIFIER): Rollback the colon, so that we scan it again afterwards. (INITIAL): Scan colons. * src/parse-gram.y (COLON): New. (rules): Parse the colon after the rule's id_colon (and possible named reference). * tests/actions.at, tests/conflicts.at, tests/diagnostics.at, * tests/existing.at: Adjust.
* diagnostics: document the change of formatAkim Demaille2019-04-231-2/+24
| | | | | | * doc/bison.texiL Adjust output. Also, Graphviz has no uppercsae V. * NEWS: Explain the format change.
* diagnostics: use gnulib's libtextstyle-optionalAkim Demaille2019-03-241-0/+28
| | | | | | | | | | Bruno Haible just added a default implementation of libtextstyle's interface when the library is not available. https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00025.html * gnulib: Update. * bootstrap.conf: Replace libtextstyle with libtextstyle-optional. * src/complain.c, src/getargs.c: Remove now useless cpp guards.
* yacc.c: provide a means to include the header in the implementationAkim Demaille2019-03-171-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently when --defines is used, we generate a header, and paste an exact copy of it into the generated parser implementation file. Let's provide a means to #include it instead. We don't do it by default because of the Autotools' ylwrap. This program wraps invocations of yacc (that uses a fixed output name: y.tab.c, y.tab.h, y.output) to support a more modern naming scheme (dir/foo.y -> dir/foo.tab.c, dir/foo.tab.h, etc.). It does that by renaming the generated files, and then by running sed to propagate these renamings inside the files themselves. Unfortunately Automake's Makefiles uses Bison as if it were Yacc (with --yacc or with -o y.tab.c) and invoke bison via ylwrap. As a consequence, as far as Bison is concerned, the output files are y.tab.c and y.tab.h, so it emits '#include "y.tab.h"'. So far, so good. But now ylwrap processes this '#include "y.tab.h"' into '#include "dir/foo.tab.h"', which is not guaranteed to always work. So, let's do the Right Thing when the output file is not y.tab.c, in which case the user should %define api.header.include. Binding this behavior to --yacc is tempting, but we recently told people to stop using --yacc (as it also enables the Yacc warnings), but rather to use -o y.tab.c. Yacc.c is the only skeleton concerned: all the others do include their header. * data/skeletons/yacc.c (b4_header_include_if): New. (api.header.include): Provide a default value when the output is not y.tab.c. * src/parse-gram.y (api.header.include): Define.
* graph: prefer *.gv to *.dotAkim Demaille2019-02-211-0/+9
| | | | | | | | | | | Reported by Hans Åberg. https://lists.gnu.org/archive/html/help-bison/2019-02/msg00064.html * src/files.c (spec_graph_file): Use `*.gv` when 3.4 or better, otherwise `*.dot`. * src/parse-gram.y (handle_require): Pretend we are already 3.4. * doc/bison.texi: Adjust. * tests/local.at, tests/output.at: Exercise this.
* examples: add a simple infix calculator in CAkim Demaille2019-02-101-0/+5
| | | | | | | | Currently we have no simple example: rpcalc in reverse Polish, mfcalc has functions, and lexcalc is using lex. * examples/c/calc/Makefile, examples/c/calc/calc.y, * examples/c/calc/calc.test, examples/c/calc/local.mk: New.
* Merge branch maintAkim Demaille2019-02-031-11/+19
|\ | | | | | | | | | | | | | | | | | | | | * maint: maint: post-release administrivia version 3.3.2 style: minor fixes NEWS: named constructors are preferable to symbol_type ctors gram: fix handling of nterms in actions when some are unused style: rename local variable CI: update the ICC serial number for travis-ci.org
| * maint: post-release administriviaAkim Demaille2019-02-031-0/+3
| | | | | | | | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
| * version 3.3.2v3.3.2Akim Demaille2019-02-031-1/+1
| | | | | | | | * NEWS: Record release date.
| * style: minor fixesAkim Demaille2019-02-031-1/+1
| | | | | | | | | | * NEWS, src/reduce.c, src/reduce.h: Use 'nonterminal'. Fix comments.
| * NEWS: named constructors are preferable to symbol_type ctorsAkim Demaille2019-02-031-11/+12
| | | | | | | | | | Reported by Frank Heckenbach. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00043.html
| * gram: fix handling of nterms in actions when some are unusedAkim Demaille2019-02-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Bison 3.3, semantic values in rule actions (i.e., '$...') are passed to the m4 backend as the symbol number. Unfortunately, when there are unused symbols, the symbols are renumbered _after_ the numbers were used in the rule actions. As a result, the evaluation of the skeleton failed because it used non existing symbol numbers. Which is the happy scenario: we could use numbers of other existing symbols... Reported by Balázs Scheidler. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00044.html Translating the rule actions after the symbol renumbering moves too many parts in bison. Relying on the symbol identifiers is more troublesome than it might first seem: some don't have an identifier (tokens with only a literal string), some might have a complex one (tokens with a literal string with characters special for M4). Well, these are tokens, but nterms also have issues: "dummy" nterms (for midrule actions) are named $@32 etc. which is risky for M4. Instead, let's simply give M4 the mapping between the old numbers and the new ones. To avoid confusion between old and new numbers, always emit pre-renumbering numbers as "orig NUM". * data/README: Give details about "orig NUM". * data/skeletons/bison.m4 (__b4_symbol, _b4_symbol): Resolve the "orig NUM". * src/output.c (prepare_symbol_definitions): Pass nterm_map to m4. * src/reduce.h, src/reduce.c (nterm_map): Extract it from nonterminals_reduce, to make it public. (reduce_free): Free it. * src/scan-code.l (handle_action_dollar): When referring to a nterm, use "orig NUM". * tests/reduce.at (Useless Parts): New, based Balázs Scheidler's report.
* | add -fsyntax-onlyAkim Demaille2019-01-281-0/+6
|/ | | | | | | | | | When debugging Bison itself, this is very handy, especially when tweaking the frontend badly enough to break the backends. It can also be used to check a grammar. * src/getargs.h, src/getargs.c (feature_syntax_only): New. (feature_args, feature_types): Adjust. * src/main.c (main): Use it.
* maint: post-release administriviaAkim Demaille2019-01-271-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.3.1v3.3.1Akim Demaille2019-01-271-1/+1
| | | | * NEWS: Record release date.
* yacc: issue warnings, not errors, for Bison extensionsAkim Demaille2019-01-271-0/+4
| | | | | | | | | Reported by Kiyoshi Kanazawa. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00029.html * src/getargs.c (getargs): Let --yacc imply -Wyacc, not -Werror=yacc. * tests/input.at: Adjust. * doc/bison.tex (Bison Options): Document.
* style: formatting changes in NEWS and complain.cAkim Demaille2019-01-271-4/+4
|
* maint: post-release administriviaAkim Demaille2019-01-261-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.3v3.3Akim Demaille2019-01-261-1/+1
| | | | * NEWS: Record release date.
* NEWS: updateAkim Demaille2019-01-261-54/+60
|
* NEWS: fixesAkim Demaille2019-01-201-3/+2
|
* maint: post-release administriviaAkim Demaille2019-01-191-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.2.91v3.2.91Akim Demaille2019-01-191-1/+1
| | | | * NEWS: Record release date.
* NEWS: update for fixits and --updateAkim Demaille2019-01-181-0/+66
|
* maint: post-release administriviaAkim Demaille2019-01-121-0/+3
| | | | | | * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
* version 3.2.90v3.2.90Akim Demaille2019-01-121-1/+1
| | | | * NEWS: Record release date.
* NEWS: updateAkim Demaille2019-01-121-10/+0
|
* package: bump copyrights to 2019Akim Demaille2019-01-051-1/+1
|
* java/d: rename some %define variables for consistencyAkim Demaille2019-01-051-4/+18
| | | | | | | | | | | | | | | | | | | See 890ee8a1fd288b3cc1c21c49ea0ece696ef40565 and https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00024.html. * data/skeletons/d.m4, data/skeletons/java.m4 (abstract, annotations, extends, final, implements, public, strictfp): Rename as... (api.parser.abstract, api.parser.annotations, api.parser.extends) (api.parser.final, api.parser.implements, api.parser.public) (api.parser.strictfp): these. * src/muscle-tab.c (muscle_percent_variable_update): Ensure backward compatibility. * doc/bison.texi, examples/d/calc.y, examples/java/Calc.y, tests/input.at: Adjust.
* clearly deprecate %name-prefixAkim Demaille2019-01-031-2/+10
| | | | | | | | | | | * src/scan-gram.l (%name-prefix): Issue a deprecation warning. * tests/calc.at, tests/headers.at, tests/input.at, tests/java.at, * tests/javapush.at, tests/local.at: Adjust expectations. Or disable -Wdeprecated. * doc/bison.texi: Document that %name-prefix is replaced by %define api.prefix.