| 2019-12-11 Akim Demaille <[email protected]> |
| |
| version 3.5 |
| * NEWS: Record release date. |
| |
| 2019-12-10 Akim Demaille <[email protected]> |
| |
| news: prepare for 3.5 |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| glr.cc: disable warnings from Clang on macOS |
| $ cat test.cc |
| #include <stddef.h> |
| #include <stdint.h> |
| |
| ptrdiff_t half_max_capacity = PTRDIFF_MAX; |
| $ clang++-mp-9.0 -pedantic -std=c++98 /tmp/test.cc -c |
| /tmp/test.cc:4:31: warning: 'long long' is a C++11 extension [-Wc++11-long-long] |
| ptrdiff_t half_max_capacity = PTRDIFF_MAX; |
| ^ |
| /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:149:23: |
| note: expanded from macro 'PTRDIFF_MAX' |
| #define PTRDIFF_MAX INT64_MAX |
| ^ |
| /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:75:26: |
| note: expanded from macro 'INT64_MAX' |
| #define INT64_MAX 9223372036854775807LL |
| ^ |
| 1 warning generated. |
| |
| * data/skeletons/glr.cc: here. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| api.token.raw: fix it in C++ |
| Another breakage revealed by vcsn. |
| |
| * data/skeletons/c++.m4 (yytranslate_): Do not hard code "yy" and |
| "parser", both can be changed by the user. |
| Actually, since we are in the parser itself, there's really no need to |
| qualify the type. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| c++: fix comments for %code blocks |
| In a project of mine, vcsn, this commit fixes the following comments. |
| |
| --- /tmp/parse.hh 2019-12-08 15:51:24.792934703 +0100 |
| +++ lib/vcsn/rat/parse.hh 2019-12-08 16:00:59.137107503 +0100 |
| @@ -43,7 +43,7 @@ |
| |
| #ifndef YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED |
| # define YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED |
| -// // "%code requires" blocks. |
| +// "%code requires" blocks. |
| #line 20 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" |
| |
| #include <iostream> |
| @@ -1851,7 +1851,7 @@ |
| |
| -// // "%code provides" blocks. |
| +// "%code provides" blocks. |
| #line 60 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" |
| |
| #define YY_DECL_(Class) \ |
| |
| * data/skeletons/bison.m4 (b4_percent_code_get): Pass an expanded |
| string to b4_comment. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| parser: pretend we are Bison 3.5 |
| * src/parse-gram.y: Accept we're Bison 3.5. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| c++: fix spello |
| * data/skeletons/lalr1.cc: here. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| todo: update |
| * TODO: Schedule some features for 3.6. |
| Remove obsolete stuff. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| version 3.4.92 |
| * NEWS: Record release date. |
| |
| 2019-12-08 Akim Demaille <[email protected]> |
| |
| news: fixes |
| Reported by Paul Eggert. |
| https://lists.gnu.org/archive/html/bison-patches/2019-12/msg00014.html |
| |
| * NEWS: here. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| doc: minor changes |
| * README-hacking.md: here. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| doc: clearly deprecate YYPRINT |
| * doc/bison.texi (Prologue): Stop using YYPRINT as an example. |
| (The YYPRINT Macro): Clearly show this macro is deprecated. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: here. |
| No change in content. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| news: update |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| d: obey parse.error |
| * data/skeletons/lalr1.d (yysyntax_error): Let the dispatch be |
| bison-time, not runtime. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| c++: also prefer YY_ASSERT to YYASSERT |
| Like the other skeletons. |
| |
| * data/skeletons/variant.hh: here. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| glr.c: obey the parse.assert %define variable |
| * data/skeletons/glr.c (YYASSERT): Rename as... |
| (YY_ASSERT): this, for consistency with yacc.c, and also to emphasize |
| the fact that this is not for the end user (YY_ prefix). |
| * tests/glr-regression.at: Define parse.assert. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| c++: beware of short ranges for state numbers |
| Now that we use small integral types, possibly unsigned (e.g., |
| unsigned char), to store state numbers, using -1 to denote an empty |
| state (i.e., a state that stores no semantical value) is very |
| dangerous: it will be confused with state 255, which might be |
| non-empty. |
| |
| Rather than allocating a larger range of state numbers to keep the |
| empty-state apart, let's use the number of a state known to store no |
| value. The initial state, numbered 0, seems to fit perfectly the job. |
| |
| Reported by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html |
| |
| * data/skeletons/lalr1.cc (empty_state): Be 0. |
| |
| 2019-12-07 Akim Demaille <[email protected]> |
| |
| api.token.raw: check it against api.token.constructor |
| * tests/scanner.at: here. |
| |
| 2019-12-06 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-12-06 Akim Demaille <[email protected]> |
| |
| warnings: enable -Wuseless-cast, and eliminate warnings |
| Prompted by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html. |
| |
| * configure.ac (warn_cxx): Add -Wuseless-cast. |
| * data/skeletons/c.m4 (b4_attribute_define): Define |
| YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END. |
| * data/skeletons/glr.c (YY_FPRINTF): New, replaces YYFPRINTF, wrapped |
| with YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END. |
| (YY_DPRINTF): Likewise. |
| * tests/actions.at: Remove useless cast. |
| * tests/headers.at: Adjust. |
| |
| 2019-12-02 Akim Demaille <[email protected]> |
| |
| diagnostics: style changes |
| * src/complain.h, src/complain.c: Comment changes. |
| * src/scan-skel.l: Reduce scopes. |
| * data/skeletons/bison.m4: Factor diagnostic functions. |
| |
| 2019-12-02 Akim Demaille <[email protected]> |
| |
| glr.c: style changes |
| * data/skeletons/glr.c (yysplitStack): Reduce scopes. |
| * tests/atlocal.in: Formatting changes. |
| |
| 2019-12-01 Akim Demaille <[email protected]> |
| |
| c++: get rid of symbol_type::token () |
| It is not used. And its implementation was wrong when api.token.raw |
| was defined, as it was still mapping to the external token numbers, |
| instead of the internal ones. Besides it was provided only when |
| api.token.constructor is defined, yet always declared. |
| |
| * data/skeletons/c++.m4 (by_type::token): Remove, useless. |
| |
| 2019-12-01 Akim Demaille <[email protected]> |
| |
| c++: remove useless cast about user_token_number_max_ |
| Reported by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html |
| |
| The cast is needed when yytranslate_'s argument type is token_type, |
| i.e., when api.token.constructor is defined. |
| |
| 373. types.at:138: testing lalr1.cc api.value.type=variant api.token.constructor ... |
| ======== Testing with C++ standard flags: '' |
| ../../tests/types.at:138: bison --color=no -fno-caret -o test.cc test.y |
| ../../tests/types.at:138: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o test test.cc $LIBS |
| stderr: |
| test.cc:966:16: error: result of comparison of constant 257 with |
| expression of type 'yy::parser::token_type' |
| (aka 'yy::parser::token::yytokentype') is always true |
| [-Werror,-Wtautological-constant-out-of-range-compare] |
| else if (t <= user_token_number_max_) |
| ~ ^ ~~~~~~~~~~~~~~~~~~~~~~ |
| 1 error generated. |
| |
| It is because it is expected that when api.token.constructor is |
| defined, only symbol constructors will be used, that yytranslate_ then |
| takes a token_type. But it is wrong: we still allow literal |
| characters in this case, as demonstrated by test 373 for instance. |
| |
| %define api.value.type variant |
| %define api.token.constructor |
| %token <std::pair<int, int>> '1' '2'; |
| [...] |
| static yy::parser::symbol_type yylex () |
| { |
| static char const input[] = "12"; |
| int res = input[toknum++]; |
| typedef yy::parser::symbol_type symbol; |
| if (res) |
| return symbol (res, std::make_pair (res - '0', res - '0' + 1)); |
| else |
| return symbol (res); |
| } |
| |
| So let yytranslate_ always take an int, which makes the cast truly |
| useless. |
| |
| * data/skeletons/c++.m4, data/skeletons/lalr1.cc (yytranslate_): here. |
| |
| 2019-12-01 Akim Demaille <[email protected]> |
| |
| c++: clean a few issues wrt special tokens |
| The C++ implementation of LAC did not skip the $undefined token, |
| probably because it was not exposed. Expose it, and use clearer |
| names. |
| |
| * data/skeletons/c++.m4: Don't define undef_token_ in yytranslate_, |
| but... |
| * data/skeletons/lalr1.cc (yy_undef_token_): here. |
| Use a more precise type to define yy_undef_token_ and yy_error_token_. |
| Unfortunately we move from a compile-time value defined via an enum to |
| a static const member. Eventually we should make it constexpr. |
| Make LAC implementation more alike yacc.c's one. |
| |
| 2019-12-01 Akim Demaille <[email protected]> |
| |
| d, java: improve yytranslate and neighbors |
| * data/skeletons/lalr1.d, data/skeletons/lalr1.java: Don't expose |
| yyuser_token_number_max_ and yyundef_token_. Do as in C++: scope them |
| into yytranslate_, and only when api.token.raw is not defined. |
| (yyterror_): Rename as... |
| (yy_error_token_): this. |
| * data/skeletons/lalr1.d (token_number_type): New. |
| Use it. |
| Can't be done in the Java backend, as Java does not have type aliases. |
| |
| 2019-12-01 Akim Demaille <[email protected]> |
| |
| d, java: get rid of a useless table |
| * data/skeletons/lalr1.d, data/skeletons/lalr1.java (yytoken_number_): |
| Remove, useless. |
| Was used in ancient C skeletons to support YYPRINT, long obsoleted by |
| %printer. |
| |
| 2019-11-30 Akim Demaille <[email protected]> |
| |
| c++, d, java: remove yyerrcode |
| It is not used at all. We will remove it also from yacc.c, but |
| later (see TODO). |
| |
| * data/skeletons/lalr1.cc, data/skeletons/lalr1.d, |
| * data/skeletons/lalr1.java (yyerrcode_): |
| Remove. |
| |
| 2019-11-30 Akim Demaille <[email protected]> |
| |
| c++: improve typing |
| * data/skeletons/lalr1.cc (yysyntax_error_): symbol_type::type_get |
| returns a symbol_number_type (which is indeed an int). |
| |
| 2019-11-30 Akim Demaille <[email protected]> |
| |
| c++: remove useless cast about yyeof_ |
| Reported by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html |
| |
| * data/skeletons/c++.m4 (b4_yytranslate_define): Don't use yyeof_ as |
| if it had two different types. |
| It is used once against the input argument, which is the value |
| returned by yylex, which is an "external token number", typically an |
| int. It is also used as output type, an "internal symbol number". |
| It turns out that in both cases we mean "0", but let's keep yyeof_ |
| only for the case "internal symbol number", i.e., _after_ conversion |
| by yytranslate. |
| This frees us from one cast. |
| |
| 2019-11-30 Akim Demaille <[email protected]> |
| |
| glr: style change |
| * data/skeletons/glr.c (YYDPRINTF): Expand into an empty statement, |
| instead of nothing. |
| Simplify callers. |
| |
| 2019-11-30 Akim Demaille <[email protected]> |
| |
| glr: remove useless casts |
| Reported by GCC's -Wuseless-cast. |
| |
| * data/skeletons/glr.c: Don't cast to yybool, it's useless. |
| |
| 2019-11-29 Akim Demaille <[email protected]> |
| |
| yacc.c, glr.c: fix crash when reporting errors in consistent states |
| The current code for yysyntax_error for %define parse.error verbose is |
| fishy (given that YYEMPTY is -2, invalid argument for yytname[]): |
| |
| static int |
| yysyntax_error ([...]) |
| { |
| YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); |
| [...] |
| if (yytoken != YYEMPTY) |
| |
| A nearby comment reports |
| |
| The only way there can be no lookahead present (in yychar) is if |
| this state is a consistent state with a default action. Thus, |
| detecting the absence of a lookahead is sufficient to determine |
| that there is no unexpected or expected token to report. In that |
| case, just report a simple "syntax error". |
| |
| So it _is_ possible to call yysyntax_error with yytoken == YYEMPTY, |
| albeit quite difficult when meaning to, so virtually impossible by |
| accident (after all, there was never a bug report about this). |
| |
| I failed to produce a test case, but Joel E. Denny provided me with |
| one (added to the test suite below). The yacc.c skeleton fails on |
| this, and once fixed dies on a second problem. The glr.c skeleton was |
| also dying, but immediately of this second problem. |
| |
| Indeed we were not allocating space for the error message's final \0. |
| This was hidden by the fact that we only had error messages with at |
| least an unexpected token displayed, so with at least one "%s" in the |
| format string, whose size (2) was included (incorrectly) in the final |
| size of the message (where the %s have been replaced by the actual |
| content). |
| |
| * data/skeletons/glr.c, data/skeletons/yacc.c (yysyntax_error): |
| Do not invoke yytnamerr on YYEMPTY. |
| Clarify the computation of the length of the _final_ error message, |
| with the NUL terminator but without the '%s's. |
| * tests/conflicts.at (Syntax error in consistent error state): |
| New, contributed by Joel E. Denny. |
| |
| 2019-11-26 Akim Demaille <[email protected]> |
| |
| tests: avoid creating files whose name collide with standard headers |
| Having a file named "exception" is risky: the compiler might use that |
| file in #include. |
| Reported by 马俊 <[email protected]>. |
| |
| * tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): Generate |
| 'exceptions', not 'exception'. |
| |
| 2019-11-22 Akim Demaille <[email protected]> |
| |
| doc: more details about the test suite |
| * README-hacking.md: here. |
| |
| 2019-11-20 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-11-20 Akim Demaille <[email protected]> |
| |
| version 3.4.91 |
| * NEWS: Record release date. |
| |
| 2019-11-20 Akim Demaille <[email protected]> |
| |
| style: pacify syntax-check |
| * cfg.mk: No need to translate *.md files. |
| * data/skeletons/glr.c, data/skeletons/yacc.c: Fix space issues. |
| |
| 2019-11-19 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-11-18 Akim Demaille <[email protected]> |
| |
| doc: don't promote dangling aliases |
| String literals as tokens serve two distinct purposes: freeing from |
| having to implement the keyword matching in the scanner, and improving |
| error messages. Most of the time both can be achieved at the same |
| time, but on occasions, it does not work so well. |
| |
| We promote their use for error messages. We will also still support |
| the former case, but it is _not_ the recommended approach. |
| |
| * doc/bison.texi (Tokens from Literals): Clearly state that we don't |
| recommend looking up the token types in the list of token names. |
| |
| 2019-11-17 Akim Demaille <[email protected]> |
| |
| diagnostics: complain about undeclared string tokens |
| String literals, which allow for better error messages, are (too) |
| liberally accepted by Bison, which might result in silent errors. For |
| instance |
| |
| %type <exVal> cond "condition" |
| |
| does not define “condition” as a string alias to 'cond' (nonterminal |
| symbols do not have string aliases). It is rather equivalent to |
| |
| %nterm <exVal> cond |
| %token <exVal> "condition" |
| |
| i.e., it gives the type 'exVal' to the "condition" token, which was |
| clearly not the intention. |
| |
| Introduce -Wdangling-alias to catch this. |
| |
| * src/complain.h, src/complain.c: Add support for -Wdangling-alias. |
| (argmatch_warning_args): Sort. |
| * src/symtab.c (symbol_check_defined): Complain about dangling |
| aliases. |
| * doc/bison.texi: Document it. |
| * tests/input.at (Dangling aliases): New test. |
| |
| 2019-11-17 Akim Demaille <[email protected]> |
| |
| diagnostics: yacc reserves %type to nonterminals |
| On |
| |
| %token TOKEN1 |
| %type <ival> TOKEN1 TOKEN2 't' |
| %token TOKEN2 |
| %% |
| expr: |
| |
| bison -Wyacc gives |
| |
| input.y:2.15-20: warning: POSIX yacc reserves %type to nonterminals [-Wyacc] |
| 2 | %type <ival> TOKEN1 TOKEN2 't' |
| | ^~~~~~ |
| input.y:2.29-31: warning: POSIX yacc reserves %type to nonterminals [-Wyacc] |
| 2 | %type <ival> TOKEN1 TOKEN2 't' |
| | ^~~ |
| input.y:2.22-27: warning: POSIX yacc reserves %type to nonterminals [-Wyacc] |
| 2 | %type <ival> TOKEN1 TOKEN2 't' |
| | ^~~~~~ |
| |
| The messages appear to be out of order, but they are emitted when the |
| error is found. |
| |
| * src/symtab.h (symbol_class): Add pct_type_sym, used to denote |
| symbols appearing in %type. |
| * src/symtab.c (complain_pct_type_on_token): New. |
| (symbol_class_set): Check that %type is not applied to tokens. |
| (symbol_check_defined): pct_type_sym also means undefined. |
| * src/parse-gram.y (symbol_decl.1): Set the class to pct_type_sym. |
| * src/reader.c (grammar_current_rule_begin): pct_type_sym also means |
| undefined. |
| * tests/input.at (Yacc's %type): New. |
| |
| 2019-11-16 Akim Demaille <[email protected]> |
| |
| doc: promote %nterm over %type |
| As an extension to POSIX Yacc, Bison's %type accepts tokens. |
| Unfortunately with string literals as implicit tokens, this is |
| misleading, and led some users to write |
| |
| %type <exVal> cond "condition" |
| |
| believing that "condition" would be associated to the 'cond' |
| nonterminal (see https://github.com/apache/httpd/pull/72). |
| |
| * doc/bison.texi: Promote %nterm rather than %type to declare the type |
| of nonterminals. |
| |
| 2019-11-16 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: No visible changes. |
| |
| 2019-11-16 Akim Demaille <[email protected]> |
| |
| doc: work around warnings when Flex C output is compiled in C++ |
| * doc/bison.texi (calc++/scanner.ll): here. |
| While at it, clarify clang vs. warnings. |
| |
| 2019-11-16 Akim Demaille <[email protected]> |
| |
| tests: be robust to old Perl versions on Cygwin |
| Reported by Denis Excoffier. |
| https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00008.html. |
| |
| * tests/output.at: Be sure to remove back up files. |
| |
| 2019-11-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-11-12 kaneko y <[email protected]> |
| |
| gram.c: Fix condition of aver |
| * src/gram.c (grammar_dump): Fix condition of aver. |
| What we want to check is that rhs is followed by its rule. |
| |
| 2019-11-11 Akim Demaille <[email protected]> |
| |
| doc: clarify build instructions |
| * README: A few fixes. |
| Explain how to install color support. |
| * README-hacking: Rename as... |
| * README-hacking.md: this, and convert to Markdown. |
| Improve typography. |
| Improve explanations about update-test. |
| |
| 2019-11-11 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-11-11 Yuichiro Kaneko <[email protected]> |
| |
| gram.c: also print terminals in grammar_dump |
| * src/gram.c (grammar_dump): Print terminals likewise non terminals. |
| * tests/sets.at (Reduced Grammar): Update test case to catch up the |
| change and add a test case where prec and assoc are used. |
| |
| 2019-11-10 Akim Demaille <[email protected]> |
| |
| doc: work around Texinfo 6.7 bug |
| When @code is used in a @deftype... definition, it issues quotes. |
| Remove them. |
| See https://lists.gnu.org/archive/html/help-texinfo/2019-11/msg00004.html. |
| |
| * doc/local.mk: here. |
| |
| 2019-11-09 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: Wrap lines. |
| No semantical difference. |
| |
| 2019-11-09 Akim Demaille <[email protected]> |
| |
| doc: use upper case for tokens |
| * doc/bison.texi: here. |
| |
| 2019-11-07 Akim Demaille <[email protected]> |
| |
| doc: type-face fixes |
| * doc/bison.texi: Use @code for types in function definitions. |
| |
| 2019-11-06 Akim Demaille <[email protected]> |
| |
| c++: expose the type used to store line and column numbers |
| * data/skeletons/location.cc (position::counter_type) |
| (location::counter_type): New. |
| Use them. |
| * doc/bison.texi (C++ position, C++ location): Adjust. |
| |
| 2019-11-03 Akim Demaille <[email protected]> |
| |
| tests: fix comment and adjust to locale names on GNU/Linux |
| Reported by Denis Excoffier. |
| |
| * tests/diagnostics.at: here. |
| |
| 2019-11-03 Akim Demaille <[email protected]> |
| |
| tests: really check complaints from m4 |
| * tests/diagnostics.at (Locations from M4, Tabulations and multibyte |
| characters from M4): These tests are actually checking a message |
| coming from C, not from M4. Replace with... |
| (Complaints from M4): This. |
| |
| 2019-11-03 Akim Demaille <[email protected]> |
| |
| tests: simplify prologue |
| * tests/testsuite.h: We no longer load gnulib in the tests. |
| |
| 2019-11-03 Akim Demaille <[email protected]> |
| |
| diagnostics: add missing translation |
| * src/muscle-tab.c (muscle_percent_define_check_kind): Here. |
| |
| 2019-11-02 Akim Demaille <[email protected]> |
| |
| c++: fix old cast warnings |
| We still have a few old C casts in lalr1.cc, let's get rid of them. |
| Reported by Frank Heckenbach. |
| |
| Actually, let's monitor all our casts using easy to grep macros. |
| Let's use these macros to use the C++ standard casts when we are in |
| C++. |
| |
| * data/skeletons/c.m4 (b4_cast_define): New. |
| * data/skeletons/glr.c, data/skeletons/glr.cc, |
| * data/skeletons/lalr1.cc, data/skeletons/stack.hh, |
| * data/skeletons/yacc.c: |
| Use it and/or its casts. |
| |
| * tests/actions.at, tests/cxx-type.at, |
| * tests/glr-regression.at, tests/headers.at, tests/torture.at, |
| * tests/types.at: |
| Use YY_CAST instead of C casts. |
| |
| * configure.ac (warn_cxx): Add -Wold-style-cast. |
| * doc/bison.texi: Disable it. |
| |
| 2019-11-01 Akim Demaille <[email protected]> |
| |
| tests: be robust to tput errors |
| Reported by Denis Excoffier. |
| |
| * tests/bison.in: here. |
| |
| 2019-11-01 Akim Demaille <[email protected]> |
| |
| git: update ignores |
| I don't understand what happened in |
| 10acc148bb90fac8a52a5d35f2bd18bd824c1639. |
| |
| 2019-10-29 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-10-29 Akim Demaille <[email protected]> |
| |
| version 3.4.90 |
| * NEWS: Record release date. |
| |
| 2019-10-29 Akim Demaille <[email protected]> |
| |
| C++: finish propagating the unsigned->signed conversion in locations |
| * data/skeletons/location.cc: Remove the u (for unsigned) suffix from |
| the initial line and column. |
| * NEWS: AFAICT, only C++ backends have their location types changed. |
| |
| 2019-10-29 Akim Demaille <[email protected]> |
| |
| style: fix cpp indentation |
| Reported by syntax-check. |
| |
| * src/system.h: here. |
| |
| 2019-10-29 Akim Demaille <[email protected]> |
| |
| style: glr.c: comment changes |
| * data/skeletons/glr.c: here. |
| |
| 2019-10-26 Akim Demaille <[email protected]> |
| |
| CI: pass -O1 to GCC8 with sanitizers |
| This build never finishes in the 50min credit given by Travis. See if |
| with optimizations it works better. |
| |
| * .travis.yml: here. |
| |
| 2019-10-26 Akim Demaille <[email protected]> |
| |
| reader: reduce the "scope" of global variables |
| We have too many global variables, adding structure would help. For a |
| start, let's hide some of the variables closer to their usage. |
| |
| * src/getargs.c, src/files.h (current_file): Move to... |
| * src/scan-gram.c: here. |
| * src/scan-gram.h (gram_in, gram__flex_debug): Remove, make them |
| private to the scanner. |
| * src/reader.h, src/reader.c (reader): Take a grammar file as argument. |
| Move the handling of scanner variables to... |
| * src/scan-gram.l (gram_scanner_open, gram_scanner_close): here. |
| (gram_scanner_initialize): Remove, replaced by gram_scanner_open. |
| * src/main.c: Adjust. |
| |
| 2019-10-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-10-26 Akim Demaille <[email protected]> |
| |
| parser: use grammar_file instead of current_file |
| * src/parse-gram (%initial-action): here. |
| (handle_skeleton): Don't depend on the current file name to look for |
| "local" skeletons (subject to changes coming from "#lines"): depend |
| only on the initial file name, the one given on the command line. |
| |
| 2019-10-26 Akim Demaille <[email protected]> |
| |
| diagnostics: use grammar_file instead of current_file |
| Currently there are two globals denoting the input file: grammar_file |
| is the one from the command line, and current_file which might change |
| because of #line. Use only the former. |
| |
| * src/complain.c (error_message): here. |
| * tests/diagnostics.at: Adjust. |
| |
| 2019-10-25 Akim Demaille <[email protected]> |
| |
| reader: let symtab deal with the symbols |
| * src/reader.c (reader): Move the setting up of the builtin symbols to... |
| * src/symtab.c (symbols_new): here. |
| |
| 2019-10-25 Akim Demaille <[email protected]> |
| |
| style: remove incorrect comment |
| Reported by Paul Eggert. |
| |
| * src/system.h: here. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix previous commit: printing of state numbers |
| * data/skeletons/lalr1.cc: Printing a char prints... a char. |
| Print ints instead. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| lalr1.cc: use computed state types |
| This skeleton uses a single stack of state structures, so it is less |
| likely to benefit from a stack size reduction than yacc.c (which uses |
| several stacks: state number, value and location). But it will reduce |
| the size of the LAC stack. |
| |
| This skeleton was already using int for state numbers, so, contrary to |
| yacc.c, this brings nothing for large automata. |
| |
| Overall, it is still nicer to make the skeletons alike. |
| |
| * data/skeletons/lalr1.cc (state_type): Here. |
| |
| 2019-10-24 kaneko y <[email protected]> |
| |
| README: Fix a typo |
| * README: Fix a typo. Git command name is submodule. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| examples: fix missing dependencies |
| Reported by Thomas Petazzoni. |
| https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00000.html |
| |
| * examples/c/reccalc/local.mk: Complete dependencies, including for |
| earlier versions of Automake (for sake of our CI, on top of Ubuntu |
| Xenial/Bionic, which feature only Automake 1.15). |
| (%D%/scan.c %D%/scan.h): Upgrade to the full version provided in |
| Automake's documentation. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| diagnostics: simplify location handling |
| Locations start at line 1. Don't accept line 0. |
| |
| * src/location.c (location_print): Don't print locations with line 0. |
| (location_caret): Simplify. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| build: reenable -Wtype-limits |
| See https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html |
| to https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00073.html. |
| |
| Paul Eggert's changes in gnulib do fix the issue for modern GCCs (7, |
| 8, 9) on macOS. Unfortunately these warnings are back on the |
| CI (GNU/Linux) with GCC 4.6, 4.7, (not 4.8) and 4.9. |
| |
| Disable the warning locally. |
| |
| * configure.ac (warn_common, warn_tests): Remove -Wtype-limits. |
| * src/system.h (IGNORE_TYPE_LIMITS_BEGIN, IGNORE_TYPE_LIMITS_END): New. |
| * src/InadequacyList.c, src/parse-gram.c, src/parse-gram.y, |
| * src/symtab.c: Use it. |
| |
| 2019-10-24 Akim Demaille <[email protected]> |
| |
| build: remove dmalloc support |
| Today sanitizers are a better alternative. |
| |
| * m4/dmalloc.m4: Remove. |
| * configure.ac, src/system.h: Adjust. |
| |
| 2019-10-23 Akim Demaille <[email protected]> |
| |
| gitignore: update |
| |
| 2019-10-23 Paul Eggert <[email protected]> |
| |
| build: update gnulib submodule to latest |
| |
| 2019-10-23 Yuichiro Kaneko <[email protected]> |
| |
| style: update comment in reader.c |
| rrhs and rlhs were removed by b2ed6e5826e772162719db595446b2c58e4ac5d6. |
| |
| * src/reader.c (packgram): Update comment. |
| |
| 2019-10-22 kaneko y <[email protected]> |
| |
| yacc.c: fix a typo |
| * data/skeletons/yacc.c (yysetstate): fix comment. |
| |
| 2019-10-22 Akim Demaille <[email protected]> |
| |
| style: pacify syntax-check |
| * doc/.gitignore, src/complain.c, src/getargs.c, |
| * src/output.c: here. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| main: also free memory on errors |
| * src/derives.c (derives_free): Beware of NULL. |
| * src/main.c (main): Let the 'finish' label include memory release. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| To get bitset_free accept NULL. See |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-10/msg00054.html |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| style: reduce scope in derives |
| * src/derives.c: here. |
| And prefer prefix to postfix increment. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| build: disable -Wtautological-constant-out-of-range-compare |
| Also see e31f92495ce14a5d924b148c8ea1470003cc47c1 and |
| https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html |
| |
| * configure.ac (warn_common): Disable |
| -Wtautological-constant-out-of-range-compare. |
| (warn_tests): Restore it. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| CI: formatting changes |
| * .travis.yml: Use the single line form of lists, when reduced to a |
| singletons. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| CI: rename jobs |
| * .travis.yml (compile, test): Rename as... |
| (dist, check): these, which are more traditional for GNU projects. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| doc: update README |
| * README: Be clearer that README-hacking _must_ be read. |
| Convert to Markdown. |
| |
| 2019-10-21 Akim Demaille <[email protected]> |
| |
| bootstrap: relieve developpers from Gettext version mismatch issues |
| * .travis.yml (compile): Move the workaround from here... |
| * bootstrap.conf (bootstrap_epilogue): to there. |
| |
| 2019-10-20 Akim Demaille <[email protected]> |
| |
| tests: beware of GCC9 warnings in push mode |
| This is really weird: GCC points to the LHS of the assignment... |
| |
| 260. headers.at:184: testing Sane headers: api.pure api.push-pull=both ... |
| tests/headers.at:184: COLUMNS=1000; export COLUMNS; bison --color=no -fno-caret -d -o input.c input.y |
| tests/headers.at:184: $CC $CFLAGS $CPPFLAGS -c -o input.o input.c |
| stderr: |
| input.c: In function 'yyparse': |
| input.c:1276:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| 1276 | yylval = *yypushed_val; |
| | ~~~~~~~^~~~~~~~~~~~~~~ |
| input.c: In function 'yypull_parse': |
| input.c:1276:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| 1276 | yylval = *yypushed_val; |
| | ~~~~~~~^~~~~~~~~~~~~~~ |
| cc1: all warnings being treated as errors |
| stdout: |
| tests/headers.at:184: exit code was 1, expected 0 |
| |
| See also d87c8ac79ab844d6a7a4f5103dcf7a842d18b611 |
| and 9645a2b20ee7cbfa8bb4ac2237f87d598afe349c. |
| |
| * tests/headers.at (Several parsers, Several parsers): Disable these |
| warnings when in push parser. |
| |
| 2019-10-20 Akim Demaille <[email protected]> |
| |
| CI: try GCC9 and Clang9 |
| The logs show: |
| |
| Disallowing sources: llvm-toolchain-bionic-8, ubuntu-toolchain-r-test |
| To add unlisted APT sources, follow instructions in |
| https://docs.travis-ci.com/user/installing-dependencies#Installing-Packages-with-the-APT-Addon |
| |
| * .travis.yml: Remove a few apt sources which are ignored in |
| Bionic (e.g., see |
| https://github.com/travis-ci/apt-source-safelist/issues/410). |
| Where needed, use sources/sourceline instead. |
| Also, don't use -DNDEBUG with older builds. |
| |
| 2019-10-20 Akim Demaille <[email protected]> |
| |
| parser: clarify version checking |
| * src/parse-gram.y: Use the same conventions for gnulib as elsewhere: |
| <header.h>. |
| (str_to_version): New. |
| (handle_require): Use it. |
| Prefer < to >. |
| |
| 2019-10-20 Akim Demaille <[email protected]> |
| |
| build: disable -Wtype-limits, except in the test suite |
| The current implementation of lib/intprops.h results in "unsigned < 0" |
| comparisons, which triggers warnings. See |
| |
| https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html |
| |
| * configure.ac (warn_common): Disable -Wtype-limits. |
| (warn_tests): Restore it. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| c++: port to Sun C++ 5.12 |
| The documentation for Oracle Solaris Studio 12.3 (Sun C++ 5.12 |
| 2011/11/16) says it supports C++03. This compiler rejects the |
| location.cc use of std::max for some reason; I don’t know why |
| since I don’t use C++ as a rule. The simplest workaround is to |
| open-code ‘max’. |
| * data/skeletons/location.cc (add_): |
| Do max by hand rather than relying on std::max. |
| Don’t include <algorithm.h>; no longer needed. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| regen |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| tests: port to Solaris 10 grep |
| * tests/scanner.at (Token numbers: $1): Use $EGREP, not grep -E. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| tests: port to Solaris 10 sed |
| As documented in the Autoconf manual, Solaris 10 sed rejects |
| script labels contianing more than 7 characters. POSIX requires |
| support for at least 8 characters, but we might as well be portable |
| to Solaris 10 which is still supported. |
| * tests/local.at (AT_SETS_CHECK): Use only the first 7 characters |
| in sed labels. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| bison: check for int overflow in token numbers |
| * src/symtab.c: Include intprops.h |
| (symbol_user_token_number_set): Don’t allow user_token_number == |
| INT_MAX because too much other code adds 1 to the user token number. |
| (symbols_token_translations_init): Complain on integer overflow |
| instead of indulging in undefined behavior. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| bison: check for int overflow when scanning |
| * src/scan-gram.l: Include errno.h, for errno. |
| (scan_integer, handle_syncline): Check for integer overflow. |
| * tests/input.at (too-large.y): Adjust to match new diagnostics. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| bison: check version numbers more carefully |
| * src/parse-gram.y: Include intprops.h. |
| (handle_require): Don’t indulge in undefined behavior if the major |
| or minor number is out of range. Instead, check that the |
| resulting value is nonnegative, fits in int, and that the minor |
| number is less than 100. Also, check that a number was parsed. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| c: port YY_ATTRIBUTE_UNUSED to Sun C 5.12 |
| Sun C 5.12 defines __SUNPRO_C to 0x5120 but diagnoses |
| ‘__attribute__ ((__unused__))’. Change the ifdefs to use |
| the same method as Gnulib in this area. |
| * data/skeletons/c.m4 (YY_ATTRIBUTE): Remove, since |
| not all attributes were added in the same compiler version. |
| (YY_ATTRIBUTE_PURE, YY_ATTRIBUTE_UNUSED): |
| Use specific GCC version for each attribute. |
| Pay no attention to __SUNPRO_C. |
| * tests/headers.at (Several parsers): Tighten tests accordingly. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| c: improve port of stdint.h usage to pre-C99 |
| Oracle Solaris Studio 12.3 (Sun C 5.12 2011/11/16) by default does |
| not conform to C99; it defines __STDC_VERSION__ to be 199409L, so |
| the Bison code does not include <stdint.h> (not required by C89 |
| amendment 1) even though this compiler does have <stdint.h>. On |
| this platform <limits.h> defines INT_LEAST8_MAX (POSIX allows |
| this) so the skeleton got confused and thought that <stdint.h> had |
| been included even though it wasn’t. |
| * data/skeletons/c.m4 (b4_c99_int_type_define) [!__PTRDIFF_MAX__]: |
| Always include <limits.h>. |
| (YY_STDINT_H): Define when <stdint.h> was included. |
| All uses of expressions like ‘defined INT_LEAST8_MAX’ changed to |
| ‘defined YY_STDINT_H’, since Sun C 5.12 <limits.h> defines macros |
| like INT_LEAST8_MAX but does not declare types like int_least8_t. |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| gnulib:update |
| |
| 2019-10-17 Paul Eggert <[email protected]> |
| |
| autoconf:update |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| TODO: more updates |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| TODO: update |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| yacc: rename types for states |
| * data/skeletons/yacc.c (yy_state_num): Rename as... |
| (yy_state_t): this. |
| (yy_state_fast_t): New. |
| Use it. |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| glr: style changes |
| * data/skeletons/glr.c (yytnamerr): here. |
| (yyprocessOneStack): Initialize variables. |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| yacc: style changes |
| * data/skeletons/yacc.c: Move call to lac discard to clarify the |
| shifting of the token. |
| Like in lalr1.cc. |
| |
| 2019-10-15 Akim Demaille <[email protected]> |
| |
| tests: avoid $(...) |
| Reported by Paul Eggert. |
| |
| * tests/local.at (AT_DATA_NO_FINAL_EOL): here. |
| |
| 2019-10-14 Akim Demaille <[email protected]> |
| |
| tests: use a portable 'truncate' implementation |
| Suggested by Paul Eggert. |
| https://lists.gnu.org/archive/html/bison-patches/2019-10/msg00044.html |
| |
| * tests/local.at (AT_DATA_NO_FINAL_EOL): Use dd instead of perl. |
| |
| 2019-10-13 Akim Demaille <[email protected]> |
| |
| tests: factor the generation of files without the final eol |
| AFAICT Autotest 2.69 still does not support AT_DATA without the final |
| eol. |
| |
| * tests/local.at (AT_DATA_NO_FINAL_EOL): New. |
| * tests/input.at: Use it. |
| |
| 2019-10-13 Akim Demaille <[email protected]> |
| |
| tests: refactor the handling of Perl |
| Let's make a difference between places where Perl is required for the |
| test (AT_PERL_REQUIRE), and the places where it's used to run the |
| test, but it's not not to run the test (AT_PERL_CHECK). |
| |
| * tests/local.at (AT_REQUIRE): New. |
| (AT_PERL_CHECK, AT_PERL_REQUIRE): New. |
| Use them where appropriate. |
| |
| * tests/local.mk ($(TESTSUITE)): Beware not to start the line with |
| '-pi' if Perl is empty, as Make understands this as "it's ok to fail". |
| Which it is not. |
| |
| 2019-10-12 Akim Demaille <[email protected]> |
| |
| d: comment changes |
| * data/skeletons/lalr1.d: Here. |
| |
| 2019-10-12 Akim Demaille <[email protected]> |
| |
| i18n: don't push too hard for '…' |
| Suggested by Paul Eggert. |
| |
| * src/location.c (ellipsis): Clarify comment for translators. |
| |
| 2019-10-11 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-10-11 Akim Demaille <[email protected]> |
| |
| glr: display line numbers in traces |
| Suggested by Lars Maier. |
| |
| * data/skeletons/glr.c: Also display rule locations when rules are |
| deferred, and rejected. |
| |
| 2019-10-11 Akim Demaille <[email protected]> |
| |
| tests: be really robust to Perl missing |
| My previous tests (with ./configure PERL=false) have been fooled by |
| configure, that managed to find perl anyway. This time, I ran this on |
| a Fedora in Docker, without Perl. |
| |
| * tests/calc.at, tests/diagnostics.at, tests/headers.at, |
| * tests/input.at, tests/local.at, tests/named-refs.at, |
| * tests/output.at, tests/regression.at, tests/skeletons.at, |
| * tests/synclines.at, tests/torture.at: Don't require Perl. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| configure: perl is not required |
| But it's used in various places, including in some tests. |
| |
| * configure.ac: here. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| news: update |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| diagnostics: prefer "…" to "..." if the locale supports it |
| * src/location.c (ellipsis, ellipsize): New. |
| Use them. |
| |
| 2019-10-10 Paul Eggert <[email protected]> |
| |
| c: improve patch for UCHAR_MAX etc. problem |
| * data/skeletons/c.m4 (b4_c99_int_type_define): Reorder to put the |
| signed types first, since they’re simpler and this keeps similar |
| code closer. For signed types, don’t bother checking whether the |
| type promotes to int since the type must be signed anyway. For |
| unsigned types, protect a test like ‘UCHAR_MAX <= INT_MAX’ with |
| ‘!defined __UINT_LEAST8_MAX__’, as otherwise the logic is wrong |
| for oddball platforms; and once we do that, there should no need |
| for ‘defined INT_MAX’ so remove that. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| tests: do not depend on config.h |
| Currently we face test suite failures in different environments, |
| because of a conflict between the definitions of isnan by gnulib, and |
| by the C++ library: |
| |
| 262. headers.at:186: testing Sane headers: %locations %debug c++ ... |
| ./headers.at:186: COLUMNS=1000; export COLUMNS; bison --color=no -fno-caret -d -o input.cc input.y |
| ./headers.at:186: $CXX $CXXFLAGS $CPPFLAGS -c -o input.o input.cc |
| stderr: |
| In file included from /usr/include/c++/4.8.2/cmath:44:0, |
| from /usr/include/c++/4.8.2/random:38, |
| from /usr/include/c++/4.8.2/bits/stl_algo.h:65, |
| from /usr/include/c++/4.8.2/algorithm:62, |
| from location.hh:41, |
| from input.hh:90, |
| from input.cc:50: |
| /u/cs/fac/eggert/src/gnu/bison/lib/math.h: In function 'bool isnan(double)': |
| /u/cs/fac/eggert/src/gnu/bison/lib/math.h:2849:1: error: new declaration 'bool isnan(double)' |
| _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool) |
| ^ |
| In file included from /usr/include/features.h:375:0, |
| from /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39, |
| from /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097, |
| from /usr/include/c++/4.8.2/cstdlib:41, |
| from input.hh:48, |
| from input.cc:50: |
| /usr/include/bits/mathcalls.h:235:1: error: ambiguates old declaration 'int isnan(double)' |
| __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); |
| ^ |
| |
| There might be something to do in gnulib about this, but I believe |
| that gnulib should not be used in the test suite in the first place. |
| |
| The test suite should work with other compilers than the one used to |
| compile the package. For a start, Bison sources are more |
| demanding (C99) than the generated parsers. Last time I tried, tcc |
| for example, was not able to compile Bison, yet our generated parsers |
| should compile cleanly with it. |
| |
| Besides the problem at hand is with the C++ compiler, with is not the |
| one used to set up gnulib at configuration-time (config.h is mainly |
| built from probing the C compiler). |
| |
| We should really not depend on gnulib in tests. |
| |
| This was introduced in 2001 to check whether including |
| stdlib.h/string.h is safe thanks to STDC_HEADERS |
| (2ce1014469742b5c6618daf8506b69e38787c7d5). Today, we assume at least |
| a C90 compiler, it should be safe enough. |
| |
| * tests/local.at, tests/testsuite.h: Do not include config.h. |
| * tests/atlocal.in (conftest.cc): Likewise. |
| (CPPFLAGS): Do not expose lib/, as because of this we might picked up |
| gnulib replacement headers for system headers. |
| |
| * tests/input.at: Use int instead of ptrdiff_t, for easier portability |
| (some machine on the CI did not find ptrdiff_t). |
| * tests/c++.at: Add missing include for getchar. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| doc: spell check |
| * doc/bison.texi: Remove the index about yyoutput, it is no longer |
| documented. |
| Spell check. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/actions.at: Prefer printf to fprintf. |
| Prefer yyo to yyoutput in %printer. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/actions.at, tests/local.at: here. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| tests: add missing includes |
| * tests/actions.at, tests/c++.at, tests/headers.at, |
| * tests/regression.at: here. |
| |
| 2019-10-10 Akim Demaille <[email protected]> |
| |
| c: don't assume that UCHAR_MAX, etc. are defined |
| A number of portability issues with GCC 4.6 .. 4.9 (inclusive): |
| |
| input.c:184:7: error: "UCHAR_MAX" is not defined [-Werror=undef] |
| #elif UCHAR_MAX <= INT_MAX |
| ^ |
| input.c:184:20: error: "INT_MAX" is not defined [-Werror=undef] |
| #elif UCHAR_MAX <= INT_MAX |
| ^ |
| input.c:202:7: error: "USHRT_MAX" is not defined [-Werror=undef] |
| #elif USHRT_MAX <= INT_MAX |
| ^ |
| input.c:202:20: error: "INT_MAX" is not defined [-Werror=undef] |
| #elif USHRT_MAX <= INT_MAX |
| ^ |
| |
| * data/skeletons/c.m4 (b4_c99_int_type_define): Don't assume they are |
| defined. |
| |
| 2019-10-09 Akim Demaille <[email protected]> |
| |
| configure: don't require Flex |
| Flex should not be required to build Bison or run the test suite (of |
| course it is needed for maintaining Bison). Yet the Automake |
| conditional FLEX_WORKS does not work. |
| |
| * m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Since this is called |
| conditionally, don't define LEX_IS_FLEX here, but rather... |
| (AC_PROG_LEX): here. |
| * configure.ac: Be more cautious about possibly undefined variables. |
| |
| 2019-10-07 Paul Eggert <[email protected]> |
| |
| Move the integer-type selection into c.m4 |
| That way, glr.c can use it too. |
| * data/skeletons/c.m4 (b4_int_type): |
| Do not special-case ‘char’; it’s not worth the trouble, |
| as clang complains about char subscripts. |
| (b4_c99_int_type, b4_c99_int_type_define): New macros, |
| taken from yacc.c. |
| * data/skeletons/glr.c: Use b4_int_type_define. |
| * data/skeletons/yacc.c (b4_int_type): Remove, since there’s |
| no longer any need to redefine it. |
| Use b4_c99_int_type_define rather than its body. |
| |
| 2019-10-07 Paul Eggert <[email protected]> |
| |
| Use “least” types for integers in Yacc tables |
| This changes the Yacc skeleton to use “least” integer types to |
| keep tables smaller on some platforms, which should lessen cache |
| pressure. Since Bison uses the Yacc skeleton, it follows suit. |
| * data/skeletons/yacc.c: Include limits.h and stdint.h if this |
| seems to be needed. |
| (yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): |
| If available, use GCC predefined macros __INT_MAX__ etc. to select |
| a “least” type, as this avoids namespace hassles. Otherwise, if |
| available fall back on selecting a “least” type via the C99 macros |
| INT_MAX, INT_LEAST8_MAX, etc. Otherwise, fall further back on one of |
| the builtin C99 types signed char, short, and int. Make sure that |
| any selected type promotes to int. Ignore any macros YYTYPE_INT16, |
| YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8 defined by the user. |
| (ptrdiff_t, PTRDIFF_MAX): Simplify in the light of the above. |
| (yytype_uint8, yytype_uint16): Do not assume that unsigned char |
| and unsigned short promote to int, as this isn’t true on some |
| platforms (e.g., TI TMS320C55x). |
| * src/parse-gram.y (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16) |
| (YYTYPE_UINT8): Remove, as these are no longer effective. |
| |
| 2019-10-06 Paul Eggert <[email protected]> |
| |
| Port better to C++ platforms |
| * data/skeletons/yacc.c (YYPTRDIFF_T, YYPTRDIFF_MAXIMUM): |
| Default to long, not int. |
| (yy_lac_stack_realloc, yy_lac, yytnamerr, yyparse): |
| Avoid casts to YYPTRDIFF_T that were masking the problem. |
| |
| 2019-10-06 Paul Eggert <[email protected]> |
| |
| Work around GCC 4.8 false alarms without casts |
| * data/skeletons/yacc.c (yyparse): |
| Initialize yyes_capacity with a signed expression. |
| * tests/local.at (AT_YYLEX_DEFINE(c)): |
| Use enum to avoid cast. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| tests: make recheck |
| * tests/local.mk (recheck): New. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: also show suggested %empty |
| * src/reader.c (grammar_rule_check_and_complete): Suggest to add %empty. |
| * tests/actions.at, tests/diagnostics.at: Adjust expectations. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: sort symbols per location |
| Because the checking of the grammar is made by phases after the whole |
| grammar was read, we sometimes have diagnostics that look weird. In |
| some case, within one type of checking, the entities are not checked |
| in the order in which they appear in the file. For instance, checking |
| symbols is done on the list of symbols sorted by tag: |
| |
| foo.y:1.20-22: warning: symbol BAR is used, but is not defined as a token and has no rules [-Wother] |
| 1 | %destructor {} QUX BAR |
| | ^~~ |
| foo.y:1.16-18: warning: symbol QUX is used, but is not defined as a token and has no rules [-Wother] |
| 1 | %destructor {} QUX BAR |
| | ^~~ |
| |
| Let's sort them by location instead: |
| |
| foo.y:1.16-18: warning: symbol 'QUX' is used, but is not defined as a token and has no rules [-Wother] |
| 1 | %destructor {} QUX BAR |
| | ^~~ |
| foo.y:1.20-22: warning: symbol 'BAR' is used, but is not defined as a token and has no rules [-Wother] |
| 1 | %destructor {} QUX BAR |
| | ^~~ |
| |
| * src/location.h (location_cmp): Be robust to empty file names. |
| * src/symtab.c (symbol_cmp): Sort by location. |
| * tests/input.at: Adjust expectations. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: suggest fixes for undeclared symbols |
| From |
| |
| input.y:1.17-19: warning: symbol baz is used, but is not defined as a token and has no rules [-Wother] |
| 1 | %printer {} foo baz |
| | ^~~ |
| |
| to |
| |
| input.y:1.17-19: warning: symbol 'baz' is used, but is not defined as a token and has no rules; did you mean 'bar'? [-Wother] |
| 1 | %printer {} foo baz |
| | ^~~ |
| | bar |
| |
| * bootstrap.conf: We need fstrcmp. |
| * src/symtab.c (symbol_from_uniqstr_fuzzy): New. |
| (complain_symbol_undeclared): Use it. |
| * tests/diagnostics.at (Suggestions): New. |
| * data/bison-default.css (insertion): Rename as... |
| (fixit-insert): this, as this is what GCC uses. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| style: isolate complain_symbol_undeclared |
| * src/symtab.c (complain_symbol_undeclared): New. |
| Use it. |
| Use quote on the guilty symbol (like GCC does, and we also do |
| elsewhere). |
| * tests/input.at: Adjust. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| style: simplify the handling of symbol and semantic_type tables |
| Both are stored in a hash, and back in the days, we used to iterate |
| over these tables using hash_do_for_each. However, the order of |
| traversal was not deterministic, which was a nuisance for |
| deterministic output (and therefore also a problem for tests). So at |
| some point (83b60c97ee1f98bb1f15ffa38acdc4cc765515f5) we generated a |
| sorted list of these symbols, and symbols_do actually iterated on that |
| list. But we kept the constraints of using hash_do_for_each, which |
| requires a lot of ceremonial code, and makes it hard/unnatural to |
| preserve data between iterations (see the next commit). |
| |
| Alas, this is C, not C++. |
| |
| Let's remove this abstraction, and directly iterate on the sorted |
| tables. |
| |
| * src/symtab.c (symbols_do): Remove. |
| Adjust callers to use a simple for-loop instead. |
| (table_sort): New. |
| (symbols_check_defined): Use it. |
| (symbol_check_defined_processor, symbol_pack_processor) |
| (semantic_type_check_defined_processor, symbol_translation_processor): |
| Remove. |
| Simplify the corresponding functions (that no longer need to return a |
| bool). |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: display suggested update after the caret-info |
| This commit adds the suggestion in green, on the line below the |
| caret-and-tildes. |
| |
| foo.y:1.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated] |
| 1 | %error-verbose |
| | ^~~~~~~~~~~~~~ |
| | %define parse.error verbose |
| |
| The current approach, with location_caret_suggestion, is fragile: |
| there's a protocol of calls to the complain functions which is strict. |
| We should rather have a richer structure describing the diagnostics, |
| including with submessages such as the suggestions, passed in the end |
| to the routines in charge of formatting and printing them. |
| |
| * src/location.h, src/location.c (location_caret_suggestion): New. |
| * src/complain.c (deprecated_directive): Use it. |
| * tests/diagnostics.at, tests/input.at: Adjust expectations. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: isolate caret_set_column |
| * src/location.c (caret_info): Add width and skip members. |
| (caret_set_column): New. |
| Use it. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| diagnostics: isolate caret_set_file |
| * src/location.c (caret_set_file): New. |
| Store the current line's length in caret_info.line_len. |
| Pay attention to fseek's return value. |
| Extracted from... |
| (location_caret): here. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| tests: use tput to get the number of columns |
| * tests/bison.in: here. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| TODO: update |
| I no longer agree with that item, there are indeed two things to |
| report: lack of definition, and being useless. We could have either |
| one without the other, they are not directly related. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| yacc.c: work around warnings from G++ 4.8 |
| input.c: In function 'int yyparse()': |
| input.c: error: conversion to 'long int' from 'long unsigned int' |
| may change the sign of the result [-Werror=sign-conversion] |
| yyes_capacity = sizeof yyesa / sizeof *yyes; |
| ^ |
| cc1plus: all warnings being treated as errors |
| |
| * data/skeletons/yacc.c: here. |
| |
| 2019-10-06 Akim Demaille <[email protected]> |
| |
| yacc.c: work around warnings from Clang++ 3.3 and 3.4 |
| When we run the test suite with these C++ compilers to compile C code, |
| we get: |
| |
| 239. synclines.at:440: testing syncline escapes: yacc.c ... |
| ../../tests/synclines.at:440: $CC $CFLAGS $CPPFLAGS \"\\\"\".c -o \"\\\"\" || |
| exit 77 |
| stderr: |
| stdout: |
| ../../tests/synclines.at:440: COLUMNS=1000; export COLUMNS; bison --color=no -fno-caret -o \"\\\"\".c \"\\\"\".y |
| ../../tests/synclines.at:440: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o \"\\\"\" \"\\\"\".c $LIBS |
| stderr: |
| "\"".c:1102:41: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32] |
| YYPTRDIFF_T yysize = yyssp - yyss + 1; |
| ~~~~~~ ~~~~~~~~~~~~~^~~ |
| 1 error generated. |
| |
| 193. conflicts.at:545: testing parse.error=verbose and consistent errors: lr.type=canonical-lr parse.lac=full ... |
| input.c:737:75: error: implicit conversion loses integer precision: 'long' to 'int' |
| [-Werror,-Wshorten-64-to-32] |
| YYPTRDIFF_T yysize_old = *yytop == yytop_empty ? 0 : *yytop - *yybottom + 1; |
| ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~^~~ |
| input.c:901:48: error: implicit conversion loses integer precision: 'long' to 'int' |
| [-Werror,-Wshorten-64-to-32] |
| YYPTRDIFF_T yysize = yyesp - *yyes + 1; |
| ~~~~~~ ~~~~~~~~~~~~~~^~~ |
| |
| * data/skeletons/yacc.c: Add more casts. |
| |
| 2019-10-05 Akim Demaille <[email protected]> |
| |
| tests: avoid a GCC 4.8 warning |
| GCC 4.8 reports: |
| |
| input.y:57:33: error: conversion to 'int' from 'long unsigned int' |
| may alter its value [-Werror=conversion] |
| int input_elts = sizeof input / sizeof input[0]; |
| ^ |
| |
| * tests/local.at (AT_YYLEX_DEFINE(c)): Add a cast (sorry, Paul!). |
| |
| 2019-10-05 Paul Eggert <[email protected]> |
| |
| * data/skeletons/glr.c (yysplitStack): Pacify Clang 8. |
| |
| 2019-10-05 Paul Eggert <[email protected]> |
| |
| Avoid quiet conversion of pointer to bool |
| * src/location.c (caret_set_file): |
| * src/scan-code.l (contains_dot_or_dash): |
| Do not quietly convert pointer to bool, as Oracle Developer Studio |
| 12.6 complains and it is arguably confusing style anyway. |
| |
| 2019-10-05 Paul Eggert <[email protected]> |
| |
| Port ARGMATCH_DEFINE_GROUP calls to C99 |
| * src/complain.c, src/getargs.c: Omit ‘;’ after call |
| to ARGMATCH_DEFINE_GROUP, as C99 does not allow ‘;’ there. |
| |
| 2019-10-05 Paul Eggert <[email protected]> |
| |
| Port lexcalc scan.l to Solaris 10 |
| * examples/c/lexcalc/scan.l: Include errno.h. |
| |
| 2019-10-05 Akim Demaille <[email protected]> |
| |
| yacc.c: use casts instead of pragmas when losing integer width |
| For instance with Clang 4, 8, etc.: |
| |
| input.c:1166:12: error: implicit conversion loses integer precision: 'int' to 'yy_state_num' (aka 'signed char') [-Werror,-Wconversion] |
| *yyssp = yystate; |
| ~ ^~~~~~~ |
| |
| And GCC 8: |
| |
| input.c:1166:12: error: implicit conversion loses integer precision: 'int' to 'yy_state_num' (aka 'signed char') [-Werror,-Wimplicit-int-conversion] |
| *yyssp = yystate; |
| ~ ^~~~~~~ |
| |
| * data/skeletons/yacc.c (YY_CONVERT_INT_BEGIN): Remove. |
| Adjust callers. |
| |
| 2019-10-04 Akim Demaille <[email protected]> |
| |
| yacc.c: fix warnings about undefined macros |
| For instance with GCC 4.9 and --enable-gcc-warnings: |
| |
| 25. input.at:1201: testing Torturing the Scanner ... |
| ../../tests/input.at:1344: $CC $CFLAGS $CPPFLAGS -c -o input.o input.c |
| stderr: |
| input.c:239:18: error: "__STDC_VERSION__" is not defined [-Werror=undef] |
| # elif 199901 <= __STDC_VERSION__ |
| ^ |
| input.c:256:18: error: "__STDC_VERSION__" is not defined [-Werror=undef] |
| # elif 199901 <= __STDC_VERSION__ |
| ^ |
| |
| * data/skeletons/yacc.c: Check that __STDC_VERSION__ is defined before |
| using it. |
| |
| 2019-10-04 Akim Demaille <[email protected]> |
| |
| tests: check more state numbers |
| * tests/torture.at (State number type): Also check 128, 129 and |
| 32768. |
| |
| 2019-10-03 Paul Eggert <[email protected]> |
| |
| * doc/bison.texi (Table of Symbols): Mention memory exhaustion. |
| |
| 2019-10-03 Paul Eggert <[email protected]> |
| |
| Simplify mfcalc error handling |
| * doc/bison.texi (Mfcalc Symbol Table, Mfcalc Lexer): |
| Don’t abort on memory allocation failure or integer overflow. |
| Instead, comment that these things aren’t checked for. |
| |
| 2019-10-03 Akim Demaille <[email protected]> |
| |
| c++: fix comments suggesting to use %require |
| * data/skeletons/location.cc, data/skeletons/stack.hh: Here. |
| |
| 2019-10-03 Akim Demaille <[email protected]> |
| |
| lalr1.cc: simplify uses of size_t |
| * data/skeletons/stack.hh (stack::index_type): New type. |
| (stack::size, stack::operator[]): Be about an index_type rather than a |
| size_type and an int. |
| |
| 2019-10-03 Akim Demaille <[email protected]> |
| |
| c++: fixes for old compilers |
| On the CI with GCC 6: |
| |
| examples/c++/calc++/parser.cc:845:5: error: 'ptrdiff_t' was not declared in this scope |
| ptrdiff_t yycount = 0; |
| ^~~~~~~~~ |
| examples/c++/calc++/parser.cc:845:5: note: suggested alternatives: |
| /usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:202:28: note: 'std::ptrdiff_t' |
| typedef __PTRDIFF_TYPE__ ptrdiff_t; |
| ^~~~~~~~~ |
| |
| * data/skeletons/lalr1.cc: Qualify ptrdiff_t and size_t with std::. |
| |
| 2019-10-03 Akim Demaille <[email protected]> |
| |
| tests: be robust to -DNDEBUG |
| input.y: In function 'yylex': |
| input.y:67:7: error: unused variable 'input_elts' [-Werror=unused-variable] |
| int input_elts = sizeof input / sizeof input[0]; |
| ^~~~~~~~~~ |
| cc1: all warnings being treated as errors |
| |
| * tests/input.at, tests/local.at: Avoid that. |
| |
| 2019-10-03 Akim Demaille <[email protected]> |
| |
| CI: remove the symlink before creating it |
| Currently we fail if we rerun a job that succeeded to push the |
| tarball. |
| |
| 2019-10-03 Paul Eggert <[email protected]> |
| |
| Adjust ‘Big horizontal’ test case |
| * tests/torture.at (Big horizontal): Adjust to recent changes with |
| integers. If there are states 0..256, Bison now uses a signed |
| rather than an unsigned 16-bit integer. |
| |
| 2019-10-03 Paul Eggert <[email protected]> |
| |
| regen |
| |
| 2019-10-03 Paul Eggert <[email protected]> |
| |
| Prefer signed to unsigned integers |
| This patch contains more fixes to prefer signed to unsigned |
| integer types, as modern tools like 'gcc -fsanitize=undefined' |
| can check for signed integer overflow but not unsigned overflow. |
| * NEWS: Document the API change. |
| * boostrap.conf (gnulib_modules): Add intprops. |
| * data/skeletons/glr.c: Include stddef.h and stdint.h, |
| since this skeleton can assume C99 or later. |
| (YYSIZEMAX): Now signed, and the minimum of SIZE_MAX and PTRDIFF_MAX. |
| (yybool) [!__cplusplus]: Now signed (which is how bool behaves). |
| (YYTRANSLATE): Avoid use of unsigned, and make the macro |
| safe even for values greater than UINT_MAX. |
| (yytnamerr, struct yyGLRState, struct yyGLRStateSet, struct yyGLRStack) |
| (yyaddDeferredAction, yyinitStateSet, yyinitGLRStack) |
| (yyexpandGLRStack, yymarkStackDeleted, yyremoveDeletes) |
| (yyglrShift, yyglrShiftDefer, yy_reduce_print, yydoAction) |
| (yyglrReduce, yysplitStack, yyreportTree, yycompressStack) |
| (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError) |
| (yyparse, yy_yypstack, yypstack, yypdumpstack): |
| * tests/input.at (Torturing the Scanner): |
| Prefer ptrdiff_t to size_t. |
| * data/skeletons/c++.m4 (b4_yytranslate_define): |
| * src/AnnotationList.c (AnnotationList__computePredecessorAnnotations): |
| * src/AnnotationList.h (AnnotationIndex): |
| * src/InadequacyList.h (InadequacyListNodeCount): |
| * src/closure.c (closure_new): |
| * src/complain.c (error_message, complains, complain_indent) |
| (complain_args, duplicate_directive, duplicate_rule_directive): |
| * src/gram.c (nritems, ritem_print, grammar_dump): |
| * src/ielr.c (ielr_compute_ritem_sees_lookahead_set) |
| (ielr_item_has_lookahead, ielr_compute_annotation_lists) |
| (ielr_compute_lookaheads): |
| * src/location.c (columns, boundary_print, location_print): |
| * src/muscle-tab.c (muscle_percent_define_insert) |
| (muscle_percent_define_check_values): |
| * src/output.c (prepare_rules, prepare_actions): |
| * src/parse-gram.y (id, handle_require): |
| * src/reader.c (record_merge_function_type, packgram): |
| * src/reduce.c (nuseless_productions, nuseless_nonterminals) |
| (inaccessable_symbols): |
| * src/relation.c (relation_print): |
| * src/scan-code.l (variant, variant_table_size, variant_count) |
| (variant_add, get_at_spec, show_sub_message, show_sub_messages) |
| (parse_ref): |
| * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>) |
| (scan_integer, convert_ucn_to_byte, handle_syncline): |
| * src/scan-skel.l (at_complain): |
| * src/symtab.c (complain_symbol_redeclared) |
| (complain_semantic_type_redeclared, complain_class_redeclared) |
| (symbol_class_set, complain_user_token_number_redeclared): |
| * src/tables.c (conflict_tos, conflrow, conflict_table) |
| (conflict_list, save_row, pack_vector): |
| * tests/local.at (AT_YYLEX_DEFINE(c)): |
| Prefer signed to unsigned integer. |
| * data/skeletons/lalr1.cc (yy_lac_check_): |
| * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): |
| * tests/local.at (AT_YYLEX_DEFINE(c)): |
| Omit now-unnecessary casts. |
| * data/skeletons/location.cc (b4_location_define): |
| * doc/bison.texi (Mfcalc Lexer, C++ position, C++ location): |
| Prefer int to unsigned for line and column numbers. |
| Change example to abort explicitly on memory exhaustion, |
| and fix an off-by-one bug that led to undefined behavior. |
| * data/skeletons/stack.hh (stack::operator[]): |
| Also allow ptrdiff_t indexes. |
| (stack::pop, slice::slice, slice::operator[]): |
| Index arg is now ptrdiff_t, not int. |
| (stack::ssize): New method. |
| (slice::range_): Now ptrdiff_t, not int. |
| * data/skeletons/yacc.c (b4_state_num_type): Remove. |
| All uses replaced by b4_int_type. |
| (YY_CONVERT_INT_BEGIN, YY_CONVERT_INT_END): New macros. |
| (yylac, yyparse): Use them around conversions that -Wconversion |
| would give false alarms about. Omit unnecessary casts. |
| (yy_stack_print): Use int rather than unsigned, and omit |
| a cast that doesn’t seem to be needed here any more. |
| * examples/c++/variant.yy (yylex): |
| * examples/c++/variant-11.yy (yylex): |
| Omit no-longer-needed conversions to unsigned. |
| * src/InadequacyList.c (InadequacyList__new_conflict): |
| Don’t assume *node_count is unsigned. |
| * src/output.c (muscle_insert_unsigned_table): |
| Remove; no longer used. |
| |
| 2019-10-02 Paul Eggert <[email protected]> |
| |
| Prefer signed types for indexes in skeletons |
| * NEWS: Mention this. |
| * data/skeletons/c.m4 (b4_int_type): |
| Prefer char if it will do, and prefer signed types to unsigned if |
| either will do. |
| * data/skeletons/glr.c (yy_reduce_print): No need to |
| convert rule line to unsigned long. |
| (yyrecoverSyntaxError): Put action into an int to |
| avoid GCC warning of using a char subscript. |
| * data/skeletons/lalr1.cc (yy_lac_check_, yysyntax_error_): |
| Prefer ptrdiff_t to size_t. |
| * data/skeletons/yacc.c (b4_int_type): |
| Prefer signed types to unsigned if either will do. |
| * data/skeletons/yacc.c (b4_declare_parser_state_variables): |
| (YYSTACK_RELOCATE, YYCOPY, yy_lac_stack_realloc, yy_lac) |
| (yytnamerr, yysyntax_error, yyparse): Prefer ptrdiff_t to size_t. |
| (YYPTRDIFF_T, YYPTRDIFF_MAXIMUM): New macros. |
| (YYSIZE_T): Fix "! defined YYSIZE_T" typo. |
| (YYSIZE_MAXIMUM): Take the minimum of PTRDIFF_MAX and SIZE_MAX. |
| (YYSIZEOF): New macro. |
| (YYSTACK_GAP_MAXIMUM, YYSTACK_BYTES, YYSTACK_RELOCATE) |
| (yy_lac_stack_realloc, yyparse): Use it. |
| (YYCOPY, yy_lac_stack_realloc): Cast to YYSIZE_T to pacify GCC. |
| (yy_reduce_print): Use int instead of unsigned long when int |
| will do. |
| (yy_lac_stack_realloc): Prefer long to unsigned long when |
| either will do. |
| * tests/regression.at: Adjust to these changes. |
| |
| 2019-09-30 Akim Demaille <[email protected]> |
| |
| yacc: use the most appropriate integral type for state numbers |
| Currently we properly use the "best" integral type for tables, |
| including those storing state numbers. However the variables for |
| state numbers used in yyparse (and its dependencies such as |
| yy_stack_print) still use int16_t invariably. As a consequence, very |
| large models overflow these variables. |
| |
| Let's use the "best" type for these variables too. It turns out that |
| we can still use 16 bits for twice larger automata: stick to unsigned |
| types. |
| |
| However using 'unsigned' when 16 bits are not enough is troublesome |
| and generates tons of warnings about signedness issues. Instead, |
| let's use 'int'. |
| |
| Reported by Tom Kramer. |
| https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00018.html |
| |
| * data/skeletons/yacc.c (b4_state_num_type): New. |
| (yy_state_num): Be computed from YYNSTATES. |
| * tests/linear: New. |
| * tests/torture.at (State number type): New. |
| Use it. |
| |
| 2019-09-30 Akim Demaille <[email protected]> |
| |
| yacc: introduce a type for states |
| * data/skeletons/yacc.c (yy_state_num): New. |
| Use it for arrays of states. |
| |
| 2019-09-30 Akim Demaille <[email protected]> |
| |
| style: prefer symbolic values rather than litterals |
| Instead of |
| |
| #define YYPACT_NINF -130 |
| #define yypact_value_is_default(Yystate) \ |
| (!!((Yystate) == (-130))) |
| |
| generate |
| |
| #define YYPACT_NINF (-130) |
| #define yypact_value_is_default(Yyn) \ |
| ((Yyn) == YYPACT_NINF) |
| |
| * data/skeletons/c.m4 (b4_table_value_equals): Add support for $4. |
| * data/skeletons/glr.c, data/skeletons/yacc.c: Use it. |
| Also, use shorter macro argument names, the name of the macro is clear |
| enough. |
| |
| 2019-09-30 Akim Demaille <[email protected]> |
| |
| style: change misleading macro argument name |
| * data/skeletons/glr.c, data/skeletons/yacc.c |
| (yypact_value_is_default): It does not take a rule number as argument. |
| |
| 2019-09-28 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'upstream/maint' |
| * upstream/maint: |
| c++: add copy ctors for compatibility with the IAR compiler |
| CI: show git status |
| CI: disable ICC |
| tests: pass -jN from Make to the test suite |
| quotearg: avoid leaks |
| maint: post-release administrivia |
| |
| 2019-09-27 Akim Demaille <[email protected]> |
| |
| c++: add copy ctors for compatibility with the IAR compiler |
| Reported by Andreas Damm. |
| https://savannah.gnu.org/support/?110032 |
| |
| * data/skeletons/lalr1.cc (stack_symbol_type::operator=): New |
| overload, const, to please the IAR C++ compiler (version ca 2013). |
| |
| 2019-09-23 Akim Demaille <[email protected]> |
| |
| CI: show git status |
| |
| 2019-09-23 Akim Demaille <[email protected]> |
| |
| CI: disable ICC |
| It seems that Intel changed something in their license management. |
| https://github.com/nemequ/icc-travis/issues/15 |
| |
| 2019-09-23 Akim Demaille <[email protected]> |
| |
| tests: pass -jN from Make to the test suite |
| I am sooooo tired of typing "make -j5 TESTSUITEFLAGS=-j5"... |
| Should have done this years ago. |
| |
| * cfg.mk (TESTSUITEFLAGS): here. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| quotearg: avoid leaks |
| Reported by Tomasz Kłoczko. |
| https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00008.html |
| |
| * src/main.c (main): Free quotearg's memory later. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: get the screen width from the terminal |
| * bootstrap.conf: We need winsz-ioctl and winsz-termios. |
| * src/location.c (columns): Use winsize to get the number of |
| columns. |
| Code taken from the GNU Coreutils. |
| * src/location.h, src/location.c (caret_init): New. |
| * src/complain.c (complain_init): Call it. |
| * tests/bison.in: Export COLUMNS so that users of tests/bison can |
| enjoy proper line truncation. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: don't print ellipsis on the caret line |
| From |
| |
| 9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKL |
| | ... ^~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| to |
| |
| 9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI... |
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * src/location.c (location_caret): here. |
| * tests/diagnostics.at: Adjust expectations. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: also show truncation at the end of line with "..." |
| From |
| |
| 9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKL |
| | ... ^~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| to |
| |
| 9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI... |
| | ... ^~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * src/location.c (location_caret): here. |
| * tests/diagnostics.at: Adjust expectations. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: check that quoted lines are truncated |
| * tests/diagnostics.at (Screen width: 60 columns, Screen width: 80 |
| columns, Screen width: 200 columns): New tests. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: truncate quoted sources to fit the screen |
| * src/location.c (min_int, columns): New. |
| (location_caret): Compute the line width. Based on it, compute how |
| many columns must be skipped before the quoted location and truncated |
| after, to fit the sceen width. |
| * tests/local.at (AT_QUELL_VALGRIND): Transform into... |
| (AT_SET_ENV_IF, AT_SET_ENV): these. |
| Define COLUMNS to protect the test suite from the user's environment. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: learn how to count column number with multibyte chars |
| So far diagnostics were cheating: in addition to the 'column' field of |
| locations (based on actual screen width per multibyte characters and |
| on tabulation expansion), the scanner sets the 'byte' field. |
| Diagnostics used this byte count to decide where to insert (color) |
| style. |
| |
| We want to be able to truncate the quoted lines when there are too |
| wide to fit the screen. This requires that the diagnostics learn how |
| to count columns, the byte-in-boundary trick no longer works. |
| |
| Bytes are still used for fix-its. |
| |
| * bootstrap.conf: We need mbfile for mbf_getc. |
| * src/location.c (caret_info): We need an mbfile. |
| (caret_set_file): Initialize it. |
| (caret_getc): Convert to mbfile. |
| (location_caret): Instead of relying on the byte position to decide |
| where to insert the color style, count the current column using |
| boundary_compute. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: style: rename member for clariy |
| * src/location.c (caret_info): Now that we no longer have a 'file' |
| member (see previous commit), rename 'source' as 'file'. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: style: use a boundary to track the caret_info |
| * src/location.c (caret_info): Replace file and line with pos, a |
| boundary. This will allow us to use features of the boundary type, |
| such as boundary_compute. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: extract boundary_compute from location_compute |
| The handling of the contributions of the tabulations in the columns is |
| burried inside location_compute. We will soon be willing to use the |
| boundary part of the computation (to compute the current column number |
| each time we read a multibyte char). |
| |
| * src/location.c (boundary_compute): New, extracted from... |
| (location_compute): here. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: style: add caret_set_file |
| To make the following commits easier to read. |
| |
| * src/location.c (caret_set_file): New. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| diagnostics: style: minor changes |
| * src/location.c (location_caret): Factor two branches of an if. |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| CI: show git status |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| git: update ignores |
| |
| 2019-09-22 Akim Demaille <[email protected]> |
| |
| git: update ignores |
| |
| 2019-09-21 Akim Demaille <[email protected]> |
| |
| quotearg: avoid leaks |
| Reported by Tomasz Kłoczko. |
| https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00008.html |
| |
| * src/main.c (main): Free quotearg's memory later. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| tests: pass -jN from Make to the test suite |
| I am sooooo tired of typing "make -j5 TESTSUITEFLAGS=-j5"... |
| Should have done this years ago. |
| |
| * cfg.mk (TESTSUITEFLAGS): here. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| java: handle eof in yytranslate |
| * data/skeletons/lalr1.java (yytranslate_): Handle eof here, as is done |
| in lalr1.cc. |
| * tests/javapush.at: Adjust. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| d: handle eof in yytranslate |
| This changes the traces from |
| |
| Reading a token: |
| Now at end of input. |
| |
| to |
| |
| Reading a token: |
| Next token is token $end (7FFEE56E6474) |
| |
| which is ok. Actually it is even better, as it gives the location |
| when locations are enabled, and is clearer when rules explicitly use |
| the EOF token. |
| |
| * data/skeletons/lalr1.d (yytranslate_): Handle eof here, as is done |
| in lalr1.cc. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| parser: use api.token.raw |
| * src/parse-gram.y: Here. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| api.token.raw: document it |
| * doc/bison.texi: here. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| api.token.raw: cannot be used with character literals |
| * src/parse-gram.y (CHAR): api.token.raw and character literals are |
| mutually exclusive. |
| * tests/input.at (Character literals and api.token.raw): New. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| api.token.raw: apply to the other skeletons |
| * data/skeletons/c++.m4, data/skeletons/glr.c, |
| * data/skeletons/lalr1.c, data/skeletons/lalr1.java: |
| Add support for api.token.raw. |
| |
| * tests/scanner.at: Check them. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| api.token.raw: check it |
| * tests/local.at (AT_TOKEN_RAW_IF): New. |
| * tests/local.mk: New. |
| Use it. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| api.token.raw: implement |
| Bison used to feature %raw, documented as follows: |
| |
| @item %raw |
| The output file @file{@var{name}.h} normally defines the tokens with |
| Yacc-compatible token numbers. If this option is specified, the |
| internal Bison numbers are used instead. (Yacc-compatible numbers start |
| at 257 except for single character tokens; Bison assigns token numbers |
| sequentially for all tokens starting at 3.) |
| |
| Unfortunately, as far as I can tell, it never worked: token numbers |
| are indeed changed in the generated tables (from external token number |
| to internal), yet the code was still applying the mapping from |
| external token numbers to internal token numbers. |
| |
| This commit reintroduces the feature as it was expected to be. |
| |
| * data/skeletons/bison.m4 (b4_token_format): When api.token.raw is |
| enabled, use the internal token number. |
| * data/skeletons/yacc.c (yytranslate): Don't emit if api.token.raw is |
| enabled. |
| (YYTRANSLATE): Adjust. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| style: tidy yacc.c |
| * data/skeletons/yacc.c: Include 'c.m4' first. |
| Then sort the handling of %define variables. |
| * tests/input.at: Adjust. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| CI: disable ICC |
| It seems that Intel changed something in their license management. |
| https://github.com/nemequ/icc-travis/issues/15 |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| diagnostics: fix use of complain_indent |
| * src/symtab.c (symbol_class_set): Here. |
| * tests/diagnostics.at, tests/input.at, tests/regression.at: Adjust |
| expectations. |
| |
| 2019-09-14 Akim Demaille <[email protected]> |
| |
| input: stop treating lone CRs as end-of-lines |
| We used to treat lone CRs (\r, aka ^M) as regular NLs (\n), probably |
| to please Classic MacOS. As of today, it makes more sense to treat \r |
| like a plain white space character. |
| |
| https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00027.html |
| |
| * src/scan-gram.l (no_cr_read): Remove. Instead, use... |
| (eol): this new abbreviation denoting end-of-line. |
| * src/location.c (caret_getc): New. |
| (location_caret): Use it. |
| * tests/diagnostics.at (Carriage return): Adjust expectations. |
| (CR NL): New. |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| Merge tag 'v3.4.2' into HEAD |
| bison 3.4.2 |
| |
| * tag 'v3.4.2': (24 commits) |
| version 3.4.2 |
| CI: always uninstall icc |
| news: more bug fixes thanks to Marc Schönefeld |
| diagnostics: beware of unexpected EOF when quoting the source file |
| gnulib: update |
| build: fix distcheck |
| tests: add noexcept to please GCC 9 |
| news: update |
| fix: don't die when EOF token is defined twice |
| tests: check token redeclaration |
| yacc.c: beware of GCC's -Wmaybe-uninitialized |
| glr.c: initialize vector of bools |
| gnulib: update |
| check for memory exhaustion |
| diagnostics: avoid global variables |
| diagnostics: fix invalid error message indentation |
| git: ignore files generated in gnulib-po |
| c++: avoid duplicate definition of YYUSE |
| gnulib: update |
| CI: more compilers |
| ... |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| version 3.4.2 |
| * NEWS: Record release date. |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| CI: always uninstall icc |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| news: more bug fixes thanks to Marc Schönefeld |
| |
| 2019-09-12 Akim Demaille <[email protected]> |
| |
| diagnostics: beware of unexpected EOF when quoting the source file |
| When the input file contains lone CRs (aka, ^M, \r), the locations see |
| a new line. Diagnostics look only at \n as end-of-line, so sometimes |
| there is an offset in diagnostics. Worse yet: sometimes we loop |
| endlessly waiting for \n to come from a continuous stream of EOF. |
| |
| Fix that: |
| - check for EOF |
| - beware not to call end_use_class if begin_use_class was not |
| called (which would abort). This could happen if the actual |
| line is shorter that the expected one. |
| |
| Prompted by a (private) report from Marc Schönefeld. |
| |
| * src/location.c (location_caret): here. |
| * tests/diagnostics.at (Carriage return): New. |
| |
| 2019-09-11 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Contains the creation of the xhash module. |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00046.html |
| |
| * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: |
| Use hash_xinitialize. |
| |
| 2019-09-11 Akim Demaille <[email protected]> |
| |
| build: fix distcheck |
| * configure.ac (gl_LIBOBJS): Adjust so that the generated files are |
| indeed the expected ones. |
| |
| 2019-09-10 Akim Demaille <[email protected]> |
| |
| diagnostics: beware of unexpected EOF when quoting the source file |
| When the input file contains lone CRs (aka, ^M, \r), the locations see |
| a new line. Diagnostics look only at \n as end-of-line, so sometimes |
| there is an offset in diagnostics. Worse yet: sometimes we loop |
| endlessly waiting for \n to come from a continuous stream of EOF. |
| |
| Fix that: |
| - check for EOF |
| - beware not to call end_use_class if begin_use_class was not |
| called (which would abort). This could happen if the actual |
| line is shorter that the expected one. |
| |
| Prompted by a (private) report from Marc Schönefeld. |
| |
| * src/location.c (location_caret): here. |
| * tests/diagnostics.at (Carriage return): New. |
| |
| 2019-09-10 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Contains the creation of the xhash module. |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00046.html |
| |
| * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: |
| Use hash_xinitialize. |
| |
| 2019-09-10 Akim Demaille <[email protected]> |
| |
| build: fix distcheck |
| * configure.ac (gl_LIBOBJS): Adjust so that the generated files are |
| indeed the expected ones. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| tests: add noexcept to please GCC 9 |
| bison/tests/c++.at:552: bison --color=no -fno-caret -o list.cc list.y |
| bison/tests/c++.at:552: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o list list.cc $LIBS |
| stderr: |
| gcc9/c++/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string]': |
| gcc9/c++/bits/alloc_traits.h:482:2: required from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:888:67: required from 'void std::__relocate_object_a(_Tp*, _Up*, _Allocator&) [with _Tp = string; _Up = string; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:920:47: required from '_ForwardIterator std::__relocate_a_1(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:942:37: required from '_ForwardIterator std::__relocate_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_vector.h:430:35: required from 'static constexpr bool std::vector<_Tp, _Alloc>::_S_nothrow_relocate(std::true_type) [with _Tp = string; _Alloc = std::allocator<string>; std::true_type = std::integral_constant<bool, true>]' |
| gcc9/c++/bits/stl_vector.h:446:28: required from 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const string&}; _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<string*, std::vector<string> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = string*]' |
| gcc9/c++/bits/stl_vector.h:1195:4: required from 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::value_type = string]' |
| list.y:126:110: required from here |
| gcc9/c++/bits/vector.tcc:459:44: in 'constexpr' expansion of 'std::vector<string>::_S_use_relocate()' |
| list.y:41:7: error: but 'string::string(string&&)' does not throw; perhaps it should be declared 'noexcept' [-Werror=noexcept] |
| 41 | string (string&& s) |
| | ^~~~~~ |
| |
| * tests/c++.at (Variants): Add noexcept where appropriate. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| tests: add noexcept to please GCC 9 |
| bison/tests/c++.at:552: bison --color=no -fno-caret -o list.cc list.y |
| bison/tests/c++.at:552: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o list list.cc $LIBS |
| stderr: |
| gcc9/c++/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string]': |
| gcc9/c++/bits/alloc_traits.h:482:2: required from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:888:67: required from 'void std::__relocate_object_a(_Tp*, _Up*, _Allocator&) [with _Tp = string; _Up = string; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:920:47: required from '_ForwardIterator std::__relocate_a_1(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_uninitialized.h:942:37: required from '_ForwardIterator std::__relocate_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]' |
| gcc9/c++/bits/stl_vector.h:430:35: required from 'static constexpr bool std::vector<_Tp, _Alloc>::_S_nothrow_relocate(std::true_type) [with _Tp = string; _Alloc = std::allocator<string>; std::true_type = std::integral_constant<bool, true>]' |
| gcc9/c++/bits/stl_vector.h:446:28: required from 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const string&}; _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<string*, std::vector<string> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = string*]' |
| gcc9/c++/bits/stl_vector.h:1195:4: required from 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::value_type = string]' |
| list.y:126:110: required from here |
| gcc9/c++/bits/vector.tcc:459:44: in 'constexpr' expansion of 'std::vector<string>::_S_use_relocate()' |
| list.y:41:7: error: but 'string::string(string&&)' does not throw; perhaps it should be declared 'noexcept' [-Werror=noexcept] |
| 41 | string (string&& s) |
| | ^~~~~~ |
| |
| * tests/c++.at (Variants): Add noexcept where appropriate. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| news: update |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| fix: don't die when EOF token is defined twice |
| With |
| |
| %token EOF 0 EOF 0 |
| |
| we get |
| |
| input.y:3.14-16: warning: symbol EOF redeclared [-Wother] |
| 3 | %token EOF 0 EOF 0 |
| | ^~~ |
| input.y:3.8-10: previous declaration |
| 3 | %token EOF 0 EOF 0 |
| | ^~~ |
| Assertion failed: (nsyms == ntokens + nvars), function check_and_convert_grammar, |
| file /Users/akim/src/gnu/bison/src/reader.c, line 839. |
| |
| Reported by Marc Schönefeld. |
| |
| * src/symtab.c (symbol_user_token_number_set): Register only the |
| first definition of the end of input token. |
| * tests/input.at (Symbol redeclared): Check that case. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| tests: check token redeclaration |
| * src/symtab.c (symbol_class_set): Report previous definitions when |
| redeclared. |
| * tests/input.at (Symbol redeclared): New. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| yacc.c: beware of GCC's -Wmaybe-uninitialized |
| Test 400 (calc.at:773: testing Calculator api.push-pull=both |
| api.pure=full parse.error=verbose %debug %locations %defines |
| api.prefix={calc} %verbose %yacc) fails on the CI with GCC 8 on |
| Bionic: |
| |
| 400. calc.at:773: testing Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc ... |
| ../../tests/calc.at:773: bison --color=no -fno-caret -Wno-deprecated -o calc.c calc.y |
| ../../tests/calc.at:773: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o calc calc.c calc-lex.c calc-main.c $LIBS |
| stderr: |
| calc.y: In function 'int calcpush_parse(calcpstate*, int, const CALCSTYPE*, CALCLTYPE*)': |
| calc.y:26:20: error: 'yylval.CALCSTYPE::ival' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| %printer { fprintf (yyo, "%d", $$); } <ival>; |
| ^ |
| calc.c:1272:9: note: 'yylval.CALCSTYPE::ival' was declared here |
| YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); |
| ^~~~~~ |
| cc1plus: all warnings being treated as errors |
| stdout: |
| ../../tests/calc.at:773: exit code was 1, expected 0 |
| 400. calc.at:773: 400. Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc (calc.at:773): FAILED (calc.at:773) |
| |
| * data/skeletons/c.m4 (yy_symbol_value_print): Disable the warning |
| locally. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| glr.c: initialize vector of bools |
| The CI, with CC='gcc-7 -fsanitize=undefined,address |
| -fno-omit-frame-pointer', reports: |
| |
| calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' |
| ../../tests/calc.at:867: cat stderr |
| --- expout 2019-09-05 20:30:37.887257545 +0000 |
| +++ /home/travis/build/bison-3.4.1.72-79a1-dirty/_build/tests/testsuite.dir/at-groups/438/stdout 2019-09-05 20:30:37.887257545 +0000 |
| @@ -1 +1,2 @@ |
| syntax error |
| +calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' |
| 438. calc.at:867: 438. Calculator glr.cc (calc.at:867): FAILED (calc.at:867) |
| |
| The problem is that yylookaheadNeeds is not initialized in |
| yyinitStateSet, and when it is copied, the value is not 0 or 1. |
| |
| * data/skeletons/glr.c (yylookaheadNeeds): Initialize yylookaheadNeeds. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Contains a fix for |
| https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html. |
| See |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00005.html. |
| Reported by 江 祖铭 (Zu-Ming Jiang). |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| check for memory exhaustion |
| hash_initialize returns NULL when out of memory. Check for it, and |
| die cleanly instead of crashing. |
| |
| Reported by 江 祖铭 (Zu-Ming Jiang). |
| https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00015.html |
| |
| * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: |
| Check the value returned by hash_initialize. |
| |
| 2019-09-08 László Várady <[email protected]> |
| |
| diagnostics: avoid global variables |
| * src/complain.c (indent_ptr): Remove. |
| (error_message, complains): Take indent as an argument. |
| Adjust callers. |
| |
| 2019-09-08 László Várady <[email protected]> |
| |
| diagnostics: fix invalid error message indentation |
| 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. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| git: ignore files generated in gnulib-po |
| Because of them, the CI generates "-dirty" tarballs. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| c++: avoid duplicate definition of YYUSE |
| Reported by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-06/msg00009.html |
| |
| * data/skeletons/lalr1.cc (b4_shared_declarations): Remove the |
| duplicate definition of YYUSE, the other one coming from |
| b4_attribute_define. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| This update brings file from Gettext 0.20, which is not available on |
| the CI yet. |
| |
| .travis.yml: Adjust. |
| Use Bionic now that it's available. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| CI: more compilers |
| * .travis.yml: Bionic is now available, with GCC8. |
| GCC7 sanitizers work, but they are too longer: cover only part 1. |
| Redefine part 1 and part 2 so that part 1 is really the core of the |
| tests: not playing with POSIX and C++ compiler for C code. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| CI: fail fast |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| CI: propagate sftp failures |
| * .travis.yml (stage: "compile"): here. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| CI: avoid useless git costs |
| Travis answered favorably to my suggestion to provide a means to |
| disable git clone on some jobs (issue 7542). See |
| https://docs.travis-ci.com/user/customizing-the-build/#disabling-git-clone. |
| |
| * .travis.yml: Disable git globally, enable it for i. the compile job, |
| and ii. the test job on ICC which needs the install-icc.sh script. |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| CI: factor |
| * .travis.yml (Clang 7 libc++ and ASAN part 2): Reuse bits from "Clang |
| 7 libc++ and ASAN part 1". |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-09-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Contains a fix for |
| https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html. |
| See |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00005.html. |
| Reported by 江 祖铭 (Zu-Ming Jiang). |
| |
| 2019-09-07 Akim Demaille <[email protected]> |
| |
| fix: don't die when EOF token is defined twice |
| With |
| |
| %token EOF 0 EOF 0 |
| |
| we get |
| |
| input.y:3.14-16: warning: symbol EOF redeclared [-Wother] |
| 3 | %token EOF 0 EOF 0 |
| | ^~~ |
| input.y:3.8-10: previous declaration |
| 3 | %token EOF 0 EOF 0 |
| | ^~~ |
| Assertion failed: (nsyms == ntokens + nvars), function check_and_convert_grammar, |
| file /Users/akim/src/gnu/bison/src/reader.c, line 839. |
| |
| Reported by Marc Schönefeld. |
| |
| * src/symtab.c (symbol_user_token_number_set): Register only the |
| first definition of the end of input token. |
| * tests/input.at (Symbol redeclared): Check that case. |
| |
| 2019-09-07 Akim Demaille <[email protected]> |
| |
| tests: check token redeclaration |
| * src/symtab.c (symbol_class_set): Report previous definitions when |
| redeclared. |
| * tests/input.at (Symbol redeclared): New. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| glr.c: initialize vector of bools |
| The CI, with CC='gcc-7 -fsanitize=undefined,address |
| -fno-omit-frame-pointer', reports: |
| |
| calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' |
| ../../tests/calc.at:867: cat stderr |
| --- expout 2019-09-05 20:30:37.887257545 +0000 |
| +++ /home/travis/build/bison-3.4.1.72-79a1-dirty/_build/tests/testsuite.dir/at-groups/438/stdout 2019-09-05 20:30:37.887257545 +0000 |
| @@ -1 +1,2 @@ |
| syntax error |
| +calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' |
| 438. calc.at:867: 438. Calculator glr.cc (calc.at:867): FAILED (calc.at:867) |
| |
| The problem is that yylookaheadNeeds is not initialized in |
| yyinitStateSet, and when it is copied, the value is not 0 or 1. |
| |
| * data/skeletons/glr.c (yylookaheadNeeds): Initialize yylookaheadNeeds. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| yacc.c: beware of GCC's -Wmaybe-uninitialized |
| Test 400 (calc.at:773: testing Calculator api.push-pull=both |
| api.pure=full parse.error=verbose %debug %locations %defines |
| api.prefix={calc} %verbose %yacc) fails on the CI with GCC 8 on |
| Bionic: |
| |
| 400. calc.at:773: testing Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc ... |
| ../../tests/calc.at:773: bison --color=no -fno-caret -Wno-deprecated -o calc.c calc.y |
| ../../tests/calc.at:773: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o calc calc.c calc-lex.c calc-main.c $LIBS |
| stderr: |
| calc.y: In function 'int calcpush_parse(calcpstate*, int, const CALCSTYPE*, CALCLTYPE*)': |
| calc.y:26:20: error: 'yylval.CALCSTYPE::ival' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| %printer { fprintf (yyo, "%d", $$); } <ival>; |
| ^ |
| calc.c:1272:9: note: 'yylval.CALCSTYPE::ival' was declared here |
| YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); |
| ^~~~~~ |
| cc1plus: all warnings being treated as errors |
| stdout: |
| ../../tests/calc.at:773: exit code was 1, expected 0 |
| 400. calc.at:773: 400. Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc (calc.at:773): FAILED (calc.at:773) |
| |
| * data/skeletons/c.m4 (yy_symbol_value_print): Disable the warning |
| locally. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix LAC support |
| * data/skeletons/lalr1.cc (ctor): Initialize yy_lac_established_. |
| This is quite painful to write, and ugly to read. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| style: fix comment |
| * tests/atlocal.in: here. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| CI: more compilers |
| * .travis.yml: Bionic is now available, with GCC8. |
| GCC7 sanitizers work, but they are too longer: cover only part 1. |
| Redefine part 1 and part 2 so that part 1 is really the core of the |
| tests: not playing with POSIX and C++ compiler for C code. |
| |
| 2019-09-06 Akim Demaille <[email protected]> |
| |
| CI: fail fast |
| |
| 2019-09-04 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| This update brings file from Gettext 0.20, which is not available on |
| the CI yet. |
| |
| .travis.yml: Adjust. |
| Use Bionic now that it's available. |
| |
| 2019-09-01 Akim Demaille <[email protected]> |
| |
| check for memory exhaustion |
| hash_initialize returns NULL when out of memory. Check for it, and |
| die cleanly instead of crashing. |
| |
| Reported by 江 祖铭 (Zu-Ming Jiang). |
| https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00015.html |
| |
| * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: |
| Check the value returned by hash_initialize. |
| |
| 2019-08-30 Akim Demaille <[email protected]> |
| |
| news: LAC for C++ |
| |
| 2019-08-29 Akim Demaille <[email protected]> |
| |
| d: remove useless imports |
| * examples/d/calc.y, tests/calc.at: here. |
| |
| 2019-08-18 László Várady <[email protected]> |
| |
| diagnostics: avoid global variables |
| * src/complain.c (indent_ptr): Remove. |
| (error_message, complains): Take indent as an argument. |
| Adjust callers. |
| |
| 2019-08-18 László Várady <[email protected]> |
| |
| diagnostics: fix invalid error message indentation |
| 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. |
| |
| 2019-08-18 Akim Demaille <[email protected]> |
| |
| c++: use resize to shrink a vector |
| Suggested by Adrian Vogelsgesang. |
| https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00009.html |
| |
| * data/skeletons/lalr1.cc (yy_lac_check_): here. |
| |
| 2019-08-09 Akim Demaille <[email protected]> |
| |
| lalr1.cc: check LAC support |
| * tests/conflicts.at, tests/input.at, tests/regression.at: here. |
| |
| 2019-08-09 Adrian Vogelsgesang <[email protected]> |
| |
| lalr1.cc: add LAC support |
| Implement lookahead correction (LAC) for the C++ skeleton. LAC is a |
| mechanism to make sure that we report the correct list of expected |
| tokens if a syntax error occurs. So far, LAC was only supported for |
| the C skeleton "yacc.c". |
| |
| * data/skeletons/lalr1.cc: Add LAC support. |
| * doc/bison.texi: Update. |
| |
| 2019-08-09 Adrian Vogelsgesang <[email protected]> |
| |
| style: readability improvements to yacc.c |
| * data/skeletons/yacc.c (yysyntax_error): Change the nesting of `m4` |
| conditions slightly to make it more readable. |
| The generated C code stays unchanged. |
| |
| 2019-08-09 Adrian Vogelsgesang <[email protected]> |
| |
| lalr1.cc: reduce "scope" |
| * data/skeletons/lalr1.cc (yy_lr_goto_state_): Make it static. |
| |
| 2019-08-09 Adrian Vogelsgesang <[email protected]> |
| |
| lalr1.cc: fix indentation of table declarations in the header |
| * data/skeletons/lalr1.cc: Fix indentation of table declarations in |
| the generated header. |
| |
| 2019-08-09 Akim Demaille <[email protected]> |
| |
| tests: prepare LAC tests for more languages |
| * tests/regression.at: Use %expect to avoid warnings. |
| Set the keywords to facilitate running specific tests. |
| Use macros such as AT_YYLEX_DECLARE to facilitate tests for other |
| languages. |
| Likewise for AT_FULL_COMPILE. |
| |
| 2019-08-09 Akim Demaille <[email protected]> |
| |
| git: ignore files generated in gnulib-po |
| Because of them, the CI generates "-dirty" tarballs. |
| |
| 2019-07-26 Akim Demaille <[email protected]> |
| |
| diagnostics: use the modern argmatch interface |
| * src/complain.h (warnings): Remove Werror. |
| Adjust dependencies. |
| Sort. |
| Remove useless comments (see the doc in argmatch group). |
| * src/complain.c (warnings_args, warnings_types): Remove. |
| (warning_argmatch): Use argmatch_warning_value. |
| (warnings_print_categories): Use argmatch_warning_argument. |
| |
| 2019-07-19 Akim Demaille <[email protected]> |
| |
| doc: avoid spurious empty lines in the option table |
| In Texinfo. empty lines in multitable rows generate empty lines in the |
| output. Avoid them altogether. |
| |
| With help from Gavin Smith. |
| https://lists.gnu.org/archive/html/bug-texinfo/2019-07/msg00000.html |
| |
| * build-aux/cross-options.pl: Separate rows with empty lines. |
| So, to be more readable, generate a single line for each row. |
| Use Perl format to this end. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| --fixed-output-files: detach from --yacc |
| See the previous commit. This option should be removed, -o suffices. |
| |
| * src/getargs.c (FIXED_OUTPUT_FILES): New. |
| Add support for it. |
| (getargs): Define loc, and use it. |
| This is safer when we need to pass a pointer to a location. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| %fixed-output-files: detach from %yacc |
| The name fixed-output-files is pretty clear: generate y.tab.c, as Yacc |
| does. So let's detach this from %yacc which does more: it requires |
| POSIX Yacc behavior. |
| |
| This directive is obsolete since December 29th 2001 |
| 8c9a50bee13474c1491df8f79f075f5214dda0d1. It does not show in the |
| doc. I don't want to spend more time on improving its diagnostics, it |
| could be removed just as well as far as I'm concerned. |
| |
| * src/scan-gram.l, src/parse-gram.y (%fixed-output-files): Detach from |
| %yacc. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| style: clarify control flow |
| * src/getargs.c (language_argmatch): Initialize msg. |
| Check it instead of relying on a return. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| remove MS-DOS support |
| DJGPP support was dropped in Bison 3.3 |
| (c239e53bab8e87b30889ac446d3b513da9951a35). |
| |
| AS_FILE_NAME was introduced in |
| ae4048011562c250d2f3c96687422d99a38745ce. |
| |
| * src/getargs.c (AS_FILE_NAME): Remove. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| style: declare options in the same order as in --help |
| * src/getargs.c (long_options): here. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Contains a fix for argmatch to get proper man pages. |
| See https://lists.gnu.org/archive/html/bug-gnulib/2019-07/msg00038.html |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| style: comment change |
| * src/getargs.c: here. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| doc: remove the --report=look-aheads alias |
| Years ago we moved from 'look-ahead' to 'lookahead', and that alias |
| was kept for backward compatibility. But now that we use argmatch to |
| generate the documentation, that value clutters the doc. |
| |
| * src/getargs.c (argmatch_report_args): Remove the |
| --report=look-aheads alias. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| doc: fix inaccuracies wrt --define and --force-define |
| The doc says that -Dfoo=bar is the same as %define foo "bar". It is |
| not: the quotes are not added (and it makes a difference). |
| |
| * doc/bison.texi (Tuning the Parser): Fix the definition of -D/-F |
| * src/getargs.c (usage): Likewise. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| doc: put diagnostics related options together |
| * doc/bison.texi (Diagnostics): New section. |
| Move --warning, --color and --style there. |
| * src/getargs.c (usage): Likewise. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| doc: move -y's documentation into "Tuning the Parser" |
| Let's clarify --help: use clearer "section" names, as in the doc. |
| Move --yacc to where it belongs. |
| |
| * src/getargs.c (usage): Rename "Parser" as "Tuning the Parser", as in |
| the doc. |
| Rename "Output" as "Output Files" |
| Move --yacc to "Tuning the Parser". |
| * doc/bison.texi: Likewise. |
| |
| 2019-07-07 Akim Demaille <[email protected]> |
| |
| doc: document colorized diagnostics |
| * src/getargs.c (argmatch_color_group): New. |
| (usage): Document --color and --style. |
| * doc/bison.texi (Bison Options): Split into three subsections. |
| Document --color and --style. |
| |
| 2019-07-03 Akim Demaille <[email protected]> |
| |
| gnulib: use new features of the argmatch module |
| It can now generate the usage message. |
| |
| * src/complain.h (feature_fixit_parsable): Rename as... |
| (feature_fixit): this, for column economy. |
| Adjust dependencies. |
| (warning_usage): New. |
| Use it. |
| * src/complain.h, src/complain.c, src/getargs.h, src/getargs.c: |
| Use ARGMATCH_DEFINE_GROUP instead of the older interface. |
| |
| 2019-07-02 Akim Demaille <[email protected]> |
| |
| preserve the indentation in the ouput |
| Preserve the actions' initial indentation. For instance, on |
| |
| | %define api.value.type {int} |
| | %% |
| | exp: exp '/' exp { if ($3) |
| | $$ = $1 + $3; |
| | else |
| | $$ = 0; } |
| |
| we used to generate |
| |
| | { if (yyvsp[0]) |
| | yyval = yyvsp[-2] + yyvsp[0]; |
| | else |
| | yyval = 0; } |
| |
| now we produce |
| |
| | { if (yyvsp[0]) |
| | yyval = yyvsp[-2] + yyvsp[0]; |
| | else |
| | yyval = 0; } |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2019-06/msg00012.html. |
| |
| * data/skeletons/bison.m4 (b4_symbol_action): Output the code in |
| column 0, leave indentation matters to the C code. |
| * src/output.c (user_actions_output): Preserve the incoming |
| indentation in the output. |
| (prepare_symbol_definitions): Likewise for %printer/%destructor. |
| * tests/synclines.at (Output columns): New. |
| |
| 2019-07-01 Akim Demaille <[email protected]> |
| |
| style: prefer passing locations by pointer |
| The code is inconsistent: sometimes we pass by value, sometimes by |
| reference. Let's stick to the last, more conventional for large |
| values in C. |
| |
| * src/scan-code.l: Pass locations by reference. |
| |
| 2019-06-30 Akim Demaille <[email protected]> |
| |
| c++: avoid duplicate definition of YYUSE |
| Reported by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bug-bison/2019-06/msg00009.html |
| |
| * data/skeletons/lalr1.cc (b4_shared_declarations): Remove the |
| duplicate definition of YYUSE, the other one coming from |
| b4_attribute_define. |
| |
| 2019-06-27 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * examples/c/lexcalc/local.mk, examples/c/reccalc/local.mk: |
| Here. |
| |
| 2019-06-23 Akim Demaille <[email protected]> |
| |
| tests: restructure for clarity |
| * tests/calc.at (AT_CALC_MAIN, AT_CALC_LEX): Rewrite on top of |
| AT_LANG_DISPATCH. |
| |
| 2019-06-23 Akim Demaille <[email protected]> |
| |
| d: track locations |
| * configure.ac (DCFLAGS): Pass -g. |
| * data/skeletons/d.m4 (b4_locations_if): Remove, let bison.m4's one do |
| its job. |
| * data/skeletons/lalr1.d (position): Leave filename empty by default. |
| (position::toString): Don't print empty file names. |
| (location::this): New ctor. |
| (location::toString): Match the implementations of C/C++. |
| (yy_semantic_null): Leave undefined, the previous implementation does |
| not compile. |
| * tests/calc.at: Improve the implementation for D. |
| Enable more checks, in particular using locations. |
| * tests/local.at (AT_YYERROR_DEFINE(d)): Fix its implementation. |
| |
| 2019-06-23 Akim Demaille <[email protected]> |
| |
| d: style changes |
| * data/skeletons/lalr1.d: Use a more traditional quotation scheme. |
| Formatting changes. |
| |
| 2019-06-23 Akim Demaille <[email protected]> |
| |
| d: put internal details inside the parser |
| Avoid name clashes, etc. |
| |
| * data/skeletons/lalr1.d (YYStackElement, YYStack): Move inside the |
| parser. |
| |
| 2019-06-22 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-06-22 Akim Demaille <[email protected]> |
| |
| remove "experimental" warnings |
| Sadly enough, AFAIK, there were never answers to the "More user |
| feedback will help to stabilize it" sentences. Remove them. |
| |
| * src/getargs.c: IELR, canonical LR and XML output are here to stay, |
| and they are no more experimental than some other features. |
| * doc/bison.texi: Likewise. |
| Also remove "experimental" warning for Java, LAC, LR tuning options, |
| and named references. |
| |
| 2019-06-22 Akim Demaille <[email protected]> |
| |
| CI: propagate sftp failures |
| * .travis.yml (stage: "compile"): here. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| d: honor %define parse.trace |
| * data/skeletons/lalr1.d: Don't generate debug code if parse.trace is |
| not enabled. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| d: style changes |
| * data/skeletons/lalr1.d: here. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| d: prefer delegation to duplication |
| * data/skeletons/lalr1.d: Delegate the construction of the scanner. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| d: enable #line output |
| * data/skeletons/d.m4 (b4_sync_start): New. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| d: style changes |
| * data/skeletons/lalr1.d: here. |
| * examples/d/calc.y: Remove incorrect support for decimal numbers. |
| Formatting changes. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in glr.c |
| * data/skeletons/glr.c: here. |
| |
| 2019-06-20 Akim Demaille <[email protected]> |
| |
| java: honor %define parse.trace |
| * data/skeletons/lalr1.java: Don't generate debug code if parse.trace |
| is not enabled. |
| |
| 2019-06-19 Akim Demaille <[email protected]> |
| |
| java: fix support for api.prefix |
| * data/skeletons/java.m4: here. |
| * tests/java.at: Check it. |
| |
| 2019-06-19 Akim Demaille <[email protected]> |
| |
| java: style changes |
| * data/skeletons/lalr1.java: Use more conventional function names for |
| Java. |
| Prefer < and <= to => and >. |
| Use the same approach for m4 quotation as in the other skeletons. |
| Fix indentation issues. |
| |
| * tests/calc.at, tests/java.at, tests/javapush.at: Fix quotation style. |
| (main): Use 'args', not 'argv', the former seems more conventional and |
| is used elsewhere in Bison. |
| Prefer character literals to integers to denote characters. |
| * examples/java/Calc.y: Likewise. |
| |
| 2019-06-15 Akim Demaille <[email protected]> |
| |
| CI: avoid useless git costs |
| Travis answered favorably to my suggestion to provide a means to |
| disable git clone on some jobs (issue 7542). See |
| https://docs.travis-ci.com/user/customizing-the-build/#disabling-git-clone. |
| |
| * .travis.yml: Disable git globally, enable it for i. the compile job, |
| and ii. the test job on ICC which needs the install-icc.sh script. |
| |
| 2019-06-12 Akim Demaille <[email protected]> |
| |
| style: simplify strings to translate |
| * src/conflicts.c (log_resolution): Don't translate indentation. |
| |
| 2019-06-12 Akim Demaille <[email protected]> |
| |
| style: reduce scopes, propagate const |
| * src/conflicts.c (conflicts_output): here. |
| |
| 2019-06-12 Akim Demaille <[email protected]> |
| |
| style: use clearer types |
| * src/conflicts.c (conflicts): Array of Booleans. |
| |
| 2019-06-11 Akim Demaille <[email protected]> |
| |
| tests: prefer %empty |
| * tests/regression.at: here. |
| |
| 2019-06-09 Akim Demaille <[email protected]> |
| |
| CI: factor |
| * .travis.yml (Clang 7 libc++ and ASAN part 2): Reuse bits from "Clang |
| 7 libc++ and ASAN part 1". |
| |
| 2019-06-09 Akim Demaille <[email protected]> |
| |
| lr0: more debug traces |
| * src/lr0.c (kernel_check): New. |
| (new_itemsets, save_reductions): Add traces. |
| |
| 2019-06-09 Akim Demaille <[email protected]> |
| |
| traces: add some colors |
| This is an experiment. Maybe more styles will be used (in which case |
| a short-hand function will be useful), maybe it will be just reverted. |
| * data/bison-default.css (.traces0): New. |
| * src/lalr.c (lalr): Use it. |
| |
| 2019-06-09 Akim Demaille <[email protected]> |
| |
| tests: make sure the default action properly works in C++ |
| See e3fdc370495ffdedadd6ac621e32e34a0e1a9de0: in C++ we generate |
| explicitly the code for the default action instead of simply copying |
| blindly the semantic value buffer. This is important when copying |
| raw memory is not enough, as exemplified by move-only types. |
| |
| This is currently tested by examples/c++/variant.yy and variant-11.yy. |
| But it is safer to also have a test in the main test suite. |
| |
| * tests/local.at (AT_REQUIRE_CXX_STD): Fix. |
| (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Define/undefine |
| AT_BISON_OPTIONS. |
| * tests/c++.at (Default action): New. |
| |
| 2019-06-09 Akim Demaille <[email protected]> |
| |
| tests: main: support -s and -p |
| * tests/local.at (AT_MAIN_DEFINE(c), AT_MAIN_DEFINE(c++)): here. |
| |
| 2019-06-04 Akim Demaille <[email protected]> |
| |
| tests: remove useless support of '.' in integers |
| * tests/calc.at: here. |
| * doc/bison.texi: Avoid uninitialized variables. |
| |
| 2019-05-29 Akim Demaille <[email protected]> |
| |
| tests: refactor checks on sets |
| It will be convenient to check sets elsewhere. |
| |
| * tests/sets.at (AT_EXTRACT_SETS): Transform into... |
| * tests/local.at (AT_SETS_CHECK): this. |
| * tests/sets.at: Adjust. |
| |
| 2019-05-29 Akim Demaille <[email protected]> |
| |
| update-test: some file names have dashes in them |
| * build-aux/update-test (log): Rename as... |
| (trace): this, to avoid clashes with the log variable. |
| (getargs): Clarify the type of the arguments. |
| |
| 2019-05-26 Akim Demaille <[email protected]> |
| |
| tests: take SHELL into account |
| Reported by Dennis Clarke. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00053.html |
| |
| * examples/local.mk, tests/local.mk: here. |
| |
| 2019-05-26 Akim Demaille <[email protected]> |
| |
| gnulib: update to get gnulib translations |
| This update contains a fix needed for gnulib-po to work properly. |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00146.html |
| |
| 2019-05-25 Akim Demaille <[email protected]> |
| |
| doc: clarify the purpose of symbol_type constructors |
| Reported by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2019-02/msg00006.html |
| |
| * doc/bison.texi (Complete Symbols): Here. |
| |
| 2019-05-22 Akim Demaille <[email protected]> |
| |
| thanks: fix an address |
| |
| 2019-05-22 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-05-22 Akim Demaille <[email protected]> |
| |
| version 3.4.1 |
| * NEWS: Record release date. |
| |
| 2019-05-22 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2019-05-20 Akim Demaille <[email protected]> |
| |
| CI: remove useless apt-get update |
| The apt addons already ran it for us, it is not needed. |
| |
| * .travis.yml: here. |
| |
| 2019-05-20 Akim Demaille <[email protected]> |
| |
| c++: beware of to_string portability issues |
| Reported by Bruno Haible. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00033.html |
| |
| * m4/bison-cxx-std.m4 (_BISON_CXXSTD_11_snippet): Check it. |
| |
| 2019-05-20 Akim Demaille <[email protected]> |
| |
| doc: avoid Texinfo portability issues |
| Reported by Bruno Haible. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00024.html |
| Fixed by Karl Berry. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00034.html |
| |
| * doc/bison.texi: Don't specify the langage, rely on the default. |
| Avoid blank pages. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| examples: don't run those that require f?lex when it's not available |
| Reported by Bruno Haible. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00026.html |
| |
| * configure.ac (FLEX_WORKS): New. |
| * examples/c/lexcalc/local.mk, examples/c/reccalc/local.mk: Use it. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| diagnostics: don't crash when libtextstyle is installed |
| Reported by neok m4700. |
| https://lists.gnu.org/archive/html/bison-patches/2019-05/msg00025.html |
| https://github.com/akimd/bison/pull/11 |
| |
| * src/complain.c (complain_init_color): style_file_prepare _needs_ a |
| string as second argument. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| CI: avoid useless git costs |
| The final gain is small: 2h2min instead 2h9min. But that is still an |
| improvement. |
| |
| * .travis.yml (git.depth): Make the clone very shallow. |
| (git.submodules): Don't clone gnulib in test jobs. |
| (jobs.include.compile.script): Do it here. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| fix: copyable instead of copiable |
| Reported by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00020.html |
| |
| * data/skeletons/lalr1.cc, doc/bison.texi: here. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| version 3.4 |
| * NEWS: Record release date. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| fix: use copiable, not copyable |
| Reported by Hans Åberg. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00017.html |
| |
| * data/skeletons/lalr1.cc, doc/bison.texi: here. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| NEWS: update for 3.4 |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| tests: adjust to GCC9 diagnostics with a margin |
| * tests/synclines.at (_AT_SYNCLINES_COMPILE): Remove the margin. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| diagnostics: %pure-parser is obsolete |
| Reported by Uxio Prego. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00029.html |
| |
| * src/scan-gram.l, src/parse-gram.y (PERCENT_PURE_PARSER) |
| (handle_pure_parser): New. |
| Issue a deprecation/update notice for %pure-parser. |
| * doc/bison.texi (Java Bison Interface): Don't mention %pure-parser. |
| * tests/actions.at, tests/input.at: Adjust. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| diagnostics: clean up convention for colored diagnostics |
| * 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. |
| |
| 2019-05-19 Akim Demaille <[email protected]> |
| |
| CI: use a pipeline: first build the tarball, then check it |
| Build the tarball in one job, check it in many. |
| Unfortunately no real gain in overall duration. |
| With help from Clément Démoulins. |
| |
| * .travis.yml: here. |
| Remove all the tricks that were used to be able to boostrap on old |
| distros. |
| (before_install): Merge into 'script', because before_install applies |
| to all the jobs, and we don't want to run it for the 'compile' job. |
| |
| 2019-05-18 Akim Demaille <[email protected]> |
| |
| examples: fix srcdir/builddir issues |
| * examples/d/local.mk, examples/java/local.mk: here. |
| |
| 2019-05-18 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| In preparation for Bison 3.4, revert to the version before this |
| commit: |
| |
| commit 03752516b21091cf3c4beea7e8b9bcad462d50ed |
| Author: John Darrington <[email protected]> |
| Date: Sun May 12 00:42:36 2019 +0200 |
| |
| version-etc: Ease translation. |
| |
| * lib/version-etc.c (version_etc_arn, emit_bug_reporting_address): |
| Move URLs and formatting newlines out of translatable string. |
| |
| because it changes the messages for --version, translated in |
| gnulib.po. These changes are not yet available on the translation |
| project, so we would have a regression in the set of translated |
| strings. |
| |
| 2019-05-13 Akim Demaille <[email protected]> |
| |
| build: do not use $< in plain rules |
| It works only in implicit rules (or with GNU Make, but not with |
| Solaris Make). |
| |
| Reported by Bruno Haible. |
| http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00009.html |
| Diagnosed thanks to Kiyoshi Kanazawa. |
| |
| * examples/c/reccalc/local.mk, examples/d/local.mk, |
| * examples/java/local.mk: Don't use $< in non implicit rules. |
| |
| 2019-05-12 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-05-12 Akim Demaille <[email protected]> |
| |
| version 3.3.91 |
| * NEWS: Record release date. |
| |
| 2019-05-12 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2019-05-12 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-05-11 Akim Demaille <[email protected]> |
| |
| style: remove incorrect comment |
| * src/getargs.c: here. |
| It's documented in getargs.h anyway. |
| |
| 2019-05-09 Akim Demaille <[email protected]> |
| |
| doc: use colors for diagnostics in TeX too |
| Thanks to Gavin Smith and Patrice Dumas. |
| http://lists.gnu.org/archive/html/help-texinfo/2019-04/msg00015.html |
| |
| * doc/bison.texi (@colorWarning, @colorError, @colorNotice) |
| (@colorOff): Define for TeX and HTML. |
| (@dwarning, @derror, @dnotice): Use them. |
| |
| 2019-05-08 Akim Demaille <[email protected]> |
| |
| gnulib: update to fix location tracking in UTF-8 on Solaris |
| This update contains Bruno Haible's fix for the location tracking |
| issue reported by Kiyoshi Kanazawa. |
| |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00020.html |
| https://lists.gnu.org/archive/html/bug-bison/2019-04/msg00020.html |
| |
| 2019-05-08 Akim Demaille <[email protected]> |
| |
| diagnostics: rename --style=debug as --color=debug |
| It is more consistent with --color=html, --color=test, etc. |
| |
| * src/getargs.h, src/getargs.c (style_debug): Rename as... |
| (color_debug): this. |
| (getargs_colors): Rename --style=debug as --color=debug. |
| Adjust dependencies. |
| |
| 2019-05-08 Akim Demaille <[email protected]> |
| |
| diagnostics: support --color=html |
| Based on a message from Bruno Haible. |
| https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=fe18e92743b7226791a5f28d7c786941a1bf8cc9 |
| |
| This does not generate proper HTML: special characters are not escaped |
| for instance. This is a hidden feature meant for Bison developers, |
| not end users. |
| |
| * src/complain.c (complain_init_color): Support --color=html. |
| |
| 2019-05-08 Akim Demaille <[email protected]> |
| |
| tests: use %empty instead of comments |
| * tests/c++.at, tests/glr-regression.at: here. |
| |
| 2019-05-08 Akim Demaille <[email protected]> |
| |
| fixits: sort them before applying them |
| An experimental commit introduced a fix-it hint that changes comments |
| such as "/* empty */" into %empty. But in some case, because |
| diagnostics are not necessarily emitted in order, the fixits also come |
| in disorder, which must never happen, as the fixes are installed in |
| one pass. |
| |
| * src/fixits.c (fixits_register): Insert them in order. |
| |
| 2019-05-04 Akim Demaille <[email protected]> |
| |
| style: use warning_is_enabled instead of duplicating it |
| * src/complain.c (deprecated_directive): Here. |
| |
| 2019-05-03 Akim Demaille <[email protected]> |
| |
| fixits: be sure to preserve the action when adding %empty |
| Currently we remove the rhs to install %empty instead. |
| |
| * src/reader.c (grammar_rule_check_and_complete): Insert the missing |
| %empty in front of the rhs, not in replacement thereof. |
| * tests/actions.at (Add missing %empty): Check that. |
| |
| 2019-05-03 Akim Demaille <[email protected]> |
| |
| tests: don't duplicate the portability prologue |
| * tests/actions.at, tests/input.at: Don't repeat the prologue, skip it. |
| * tests/diagnostics.at, tests/local.at: Comment changes. |
| |
| 2019-05-03 Akim Demaille <[email protected]> |
| |
| style: use consistently *_loc for locations |
| Some members are called foo_location, others are foo_loc. Stick to |
| the latter. |
| |
| * src/gram.h, src/location.h, src/location.c, src/output.c, |
| * src/parse-gram.y, src/reader.h, src/reader.c, src/reduce.c, |
| * src/scan-gram.l, src/symlist.h, src/symlist.c, src/symtab.h, |
| * src/symtab.c: |
| Use _loc consistently, not _location. |
| |
| 2019-05-03 Akim Demaille <[email protected]> |
| |
| style: clarify the use of symbol_lists' locations |
| symbol_list features a 'location' and a 'sym_loc' member. The former |
| is expected to be set only for symbol_lists that denote a symbol (not |
| a type name), and the latter should only denote the location of the |
| symbol/type name. Yet both are set, and the name "location" is too |
| unprecise. |
| |
| * src/symlist.h, src/symlist.c (symbol_list::location): Rename as |
| rhs_loc for clarity. Move it to the "section" of data valid only |
| for rules. |
| * src/reader.c, src/scan-code.l: Adjust. |
| |
| 2019-05-03 Akim Demaille <[email protected]> |
| |
| maint: update gnulib-po/.gitignore |
| |
| 2019-04-29 Akim Demaille <[email protected]> |
| |
| tests: don't require a D compiler |
| Reported by Kiyoshi Kanazawa. |
| http://lists.gnu.org/archive/html/bug-bison/2019-04/msg00018.html |
| |
| * tests/atlocal.in (BISON_DC_WORKS): New. |
| * tests/local.at (AT_COMPILE_D): Use it. |
| |
| 2019-04-29 Akim Demaille <[email protected]> |
| |
| doc: use svg instead of png |
| * doc/bison.texi, doc/local.mk: here. |
| |
| 2019-04-29 Akim Demaille <[email protected]> |
| |
| doc: use colors |
| * doc/bison.texi (dwarning, derror, dnotice): New. |
| Use them in the diagnostics. |
| * doc/local.mk (AM_MAKEINFOFLAGS): Pass customization variables. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| version 3.3.90 |
| * NEWS: Record release date. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| package: add missing CLEANFILES |
| * examples: here. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| build: don't generate the graph reports |
| Revert "build: also generate the graph |
| reports" (4ec413da32760defe1bf382c048d1d2f67e0b58a). The problem is |
| Automake's ylwrap which does not rename y.dot with the appropriate |
| name. We should completely stop using Automake's support for Yacc, |
| which is not something I will do right now. So step back. |
| |
| * Makefile.am (AM_YFLAGS_WITH_LINES): Don't pass --graph. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| package: don't regen the parser during dist if unneeded |
| * Makefile.am (gen-synclines): New. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| package: don't ship the sources generated from the parser |
| Because some of our examples use |
| |
| %C%_reccalc_SOURCES = %D%/parse.y |
| |
| Automake ships parse.y and parse.c, and possibly parse.h when it |
| "understands" that there is one. This is not what we want: ship only |
| parser.y. Yet we still want to use Automake to compile the sources |
| from parser.y. The easiest seems to use |
| |
| nodist_%C%_reccalc_SOURCES = %D%/parse.y |
| |
| together with |
| |
| dist_reccalc_DATA = %D%/parse.y %D%/scan.l %D%/Makefile %D%/README.md |
| |
| which guarantees that parse.y is indeed shipped. |
| |
| * examples/c/calc/local.mk, examples/c/lexcalc/local.mk, |
| * examples/c/reccalc/local.mk: Always use nodist_*SOURCES for parsers, |
| let the dist_*_DATA rules do their job. |
| |
| 2019-04-28 Akim Demaille <[email protected]> |
| |
| package: various fixes for syntax-check |
| * cfg.mk: Disable checks where needed (e.g., we do want to check the |
| behavior with tabs). |
| (sc_at_parser_check): Remove. Unfortunately since |
| a11c144609255bc6e42c2aff83548e91cbd05425 we no longer use the './' |
| prefix to run programs in the current directory. That was so that we |
| could run Java programs like the other, although they are no run with |
| the `./` prefix (see 967a59d2c08a33f24708450561e2f8010b604523). |
| As a consequence this sc check no longer makes sense. |
| However, since now AT_PARSER_CHECK passes the `./` prefix itself, this |
| sc-check was superfluous. |
| * examples/c/reccalc/scan.l: Use memcpy, not strncpy. |
| * src/ielr.c, src/reader.c: Obfuscate "lr(0)" so that the sc-check for |
| "space before paren" does not fire. |
| * tests/diagnostics.at: Avoid space-tab, use tab-tab. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| doc: clarify -fsyntax-error |
| * NEWS, doc/bison.texi: here. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| traces: use colors for the semantic values |
| This makes reading the trace slightly easier. It would be very nice |
| to highlight the "big steps", especially reductions. But this is a |
| private experiment: do not use it. |
| |
| * data/diagnostics.css (value): New. |
| * src/parse-gram.y: Use no delimiters and no c quotation for strings |
| to facilitate debugging. |
| (tron, troff, TRACE): New. |
| Not very elegant, but until there is support for printf-formats in |
| libtextstyle, it shall be enough. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| diagnostics: give m4 precise locations |
| Currently we pass only the columns based on the screen-width, which is |
| important for the carets. But we don't pass the bytes-based columns, |
| which is important for the colors. Pass both. |
| |
| * src/muscle-tab.c (muscle_boundary_grow): Also pass the byte-based column. |
| * src/location.c (location_caret): Clarify. |
| (boundary_set_from_string): Adjust to the new format. |
| * tests/diagnostics.at (Tabulations and multibyte characters from M4): New. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| diagnostics: fix locations coming from M4 |
| Locations issued from M4 need the byte-based column for the |
| diagnostics to work properly. Currently they were unassigned, which |
| typically resulted in partially non-colored diagnostics. |
| |
| * src/location.c (boundary_set_from_string): Fix the parsed location. |
| * src/muscle-tab.c (muscle_percent_define_default): Set the byte values. |
| * tests/diagnostics.at (Locations from M4): New. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| diagnostics: show locations in full when debugging |
| This is meant for developers, not end users, that's why I attached it |
| to --trace. |
| |
| * src/getargs.h, src/getargs.c (trace_locations): New. |
| * src/location.c (location_print): Use it. |
| |
| 2019-04-27 Akim Demaille <[email protected]> |
| |
| diagnostics: use flush, not fflush |
| * src/complain.c: here. |
| |
| 2019-04-25 Akim Demaille <[email protected]> |
| |
| build: use gettext-h |
| We were using the gnulib's gettext module with tricks in |
| bootstrap.conf to avoid useless files. Instead, use gnulib's |
| gettext-h module. |
| |
| * .travis.yml: Force Gettext 0.18.3 on Trusty. |
| * bootstrap.conf: Use gettext-h instead of gettext. |
| (excluded_files): Remove. |
| * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19. |
| |
| 2019-04-25 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2019-04-25 Akim Demaille <[email protected]> |
| |
| api.location.type: support it in C |
| 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. |
| |
| 2019-04-24 Akim Demaille <[email protected]> |
| |
| updates: insert/remove %empty |
| * src/reader.c (grammar_rule_check_and_complete): Generate fixits for |
| adding/removing %empty. |
| * tests/actions.at, tests/diagnostics.at, tests/existing.at: Adjust. |
| |
| 2019-04-24 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-04-24 Akim Demaille <[email protected]> |
| |
| diagnostics: better rule locations |
| 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. |
| |
| 2019-04-24 Akim Demaille <[email protected]> |
| |
| fixits: track byte-columns, not character-columns |
| Because the fix-its were ready the character-based columns, but were |
| applied on byte-based columns, the result with multibyte characters or |
| tabs could be "interesting". For instance |
| |
| %fixed-output_files |
| %fixed_output-files |
| %fixed-output-files |
| %define api.prefix {foo} |
| %no-default-prec |
| |
| would give |
| |
| %fixed-%fixed-output-files %fixed_output-files |
| %fixed-orefix= "foo" |
| o_default-prec |
| |
| * src/fixits.c (fixit_print, fixits_run): Work on byte-base columns. |
| * tests/input.at: Check it. |
| |
| 2019-04-24 Akim Demaille <[email protected]> |
| |
| diagnostics: expose a means to know whether a warning is enabled |
| * src/complain.h, src/complain.c (warning_is_enabled): New. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| gnulib: let it use its own PO domain |
| See |
| https://www.gnu.org/software/gnulib/manual/html_node/Localization.html. |
| |
| * bootstrap.conf: Create gnulib-po. |
| * Makefile.am, configure.ac: Use it. |
| * po/POTFILES.in: Remove files now in gnulib. |
| * src/main.c: Open the bison-gnulib domain. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: don't try to quote special files |
| Based on a report by Todd Freed. |
| http://lists.gnu.org/archive/html/bug-bison/2019-04/msg00000.html |
| See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90034 |
| |
| * src/location.c (caret_info): Also track the file name. |
| (location_caret): Don't quote special files. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: document the change of format |
| * doc/bison.texiL Adjust output. |
| Also, Graphviz has no uppercsae V. |
| * NEWS: Explain the format change. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: copy GCC9's format |
| Currently, when we quote the source file, we indent it with one space, |
| and preserve tabulations, so there is a discrepancy and the visual |
| rendering is bad. One way out is to indent with a tab instead of a |
| space, but then this space can be used for more information. This is |
| what GCC9 does. Let's play copy cats. |
| |
| See |
| https://lists.gnu.org/archive/html/bison-patches/2019-04/msg00025.html |
| https://developers.redhat.com/blog/2019/03/08/usability-improvements-in-gcc-9/ |
| https://gcc.gnu.org/onlinedocs/gccint/Guidelines-for-Diagnostics.html#Guidelines-for-Diagnostics |
| |
| * src/location.c (location_caret): Prefix quoted lines with the line |
| number and a pipe, fitting 8 columns. |
| |
| * tests/actions.at, tests/c++.at, tests/conflicts.at, |
| * tests/diagnostics.at, tests/input.at, tests/java.at, |
| * tests/named-refs.at, tests/reduce.at, tests/regression.at, |
| * tests/sets.at: Adjust expectations. |
| Partly by "./build-aux/update-test tests/testsuite.dir/*/testsuite.log" |
| repeatedly, and partly by hand. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: fix the handling of multibyte characters |
| This is a pity: efforts were invested in computing correctly the |
| number of screen columns consumed by multibyte characters, but the |
| routines that do that were fed by single-byte inputs... |
| |
| As a consequence Bison never displayed correctly locations when there |
| are multibyte characters. |
| |
| * src/scan-gram.l (mbchar): New. |
| Use it instead of . in the catch-all clause. |
| * tests/diagnostics.at (Tabulations): Enhance into... |
| (Tabulations and multibyte characters): this. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: check the handling of tabulations |
| * tests/diagnostics.at (Tabulations): here. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: fix styling issues |
| Single point locations (equal boundaries) are troublesome, and we were |
| incorrectly ending the style in their case. Which results in an abort |
| in libtextstyle. |
| |
| There is also a confusion between columns as displayed on the |
| screen (which take into account multibyte characters and tabulations), |
| and the number of bytes. Counting the screen-column |
| incrementally (character by character) is uneasy (because of multibyte |
| characters), and I don't want to maintain a buffer of the current line |
| when displaying the diagnostic. So I believe the simplest solution is |
| to track the byte number in addition to the screen column. |
| |
| * src/location.h, src/location.c (boundary): Add the byte-column. |
| Adjust dependencies. |
| * src/getargs.c, src/scan-gram.l: Adjust. |
| * tests/diagnostics.at: Check zero-width locations. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| diagnostics: check the styling |
| Enable checking of styles even when libtextstyle is not installed. |
| |
| * src/getargs.h, src/getargs.c (style_debug): New. |
| (getargs_colors): Set it when --style=debug. |
| * src/complain.c (begin_use_class, end_use_class): Use it. |
| * tests/diagnostics.at: New. |
| |
| 2019-04-23 Akim Demaille <[email protected]> |
| |
| TODO: update |
| Let's prepare 3.4 with more or less what we have. Schedule some |
| features for 3.5 and 3.6. Remove obsolete stuff. |
| |
| 2019-04-19 Akim Demaille <[email protected]> |
| |
| doc: sort the warning categories |
| * doc/bison.texi, src/getargs.c: here. |
| |
| 2019-04-19 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * tests/actions.at, tests/calc.at, tests/input.at: here. |
| |
| 2019-04-19 Akim Demaille <[email protected]> |
| |
| graphviz: move constant computation out of a loop |
| * src/graphviz.c (output_red): here. |
| |
| 2019-04-18 Akim Demaille <[email protected]> |
| |
| diagnostics: fix memory leak in libtextstyle |
| * src/complain.h, src/complain.c (complain_free): New. |
| * src/main.c: Use it. |
| |
| 2019-04-17 Akim Demaille <[email protected]> |
| |
| tests: remove useless feature |
| * tests/calc.at (read_signed_integer): Rename as... |
| (read_integer): this. |
| We never read signs here. |
| |
| 2019-04-14 Akim Demaille <[email protected]> |
| |
| traces: make closure() less verbose |
| * src/getargs.h, src/getargs.c (trace_closure): New. |
| * src/closure.c (closure): Use it. |
| |
| 2019-04-14 Akim Demaille <[email protected]> |
| |
| build: also generate the graph reports |
| * Makefile.am (AM_YFLAGS_WITH_LINES): here. |
| |
| 2019-04-12 Akim Demaille <[email protected]> |
| |
| yacc.c: minor style change |
| * data/skeletons/yacc.c: To improve consistency with other similar |
| pieces of code. |
| |
| 2019-04-12 Akim Demaille <[email protected]> |
| |
| style: scope reduction in lalr.c |
| * src/lalr.c (initialize_goto_follows): here. |
| |
| 2019-04-12 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * src/closure.h, src/closure.c, src/lalr.c: here. |
| |
| 2019-04-12 Akim Demaille <[email protected]> |
| |
| traces: improve logs |
| * src/lalr.c: Move logs to a better place to understand the chronology |
| of events. |
| * src/symlist.c (symbol_list_syms_print): Don't dump core on type |
| elements. |
| |
| 2019-04-07 Akim Demaille <[email protected]> |
| |
| doc: minor fixes |
| * doc/bison.texi: Use consistently $ and @kbd in shell examples. |
| Prefer sticking to English words: output and file instead of outfile |
| and infile. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| bison: use no-lines |
| The 'regen' commit in Bison's history are a nuisance. They are |
| especially big because of the #lines. Let's generate our parse |
| without these lines in the repository, but generate them in the |
| tarball. |
| |
| * Makefile.am (AM_YFLAGS_WITH_LINES): New. |
| (AM_YFLAGS): Use it. |
| (dist-hook): Regenerate the parser with #lines. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| no-lines: avoid leaving an empty line instead of the syncline |
| Currently, with --no-lines, instead of "#line file line\n", we emit |
| "\n". Let's emit nothing. |
| |
| * data/skeletons/bison.m4 (b4_syncline): Emit at end-of-line when enabled. |
| * data/skeletons/bison.m4, data/skeletons/c.m4, data/skeletons/glr.cc, |
| * data/skeletons/lalr1.cc, src/output.c: Use dnl after b4_syncline to |
| avoid spurious empty lines. |
| |
| * tests/synclines.at (Sync Lines): Make sure that --no-lines is like |
| grep -v #line. |
| * tests/calc.at: Make sure that a rich grammar file behaves properly |
| with %no-lines. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| java: use full locations for diagnostics about destructors |
| Currently we use the syncline to report errors about a symbol's |
| destructor/printer. This is not accurate (only file and line), and |
| this is incorrect: the file name is double quotes (a recent change, |
| needed to make sure we escape properly double quotes in it). And |
| worst of all: with --no-line, b4_syncline expands to nothing. |
| |
| Rather, push the locations into the backend, and use them. |
| |
| * src/muscle-tab.h, src/muscle-tab.c (muscle_location_grow): Make it |
| public. |
| * src/output.c (prepare_symbol_definitions): Use it to pubish the |
| location of the printer and destructor. |
| * data/skeletons/lalr1.java: Use complain_at instead of complain. |
| * tests/java.at (Java invalid directives): Adjust expectations. |
| * data/skeletons/bison.m4 (b4_symbol_action_location): Remove. |
| We should not use b4_syncline this way. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| java: prefer errors to fatal errors |
| Fatal errors are inconvenient, and should be reserved to cases where |
| we cannot continue. Here, it could even be warnings actually: these |
| directives will simply be ignored. |
| |
| * data/skeletons/lalr1.java: Prefer error (b4_complain) to fatal |
| errors (b4_fatal). |
| * tests/java.at (Java invalid directives): New. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/javapush.at: here. |
| |
| 2019-04-03 Akim Demaille <[email protected]> |
| |
| lalr: offer more flexibility in debugging routines |
| * src/state.h, src/state.c (state_transitions_print): New, extracted |
| from... |
| (state_transitions_set): here. |
| |
| 2019-03-31 Akim Demaille <[email protected]> |
| |
| lalr: don't overbook memory |
| I never understood why we book ngotos+1 slots for relations between |
| gotos: there are at most ngotos images, not ngotos+1 (and "includes" |
| does have cases where a goto is in relation with itself, so it's not |
| ngotos-1). |
| |
| Maybe bbf37f2534a8e5a6b4e28047f0a10903e6dc73f9 explains the +1: a bug |
| left us register a goto several times on occasion, and the +1 might |
| have been a means to avoid this problem in most cases. Now that this |
| bug is addressed, we should no longer overbook memory, if only for the |
| clarity of the code ("why ngotos+1 instead of ngotos?"). |
| |
| * src/lalr.c: A goto has at most ngotos images, not ngotos+1. |
| While at it, avoid useless repeated call to map_goto introduced in |
| bbf37f2534a8e5a6b4e28047f0a10903e6dc73f9. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| lalr: show lookback for debug |
| * src/lalr.c (lookback_print): New. |
| (build_relations): Use it. |
| Also show edges. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| diagnostics: don't crash when declaring the error token as an nterm |
| Reported by wcventure. |
| http://lists.gnu.org/archive/html/bug-bison/2019-03/msg00008.html |
| |
| * src/symtab.c (complain_class_redeclared): Don't print empty |
| locations. |
| There can only be empty locations for predefined symbols. And the |
| only symbol that is lexically available is the error token. So this |
| appears to be the only possible way to have an error involving an |
| empty location. |
| * tests/input.at (Symbol class redefinition): Check it. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| lalr: fix segmentation violation |
| The "includes" relation [DeRemer 1982] is between gotos, so of course, |
| for a given goto, there cannot be more that ngotos (number of gotos) |
| images. But we manipulate the set of images of a goto as a list, |
| without checking that an image was not already introduced. So we can |
| "register" way more images than ngotos, leading to a crash (heap |
| buffer overflow). |
| |
| Reported by wcventure. |
| http://lists.gnu.org/archive/html/bug-bison/2019-03/msg00007.html |
| |
| For the records, this bug is present in the first committed version of |
| Bison. |
| |
| * src/lalr.c (build_relations): Don't insert the same goto several |
| times. |
| * tests/sets.at (Build Relations): New. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| state: more debug traces |
| * src/state.c (state_transitions_set): Show the transitions. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| style: rename variables for consistency |
| * src/lalr.c: Use trans for transitions, and reds for reductions, as |
| elsewhere in the code. |
| * src/state.h: Comment changes. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| gram: fix and improve log message |
| It seems that not many people read these logs: the error was |
| introduced in 2001 (3067fbef531832df1e43bbd28787655808361eed), |
| |
| * src/gram.c (grammar_dump): Fix the headers of the table: remove |
| duplicate display of "Ritem Range". |
| While at it, remove duplicate display of the rule number (and remove |
| an incorrect comment about it: these numbers _are_ equal). |
| * tests/sets.at (Reduced Grammar): Use useless rule, nterm and token |
| in the example. |
| |
| 2019-03-30 Akim Demaille <[email protected]> |
| |
| tests: add a tool for mass updates |
| When we update some output format, too many adjustements must be made |
| by hand. This script updates most tests based on the actual output |
| made during the tests. |
| |
| * build-aux/update-test: New. |
| |
| 2019-03-25 Akim Demaille <[email protected]> |
| |
| style: remove now useless _GL_UNUSED |
| * src/getargs.c (getargs_colors): Here. |
| Useless since 4d34b06fb3a38eb050439084476a6b3e292c5680. |
| |
| 2019-03-24 Theophile Ranquet <[email protected]> |
| |
| tables: use bitsets for a performance boost |
| Suggested by Yuri at |
| <http://lists.gnu.org/archive/html/bison-patches/2012-01/msg00000.html>. |
| |
| The improvement is marginal for most grammars, but notable for large |
| grammars (e.g., PosgreSQL's postgre.y), and very large for the |
| sample.y grammar submitted by Yuri in |
| http://lists.gnu.org/archive/html/bison-patches/2012-01/msg00012.html. |
| Measured with --trace=time -fsyntax-only. |
| |
| parser action tables postgre.y sample.y |
| Before 0,129 (44%) 37,095 (99%) |
| After 0,117 (42%) 5,046 (93%) |
| |
| * src/tables.c (pos): Replace this set of integer coded as an unsorted |
| array or integers with... |
| (pos_set): this bitset. |
| |
| 2019-03-24 Akim Demaille <[email protected]> |
| |
| yacc.c: don't suggest api.header.include when --defines is not used |
| See 4e19ab9fcd28c9361ff08f46e5e353effb0a0520: the suggestion to |
| include the header file should not be emitted when the header is not |
| generated. |
| |
| * data/skeletons/yacc.c: Here. |
| |
| 2019-03-24 Akim Demaille <[email protected]> |
| |
| reader: clarify variable names |
| * src/reader.c (grammar_rule_check_and_complete): When 'p' and 'lhs' |
| are aliases, prefer the latter, for clarity and consistency. |
| (grammar_current_rule_begin): Avoid 'p', current_rule suffices. |
| * src/gram.h, src/gram.c: Comment changes. |
| |
| ptdr# calc.tab.c |
| |
| 2019-03-24 Akim Demaille <[email protected]> |
| |
| diagnostics: style changes |
| * src/location.c (location_caret): Clarify a bit. |
| |
| 2019-03-24 Akim Demaille <[email protected]> |
| |
| diagnostics: use gnulib's libtextstyle-optional |
| 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. |
| |
| 2019-03-23 Akim Demaille <[email protected]> |
| |
| diagnostics: fix handling of style in limit cases |
| * src/location.c (location_caret): Beware of the cases where the start |
| and end columns are the same, or when the location is multilines. |
| |
| 2019-03-23 Akim Demaille <[email protected]> |
| |
| warnings: don't use _Noreturn with G++ 4.7 in C++98 mode |
| The timevar and bitset modules now use the c99 module which causes |
| $CXX to now include -std=gnu++11 when possible. Unfortunately, G++ |
| 4.7 does not implement [[noreturn]] in C++11 mode, so our tests of |
| glr.cc (which uses _Noreturn) fail with |
| |
| input.cc:954:1: error: expected unqualified-id before '[' token |
| |
| right before [[noreturn]]. 4.8 works fine. |
| |
| * data/skeletons/c.m4 (b4_attribute_define): Do not use [[noreturn]] |
| with GCC 4.7. |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| d: tests: use more a natural approach for the scanner |
| See f8408562f8439654261418406296e4108d2a995f. |
| |
| * tests/calc.at: Stop imitating the C API. |
| Prepare more tests to run in the future. |
| %verbose works as expected (what a surprise, it's unrelated to the |
| skeleton...). |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| style: rename spec_defines_file as spec_header_file |
| The variable spec_defines_file denotes the name of the generated |
| header. Its name is derived from --defines/%defines, whose name in |
| turn is derived from the fact that the header, in Yacc, contained the |
| |
| Not only does the header now contain a lot more than just the token |
| definitions, but we no longer even generate macros, but an enum... |
| |
| Let's modernize our vocabulary. |
| |
| * src/files.h, src/files.c (spec_defines_file): Rename as... |
| (spec_header_file): this. |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| yacc.c: provide a means to include the header in the implementation |
| 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. |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| d: don't link against LIBS |
| * tests/local.at (AT_COMPILE_D): Don't pass LIBS, dmd does not like |
| being given -lintl. |
| |
| 2019-03-17 Akim Demaille <[email protected]> |
| |
| address warnings from GCC's UB sanitizer |
| Running with CC='gcc-mp-8 -fsanitize=undefined' revealed Undefined |
| Behaviors. |
| https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00008.html |
| |
| * src/state.c (errs_new): Don't call memcpy with NULL as source. |
| * src/location.c (add_column_width): Don't assume that the column |
| argument is nonnegative: the scanner sometimes "backtracks" (e.g., see |
| ROLLBACK_CURRENT_TOKEN and DEPRECATED) in which case we can have |
| negative column numbers (temporarily). |
| Found in test 3 (Invalid inputs). |
| |
| 2019-03-16 Akim Demaille <[email protected]> |
| |
| diagnostics: use libtextstyle for colored output |
| Bruno Haible released libtextstyle, a library for colored output based |
| on CSS. Let's use it to generate colored diagnostics, provided |
| libtextstyle is available. |
| |
| See |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-01/msg00176.html |
| https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00073.html |
| https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00084.html |
| https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00007.html |
| |
| * bootstrap.conf (gnulib_modules): Use libtextstyle when possible. |
| * data/diagnostics.css: New. |
| * src/complain.c (begin_use_class, end_use_class, flush) |
| (severity_style, complain_init_color): New. |
| Use them. |
| * src/getargs.c (getargs_colors): New. |
| (getargs): Use it. |
| Skip --color and --style. |
| * src/location.h, src/location.c (location_print): Use a style. |
| |
| * tests/bison.in: Force --color=yes when stderr is a tty. |
| * tests/local.at: Disable colors during the test suite. |
| * tests/input.at: Adjust expectations to the extra options passed on |
| the command line. |
| |
| 2019-03-16 Akim Demaille <[email protected]> |
| |
| style: clean up complain.c |
| * src/complain.c (severity_prefix): New. |
| (error_message): Take the severity as argument, instead of the prefix. |
| |
| 2019-03-16 Akim Demaille <[email protected]> |
| |
| yacc.c: emit the header before the implementation file |
| * data/skeletons/yacc.c: here. |
| This is more logical for the time stamps, but it's also required by |
| following patches: the shared declarations are also in charge of |
| handling api.value.type=union. So far, they are run in the |
| implementation file in both cases (with or without header). But if we |
| run them only in the header, then the implementation file is emited |
| with incorrect support for api.value.type=union. |
| Arguably we should not have such dependencies. This is because we |
| have side-effects in our backend (redefining the symbols' type and |
| type_tag). In the future we should find a better solution for this, |
| without sacrificing the independence of the backend from bison |
| itself (i.e., I don't think we should handle api.value.type=union in |
| bison, leave it to m4). |
| |
| 2019-03-16 Akim Demaille <[email protected]> |
| |
| simplify the generated #line |
| Currently we generate things like: |
| |
| #line 683 "src/parse-gram.y" /* yacc.c:316 */ |
| |
| The first part is of course very important: compilers point the users |
| to their grammar file rather than into the generated parser. The |
| second part points to the place in the skeletons that generated this |
| piece of code. |
| |
| This dependency on the Bison skeletons generates lots of useless 'git |
| diff'. This location is useless for the regular user (who does not |
| care about the skeletons) and is actually not useful for Bison |
| developpers too (I never used this to locate the code in skeletons |
| that generated output). So disable it completely. If someone thinks |
| this was actually useful, a %define variable should be provided to |
| control the level of verbosity of '#line', in replacement of |
| --no-lines. |
| |
| So now, generate: |
| |
| #line 683 "src/parse-gram.y" |
| |
| * data/skeletons/bison.m4 (b4_sync_end): Emit nothing. |
| |
| 2019-03-13 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-03-13 Akim Demaille <[email protected]> |
| |
| tests: remove duplicates |
| * tests/regression.at (Invalid inputs, Invalid inputs with {}): |
| Remove, there are exact copies of them in input.at. |
| |
| 2019-03-02 Akim Demaille <[email protected]> |
| |
| d: simplify the API to build the scanner of the example |
| * examples/d/calc.y (calcLexer): Add an overload for File. |
| Use it. |
| |
| 2019-03-01 H. S. Teoh <[email protected]> |
| |
| d: modernize the scanner of the example |
| https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00121.html |
| |
| * examples/d/calc.y (CalcLexer): Stop shoehorning C's API into D: use |
| a range based approach in the scanner, rather than some imitation of |
| getc/ungetc. |
| (main): Adjust. |
| |
| 2019-03-01 Akim Demaille <[email protected]> |
| |
| d: tests: use fewer global variables |
| * tests/calc.at: Move 'input' into the scanner. |
| |
| 2019-02-28 Akim Demaille <[email protected]> |
| |
| lalr: clarify the count of lookaheads |
| * src/lalr.c (state_lookahead_tokens_count): Remove wierd `+=` that is |
| actually an `=`. |
| |
| 2019-02-28 Akim Demaille <[email protected]> |
| |
| lalr: clarify the API |
| * src/state.h, src/state.c (state_reduction_find): Clarify. |
| Die on errors. |
| * src/lalr.c (goto_list_new): New. |
| Use it. |
| |
| 2019-02-28 Akim Demaille <[email protected]> |
| |
| lalr: improve traces |
| * src/lalr.c (follows_print): Just print the symbol tag. |
| Take and print a title. |
| Indent the output. |
| Use it to print the various steps of the computation. |
| (lookahead_tokens_print): Fix a lie: the number displayed is not the |
| number of tokens. |
| Don't display states that don't even have reductions. |
| |
| 2019-02-27 Akim Demaille <[email protected]> |
| |
| lalr: print the 'reads' relation |
| * src/relation.h, src/relation.c (relation_print): Accept and use a |
| title. |
| Don't print empty rows. |
| Indent the output. |
| Adjust dependencies. |
| * src/lalr.c (initialize_goto_follows): Print 'reads' in traces. |
| |
| 2019-02-27 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * src/lr0.c: here. |
| |
| 2019-02-26 Akim Demaille <[email protected]> |
| |
| dlang: initial changes to run the calc tests on it |
| * configure.ac (DCFLAGS): Define. |
| * tests/atlocal.in: Receive it. |
| * data/skeletons/d.m4 (api.parser.class): Remove spurious YY. |
| * data/skeletons/lalr1.d (yylex): Return an int instead of a |
| YYTokenType, so that we can use characters as tokens. |
| * examples/d/calc.y: Adjust. |
| * tests/local.at: Initial support for D. |
| (AT_D_IF, AT_DATA_GRAMMAR(D), AT_YYERROR_DECLARE(d)) |
| (AT_YYERROR_DECLARE_EXTERN(d), AT_YYERROR_DEFINE(d)) |
| (AT_MAIN_DEFINE(d), AT_COMPILE_D, AT_LANG_COMPILE(d), AT_LANG_EXT(d)): |
| New. |
| * tests/calc.at: Initial support for D. |
| * tests/headers.at |
| |
| 2019-02-26 Akim Demaille <[email protected]> |
| |
| d: improve the example |
| * examples/d/calc.y: Exit with failure on errors. |
| Remove useless operators (=, !) meant for the test suite. |
| Add unary + for symmetry. |
| * examples/d/calc.test: Adjust expectations. |
| |
| 2019-02-26 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/local.at AT_YYERROR_DEFINE(java): Use more consistent names. |
| |
| 2019-02-25 Akim Demaille <[email protected]> |
| |
| style: eliminate useless indirection |
| * src/relation.h, src/relation.c (relation_digraph): Don't take the |
| biteetv as a pointer, it is already a pointer (as it's an array). |
| |
| 2019-02-25 Akim Demaille <[email protected]> |
| |
| style: rename function for clarity |
| Commit db34f7988941444bdc5f2b6adcf7fb83648f9a18 renames the variable F |
| as goto_follows, but forgot to rename this function. |
| |
| * src/lalr.c (initialize_F): Rename as... |
| (initialize_goto_follows): this. |
| |
| 2019-02-25 Akim Demaille <[email protected]> |
| |
| lalr: more debug traces |
| I need to be able to read includes and goto_follows. |
| |
| * src/relation.h, src/relation.c (relation_print): Provide a means to |
| pretty-print the nodes of the relation. |
| * src/lalr.c (goto_print, follows_print): New. |
| (set_goto_map): Use goto_print. |
| (build_relations): Show INCLUDES. |
| (compute_FOLLOWS): Rename as... |
| (compute_follows): this. |
| Show FOLLOWS. |
| |
| 2019-02-24 Akim Demaille <[email protected]> |
| |
| style: minor changes |
| * examples/c/calc/calc.y, src/lalr.c: Reduce scope. |
| * src/gram.c: Prefer < to >. |
| |
| 2019-02-24 Akim Demaille <[email protected]> |
| |
| style: clarify the computation of the lookback edges |
| * src/lalr.c (build_relations): Reduce the scopes. |
| Instead of keeping rp alive in two different loops, clarify the second |
| one by having an index on the path we traverse (i.e., use that index |
| to compute the source state _and_ the symbol that labels the |
| transition). |
| This allows to turn an obscure 'while'-loop in a clearer (IMHO) |
| 'for'-loop. We also consume more variables (by introducing p instead |
| of making more side effects on length), but we're in 2019, I don't |
| think this matters. What does matter is that (IMHO again), this is |
| now clearer. |
| Also, use clearer names. |
| |
| 2019-02-24 Akim Demaille <[email protected]> |
| |
| style: scope reduction in tables.c |
| * src/tables.c: here. |
| * src/lalr.c: Prefer < to >. |
| |
| 2019-02-24 Akim Demaille <[email protected]> |
| |
| d: formatting changes |
| * data/skeletons/d.m4, data/skeletons/lalr1.d: Avoid trailing spaces. |
| |
| 2019-02-23 Akim Demaille <[email protected]> |
| |
| examples: remove stray examples |
| * examples/c/reentrant-calc: Remove. |
| I did not mean to include this example, it was replaced by |
| examples/c/reccalc. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: factor the execution of Java parsers |
| * tests/local.at (AT_MAIN_DEFINE(java)): Exit failure on failure. |
| (AT_PARSER_CHECK): If in Java, run AT_JAVA_PARSER_CHECK. |
| * tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Simplify. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: fix a Java tests |
| * tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Fix quotation error. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: simplify AT_PARSER_CHECK usage |
| Currently the caller must specify the ./ prefix to its command. Let's |
| avoid that: it will be nicer to read, make it easier to have a version |
| that works for Java and C/C++. |
| |
| * tests/local.at (AT_PARSER_CHECK): Prefix the command with ./. |
| Adjust callers. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: java: factor the definition of Position |
| * tests/local.at (AT_JAVA_POSITION_DEFINE): New. |
| * tests/java.at, tests/javapush.at: Use it. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: dispatch per lang on AT_DATA_GRAMMAR |
| * tests/java.at: Do that. |
| * tests/conflicts.at: Simplify. |
| |
| * tests/actions.at, tests/c++.at, tests/input.at, tests/local.at, |
| * tests/named-refs.at: |
| Use AT_BISON_OPTION_PUSHDEFS/AT_BISON_OPTION_POPDEFS. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: dispatch per lang on the definition of yylex |
| * tests/local.at (AT_YYLEX_DEFINE): Dispatch on the language. |
| (AT_YYLEX_DEFINE(java)): New. |
| * tests/conflicts.at, tests/java.at: Use it. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: de-duplicate |
| * tests/conflicts.at (AT_YYLEX_PROTOTYPE): Don't define it, leave that |
| task to AT_DATA_GRAMMAR. |
| But be honest: tell AT_BISON_OPTION_PUSHDEFS all the options we use. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/local.at: here. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| graph: prefer *.gv to *.dot |
| 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. |
| |
| 2019-02-21 Akim Demaille <[email protected]> |
| |
| doc: fixes to please older versions of Texinfo |
| Currently, we have errors: |
| |
| ./doc/bison.texi:13005: node `History' lacks menu item for `Yacc' despite being its Up target |
| |
| * doc/bison.texi (History): Add the local menu. |
| While at it, add a few index entries. |
| |
| 2019-02-17 Akim Demaille <[email protected]> |
| |
| doc: style changes |
| * doc/bison.texi (Bibliography): Add [Corbett 1984] and [Johnson |
| 1978]. |
| (History): Use them. |
| And other minor changes. |
| |
| 2019-02-17 Eric S. Raymond <[email protected]> |
| |
| doc: a history section |
| * bison.texi (A Brief History of the Greater Ungulates): New section. |
| |
| 2019-02-17 Akim Demaille <[email protected]> |
| |
| examples: add an example with a reentrant parser in Flex+Bison |
| Suggested by Eric S. Raymond. |
| https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00066.html |
| |
| * examples/c/reentrant-calc/Makefile, examples/c/reentrant-calc/README.md, |
| * examples/c/reentrant-calc/parse.y, examples/c/reentrant-calc/scan.l |
| * examples/c/reentrant-calc/lexcalc.test, |
| * examples/c/reentrant-calc/local.mk: |
| New. |
| |
| 2019-02-16 Akim Demaille <[email protected]> |
| |
| examples: fixes in lexcalc |
| * examples/c/lexcalc/parse.y: Formatting/comment changes. |
| (line): Don't return a value. |
| Print the result here, which avoids printing a value for lines with an |
| error. |
| (yyerror): Be sure to increment the pointed, not the pointer... |
| * examples/c/lexcalc/lexcalc.test: Check errors. |
| * examples/c/lexcalc/local.mk: Fix a dependency. |
| |
| 2019-02-16 Akim Demaille <[email protected]> |
| |
| build: fix distcheck |
| Regression introduced in 05a80977798abf472bfc11c477751303ad604733. |
| |
| * doc/local.mk (bison.help): Don't depend on the path of the bison |
| executable. |
| |
| 2019-02-16 Akim Demaille <[email protected]> |
| |
| style: move pkgdatadir to files.* |
| Let's move it to a more logical place. |
| |
| * src/output.h, src/output.c (pkgdatadir): Move to... |
| * src/files.h, src/files.c: here. |
| |
| 2019-02-14 Akim Demaille <[email protected]> |
| |
| style: rename cleanup_caret as caret_free |
| * src/location.c, src/location.h, src/main.c: here. |
| |
| 2019-02-14 Akim Demaille <[email protected]> |
| |
| style: avoid default in switch on enums |
| * src/assoc.c (assoc_to_string): here. |
| |
| 2019-02-14 Akim Demaille <[email protected]> |
| |
| doc: run tests/bison, not src/bison |
| * doc/local.mk: Don't run src/bison, as it expects to find all its |
| files installed. Instead, run tests/bison which is ready to run in |
| builddir. |
| |
| 2019-02-13 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-02-12 Akim Demaille <[email protected]> |
| |
| style: comment and names changes in map_goto |
| * src/lalr.h, src/lalr.c: Use clearer names. |
| |
| 2019-02-12 Akim Demaille <[email protected]> |
| |
| yacc: support parse.assert |
| While hacking on the computation of the automaton, I had yystate being |
| equal to -1, and the parser loops. Let's catch this when |
| parser.assert is enabled. |
| |
| * data/skeletons/yacc.c (YY_ASSERT): New. |
| Use it. |
| Not using the name YYASSERT, to make it clear that this is private. |
| glr.c should probably move to YY_ASSERT too. |
| Also, while at it, report 'Entering state...' even before growing the |
| stacks. |
| |
| 2019-02-12 Akim Demaille <[email protected]> |
| |
| examples: depend on Bison's sources |
| * examples/c/calc/local.mk, examples/c/lexcalc/local.mk, |
| * examples/c/mfcalc/local.mk, examples/c/rpcalc/local.mk: |
| Regenerate the files if dependencies have changed. |
| |
| 2019-02-12 Eric S. Raymond <[email protected]> |
| |
| README: point to README-hacking |
| * README (Build from git): New. |
| * README-hacking: Describe easier submodule update. |
| |
| 2019-02-10 Akim Demaille <[email protected]> |
| |
| doc: a single space before closing comments |
| I don't think this style: |
| |
| /* If buffer is full, make it bigger. */ |
| if (i == length) |
| { |
| length *= 2; |
| symbuf = (char *) realloc (symbuf, length + 1); |
| } |
| /* Add this character to the buffer. */ |
| symbuf[i++] = c; |
| /* Get another character. */ |
| c = getchar (); |
| |
| or more readable than |
| |
| /* If buffer is full, make it bigger. */ |
| if (i == length) |
| { |
| length *= 2; |
| symbuf = (char *) realloc (symbuf, length + 1); |
| } |
| /* Add this character to the buffer. */ |
| symbuf[i++] = c; |
| /* Get another character. */ |
| c = getchar (); |
| |
| Actually, I think the latter is more readable, and helps with width |
| issues in the PDF. As a matter of fact, I would happily move to // |
| only for single line comments. |
| |
| * doc/bison.texi: A single space before closing comments. |
| |
| 2019-02-10 Akim Demaille <[email protected]> |
| |
| doc: modernize the examples |
| * doc/bison.texi: Prefer 'fun' to 'fnct'. |
| Reduce local variable scopes. |
| Prefer strdup to malloc + strcpy. |
| Avoid gratuitous casts. |
| Use simpler names (e.g., 'name' instead of 'fname'). |
| Avoid uses of 0 for NULL. |
| Avoid using NULL when possible (e.g., 'p' instead of 'p != NULL'). |
| Prefer union names to casts (e.g. 'yylval.VAR = s' instead of |
| '*((symrec**) &yylval) = s'). |
| Give arguments a name in fun declarations. |
| Use our typedefs instead of duplicating them (func_t). |
| Stop promoting an explicit $$ = $1;, it should be implicit (Bison |
| might be able to eliminate useless chain rules). |
| Help a bit Texinfo by making smaller groups. |
| Rely on the C compiler to call function pointers (prefer |
| '$1->value.fun ($3)' to (*($1->value.fnctptr))($3)'). |
| |
| 2019-02-10 Akim Demaille <[email protected]> |
| |
| examples: add a simple infix calculator in C |
| 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. |
| |
| 2019-02-10 Akim Demaille <[email protected]> |
| |
| examples: fix annoying off-by-one errors |
| * examples/extexi: Since we issue #lines only at the beginning of |
| @example, leave empty line when removing content (such as @comment |
| lines), otherwise the lines that follow have incorrect source line |
| location. This leaves ugly empty lines, but they are removed when you |
| tidy the output for the end user: sequences of \n are mapped to at |
| most two sucessive \n. |
| |
| 2019-02-09 Akim Demaille <[email protected]> |
| |
| style: factor printing of rules |
| * src/gram.h, src/gram.c (rule_print): New. |
| Use it. |
| |
| 2019-02-09 Akim Demaille <[email protected]> |
| |
| style: use lower case for variable names |
| * src/relation.c (INDEX, VERTICES): Rename as... |
| (indexes, vertices): these. |
| |
| 2019-02-09 Akim Demaille <[email protected]> |
| |
| style: scope reduction in relation.c |
| |
| 2019-02-09 Akim Demaille <[email protected]> |
| |
| report: stop counting uselessly |
| * src/print.c (print_nonterminal_symbols): Replace left_count and |
| right_count with on_left and on_right. |
| |
| 2019-02-09 Akim Demaille <[email protected]> |
| |
| report: clean up its format |
| The format is inconsistent. For instance most sections are |
| indented (including "Terminals unused in grammar" for instance), but |
| the sections "Terminals, with rules where they appear" and |
| "Nonterminals, with rules where they appear" are not. Let's indent |
| them. Also, these two sections try to wrap the output to avoid lines |
| too long. Yet we don't do that in the rest of the file, for instance |
| when listing the lookaheads of an item. |
| |
| For instance in the case of Bison's parse-gram.output we go from: |
| |
| Terminals, with rules where they appear |
| |
| "end of file" (0) 0 |
| error (256) 28 88 |
| "string" <char*> (258) 9 13 16 17 20 23 24 109 116 |
| [...] |
| |
| Nonterminals, with rules where they appear |
| |
| $accept (58) |
| on left: 0 |
| input (59) |
| on left: 1, on right: 0 |
| prologue_declarations (60) |
| on left: 2 3, on right: 1 3 |
| prologue_declaration (61) |
| on left: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 |
| 25 26 27 28 29, on right: 3 |
| [...] |
| |
| to |
| |
| Terminals, with rules where they appear |
| |
| "end of file" (0) 0 |
| error (256) 28 88 |
| "string" <char*> (258) 9 13 16 17 20 23 24 109 116 |
| [...] |
| |
| Nonterminals, with rules where they appear |
| |
| $accept (58) |
| on left: 0 |
| input (59) |
| on left: 1 |
| on right: 0 |
| prologue_declarations (60) |
| on left: 2 3 |
| on right: 1 3 |
| prologue_declaration (61) |
| on left: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 |
| on right: 3 |
| [...] |
| |
| * src/print.c (END_TEST): Remove. |
| (print_terminal_symbols): Don't try to wrap the output. |
| (print_nonterminal_symbols): Likewise. |
| Make two different lines for occurrences on the left, and occurrence |
| on the rhs of the rules. |
| Indent by 4 and 8, not 3. |
| * src/reduce.c (reduce_output): Indent by 4, not 3. |
| |
| * tests/conflicts.at, tests/existing.at, tests/reduce.at, |
| * tests/regression.at, tests/report.at: |
| Adjust. |
| |
| 2019-02-05 Akim Demaille <[email protected]> |
| |
| add LR(0) output |
| This should not be used to generate parsers. My point is actually to |
| facilitate debugging (when tweaking the generation of the LR(0) |
| automaton for instance, not carying -yet- about lookaheads). |
| |
| * src/reader.c (prepare_percent_define_front_end_variables): Add lr(0). |
| * src/conflicts.c (set_conflicts): Be robust to reds not having |
| lookaheads at all. |
| * src/ielr.c (LrType, lr_type_get): Adjust. |
| (ielr): Implement support for LR(0). |
| * src/lalr.c (lalr_free): Don't free LA when it's not computed. |
| |
| 2019-02-05 Akim Demaille <[email protected]> |
| |
| style: scope reduction in derives.c |
| * src/derives.c: here. |
| |
| 2019-02-05 Akim Demaille <[email protected]> |
| |
| style: comment changes and refactoring in state.c |
| * src/state.h, src/state.c: Comment changes. |
| (transitions_to): Take a state* as argument. |
| * src/lalr.h, src/lalr.c: Comment changes. |
| (initialize_F): Use clear variable names. |
| |
| 2019-02-05 Akim Demaille <[email protected]> |
| |
| tests: fix typos |
| * tests/reduce.at: here. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| Merge branch maint |
| * 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 |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| version 3.3.2 |
| * NEWS: Record release date. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| style: minor fixes |
| * NEWS, src/reduce.c, src/reduce.h: Use 'nonterminal'. |
| Fix comments. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| NEWS: named constructors are preferable to symbol_type ctors |
| Reported by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00043.html |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| gram: fix handling of nterms in actions when some are unused |
| 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. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| tests: strengthen some of them |
| * tests/reduce.at: Check that the generated parsers are proper C. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| package: rename data/README as data/README.md |
| So that it is properly rendered by online git services. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/symlist.c (symbol_list_free): New. |
| |
| 2019-02-03 Akim Demaille <[email protected]> |
| |
| style: prefer snprintf to sprintf |
| * src/symtab.c (dummy_symbol_get): There's no need for the buffer to |
| be so big and static. |
| Use snprintf for safety. |
| |
| 2019-02-02 Akim Demaille <[email protected]> |
| |
| style: comment and name changes |
| * src/output.c (prepare_symbol_names): here. |
| * src/reader.c: Remove obsolete comment. |
| * src/scan-code.l: Use || for Boolean or. |
| |
| 2019-02-02 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * src/reader.c, src/scan-code.l: here. |
| |
| 2019-02-02 Akim Demaille <[email protected]> |
| |
| make: regenerate the example parsers when bison changes |
| * Makefile.am (dependencies): Also depend on Bison's sources. |
| |
| 2019-02-02 Akim Demaille <[email protected]> |
| |
| style: rename local variable |
| * src/reduce.c (nonterminals_reduce): Rename nontermmap as nterm_map. |
| We will expose it. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| gram: detect and report (in debug traces) useless chain rules |
| A rule is a useless chain iff it's a chain (aka unit, or injection) |
| rule (i.e., the RHS has length 1), and it's useless (it has no used |
| defined semantic action). |
| |
| * src/gram.h, src/gram.c (rule_useless_chain_p): New. |
| (grammar_dump): Report useless chain rules. |
| * tests/sets.at: Check the traces. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| lr(0): more debug traces |
| * src/lr0.c (core_print, kernel_print): New. |
| Use them. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| lr(0): remove useless conditional |
| * src/lr0.c (new_itemsets): There's no harm in setting a Boolean |
| several times. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| style: sort includes and avoid assignments |
| * src/symtab.c: Sort includes. |
| * src/gram.c (grammar_rules_print_xml): Avoid assignments to define |
| 'usefulness'. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| style: use item_rule |
| * src/print-graph.c, src/print-xml.c: here. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| gram: factor the printing of items and the computation of their rule |
| There are several places where we need to recover the rule from an |
| item, let's factor that into item_rule. We also want to print items |
| in a nice way: we do it when generating the *output file, but it is |
| also useful in debug messages. |
| |
| * src/gram.h, src/gram.c (item_rule, item_print): New. |
| * src/print.c (print_core): Use them. |
| * src/state.h, src/state.c: Propagate constness. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| style: scope reduction in print-xml |
| * src/print-xml.c: here. |
| |
| 2019-01-30 Akim Demaille <[email protected]> |
| |
| tests: check XML and dot reports |
| * tests/report.at: Here. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| CI: update the ICC serial number for travis-ci.org |
| On travis-ci.org, there are five concurrent slaves, instead of three |
| on travis-ci.com. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| CI: update the ICC serial number for travis-ci.org |
| On travis-ci.org, there are five concurrent slaves, instead of three |
| on travis-ci.com. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * src/lr0.c, src/state.c, src/state.h: here. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| closure: initialize it once for all |
| The memory allocated by 'closure' (and some data such as 'fderives') |
| is used to computed a state's full itemset from its core. This is |
| needed during the construction of the LR(0) automaton, and the memory |
| is reclaimed immediately afterwards. |
| |
| Unfortunately the reports (graph, text, xml) also need this |
| information when describing the states with their full itemsets. As a |
| consequence the memory was allocated again, fderives computed again |
| too, and more --trace reports are generated which only duplicate what |
| was already reported. |
| |
| Stop that. It does mean that we release the memory later (hence the |
| peak memory usage is higher now), but I don't think that's a problem |
| today. |
| |
| * src/lr0.c (generate_states): Don't call closure_free. |
| * src/state.c (states_free): Do it here. |
| (for symmetry with closure_new which is called in generate_states). |
| * src/print-graph.c, src/print-xml.c, src/print.c: You can now expect |
| the closure module to be functional. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| style: rename closure_* functions as closure_* |
| This is more consistent with the other files. |
| |
| * closure.h, closure.c (new_closure, free_closure): Rename as... |
| (closure_new, closure_free): this. |
| Adjust dependencies. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| lr0: use a bitset for the set of "shiftable symbols" |
| This will make it easier to add new elements (that might already be |
| part of shift_symbol) without having to worry about the size of |
| shift_symbol (which is currently a fixed size vector). |
| |
| I could not measure any significant differences in performances in the |
| generation of LR(0) automaton (benched on gramamrs of Ruby, C, and C++). |
| |
| * src/lr0.c (shift_symbol): Make it a bitset. |
| |
| 2019-01-28 Akim Demaille <[email protected]> |
| |
| add -fsyntax-only |
| 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. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| style: beware of collisions on status |
| * src/symtab.h (status): Rename as... |
| (declaration_status): this, to avoid colliding with status, the |
| argument of 'usage'. |
| 'status' seems a tad too general to be used only here. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| usage: document -ffixit |
| * src/getargs.c (usage): Document -ffixit. |
| Document the aliases of -f. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in state.c and ielr.c |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * maint: |
| maint: post-release administrivia |
| version 3.3.1 |
| yacc: issue warnings, not errors, for Bison extensions |
| style: formatting changes in NEWS and complain.c |
| tests: don't depend on the user's definition of SHELL |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| version 3.3.1 |
| * NEWS: Record release date. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| yacc: issue warnings, not errors, for Bison extensions |
| 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. |
| |
| 2019-01-27 Akim Demaille <[email protected]> |
| |
| style: formatting changes in NEWS and complain.c |
| |
| 2019-01-27 Kiyoshi Kanazawa <[email protected]> |
| |
| tests: don't depend on the user's definition of SHELL |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00031.html |
| |
| * examples/test (SHELL): Set it to /bin/sh. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| traces: always print the reduced grammar and fix it |
| * src/gram.c (grammar_dump): Print the effective number first instead |
| of last. And fix it (remove the incorrect "+1"). |
| Use t/f for Booleans. |
| * src/reduce.c: When asked, always print the reduced grammar, even if |
| there was nothing useless. |
| * tests/sets.at (Reduced Grammar): Check that. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| style: rename LR0.* as lr0.* |
| Let's stick to lower case for file names. |
| |
| * src/LR0.h, src/LR0.c: Rename as... |
| * src/lr0.h, src/lr0.c: these. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| style: rename print_graph.* as print-graph.* |
| These are the only files with _. |
| |
| * src/print_graph.h, src/print_graph.c: Rename as... |
| * src/print-graph.h, src/print-graph.c: these. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| style: various fixes |
| * src/gram.c: Use consistent variable names. |
| Prefix prefix unary operators. |
| (grammar_dump): Use rule_rhs_length instead of duplicating it. |
| * src/reduce.c: Avoid useless variables. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| style: comment changes in gram.h |
| * src/gram.h: Shorten comments. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| version 3.3 |
| * NEWS: Record release date. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| c++: fix comment |
| * data/skeletons/c++.m4: here. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * data/skeletons/lalr1.cc: Add dnl. |
| * data/skeletons/bison.m4: Comment the use of dnl. |
| |
| 2019-01-26 Akim Demaille <[email protected]> |
| |
| tests: run the printer/destructor test on glr.cc |
| * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust for |
| glr.cc, and use it. |
| |
| 2019-01-24 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-01-22 Akim Demaille <[email protected]> |
| |
| --update: when used, do not generate the output files |
| It is inconvenient that we also generate the output files when we |
| update the grammar file, and it's somewhat unexpected. Let's not do |
| that. |
| |
| * src/main.c (main): Skip generation when --update is passed. |
| * src/getargs.c (usage): Update the help message. |
| * doc/bison.texi (Bison Options): Likewise. |
| * tests/input.at: Check that we don't generate the output. |
| |
| 2019-01-22 Akim Demaille <[email protected]> |
| |
| diagnostics: let redundant definitions be only warnings |
| After all, this is clearly harmless. |
| |
| * src/muscle-tab.c (muscle_percent_define_insert): Let equal |
| definitions of a %define variable be only a warning. |
| Adjust test cases. |
| |
| 2019-01-22 Akim Demaille <[email protected]> |
| |
| tests: improve check for updated variable names |
| * tests/input.at ("%define" backward compatibility): Don't define |
| twice "api.namespace", so that we don't get an error, which stops the |
| process too soon to see an error about the value given to |
| 'lr.keep-unreachable-state'. |
| |
| 2019-01-21 Akim Demaille <[email protected]> |
| |
| diagnostics: remove redundancy |
| Don't repeat the name of the warning in the sub messages. E.g., |
| remove the second "[-Wother]" in the following message |
| |
| foo.y:2.1-27: warning: %define variable 'parse.error' redefined [-Wother] |
| %define parse.error verbose |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| foo.y:1.1-27: previous definition [-Wother] |
| %define parse.error verbose |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * src/complain.c (error_message): Don't print the warning type when |
| it's indented. |
| Adjust test cases. |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| c++: better "scope" a workaround for GCC |
| * data/skeletons/lalr1.cc: Enable it only for GCC 4.8 and before. |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| c++: address -Wweak-vtables warnings |
| Reported by Derek Clegg |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00021.html |
| |
| aux/parser-internal.h:429:12: error: 'syntax_error' has no out-of-line virtual |
| method definitions; its vtable will be emitted in every translation unit |
| [-Werror,-Wweak-vtables] |
| struct syntax_error : std::runtime_error |
| |
| To avoid this warning, we need syntax_error to have a virtual function |
| defined in a compilation unit. Let it be the destructor. To comply |
| with C++98, this dtor should be 'throw()'. Merely making YY_NOEXCEPT |
| be 'throw()' in C++98 triggers |
| errors (http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00022.html), |
| so let's introduce YY_NOTHROW and flag only ~syntax_error with it. |
| |
| Also, since we now have an explicit dtor, we need to provide an copy |
| ctor. |
| |
| * configure.ac (warn_cxx): Add -Wweak-vtables. |
| * data/skeletons/c++.m4 (YY_NOTHROW): New. |
| (syntax_error): Declare the dtor, and define the copy ctor. |
| * data/skeletons/glr.cc, data/skeletons/lalr1.cc (~syntax_error): |
| Define. |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| style: prefer bool to char |
| * src/state.h, src/state.c (state::consistent): Make it a bool. |
| Adjust dependencies. |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| glr.cc: be more alike lalr1.cc |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * data/skeletons/c++.m4: Un-remove an end-of-line. |
| |
| 2019-01-20 Akim Demaille <[email protected]> |
| |
| NEWS: fixes |
| |
| 2019-01-19 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-01-19 Akim Demaille <[email protected]> |
| |
| version 3.2.91 |
| * NEWS: Record release date. |
| |
| 2019-01-18 Akim Demaille <[email protected]> |
| |
| style: various fixes |
| Some reported by syntax-check. |
| |
| * po/POTFILES.in: Add fixits.cc. |
| * src/muscle-tab.c: Don't cast for free. |
| * src/files.c: Reduce scopes. |
| * cfg.mk: We need the cast for free in muscle_percent_define_insert. |
| |
| 2019-01-18 Akim Demaille <[email protected]> |
| |
| doc: document -ffixit and --update |
| * doc/bison.texi (Bison Options): here. |
| |
| 2019-01-18 Akim Demaille <[email protected]> |
| |
| doc: style fixes |
| * doc/bison.texi: Use @kbd where appropriate. |
| Update ^~~~ marks for caret-errors. |
| * build-aux/cross-options.pl: Do not add quotes to %define's argument. |
| |
| 2019-01-18 Akim Demaille <[email protected]> |
| |
| NEWS: update for fixits and --update |
| |
| 2019-01-17 Akim Demaille <[email protected]> |
| |
| fixits: handle duplicates of %name-prefix |
| The test case "Deprecated directives" (currently 56) no longer emits |
| warnings after 'bison -u'! |
| |
| * src/files.h, src/files.c (spec_name_prefix_loc): New. |
| * src/parse-gram.y (handle_name_prefix): Emit fixits for duplicate |
| %name-prefix. |
| * tests/input.at (Deprecated directives): Adjust. |
| |
| 2019-01-17 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-01-17 Akim Demaille <[email protected]> |
| |
| fixits: handle %file-prefix |
| * src/files.h, src/files.c (spec_file_prefix_loc): New. |
| * src/scan-gram.l (%file-prefix): Delegate diagnostics to... |
| * src/parse-gram.y (handle_file_prefix): here. |
| * src/complain.c (duplicate_directive): Quote the directive. |
| * tests/input.at: Adjust. |
| |
| 2019-01-17 Akim Demaille <[email protected]> |
| |
| fixits: handle per-rule duplicates |
| * src/complain.c (duplicate_rule_directive): Here. |
| * tests/actions.at (Invalid uses of %empty): Check it. |
| |
| 2019-01-17 Akim Demaille <[email protected]> |
| |
| fixits: fix warnings about duplicates |
| * src/complain.c (duplicate_directive): Fix the complaint level. |
| * tests/input.at: Adjust. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| diagnostics: properly indent the "previous declaration" message |
| * src/complain.c (duplicate_directive, duplicate_rule_directive): |
| Here. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| style: rename some functions for consistency |
| "handle_" is the prefix used in scan-code.l for instance. |
| |
| * src/parse-gram.y (do_error_verbose, do_name_prefix, do_require) |
| (do_skeleton, do_yacc): |
| Rename as... |
| (handle_error_verbose, handle_name_prefix, handle_require) |
| (handle_skeleton, handle_yacc): |
| these. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| fixits: report duplicate %yacc directives |
| We should use -ffixit and --update to clean files with duplicate |
| directives. And we should complain only once about duplicate obsolete |
| directives: keep only the "duplicate" warning. Let's start with %yacc. |
| |
| For instance on: |
| |
| %fixed-output_files |
| %fixed-output-files |
| %yacc |
| %% |
| exp: |
| |
| This run of bison: |
| |
| $ bison /tmp/foo.y -u |
| foo.y:1.1-19: warning: deprecated directive, use '%fixed-output-files' [-Wdeprecated] |
| %fixed-output_files |
| ^~~~~~~~~~~~~~~~~~~ |
| foo.y:2.1-19: warning: duplicate directive [-Wother] |
| %fixed-output-files |
| ^~~~~~~~~~~~~~~~~~~ |
| foo.y:1.1-19: previous declaration |
| %fixed-output_files |
| ^~~~~~~~~~~~~~~~~~~ |
| foo.y:3.1-5: warning: duplicate directive [-Wother] |
| %yacc |
| ^~~~~ |
| foo.y:1.1-19: previous declaration |
| %fixed-output_files |
| ^~~~~~~~~~~~~~~~~~~ |
| bison: file 'foo.y' was updated (backup: 'foo.y~') |
| |
| gives: |
| |
| %fixed-output-files |
| %% |
| exp: |
| |
| * src/location.h, src/location.c (location_empty): New. |
| * src/complain.h, src/complain.c (duplicate_directive): New. |
| |
| * src/getargs.h, src/getargs.c (yacc_flag): Instead of a Boolean, be |
| the location of the definition. |
| Update dependencies. |
| |
| * src/scan-gram.l (%yacc, %fixed-output-files): Move the handling of |
| its warnings to... |
| * src/parse-gram.y (do_yacc): This new function. |
| |
| * tests/input.at (Deprecated Directives): Adjust expectations. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| style: rename duplicate_directive as duplicate_rule_directive |
| * src/complain.h, src/complain.c: here. |
| Adjust callers. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| fixits: suggest running --update if there are fixits |
| * src/fixits.h, src/fixits.c (fixits_empty): New. |
| * src/complain.c (deprecated_directive): Register the Wdeprecated |
| fixits only if -Wdeprecated was enabled, so that we don't apply |
| updates if the user didn't ask for them. |
| * src/main.c (main): If there were fixits, issue a warning suggesting |
| running with --update. |
| Free uniqstrs after the fixits, since the latter use the former. |
| * tests/headers.at, tests/input.at: Update expectations. |
| |
| 2019-01-16 Akim Demaille <[email protected]> |
| |
| fixits: avoid generating empty lines |
| * src/fixits.c (fixits_run): If erase the content of a line, also |
| erase the following \n. |
| * tests/input.at (Deprecated directives): Update expectations. |
| |
| 2019-01-15 Akim Demaille <[email protected]> |
| |
| configure: don't try to run C++ warnings on C |
| Reported by Derek Clegg. |
| https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00066.html |
| |
| * configure.ac: here. |
| |
| 2019-01-15 Akim Demaille <[email protected]> |
| |
| c, c++: avoid implicit fall-throw |
| Reported by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00004.html |
| |
| * configure.ac (warn_common): Add -Wimplicit-fallthrough. |
| This does trigger failures in the test suite. |
| * data/skeletons/glr.c, data/skeletons/lalr1.cc, |
| * data/skeletons/yacc.c, tests/c++.at: |
| Make fall-throws explicit. |
| |
| 2019-01-15 Akim Demaille <[email protected]> |
| |
| c++: avoid -Wundefined-func-template warnings from clang |
| Reported by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00006.html |
| |
| Clang does not like this: |
| |
| template <typename D> |
| struct basic_symbol : D |
| { |
| basic_symbol(); |
| }; |
| |
| struct by_type {}; |
| |
| struct symbol_type : basic_symbol<by_type> |
| { |
| symbol_type(){} |
| }; |
| |
| It gives: |
| |
| $ clang++-mp-7.0 -Wundefined-func-template foo.cc -c |
| foo.cc:11:3: warning: instantiation of function 'basic_symbol<by_type>::basic_symbol' |
| required here, but no definition is available [-Wundefined-func-template] |
| symbol_type(){} |
| ^ |
| foo.cc:4:3: note: forward declaration of template entity is here |
| basic_symbol(); |
| ^ |
| foo.cc:11:3: note: add an explicit instantiation declaration to suppress this warning |
| if 'basic_symbol<by_type>::basic_symbol' is explicitly instantiated in |
| another translation unit |
| symbol_type(){} |
| ^ |
| 1 warning generated. |
| |
| The same applies for the basic_symbol's destructor and `clear()`. |
| |
| * configure.ac (warn_cxx): Add -Wundefined-func-template. |
| This triggered one failure in the test suite: |
| * tests/headers.at (Sane headers): here, where we check that we can |
| compile the generated headers in other compilation units than the |
| parser's. |
| Add a variant type to make sure that basic_symbol and symbol_type are |
| properly generated in this case. |
| * data/skeletons/c++.m4 (basic_symbol): Inline the definitions of the |
| destructor and of `clear` in the class definition. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| Revert the last two commits |
| They should not have been pushed, sorry about that. |
| |
| This reverts |
| - commit 8575bd06ae6e65f3a30b21a3e022a968e4c7ae7a. |
| - commit 55bf52860eac5c1394dc344a691220272df32b09. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| c++: avoid warnings about extraneous semi-colons |
| Reported by Derek Clegg. |
| |
| * configure.ac (warn_common): Add -Wextra-semi. |
| * data/skeletons/c++.m4: Remove extraneous semi-colon. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| WIP |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: add fixit support for duplicate removal |
| * src/muscle-tab.c (muscle_percent_define_insert): Register a fixit |
| for duplicate removal. |
| * tests/input.at: Adjust expectations. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: improve the accuracy for %error-verbose |
| Avoid duplicate warnings about %error-verbose, once for deprecation, |
| another for duplicate. Keep only the duplicate warning for the second |
| occurrence of %error-verbose. |
| |
| This will help removal fixits. |
| |
| * src/scan-gram.l (%error-verbose): Return as a PERCENT_ERROR_VERBOSE |
| token. |
| * src/parse-gram.y (do_error_verbose): New. |
| Use it. |
| * src/muscle-tab.c (muscle_percent_variable_update): Handle pseudo |
| variables such as %error-verbose. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: avoid duplicate warnings for deprecated directives |
| Currently, on |
| |
| %define parser_class_name "Parser" |
| %define parser_class_name "Parser" |
| %% |
| exp:; |
| |
| we issue: |
| |
| foo.y:1.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated] |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~ |
| foo.y:2.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated] |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~ |
| foo.y:2.9-25: error: %define variable 'api.parser.class' redefined |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~ |
| foo.y:1.9-25: previous definition |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~ |
| |
| Let's get rid of the second warning about the deprecated variable |
| parser_class_name. This is noise, but it will also be a problem with |
| fixits for removing duplicates, as we will first generate the update, |
| and then it's too late to remove it: fixits do not edit the result of |
| previous fixits. |
| |
| So generate this instead: |
| |
| foo.y:1.1-34: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated] |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| foo.y:2.1-34: error: %define variable 'api.parser.class' redefined |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| foo.y:1.1-34: previous definition |
| %define parser_class_name "Parser" |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * src/muscle-tab.c (muscle_percent_variable_update): Pass the warning |
| to the caller, instead of issuing it. |
| (muscle_percent_define_insert): Issue this warning only if we don't |
| have to complain about a duplicate definition. |
| * tests/input.at: Adjust expectations. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: update the grammar file |
| Let's use the fixits to actually update the grammar files. |
| |
| * src/getargs.h, src/getargs.c (update_flag): New. |
| * src/fixits.h, src/fixits.c (fixits_run): New. |
| * src/main.c (main): Invoke fixits_run when --update is passed. |
| * tests/input.at (Deprecated directives): Check --update. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: improve accuracy for deprecated %define variables |
| * src/parse-gram.y: Use the location of the whole definition to record |
| the location of a %define variable, instead of just the name of the |
| variable. |
| Adjust tests. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: keep the fixits |
| Introduce proper support for fixits, instead of just printing them on |
| demand. |
| |
| * bootstrap.conf: We need gnulib's xlists. |
| * src/fixits.h, src/fixits.c: New. |
| * src/complain.c (deprecated_directive): Use fixits_register. |
| * src/main.c (main): Use fixits_free. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: add -ffixit support for deprecated features |
| Issue directives for IDE/editors to fix the source file. |
| http://clang.llvm.org/docs/UsersManual.html#cmdoption-fdiagnostics-parseable-fixits |
| |
| Do it for deprecated features. For instance: |
| |
| $ cat foo.y |
| %error-verbose |
| |
| %name-prefix = "foo" |
| %name-prefix="bar" |
| %define parser_class_name "Parser" |
| |
| %% |
| exp:; |
| |
| $ LC_ALL=C ./_build/8d/tests/bison -ffixit /tmp/foo.yy |
| /tmp/foo.yy:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated] |
| %error-verbose |
| ^^^^^^^^^^^^^^ |
| fix-it:"/tmp/foo.yy":{1:1-1:15}:"%define parse.error verbose" |
| /tmp/foo.yy:3.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated] |
| %name-prefix = "foo" |
| ^^^^^^^^^^^^^^^^^^^^ |
| fix-it:"/tmp/foo.yy":{3:1-3:21}:"%define api.prefix {foo}" |
| /tmp/foo.yy:4.1-18: warning: deprecated directive, use '%define api.prefix {bar}' [-Wdeprecated] |
| %name-prefix="bar" |
| ^^^^^^^^^^^^^^^^^^ |
| fix-it:"/tmp/foo.yy":{4:1-4:19}:"%define api.prefix {bar}" |
| /tmp/foo.yy:5.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated] |
| %define parser_class_name "Parser" |
| ^^^^^^^^^^^^^^^^^ |
| fix-it:"/tmp/foo.yy":{5:9-5:26}:"%define api.parser.class {Parser}" |
| /tmp/foo.yy:5.9-25: error: %define variable 'api.parser.class' is not used |
| %define parser_class_name "Parser" |
| ^^^^^^^^^^^^^^^^^ |
| |
| * src/getargs.h, src/getargs.c (feature_fixit_parsable): New. |
| (feature_types, feature_args): Use it. |
| * src/complain.c (deprecated_directive): Use it. |
| |
| * tests/input.at: Check it. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: prefer ^~~~ to ^^^^ to underline code |
| That's what both GCC and Clang do, and it is indeed much nicer to |
| read. From: |
| |
| foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated] |
| %error-verbose |
| ^^^^^^^^^^^^^^ |
| foo.y:4.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated] |
| %name-prefix = "foo" |
| ^^^^^^^^^^^^^^^^^^^^ |
| |
| to: |
| |
| foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated] |
| %error-verbose |
| ^~~~~~~~~~~~~~ |
| foo.y:4.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated] |
| %name-prefix = "foo" |
| ^~~~~~~~~~~~~~~~~~~~ |
| |
| * src/location.c (location_caret): Use ^~~~. |
| Adjust tests expectations. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: improve them for %name-prefix |
| Currently the diagnostics for %name-prefix are not precise enough. In |
| particular, they does not show that braces must be used instead of |
| quotes. |
| |
| Before: |
| |
| foo.y:3.1-14: warning: deprecated directive, use '%define api.prefix' [-Wdeprecated] |
| %name-prefix = "foo" |
| ^^^^^^^^^^^^^^ |
| |
| After: |
| |
| foo.y:3.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated] |
| %name-prefix = "foo" |
| ^^^^^^^^^^^^^^^^^^^^ |
| |
| To do this we need the value passed to %name-prefix, so move the |
| warning from the scanner to the parser. |
| |
| Accuracy will be very important for the forthcoming changes. |
| |
| * src/parse-gram.y (do_name_prefix): New. |
| (PERCENT_NAME_PREFIX): Have a semantic value: the raw source, with |
| possibly underscores, equal sign, and spaces. This is used to provide |
| a more accurate message. It does not take comments into account, |
| but... |
| * src/scan-gram.l (%name-prefix): Delegate the warnings to the parser. |
| |
| * tests/headers.at, tests/input.at: Adjust expectations. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| diagnostics: style: avoid allocating memory when not needed |
| * src/muscle-tab.c (muscle_percent_variable_update): Avoid allocating |
| memory when it is not needed, which should be most of the time (when |
| there's no update to perform). |
| Adjust callers. |
| |
| 2019-01-14 Akim Demaille <[email protected]> |
| |
| c++: avoid warnings about extraneous semi-colons |
| Reported by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00005.html |
| |
| * configure.ac (warn_cxx): Add -Wextra-semi. |
| * data/skeletons/c++.m4: Remove extraneous semi-colon. |
| |
| 2019-01-13 Akim Demaille <[email protected]> |
| |
| style: minor changes |
| * src/muscle-tab.c: Sort alphabetically. |
| * src/scan-gram.l: Reduce scopes. |
| Initialize variables. |
| |
| 2019-01-13 Akim Demaille <[email protected]> |
| |
| c++: beware of -Wshadow |
| This line: |
| |
| slice<stack_symbol_type, stack_type> slice (yystack_, yylen); |
| |
| triggers warnings: |
| |
| parse.h:1790:11: note: shadowed declaration is here |
| |
| Reported by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00002.html |
| |
| * configure.ac (warn_c): Move -Wshadow to... |
| (warn_common): here. |
| * data/skeletons/stack.hh (slice): Define as an inner class of stack. |
| * data/skeletons/lalr1.cc: Adjust. |
| Rename the variable as 'range' instead of 'slice'. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| version 3.2.90 |
| * NEWS: Record release date. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| yacc: fix relocatability |
| * src/yacc.in (prefix): Define it, as it's typically needed for |
| exec_prefix. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| syntax-check: adjust paths |
| * cfg.mk: here. |
| (require_config_h): New. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| style: formatting clean up |
| * data/skeletons/d.m4, examples/d/calc.y, src/output.c, |
| * src/parse-gram.y: |
| No tab, no trailing spaces. |
| Reported by syntax-check. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| po: remove bitset/stats.c |
| * po/POTFILES.in: here. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| tests: fix usage of AT_PARSER_CHECK |
| The parser must be the first command. Caught by syntax-check. |
| |
| * tests/c++.at: here. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| style: isolate the creation of tname in a function |
| * src/output.c (prepare_symbol_names): New. |
| Use it. |
| |
| 2019-01-12 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/input.at, tests/regression.at: here. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| doc: use @option consistently |
| * doc/bison.texi: Use @option, not @code, for options. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| yacc.c: avoid negated if |
| * data/skeletons/yacc.c: Prefer a "direct" conditional. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| package: bump copyrights to 2019 |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| java/d: rename some %define variables for consistency |
| 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. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| java/d: remove useless macros |
| There are many macros that are defined and used just |
| once (b4_public_if, b4_abstract_if, etc.). That's overkill. Rather, |
| let's define a macro to build the "public class YYParser" line. |
| |
| It appears that the same syntax with "extends", "abstract", etc. is |
| implemented in the D parser, which looks very fishy... |
| |
| * data/skeletons/d.m4, data/skeletons/java.m4 (b4_public_if) |
| (b4_abstract_if, b4_final_if, b4_strictfp_if): Replace with |
| (b4_parser_class_declaration): this. |
| * data/skeletons/lalr1.d, data/skeletons/lalr1.java: Adjust. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| style: clean tests |
| * tests/named-refs.at: here. |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| In particular, report uninitialized submodules instead of breaking |
| symlinks. |
| |
| For reports, see |
| https://lists.gnu.org/archive/html/bug-bison/2011-05/msg00012.html |
| https://lists.gnu.org/archive/html/help-bison/2018-12/msg00034.html |
| |
| For a fix, see |
| https://lists.gnu.org/archive/html/bug-gnulib/2019-01/msg00024.html |
| |
| 2019-01-05 Akim Demaille <[email protected]> |
| |
| glr.cc: fix the handling of syntax_error from the scanner |
| Commit 90a8537e6287f92fb3d5be0258a69247a742f12e was right, but issued |
| two error messages. Commit 80ef7e7639f99618bee490b2dea02b5fd9ab28e5 |
| tried to address that by mapping yychar and yytoken to empty, but that |
| completely breaks the invariants of glr.c. In particular, yygetToken |
| can be called repeatedly and is expected to return the latest result, |
| unless yytoken is YYEMPTY. Since the previous attempt was "recording" |
| that the token was coming from an exception by setting it to YYEMPTY, |
| instead of getting again the faulty token, we fetched another one. |
| |
| Rather, revert to the first approach: map yytoken to "invalid token", |
| but record in yychar the fact that we come from an exception thrown in |
| the scanner. |
| |
| * data/skeletons/glr.c (YYFAULTYTOK): New. |
| (yygetToken): Use it to record syntax errors from the scanner. |
| * tests/c++.at (Syntax error as exception): In addition to checking |
| syntax_error with error recovery, make sure it also behaves as |
| expected without. |
| |
| 2019-01-03 Akim Demaille <[email protected]> |
| |
| clearly deprecate %name-prefix |
| * 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. |
| |
| 2019-01-03 Akim Demaille <[email protected]> |
| |
| examples: clean up the Java/D examples |
| * examples/java/Calc.y: Fix indentation. |
| Sort. |
| Don't use %name-prefix, since api.parser.class is already defined. |
| * examples/d/calc.y: Likewise. |
| |
| 2019-01-03 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: here. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| rename parser_class_name as api.parser.class |
| The previous name was historical and inconsistent. |
| |
| * src/muscle-tab.c (define_directive): Use the proper value passing |
| syntax, based on the muscle kind. |
| (muscle_percent_variable_update): Use the right value passing syntax. |
| Migrate from parser_class_name to api.parser.class. |
| |
| * data/skeletons: Migrate from parser_class_name to api.parser.class. |
| |
| * doc/bison.texi (%define Summary): Document both parser_class_name |
| and api.parser.class. |
| Promote the latter over the former. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * src/scan-gram.l: Here. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| style: glr.c: prefer returning a value rather than passing pointers |
| This is very debatable. This function is not pure at all, so it could |
| stick to returning void: that's a common coding style to tell the |
| difference between "real" (pure) functions and side-effecting |
| subroutines. However, we already have this style elsewhere (e.g., |
| yylex), and I feel the callers are somewhat nice to read this way. |
| |
| * data/skeletons/glr.c (yygetLRActions): Return the action rather than |
| passing by pointer. |
| While at it, fix type of yytoken. |
| Adjust callers. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| glr.cc: don't issue two error messages when syntax_error is thrown |
| Reported by Askar Safin. |
| https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00000.html |
| |
| * data/skeletons/glr.c (yygetToken): Return YYEMPTY when an exception |
| is thrown. |
| * data/skeletons/lalr1.cc: Log when an exception is caught. |
| * tests/c++.at (Syntax error as exception): Be sure to recover from |
| error before triggering another error. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| skeletons: shorten b4_parser_class_name to b4_parser_class |
| * skeletons/c++.m4, skeletons/d.m4, skeletons/glr.c, skeletons/glr.cc, |
| * skeletons/java.m4, skeletons/lalr1.cc, skeletons/lalr1.d, |
| * skeletons/lalr1.java: Here. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| glr.cc: remove duplicate definition of YYLLOC_DEFAULT |
| It's already provided by glr.c. |
| |
| * data/skeletons/glr.cc (b4_post_prologue): Here. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| style: sort includes in scanners |
| * src/scan-code.l, src/scan-gram.l, src/scan-skel.l: Reorder includes. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| style: formatting changes in the doc |
| * doc/bison.texi: here. |
| |
| 2019-01-02 Akim Demaille <[email protected]> |
| |
| style: remove stray empty lines |
| * data/skeletons/glr.c, data/skeletons/glr.cc: here. |
| * data/skeletons/bison.m4 (b4_glr_cc_if): Move it here. |
| |
| 2018-12-31 Akim Demaille <[email protected]> |
| |
| glr.cc: support syntax_error exceptions |
| Kindly requested by Аскар Сафин (Askar Safin). |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00033.html |
| |
| * data/skeletons/glr.c (b4_glr_cc_if): New. |
| Use it. |
| (yygetToken): Catch syntax_errors. |
| * data/skeletons/glr.cc (YY_EXCEPTIONS): New. |
| * tests/c++.at: Check it. |
| |
| 2018-12-31 Akim Demaille <[email protected]> |
| |
| glr.c: factor the calls to yylex |
| The call protocol of yylex is quite complex, and repeated three |
| times. Let's factor it. |
| |
| * data/skeletons/glr.c (yygetToken): New. |
| Use it. |
| |
| 2018-12-31 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in glr.c |
| * data/skeletons/glr.c (yyrecoverSyntaxError): here. |
| |
| 2018-12-30 Akim Demaille <[email protected]> |
| |
| tests: refactor |
| |
| 2018-12-30 Akim Demaille <[email protected]> |
| |
| c++: inline the implementation of syntax_error in its definition |
| This way, it is easier to make sure its implementation is available in |
| glr.cc too, which is not the case currently. |
| |
| * data/skeletons/c++.m4 (b4_public_types_define): Move the |
| implementation of syntax_error... |
| (b4_public_types_declare): here. |
| |
| 2018-12-29 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * tests/input.at: here. |
| |
| 2018-12-29 Akim Demaille <[email protected]> |
| |
| symbol: don't crash on symbol without content |
| When running with --trace=parse, we may crash. |
| |
| * src/symtab.c (symbol_print): Avoid that. |
| |
| 2018-12-28 Akim Demaille <[email protected]> |
| |
| README-hacking: update |
| |
| 2018-12-28 Akim Demaille <[email protected]> |
| |
| reader: get rid of a useless function |
| Useless since 58d7a1a1c7497ba51a35fcf991c5b047f692fe18 (2006). |
| |
| * src/parse-gram.y, src/reader.h (token_name): Remove, unused. |
| |
| 2018-12-27 Akim Demaille <[email protected]> |
| |
| parsers: fix minor stylistic issues |
| * data/skeletons/variant.hh (b4_token_constructor_declare): Remove, |
| unused since the previous commit. |
| Fix indentation issues. |
| * data/skeletons/c++.m4: Fix indentation issues. |
| |
| 2018-12-27 Akim Demaille <[email protected]> |
| |
| c++: check several parsers in the same program |
| * tests/local.at (AT_LOCATION_TYPE_IF): Turn into... |
| (AT_LOCATION_TYPE_SPAN_IF): this. |
| Adjust dependencies. |
| * tests/headers.at (Several parsers): Add another C++ parser, |
| which uses the first C++ parser's locations. |
| |
| 2018-12-26 Akim Demaille <[email protected]> |
| |
| c++: variants: fuse declarations and definitions |
| We used to create a short definition of yy::parser with all the |
| implementations of its member functions outside. But yy::parser is no |
| longer short and simple to read. Maintaining each function twice is |
| painful: a lot of redundancy but different indentation levels, output |
| which depends on whether we are in a header or not (see |
| d132c2d5455135f63a7497c38358eadd6e3a6af8), etc. |
| |
| Let's simplify this and put the implementations into the class |
| definition itself. |
| |
| Discussed in this monologue: |
| https://lists.gnu.org/archive/html/bison-patches/2018-12/msg00058.html. |
| |
| * data/skeletons/c++.m4, data/skeletons/lalr1.cc, |
| * data/skeletons/variant.hh (b4_basic_symbol_constructor_define) |
| (_b4_token_constructor_declare, b4_token_constructor_declare) |
| Merge into... |
| (b4_basic_symbol_constructor_define, _b4_token_constructor_define) |
| (b4_token_constructor_define): these. |
| |
| 2018-12-26 Akim Demaille <[email protected]> |
| |
| examples: fix dependencies |
| Commit 112ccb5ed73ba5c64b0b5300d8b9b686f02f094c moved the skeletons |
| from dist_pkgdata_DATA to dist_skeletons_DATA, hence broke the dependencies. |
| |
| * Makefile.am (dependencies): New. |
| Use it where appropriate. |
| |
| 2018-12-26 Akim Demaille <[email protected]> |
| |
| c++: move stack<T> inside yy::parser |
| We used to define such auxiliary structures outside the class, mainly |
| as a matter of style to keep the definition of yy::parser short and |
| simple. However, now there's a lot more code generated inside the |
| class definition (e.g., all the token constructors), so the |
| readability no longer applies. |
| |
| However, if we move stack (and slice) inside yy::parser, then it |
| should no longer be needed to change the namespace to have multiple |
| parsers: changing the class name should suffice. |
| |
| One common argument against inner classes is that they code bloat. It |
| hardly applies here, since typically different parsers will have |
| different semantic value types, hence different actual stack types. |
| |
| * data/skeletons/lalr1.cc: Invoke b4_stack_define inside yy::parser. |
| |
| 2018-12-25 Akim Demaille <[email protected]> |
| |
| package: make bison a relocatable package |
| Suggested by David Barto |
| https://lists.gnu.org/archive/html/help-bison/2015-02/msg00004.html |
| and Victor Zverovich. |
| https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00121.html |
| |
| This is very easy to do, thanks to work by Bruno Haible in gnulib. |
| See "Supporting Relocation" in gnulib's documentation. |
| |
| * bootstrap.conf: We need relocatable-prog and relocatable-script (for yacc). |
| |
| * src/yacc.in: New. |
| * configure.ac, src/local.mk: Instantiate it. |
| * src/main.c, src/output.c (main, pkgdatadir): Use relocatable2. |
| |
| * doc/bison.texi (FAQ): Document it. |
| |
| 2018-12-25 Akim Demaille <[email protected]> |
| |
| README: wrap paragraphs |
| |
| 2018-12-25 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-12-25 Akim Demaille <[email protected]> |
| |
| package: move skeletons into data/skeletons |
| * data/bison.m4, data/c++-skel.m4, data/c++.m4, data/c-like.m4, |
| * data/c-skel.m4, data/c.m4, data/d-skel.m4, data/d.m4, data/glr.c, |
| * data/glr.cc, data/java-skel.m4, data/java.m4, data/lalr1.cc, |
| * data/lalr1.d, data/lalr1.java, data/location.cc, data/stack.hh, |
| * data/variant.hh, data/yacc.c: |
| Move to... |
| * data/skeletons: here. |
| Use b4_skeletonsdir instead of b4_pkgdatadir. |
| |
| * data/local.mk, src/output.c: Adjust. |
| |
| 2018-12-24 Akim Demaille <[email protected]> |
| |
| c++: style: use consistently this/that instead of this/other |
| * data/lalr1.cc, data/variant.hh: here. |
| |
| 2018-12-24 Akim Demaille <[email protected]> |
| |
| c++: also provide a copy constructor for symbol_type |
| Suggested by Wolfgang Thaller. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00081.html |
| |
| * data/c++.m4 (basic_symbol, by_type): Instead of provide either move |
| or copy constructor, always provide the copy one. |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): Check it. |
| |
| 2018-12-24 Akim Demaille <[email protected]> |
| |
| c++: fix double free when a symbol_type was moved |
| Currently the following piece of code crashes (with parse.assert), |
| because we don't record that s was moved-from, and we invoke its dtor. |
| |
| { |
| auto s = parser::make_INT (42); |
| auto s2 = std::move (s); |
| } |
| |
| Reported by Wolfgang Thaller. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00077.html |
| |
| * data/c++.m4 (by_type): Provide a move-ctor. |
| (basic_symbol): Be sure not to read a moved-from value. |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): Check this case. |
| |
| 2018-12-24 Akim Demaille <[email protected]> |
| |
| c++: style: improve tests |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): Provide better |
| assertions. |
| Use them. |
| Avoid useless Bison invocations. |
| |
| 2018-12-24 Akim Demaille <[email protected]> |
| |
| c++: style: use consistently this/that instead of this/other |
| * data/c++.m4: here. |
| |
| 2018-12-23 Akim Demaille <[email protected]> |
| |
| tests: fixes |
| * tests/c++.at: Use AT_YYLEX_PROTOTYPE etc. |
| Which requires that we use the same argument names (lvalp, etc.). |
| * tests/local.at (AT_NAME_PREFIX): Fix regex. |
| |
| 2018-12-22 Akim Demaille <[email protected]> |
| |
| c++: style: rename a few macros for clarity |
| * data/c++.m4, data/lalr1.cc, data/variant.hh: |
| s/b4_symbol_constructor/b4_token_constructor/g, as this is really what |
| is being defined. |
| |
| 2018-12-22 Akim Demaille <[email protected]> |
| |
| c++: exhibit a safe symbol_type |
| Instead of introducing make_symbol (whose name, btw, somewhat |
| infringes on the user's "name space", if she defines a token named |
| "symbol"), let's make the construction of symbol_type safer, using |
| assertions. |
| |
| For instance with: |
| |
| %token ':' <std::string> ID <int> INT; |
| |
| generate: |
| |
| symbol_type (int token, const std::string&); |
| symbol_type (int token, const int&); |
| symbol_type (int token); |
| |
| It does mean that now named token constructors (make_ID, make_INT, |
| etc.) go through a useless assert, but I think we can ignore this: I |
| assume any decent compiler will inline the symbol_type ctor inside the |
| make_TOKEN functions, which will show that the assert is trivially |
| verified, hence I expect no code will be emitted for it. And anyway, |
| that's an assert, NDEBUG controls it. |
| |
| * data/c++.m4 (symbol_type): Turn into a subclass of |
| basic_symbol<by_type>. |
| Declare symbol constructors when variants are enabled. |
| * data/variant.hh (_b4_type_constructor_declare) |
| (_b4_type_constructor_define): Replace with... |
| (_b4_symbol_constructor_declare, _b4_symbol_constructor_def): these. |
| Generate symbol_type constructors. |
| * doc/bison.texi (Complete Symbols): Document. |
| * tests/types.at: Check. |
| |
| 2018-12-22 Akim Demaille <[email protected]> |
| |
| c++: provide symbol constructors per type |
| On |
| |
| %token <int> FOO BAR |
| |
| we currently generate make_FOO(int) and make_BAR(int). However, in |
| order to factor their scanners, some users would also like to have |
| make_symbol(tok, int), where tok is FOO or BAR. To ensure type |
| safety, add assertions that do check that value type and token type |
| match. Bind this assertion to the parse.assert %define variable. |
| |
| Suggested by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00034.html |
| Should also match expectations from Аскар Сафин. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00023.html |
| |
| * data/variant.hh: Use b4_token_visible_if where applicable. |
| (_b4_type_constructor_declare, _b4_type_constructor_define): New. |
| Use them. |
| |
| 2018-12-22 Akim Demaille <[email protected]> |
| |
| c++: style changes |
| * data/c++.m4, data/variant.hh: Improve layout of the generated code. |
| Avoid casts. |
| (_b4_symbol_constructor_declare, _b4_symbol_constructor_define): Rename |
| as... |
| (_b4_token_maker_declare, _b4_token_maker_define): these. |
| * tests/types.at: Improve pair printing. |
| |
| 2018-12-22 Akim Demaille <[email protected]> |
| |
| style: simplify tests |
| * tests/types.at: Simplify C++ instantiations. |
| |
| 2018-12-19 Akim Demaille <[email protected]> |
| |
| style: use b4_token_visible_if |
| And other formatting/comment changes. |
| |
| * data/variant.hh: Here. |
| |
| 2018-12-19 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-12-19 Akim Demaille <[email protected]> |
| |
| c++: fix token constructors for types with commas |
| Bitten by macros, again. |
| See 680b715518795c8648360fcf05f3772c04d2eed2. |
| |
| * data/variant.hh (_b4_symbol_constructor_declare) |
| (_b4_symbol_constructor_define): Do not use user types, which can |
| include commas as in `std::pair<int, int>`, to macros. |
| |
| * tests/local.at: Adjust the lex related macros to support the |
| case of token constructors. |
| * tests/types.at: Also check token constructors on types with commas. |
| |
| 2018-12-19 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-12-17 Akim Demaille <[email protected]> |
| |
| symbols: document the overhaul of symbol declarations |
| * doc/bison.texi (Symbol Decls): New. |
| |
| 2018-12-16 Akim Demaille <[email protected]> |
| |
| symbols: check more invalid declarations |
| * tests/input.at (Invalid %nterm uses): Rename as... |
| (Invalid symbol declarations): this. |
| Extend. |
| |
| 2018-12-16 Akim Demaille <[email protected]> |
| |
| symbols: check the previous commit |
| * tests/input.at (Symbol declarations): New. |
| |
| 2018-12-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-12-16 Akim Demaille <[email protected]> |
| |
| symbols: clean up their parsing |
| Prompted by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html |
| |
| We have four classes of directives that declare symbols: %nterm, |
| %type, %token, and the family of %left etc. Currently not all of them |
| support the possibility to have several type tags (`<type>`), and not |
| all of them support the fact of not having any type tag at all |
| (%type). Let's unify this. |
| |
| - %type |
| POSIX Yacc specifies that %type is for nonterminals only. However, |
| some Bison users want to use it for both tokens and nterms |
| (actually, Bison's own grammar does this in several places, e.g., |
| CHAR). So it should accept char/string literals. |
| |
| As a consequence cannot be used to declare tokens with their alias: |
| `%type foo "foo"` would be ambiguous (are we defining foo = "foo", |
| or are these two different symbols?) |
| |
| POSIX specifies that it is OK to use %type without a type tag. I'm |
| not sure what it means, but we support it. |
| |
| - %token |
| Accept token declarations with number and string literal: |
| (ID|CHAR) NUM? STRING?. |
| |
| - %left, etc. |
| They cannot be the same as %token, because we accept to declare the |
| symbol with %token, and to then qualify its precedence with %left. |
| Then `%left foo "foo"` would also be ambiguous: foo="foo", or two |
| symbols. |
| |
| They cannot be simply a list of identifiers, but POSIX Yacc says we |
| can declare token numbers here. I personally think this is a bad |
| idea, precedence management is tricky in itself and should not be |
| cluttered with token declaration issues. |
| |
| We used to accept declaring a token number on a string literal here |
| (e.g., `%left "token" 1`). This is abnormal. Either the feature is |
| useful, and then it should be supported in %token, or it's useless |
| and we should not support it in corner cases. |
| |
| - %nterm |
| Obviously cannot accept tokens, nor char/string literals. Does not |
| exist in POSIX Yacc, but since %type also works for terminals, it is |
| a nice option to have. |
| |
| * src/parse-gram.y: Avoid relying on side effects. For instance, get |
| rid of current_type, rather, build the list of symbols and iterate |
| over it to assign the type. |
| It's not always possible/convenient. For instance, we still use |
| current_class. |
| Prefer "decl" to "def", since in the rest of the implementation we |
| actually "declare" symbols, we don't "define" them. |
| (token_decls, token_decls_for_prec, symbol_decls, nterm_decls): New. |
| Use them for %token, %left, %type and %nterm. |
| * src/symlist.h, src/symlist.c (symbol_list_type_set): New. |
| * tests/regression.at b/tests/regression.at |
| (Token number in precedence declaration): We no longer accept |
| to give a number to string literals. |
| |
| 2018-12-15 Akim Demaille <[email protected]> |
| |
| symbols: set tag_seen when assigning a type to symbols |
| * src/reader.h, src/reader.c (tag_seen): Move to... |
| * src/symtab.h, src/symtab.c: here. |
| (symbol_type_set): Set it to true. |
| * src/parse-gram.y: Don't. |
| |
| 2018-12-14 Akim Demaille <[email protected]> |
| |
| tests: isolate test about Yacc warnings |
| * tests/input.at (Yacc warnings): New. |
| (AT_CHECK_UNUSED_VALUES): Remove checks about yacc. |
| |
| 2018-12-14 Akim Demaille <[email protected]> |
| |
| parser: warn about string literals in Yacc mode |
| * src/scan-gram.l (scan_integer): Warn. |
| * tests/input.at (Yacc warnings on symbols): Check. |
| |
| 2018-12-14 Akim Demaille <[email protected]> |
| |
| parser: warn about hexadecimal token numbers in Yacc mode |
| * src/scan-gram.l (scan_integer): Warn. |
| * tests/input.at (Yacc warnings on symbols): Check. |
| |
| 2018-12-14 Akim Demaille <[email protected]> |
| |
| parser: reprecate %nterm back |
| After having spent quite some time on cleaning the handling of symbol |
| declarations in the grammar files, I believe we should keep it. |
| |
| It looks like it's a duplicate of %type, but it is not. While POSIX |
| Yacc requires %type to apply only to nonterminal symbols, it appears |
| that both byacc and bison accept it for tokens too. And some |
| experienced users do actually expect this feature to group |
| symbols (terminal or not) by type ("On the other hand, it is generally |
| more useful IMHO to group terminals and non-terminals with the same |
| type tag together", |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html). |
| Even Bison's own parser does this today (see CHAR). |
| |
| Basically reverts 7928c3e6fbdf47ff81184966cee937e6aa694b94. |
| |
| * src/scan-gram.l (%nterm): Dedeprecate, but issue a Wyacc warning. |
| * tests/input.at: Adjust expectations. |
| (Yacc warnings on symbols): New. |
| * src/symtab.c (symbol_class_set): Fix error introduced in |
| 20b07467938cf880a1d30eb30d6e191843a21fec. |
| |
| 2018-12-11 Eduard Staniloiu <[email protected]> |
| |
| CI: add dmd support |
| * .travis.yml: here. |
| |
| 2018-12-11 Akim Demaille <[email protected]> |
| |
| style: s/non-terminal/nonterminal/ |
| I personally prefer 'non terminal', or 'non-terminal', but |
| 'nonterminal' is the common spelling. |
| |
| * data/glr.c, src/parse-gram.y, src/symtab.c, src/symtab.h, |
| * tests/input.at, doc/refcard.tex: here. |
| |
| 2018-12-11 Akim Demaille <[email protected]> |
| |
| style: rename error functions for clarity |
| * src/symtab.c (symbol_redeclaration, semantic_type_redeclaration) |
| (user_token_number_redeclaration): |
| Rename as... |
| (complain_symbol_redeclared, complain_semantic_type_redeclared) |
| (complain_user_token_number_redeclared): |
| this. |
| |
| 2018-12-11 Akim Demaille <[email protected]> |
| |
| parser: improve the error message for symbol class redefinition |
| Currently our error messages include both "symbol redeclared" and |
| "symbol redefined", and they mean something different. This is |
| obscure, let's make this clearer. |
| |
| I think the idea between 'definition' vs. 'declaration' is that in the |
| case of the nonterminals, the actual definition is its set of rules, |
| so %nterm would be about declaration. The case of %token is less |
| clear. |
| |
| * src/symtab.c (complain_class_redefined): New. |
| (symbol_class_set): Use it. |
| Simplify the logic of this function to clearly skip its body when the |
| preconditions are not met. |
| * tests/input.at (Symbol class redefinition): New. |
| |
| 2018-12-11 Akim Demaille <[email protected]> |
| |
| examples: simplify computation of yydebug |
| * examples/c/lexcalc/parse.y: here. |
| |
| 2018-12-10 Akim Demaille <[email protected]> |
| |
| C++: support variadic emplace |
| Suggested by Askar Safin. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00006.html |
| |
| * data/variant.hh: Implement. |
| * tests/types.at: Check. |
| * doc/bison.texi: Document. |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| examples: add a simple Flex+Bison example in C |
| Suggested by Askar Safin. |
| http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00003.html |
| |
| * examples/c/lexcalc/Makefile, examples/c/lexcalc/README.md, |
| * examples/c/lexcalc/lexcalc.test, examples/c/lexcalc/local.mk, |
| * examples/c/lexcalc/parse.y, examples/c/lexcalc/scan.l: |
| New. |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| examples: sort them per language and complete them |
| Convert some of the READMEs to Markdown, which is now more common, and |
| nicely displayed in some git hosting services. |
| |
| Add missing READMEs and Makefiles. Generate XML, HTML and Dot files. Be |
| sure to ship the test files. Complete CLEANFILES to remove all generated |
| files. |
| |
| * examples/calc++: Move into... |
| * examples/c++: here. |
| * examples/mfcalc, examples/rpcalc: Move into... |
| * examples/c: here. |
| |
| * examples/README.md, examples/c++/calc++/Makefile, examples/c/local.mk, |
| * examples/c/mfcalc/Makefile, examples/c/rpcalc/Makefile, |
| * examples/d/README.md, examples/java/README.md: |
| New files. |
| |
| * examples/test (medir): Be robust to deeper directory nesting. |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| parser: minor refactoring |
| * src/parse-gram.y (symbol.prec): Reuse int.opt. |
| |
| 2018-12-09 Akim Demaille <[email protected]> |
| |
| parser: move checks inside the called functions |
| Revamping the handling of the symbols is the grammar is much more |
| delicate than I anticipated. Let's first move things around for |
| clarity. |
| |
| * src/symtab.c (symbol_make_alias): Don't accept to alias |
| non-terminals. |
| (symbol_user_token_number_set): Don't accept user token numbers |
| for non-terminals. |
| Don't do anything in case of redefinition, instead of trying to |
| update. The flow is eaier to follow this way. |
| |
| 2018-12-08 Akim Demaille <[email protected]> |
| |
| d: fix double definition of YYSemanticType |
| * data/lalr1.d: When moving to b4_user_union_members, it also defines |
| b4_tag_seen_flag, so we had two definitions. |
| |
| 2018-12-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-12-06 Akim Demaille <[email protected]> |
| |
| parser: fix incorrect condition to raise a syntax error |
| * src/parse-gram.y (symbol_def): Fix test. |
| |
| 2018-12-06 Akim Demaille <[email protected]> |
| |
| d: fix use of b4_union_members |
| * data/lalr1.d: Use b4_user_union_members instead. |
| |
| 2018-12-06 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * data/variant.hh: here. |
| |
| 2018-12-06 Akim Demaille <[email protected]> |
| |
| java, d: add a Makefile for the example |
| * examples/java/Makefile, examples/d/Makefile: New. |
| |
| 2018-12-05 Akim Demaille <[email protected]> |
| |
| style: scope reduction in ielr.c |
| * src/ielr.c: here. |
| |
| 2018-12-05 Akim Demaille <[email protected]> |
| |
| style: scope reduction in lalr.c |
| * src/lalr.c: here. |
| |
| 2018-12-05 Akim Demaille <[email protected]> |
| |
| d, java: compute static subtractions |
| * data/d.m4, data/java.m4: Use b4_subtract where appropriate. |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| d: add an example |
| * examples/d/calc.test, examples/d/calc.y, examples/d/local.mk: |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| d: update the skeleton |
| * data/d.m4, data/lalr1.d: Catch up with Bison. |
| And actually, also catch up with D. |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| d: add experimental support for the D language |
| * configure.ac (ENABLE_D): New. |
| * src/getargs.c (valid_languages): Add d. |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| d: add skeleton for the D language |
| Contributed by Oliver Mangold. |
| https://lists.gnu.org/archive/html/help-bison/2012-01/msg00000.html |
| |
| * README-D.txt, d-skel.m4, d.m4, lalr1.d: New. |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| examples: regenerate them when version.texi changes |
| When we extract the examples from the documentation, %require |
| "@value{VERSION}" is replaced with the current version. If we change |
| the git branch, without changing the documentation, the generated |
| examples will %require a version of Bison that differs from the actual |
| version. |
| |
| * examples/local.mk (extracted.stamp): Depend on doc/version.texi. |
| |
| 2018-12-04 Akim Demaille <[email protected]> |
| |
| skeletons: start some technical documentation |
| * data/README: Convert to Markdown. |
| Start documenting some of the macros used in all our skeletons. |
| Simplify and fix the documentation of the macros in the skeletons. |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| backend: revamp the handling of symbol types |
| Currently it is the front end that passes the symbol types to the |
| backend. For instance: |
| |
| %token <ival> NUM |
| %type <ival> exp1 exp2 |
| exp1: NUM { $$ = $1; } |
| exp2: NUM { $<ival>$ = $<ival>1; } |
| |
| In both cases, $$ and $1 are passed to the backend as having type |
| 'ival' resulting in code like `val.ival`. This is troublesome in the |
| case of api.value.type=union, since in that the case the code this: |
| |
| %define api.value.type union |
| %token <int> NUM |
| %type <int> exp1 exp2 |
| exp1: NUM { $$ = $1; } |
| exp2: NUM { $<int>$ = $<int>1; } |
| |
| because in this case, since the backend does not know the symbol being |
| processed, it is forced to generate casts in both cases: *(int*)(&val)`. |
| This is unfortunate in the first case (exp1) where there is no reason |
| at all to use a cast instead of `val.NUM` and `val.exp1`. |
| |
| So instead delegate the computation of the actual value type to the |
| backend: pass $<ival>$ as `symbol-number, ival` and $$ as |
| `symbol-number, MULL`, instead of passing `ival` before. |
| |
| * src/scan-code.l (handle_action_dollar): Find the symbol the action |
| is about, not just its tyye. Pass both symbol-number, and explicit |
| type tag ($<tag>n when there is one) to b4_lhs_value and b4_rhs_value. |
| |
| * data/bison.m4 (b4_symbol_action): adjust to the new signature to |
| b4_dollar_pushdef. |
| |
| * data/c-like.m4 (_b4_dollar_dollar, b4_dollar_pushdef): Accept the |
| symbol-number as new argument. |
| |
| * data/c.m4 (b4_symbol_value): Accept the symbol-number as new |
| argument, and use it. |
| (b4_symbol_value_union): Accept the symbol-number as new |
| argument, and use it to prefer ready a union member rather than |
| casting the union. |
| * data/yacc.c (b4_lhs_value, b4_rhs_value): Accept the new |
| symbol-number argument. |
| Adjust uses of b4_dollar_pushdef. |
| * data/glr.c (b4_lhs_value, b4_rhs_value): Adjust. |
| |
| * data/lalr1.cc (b4_symbol_value_template, b4_lhs_value): Adjust |
| to the new symbol-number argument. |
| * data/variant.hh (b4_symbol_value, b4_symbol_value_template): Accept |
| the new symbol-number argument. |
| |
| * data/java.m4 (b4_symbol_value, b4_rhs_data): New. |
| (b4_rhs_value): Use them. |
| * data/lalr1.java: Adjust to b4_dollar_pushdef, and use b4_rhs_data. |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| style: comment and formatting changes |
| * data/bison.m4, data/c++.m4, data/glr.c, data/java.m4, data/lalr1.cc, |
| * data/yacc.c, src/scan-code.l: |
| Fix comments. |
| Prefer POS to denote the position of a symbol in a rule, since NUM |
| is also used to denote symbol numbers. |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| java: make sure the build dir exists |
| * examples/java/local.mk (%D%/Calc.java): here. |
| |
| 2018-12-03 Akim Demaille <[email protected]> |
| |
| c++: don't define variant<S>, directly define semantic_type |
| Instead of defining yy::variant<S> and then alias |
| yy::parser::semantic_type to variant<sizeof (union_type)>, directly |
| define yy::parser::semantic_type. |
| |
| This model is more appropriate if we want to sit the storage on top of |
| unions in C++11. |
| |
| * data/variant.hh (b4_variant_define): Specialize and inline the |
| definition into... |
| (b4_value_type_declare): Here. |
| Define union_type here. |
| * data/lalr1.cc: Adjust. |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| C++: use noexcept and constexpr |
| There are probably more opportunities for them. |
| So far, I observed no performance improvements. |
| |
| * data/c++.m4, data/lalr1.cc, data/stack.hh: here. |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| CI: also display the examples' test suite log |
| * .travis.yml: here. |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| java: add an example |
| * examples/java/Calc.y: New, based on test 495: "Calculator |
| parse.error=verbose %locations". |
| * examples/java/Calc.test, examples/java/local.mk: New. |
| |
| * configure.ac (ENABLE_JAVA): New. |
| * examples/test (prog): Be ready to run Java programs. |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| style: unsigned int -> unsigned |
| See |
| https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00027.html |
| |
| * src/output.c (muscle_insert_unsigned_int_table): Rename as... |
| (muscle_insert_unsigned_table): this. |
| |
| 2018-12-01 Akim Demaille <[email protected]> |
| |
| output: restore yyrhs and yyprhs |
| This was demanded several times. See for instance: |
| |
| - David M. Warme |
| https://lists.gnu.org/archive/html/help-bison/2011-04/msg00003.html |
| |
| - box12009 |
| http://lists.gnu.org/archive/html/bug-bison/2016-10/msg00001.html |
| |
| Basically, this reverts: |
| |
| - commit 3d3bc1fe30f356cf674a979409e86ea0f88de4a0 |
| Get rid of (yy)rhs and (yy)prhs |
| |
| - commit d333175f63f402dbadb647175e40ad88bf1defb5 |
| Avoid compiler warning. |
| |
| Note that since these tables are not needed in the generated parsers, |
| no skeleton requests them. This change only brings back their |
| definition to M4, making it possible to user-defined skeletons to use |
| these tables. |
| |
| * src/output.c (muscle_insert_item_number_table): Define. |
| (prepare_rules): Generate the rhs and prhs tables. |
| |
| 2018-11-30 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-30 Akim Demaille <[email protected]> |
| |
| parser: shorten side-effects on current_type |
| * src/parse-gram.y (tag.opt): Don't change current_type. |
| Rather, return its value. |
| Adjust dependencies. |
| |
| 2018-11-30 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/symlist.c: here. |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| tests: don't name C++ files *.c |
| * tests/synclines.at (syncline escapes): Here. |
| Otherwise, Clang generates an error and skips the test. |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| parser: factor the symbol definition |
| * src/parse-gram.y (int.opt, string_as_id.opt): New. |
| (symbol_def): Use it. |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| parser: improve location of string alias errors |
| * src/parse-gram.y (symbol_def): Pass the right location for symbol_make_alias. |
| * tests/regression.at (Duplicate string): Move to... |
| * tests/input.at: here. |
| (Token collisions): New. |
| |
| 2018-11-29 Akim Demaille <[email protected]> |
| |
| diagnostics: complain about Bison directives when -Wyacc |
| * src/complain.h, src/complain.c (bison_directive): New. |
| * src/scan-gram.l (BISON_DIRECTIVE): New. |
| Use it for Bison extensions. |
| |
| 2018-11-28 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: here. |
| |
| 2018-11-27 Akim Demaille <[email protected]> |
| |
| style: fix quotation in the test suite |
| * tests/input.at: here. |
| |
| 2018-11-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-27 Akim Demaille <[email protected]> |
| |
| %nterm: do not accept character literals |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html |
| |
| * src/complain.h: Formatting change. |
| * src/parse-gram.y (id): Reject character literals used in a context |
| for non-terminals. |
| * tests/input.at (Invalid %nterm uses): Check that. |
| |
| 2018-11-27 Akim Demaille <[email protected]> |
| |
| %nterm: do not accept numbers nor string alias |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html |
| |
| * src/parse-gram.y (symbol_def): Refuse string aliases and numbers |
| for non-terminals. |
| (prologue_declaration): Recover from errors ended with ';'. |
| * tests/input.at (Invalid %nterm uses): New. |
| |
| 2018-11-27 Akim Demaille <[email protected]> |
| |
| TODO: update |
| |
| 2018-11-26 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: Here. |
| |
| 2018-11-26 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * tests/testsuite.at: here. |
| |
| 2018-11-26 Akim Demaille <[email protected]> |
| |
| gnulib: update ignores |
| |
| 2018-11-26 Akim Demaille <[email protected]> |
| |
| gnulib: update to use its bitsets |
| Bison's bitset were moved to gnulib. |
| |
| * lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c, |
| * lib/bitset.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, |
| * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c, |
| * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h, |
| * lib/lbitset.h, lib/vbitset.c, lib/vbitset.h: |
| Remove. |
| |
| * gnulib: Update. |
| * bootstrap.conf, lib/local.mk: Adjust. |
| |
| 2018-11-25 Akim Demaille <[email protected]> |
| |
| gnulib: use conditional dependencies |
| * bootstrap.conf: here. |
| |
| 2018-11-25 Akim Demaille <[email protected]> |
| |
| CI: run on xenial |
| Xenial (Ubuntu 16.04) is finally available on Travis. Let's use it. |
| |
| Among the changes: |
| |
| - Automake 1.14.1 -> 1.15.0 |
| - Doxygen 1.8.6 -> 1.8.11 |
| - Flex 2.5.35 -> 2.6.0, with plenty of new compiler warnings |
| - Gettext 0.18.3 -> 0.19.7 |
| - Graphviz 2.36.0 -> 2.38.0 |
| - Texinfo 5.2 -> 6.1 |
| |
| * .travis.yml: here. |
| |
| 2018-11-25 Akim Demaille <[email protected]> |
| |
| CI: we don't need git show |
| * .travis.yml: Don't run it. |
| |
| 2018-11-25 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-25 Akim Demaille <[email protected]> |
| |
| warning: avoid warnings about unreachable code |
| Reported by Uxio Prego. |
| https://lists.gnu.org/archive/html/help-bison/2018-11/msg00031.html |
| |
| We also need to move the unreachable 'goto' to a reachable place, |
| otherwise clang complains about the code being unreachable anyway. |
| See also https://bugs.llvm.org/show_bug.cgi?id=39736. |
| |
| Interestingly, we don't have to apply that trick to |
| `#define YYCDEBUG if (false) std::cerr`, clang does not warn when the |
| code comes from macro expansion. |
| |
| * configure.ac: Use -Wunreachable-code when supported. |
| * data/lalr1.cc, data/yacc.c: Pacify clang's warning about `if (0)` |
| by using a macro. |
| Another possibility was to move this statement to a reachable place. |
| * tests/actions.at, tests/c++.at: Avoid generating unreachable code. |
| |
| 2018-11-24 Akim Demaille <[email protected]> |
| |
| yacc.c: avoid generating dead code |
| We should probably introduce some struct and functions to deal with |
| stack management, rather than open coding it. yyparse would be much |
| nicer to read, and a better model for possible other skeletons. |
| |
| * data/yacc.c (yyparse::yysetstate): Avoid generating code when |
| neither yyoverflow nor YYSTACK_RELOCATE is defined. |
| |
| 2018-11-22 Akim Demaille <[email protected]> |
| |
| %expect-rr: tune the number of conflicts per rule |
| Currently on a grammar such as |
| |
| exp : a '1' | a '2' | a '3' | b '1' | b '2' | b '3' |
| a: |
| b: |
| |
| we count only one rr-conflict on the `b:` rule, i.e., we expect: |
| |
| b: %expect-rr 1 |
| |
| although there are 3 conflicts in total. That's because in the |
| conflicted state we count only a single conflict, not three (one for |
| each of the lookaheads: '1', '2', '3'). |
| |
| State 0 |
| |
| 0 $accept: . exp $end |
| 1 exp: . a '1' |
| 2 | . a '2' |
| 3 | . a '3' |
| 4 | . b '1' |
| 5 | . b '2' |
| 6 | . b '3' |
| 7 a: . %empty ['1', '2', '3'] |
| 8 b: . %empty ['1', '2', '3'] |
| |
| '1' reduce using rule 7 (a) |
| '1' [reduce using rule 8 (b)] |
| '2' reduce using rule 7 (a) |
| '2' [reduce using rule 8 (b)] |
| '3' reduce using rule 7 (a) |
| '3' [reduce using rule 8 (b)] |
| $default reduce using rule 7 (a) |
| |
| exp go to state 1 |
| a go to state 2 |
| b go to state 3 |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00106.html. |
| |
| * src/conflicts.c (rule_has_state_rr_conflicts): Rename as... |
| (count_rule_state_sr_conflicts): this. |
| DWIM. |
| (count_rule_rr_conflicts): Adjust. |
| * tests/conflicts.at (%expect-rr in grammar rules) |
| (%expect-rr too much in grammar rules) |
| (%expect-rr not enough in grammar rules): New. |
| |
| 2018-11-22 Akim Demaille <[email protected]> |
| |
| %expect-rr: fix the computation of the overall number of conflicts |
| On a grammar such as |
| |
| exp: "num" | "num" | "num" |
| |
| we currently report only one RR conflict, instead of two. |
| |
| This bug is present since the origins of Bison |
| |
| commit 08089d5d35ece0c7d41659cc1bc09638e2abb151 |
| Author: David MacKenzie <[email protected]> |
| Date: Tue Apr 20 05:42:52 1993 +0000 |
| |
| Initial revision |
| |
| and was preserved in |
| |
| commit 676385e29c4aedfc05d20daf1ef20cd4ccc84856 |
| Author: Paul Hilfinger <[email protected]> |
| Date: Fri Jun 28 02:26:44 2002 +0000 |
| |
| Initial check-in introducing experimental GLR parsing. See entry in |
| ChangeLog dated 2002-06-27 from Paul Hilfinger for details. |
| |
| See |
| https://lists.gnu.org/archive/html/bison-patches/2018-11/msg00011.html |
| |
| * src/conflicts.h, src/conflicts.c (count_state_rr_conflicts) |
| (count_rr_conflicts): Use only the correct count of conflicts. |
| * tests/glr-regression.at: Fix expectations. |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| tests: generate *.output files |
| * tests/glr-regression.at: here. |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| %expect: tune the number of conflicts per rule |
| Currently on a grammar such as |
| |
| exp: "number" | exp "+" exp | exp "*" exp |
| |
| we count only one sr-conflict for both binary rules, i.e., we expect: |
| |
| exp: "number" | exp "+" exp %expect 1 | exp "*" exp %expect 1 |
| |
| although there are 4 conflicts in total. That's because in the states |
| in conflict, for instance that for the "+" rule: |
| |
| State 6 |
| |
| 2 exp: exp . "+" exp |
| 2 | exp "+" exp . [$end, "+", "*"] |
| 3 | exp . "*" exp |
| |
| "+" shift, and go to state 4 |
| "*" shift, and go to state 5 |
| |
| "+" [reduce using rule 2 (exp)] |
| "*" [reduce using rule 2 (exp)] |
| $default reduce using rule 2 (exp) |
| |
| we count only a single conflict, although there are two (one on "+" |
| and another with "*"). |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00106.html. |
| |
| * src/conflicts.c (rule_has_state_sr_conflicts): Rename as... |
| (count_rule_state_sr_conflicts): this. |
| DWIM. |
| (count_rule_sr_conflicts): Adjust. |
| * tests/conflicts.at (%expect in grammar rules): New. |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/conflicts.c, src/reader.c: Minor style changes. |
| |
| 2018-11-21 Paul Hilfinger <[email protected]> |
| |
| allow %expect and %expect-rr modifiers on individual rules |
| This change allows one to document (and check) which rules participate |
| in shift/reduce and reduce/reduce conflicts. This is particularly |
| important GLR parsers, where conflicts are a normal occurrence. For |
| example, |
| |
| %glr-parser |
| %expect 1 |
| %% |
| |
| ... |
| |
| argument_list: |
| arguments %expect 1 |
| | arguments ',' |
| | %empty |
| ; |
| |
| arguments: |
| expression |
| | argument_list ',' expression |
| ; |
| |
| ... |
| |
| Looking at the output from -v, one can see that the shift-reduce |
| conflict here is due to the fact that the parser does not know whether |
| to reduce arguments to argument_list until it sees the token AFTER the |
| following ','. By marking the rule with %expect 1 (because there is a |
| conflict in one state), we document the source of the 1 overall shift- |
| reduce conflict. |
| |
| In GLR parsers, we can use %expect-rr in a rule for reduce/reduce |
| conflicts. In this case, we mark each of the conflicting rules. For |
| example, |
| |
| %glr-parser |
| %expect-rr 1 |
| |
| %% |
| |
| stmt: |
| target_list '=' expr ';' |
| | expr_list ';' |
| ; |
| |
| target_list: |
| target |
| | target ',' target_list |
| ; |
| |
| target: |
| ID %expect-rr 1 |
| ; |
| |
| expr_list: |
| expr |
| | expr ',' expr_list |
| ; |
| |
| expr: |
| ID %expect-rr 1 |
| | ... |
| ; |
| |
| In a statement such as |
| |
| x, y = 3, 4; |
| |
| the parser must reduce x to a target or an expr, but does not know |
| which until it sees the '='. So we notate the two possible reductions |
| to indicate that each conflicts in one rule. |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00105.html. |
| |
| * doc/bison.texi (Suppressing Conflict Warnings): Document %expect, |
| %expect-rr in grammar rules. |
| * src/conflicts.c (count_state_rr_conflicts): Adjust comment. |
| (rule_has_state_sr_conflicts): New static function. |
| (count_rule_sr_conflicts): New static function. |
| (rule_nast_state_rr_conflicts): New static function. |
| (count_rule_rr_conflicts): New static function. |
| (rule_conflicts_print): New static function. |
| (conflicts_print): Also use rule_conflicts_print to report on individual |
| rules. |
| * src/gram.h (struct rule): Add new fields expected_sr_conflicts, |
| expected_rr_conflicts. |
| * src/reader.c (grammar_midrule_action): Transfer expected_sr_conflicts, |
| expected_rr_conflicts to new rule, and turn off in current_rule. |
| (grammar_current_rule_expect_sr): New function. |
| (grammar_current_rule_expect_rr): New function. |
| (packgram): Transfer expected_sr_conflicts, expected_rr_conflicts |
| to new rule. |
| * src/reader.h (grammar_current_rule_expect_sr): New function. |
| (grammar_current_rule_expect_rr): New function. |
| * src/symlist.c (symbol_list_sym_new): Initialize expected_sr_conflicts, |
| expected_rr_conflicts. |
| * src/symlist.h (struct symbol_list): Add new fields expected_sr_conflicts, |
| expected_rr_conflicts. |
| * tests/conflicts.at: Add tests "%expect in grammar rule not enough", |
| "%expect in grammar rule right.", "%expect in grammar rule too much." |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-11-21 Akim Demaille <[email protected]> |
| |
| remove ancient lint directives |
| * data/c++.m4, data/yacc.c: Remove surprising remains of lint |
| directives. |
| |
| 2018-11-21 Jannick <[email protected]> |
| |
| doc: calc++: remove ancient fix for flex |
| * doc/bison.texi (Calc++ Scanner): Remove fix for Flex 2.5.31-2.5.33. |
| |
| 2018-11-21 Jannick <[email protected]> |
| |
| doc: calc++: ignore \r in the scaner |
| * doc/bison.texi (Calc++ Scanner): Ignore \r. |
| |
| 2018-11-20 Akim Demaille <[email protected]> |
| |
| style: harmonize the labels of yyparse |
| * data/glr.c, data/lalr1.cc, data/yacc.c: Fix indentation and |
| other formatting issues. |
| |
| 2018-11-20 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-20 Akim Demaille <[email protected]> |
| |
| style: avoid lengthy actions |
| We also lack a consistent naming for directive implementations. |
| `directive_skeleton` is too long, `percent_skeleton` is not very nice |
| looking, `process_skeleton` looks ambiguous, `do_skeleton` is somewhat |
| ambiguous too, but seems a better track. |
| |
| * src/parse-gram.y (version_check): Rename as... |
| (do_require): this. |
| (do_skeleton): New. |
| Use it. |
| |
| 2018-11-20 Akim Demaille <[email protected]> |
| |
| c++: using macros around user types breaks when they include comma |
| We may generate code such as |
| |
| basic_symbol (typename Base::kind_type t, YY_RVREF (std::pair<int,int>) v); |
| |
| which, of course, breaks, because YY_RVREF sees two arguments. Let's |
| not play tricks with _VA_ARGS__, I'm unsure about it portability. |
| Anyway, I plan to change more things in this area. |
| |
| Reported by Sébastien Villemot. |
| http://lists.gnu.org/archive/html/bug-bison/2018-11/msg00014.html |
| |
| * data/variant.hh (b4_basic_symbol_constructor_declare) |
| (b4_basic_symbol_constructor_define): Don't use macro on user types. |
| * tests/types.at: Check that we support pairs. |
| |
| 2018-11-16 Akim Demaille <[email protected]> |
| |
| README: update |
| |
| 2018-11-16 Akim Demaille <[email protected]> |
| |
| tests: remove duplicate definition |
| Probably imported by 6d58c632025cb6928a90e4176577982bfb9c3981, a merge |
| commit. |
| |
| * tests/atlocal.in (POSIXLY_CORRECT_IS_EXPORTED): Define it once. |
| |
| 2018-11-16 Akim Demaille <[email protected]> |
| |
| glr.c: fix use of _Noreturn |
| In C++, [[noreturn]] must not be between "static" and the rest of the |
| function signature, it must precede it. C's _Noreturn does not seem |
| to have such a constraint, but it is therefore compatible with the C++ |
| constraint. Since we #define _Noreturn as [[noreturn]] is modern C++, |
| be sure to push the _Noreturn first. |
| |
| Unfortunately this was not caught by the test suite, because it always |
| loads config.h first, and config.h contains another definition of |
| _Noreturn that does not use [[noreturn]], and hides ours. That's |
| probably a sign we should avoid always loading config.h. |
| |
| * data/glr.c (yyFail, yyMemoryExhausted): here. |
| |
| 2018-11-16 Akim Demaille <[email protected]> |
| |
| tests: run the api.value.type tests for all C++ standards |
| * tests/local.at (AT_LANG_FOR_EACH_STD): New. |
| (AT_REQUIRE_CXX_VERSION): Rename as... |
| (AT_REQUIRE_CXX_STD): this. |
| Accept an argument for what to do when the requirement is not met. |
| * tests/types.at (api.value.type): Check all the C++ stds. |
| |
| 2018-11-16 Akim Demaille <[email protected]> |
| |
| CI: split the ASAN job in two |
| The following commit introduce even more compilations/runs than |
| before, and with ASAN on, we go beyond to 50min credit from Travis. |
| |
| * .travis.yml (Clang 7 libc++ and ASAN): Split in two. |
| |
| 2018-11-14 Akim Demaille <[email protected]> |
| |
| c++: use YY_CPLUSPLUS |
| * data/c++.m4: here. |
| |
| 2018-11-13 Akim Demaille <[email protected]> |
| |
| c++: factor the handling of __cplusplus into YY_CPLUSPLUS |
| * data/c++.m4 (b4_cxx_portability): Define it. |
| Use it. |
| * data/lalr1.cc, data/variant.hh: Use it. |
| |
| 2018-11-13 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * src/scan-gram.l: here. |
| |
| 2018-11-13 Akim Demaille <[email protected]> |
| |
| tests: clarify some magic constant |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): here. |
| |
| 2018-11-13 Akim Demaille <[email protected]> |
| |
| examples: remove useless includes |
| * examples/c++/variant-11.yy, examples/c++/variant.yy: here. |
| Fix warning when storing a long into an int. |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| tests: compile the C++ examples with warnings |
| * examples/c++/local.mk: Pass $(WARN_CXXFLAGS_TEST). |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| parser: deprecate %error-verbose |
| It is unfortunate that %error_verbose was properly diagnosed as |
| obsoleted by "%define parse.error verbose", but %error-verbose was |
| not. |
| |
| * src/parse-gram.y (%error-verbose): Remove support. |
| * src/scan-gram.l: Do it here instead, with a warning. |
| * tests/input.at (Deprecated directives): Check it. |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| tests: migrate from %error-verbose to %define parse.error verbose |
| * tests/actions.at, tests/c++.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/javapush.at, |
| * tests/local.at, tests/regression.at, tests/skeletons.at, |
| * tests/torture.at: |
| Here. |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| parser: deprecate %nterm |
| It has several weaknesses. |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html |
| |
| * src/scan-gram.l: here. |
| |
| 2018-11-12 Akim Demaille <[email protected]> |
| |
| tests: fix syncline tests |
| These tests are skipped with GCC: |
| |
| "\"".c:1:5: error: function declaration isn't a prototype [-Werror=strict-prototypes] |
| int main() { return 0; } |
| ^~~~ |
| |
| * tests/synclines.at: Stop writing C++ in C. |
| * tests/local.at: Formatting changes. |
| |
| 2018-11-11 Akim Demaille <[email protected]> |
| |
| NEWS: expected features of Bison 3.3 |
| |
| 2018-11-11 Akim Demaille <[email protected]> |
| |
| yacc: reduce scope in push mode |
| * data/yacc.c (yypull_parse): Here. |
| |
| 2018-11-11 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * data/c++.m4, data/glr.c, data/lalr1.java, data/yacc.c |
| (yytranslate, YYTRANSLATE): Harmonize comments. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| c++: simplify a default construction |
| * data/lalr1.cc (yytnamerr_): here. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| reader: no longer accept %define variable names in quotes |
| It was never documented. |
| |
| * src/parse-gram.y (variable): Here. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| dogfooding: use api.value.type union |
| * src/parse-gram.y (api.value.type): Set to union. |
| Replace occurrences of %union with explicit %types. |
| * src/scan-gram.l: Adjust yylval's field names. |
| (RETURN_VALUE): No longer needs the Field argument. |
| Use it more. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| djgpp: remove |
| Support for DJGPP was announced to be removed in the NEWS of Bison |
| 3.1 (2018-08-27) unless someone expressed interest. There was no answer. |
| |
| * djgpp: Remove. |
| * NEWS, Makefile.am, cfg.mk, po/POTFILES.in: Adjust. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| scanner: simplify use of gettext |
| * src/scan-gram.l (unexpected_end): Leave the actual call to gettext |
| to the caller. |
| |
| 2018-11-10 Akim Demaille <[email protected]> |
| |
| style: clean up the scanner and parser |
| * src/scan-gram.l: Formatting changes. |
| Add "missing" assertion for symmetry. |
| * src/parse-gram.y: Formatting changes. |
| |
| 2018-11-09 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-11-09 Akim Demaille <[email protected]> |
| |
| version 3.2.1 |
| * NEWS: Record release date. |
| |
| 2018-11-08 Akim Demaille <[email protected]> |
| |
| build: fix issues in the generated tarball |
| Reported by Andre da Costa Barros. |
| https://savannah.gnu.org/patch/?9716 |
| |
| * examples/calc++/local.mk: We no longer generate position.hh and |
| stack.hh. Leaving them here triggers their concurrent generation, |
| which fails. |
| (%C%_calc___CPPFLAGS): Fix the extracted headers in the source tree. |
| * examples/mfcalc/local.mk (%C%_mfcalc_CPPFLAGS): Ditto. |
| |
| 2018-11-07 Akim Demaille <[email protected]> |
| |
| build: fix typo |
| Reported by Horst Von Brand. |
| https://savannah.gnu.org/support/?109580 |
| |
| * examples/local.mk (.PHOMY): Rename as... |
| (.PHONY): this. |
| |
| 2018-11-06 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-11-06 Akim Demaille <[email protected]> |
| |
| examples: ship them |
| Currently, the examples are extracted on the user's side. |
| Unfortunately, that requires that the user has Perl, which is |
| otherwise not needed for Bison. Let's ship the examples instead. |
| |
| The examples were handled this way so that we could depend on |
| configure flags: if --enable-gcc-warnings is passed, it is understood |
| as "I'm a maintainer", so the examples are generated with `#line`s. |
| Regular users should not see them, so they are now unconditionally |
| removed when rolling a tarball. |
| |
| Reported by Mike Frysinger. |
| https://lists.gnu.org/archive/html/bison-patches/2015-04/msg00000.html |
| |
| * examples/local.mk: Ship all the extracted files. |
| (examples-unline): New. |
| Make sure that the generated tarballs do not contain the #lines. |
| |
| 2018-11-06 Akim Demaille <[email protected]> |
| |
| build: minor fixes in doc/ |
| * doc/local.mk: Consistently use *.tmp for temporary files. |
| Fix comments. |
| |
| 2018-11-05 Akim Demaille <[email protected]> |
| |
| CI: maximize chances of errors sooner |
| * .travis.yml: Try clang and icc soon, so that we don't have to wait |
| for the end of the run to know that they fail. |
| |
| 2018-11-04 Akim Demaille <[email protected]> |
| |
| c++: improve the generated documentation |
| * data/lalr1.cc, data/location.cc: Improve documenting comments. |
| * tests/c++.at (Doxygen Documentation): Fix AT_BISON_OPTION_PUSHDEFS, |
| so that the generated yyerror is correct. |
| * tests/c++.at, tests/headers.at: Prefer %empty. |
| |
| 2018-11-04 Akim Demaille <[email protected]> |
| |
| tests: don't fail if the C++ compiler does not work |
| Also, make sure that `make dist` generates a correct tarball even if |
| the C++ compiler does not work. |
| |
| Reported by Nelson H. F. Beebe. |
| |
| * m4/cxx.m4 (BISON_CXX_WORKS): Define to true/false instead of |
| true/exit 77. The latter is too dangerous to use (it directly quits). |
| (ENABLE_CXX): New name for the Automake conditional, for consistency |
| with ENABLE_CXX11 etc. |
| * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Adjust to the new |
| semantics of BISON_CXX_WORKS. |
| * examples/c++/local.mk: Skip the variant test if C++ does not work. |
| * examples/calc++/local.mk: Likewise. |
| |
| 2018-11-04 Akim Demaille <[email protected]> |
| |
| tests: don't disable C++ warnings in C files |
| This triggers error with GCC. |
| See eff6739124c61bb5660d78453210d1d6a17d30e7. |
| |
| * tests/testsuite.h: Disable -Wzero-as-null-pointer-constant only for |
| C++. |
| |
| 2018-11-04 Akim Demaille <[email protected]> |
| |
| c++: workaround portability issue |
| On some systems (x86_64-pc-solaris2.11), with Developer Studio 12.5's |
| CC, we get: |
| |
| ".../include/CC/Cstd/vector.cc", line 127: Error: Cannot assign const yy::parser::stack_symbol_type to yy::parser::stack_symbol_type without "yy::parser::stack_symbol_type::operator=(const yy::parser::stack_symbol_type&)";. |
| ".../include/CC/Cstd/vector", line 475: Where: While instantiating "std::vector<yy::parser::stack_symbol_type>::__insert_aux(yy::parser::stack_symbol_type*, const yy::parser::stack_symbol_type&)". |
| ".../include/CC/Cstd/vector", line 475: Where: Instantiated from non-template code. |
| 1 Error(s) detected. |
| |
| Don't expect __cplusplus to be always defined. If it's not, consider |
| this is C++98. |
| |
| Reported by Nelson H. F. Beebe. |
| |
| * data/c++.m4, data/lalr1.cc, examples/c++/variant.yy, tests/local.at, |
| * tests/testsuite.h: |
| An undefined __cplusplus means pre C++11. |
| |
| 2018-11-03 Akim Demaille <[email protected]> |
| |
| tests: work around getopt portability issues |
| On some systems, we don't use our getopt. As a consequence the error |
| messages vary: |
| |
| $ bison --skeleton |
| bison: option requires an argument -- skeleton |
| Try 'bison --help' for more information. |
| |
| instead of |
| |
| bison: option '--skeleton' requires an argument |
| Try 'bison --help' for more information. |
| |
| Reported by Jannick and Nelson H. F. Beebe. |
| https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00140.html |
| |
| * tests/input.at (Invalid number of arguments): work around getopt |
| portability issues. |
| |
| 2018-11-03 Akim Demaille <[email protected]> |
| |
| doc: -Wzero-as-null-pointer-constant was added to GCC 4.7 |
| It is not supported by previous versions. |
| See https://www.gnu.org/software/gcc/gcc-4.7/changes.html |
| Reported by Nelson H. F. Beebe. |
| |
| * doc/bison.texi (Calc++ Scanner): here. |
| |
| 2018-11-02 Adam Sampson <[email protected]> |
| |
| examples: #include <cstring> in calc++ |
| strerror is defined by <string.h>, and recent versions of GNU libstdc++ |
| no longer include this automatically from <string>. |
| |
| 2018-10-31 Akim Demaille <[email protected]> |
| |
| c: provide a definition of _Noreturn that works for C++ |
| On Solaris, GCC 7.3 defines: |
| |
| -std=c++14 -std=c++17 |
| __cplusplus 201402L 201703L |
| __STDC_VERSION__ 199901L 201112L |
| |
| So the current #definition of _Noreturn sees that 201112 <= |
| __STDC_VERSION__, i.e., that C11 is supported, so it expects _Noreturn |
| to be supported. Apparently it is not. |
| |
| This is only for C++, the test suite works for C. However, the test |
| suite does not try several C standards, maybe we should... |
| |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00064.html |
| |
| * data/c.m4 (b4_attribute_define): Define _Noreturn as [[noreturn]] in |
| modern C++. |
| |
| 2018-10-30 Akim Demaille <[email protected]> |
| |
| c: update the definition of _Noreturn |
| Does not work on Solaris 11.3 x86/64: |
| |
| 479. c++.at:1293: testing C++ GLR parser identifier shadowing ... |
| ======== Testing with C++ standard flags: '-std=c++17' |
| ./c++.at:1332: $BISON_CXX_WORKS |
| stderr: |
| stdout: |
| ./c++.at:1332: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o input input.cc $LIBS |
| stderr: |
| input.cc:837:8: error: '_Noreturn' does not name a type |
| static _Noreturn void |
| ^~~~~~~~~ |
| input.cc:845:8: error: '_Noreturn' does not name a type |
| static _Noreturn void |
| ^~~~~~~~~ |
| |
| Reported by Kiyoshi Kanazawa. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00051.html |
| |
| * data/c.m4 (b4_attribute_define): Use the snippet which is currently |
| in gnulib's m4/gnulib-common.m4 (which seems a little more advanced |
| than lib/_Noreturn.h). |
| |
| 2018-10-30 Akim Demaille <[email protected]> |
| |
| tests: don't expect the shell to support 'local' |
| It doesn't work on Solaris 11.3 x86/64. |
| Reported by Kiyoshi Kanazawa. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00051.html |
| |
| * examples/test: Don't use 'local'. |
| |
| 2018-10-30 Akim Demaille <[email protected]> |
| |
| bitset: fix warning |
| Reported by Hans Åberg. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00047.html |
| |
| * lib/bitset.c (bitset_count_): here. |
| |
| 2018-10-30 Akim Demaille <[email protected]> |
| |
| build: fix use of gnulib Make variables |
| Reported by Kiyoshi Kanazawa. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00048.html |
| |
| * lib/local.mk (lib_libbison_a_LIBADD): Merge into... |
| * src/local.mk (src_bison_LDADD): here. |
| |
| 2018-10-29 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-10-29 Akim Demaille <[email protected]> |
| |
| version 3.2 |
| * NEWS: Record release date. |
| |
| 2018-10-29 Akim Demaille <[email protected]> |
| |
| build: don't depend on the libc to generate bison.help |
| The "Report translation bugs to..." part of --help is issued only on |
| glibc systems. So if the tarball is not wrapped on such a system, and |
| used on such a system (or the converse), then bison.help will differ |
| on the user's system, and help2man will be called to update bison.1. |
| |
| But help2man should not be a requirement. |
| |
| Reported by Alexandre Duret-Lutz. |
| |
| * doc/local.mk (doc/bison.help): Remove the possible doc about |
| translation bugs. |
| Pass LC_ALL=C, as reported in src/getargs.c's usage(). |
| (doc/cross-options.texi): Use bison.help instead of calling bison |
| --help. |
| |
| 2018-10-29 Akim Demaille <[email protected]> |
| |
| c++: always issue the "generated by" message |
| Some users rely on this sentence to know that the file can be ignored. |
| Reported by Alexandre Duret-Lutz. |
| |
| * data/bison.m4 (b4_generated_by): New. |
| (b4_copyright): Use it. |
| * data/location.cc, data/stack.hh: Use it too, for the stub files |
| (position.hh and stack.hh). |
| |
| 2018-10-28 Akim Demaille <[email protected]> |
| |
| cfg.mk: remove exceptions for timevar |
| They appear to be no longer needed. |
| |
| * cfg.mk: here. |
| |
| 2018-10-28 Akim Demaille <[email protected]> |
| |
| style: clean up src/AnnotationList.c |
| * src/AnnotationList.c: Reduce scopes. |
| |
| 2018-10-28 Akim Demaille <[email protected]> |
| |
| style: clean up print.c |
| * src/print.c: Reduce scopes. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up bbitset.h |
| * lib/libiberty.h: Inline in... |
| * lib/bbitset.h: here. |
| * lib/local.mk: Adjust. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up bitset.h |
| * lib/bitset.h: Fix include order. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up vbitset.c |
| * lib/vbitset.c: Reduce scopes, etc. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up lbitset.c |
| * lib/lbitset.c: Reduce scopes, etc. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up ebitset.c |
| * lib/ebitset.c: Reduce scopes, etc. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up bitset_stats.c |
| * lib/bitset_stats.c: Reduce scopes, etc. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up bitset.c |
| * lib/bitset.c: Reduce scopes, etc. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| bitset: clean up abitset.c |
| * lib/abitset.c: Reduce scopes, etc. |
| |
| 2018-10-27 Jannick <[email protected]> |
| |
| xml2dot.xsl: fix typos in comments |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| doc: fix distcheck |
| The extracted example, simple.yy, does not use %require "3.2", so it |
| generates a stack.hh, which breaks distcheck. |
| |
| * doc/bison.texi: Fix it. |
| |
| 2018-10-27 Akim Demaille <[email protected]> |
| |
| NEWS: prepare for 3.2 |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| tests: beware of Windows file name constraints |
| Don't expect to be able to build a file named '"\"".y' (6 characters) |
| on Windows. |
| |
| Reported by Jannick. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00042.html |
| |
| * tests/synclines.at (syncline escapes): Skip if we failed to create |
| the file. |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| tests: fix invocation of m4_map |
| * tests/actions.at, tests/synclines.at: m4_map takes a list of |
| arguments in $2, m4_map_args takes arguments in $2, $3, etc. |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| doc: spell check |
| * README, doc/bison.texi, examples/README, examples/c++/README: here. |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| examples: add a Makefile for C++ short examples |
| * examples/c++/Makefile: New. |
| * examples/c++/local.mk, examples/c++/README: Adjust. |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| doc: some improvements |
| * doc/bison.texi (Calc++ Scanner): Show how exception can be thrown |
| from auxiliary functions. |
| Clarify the meaning of the various flex %options we use. |
| Get rid of a warning. |
| (Calc++ Parsing Driver): Use the parser as a functor. |
| |
| 2018-10-26 Akim Demaille <[email protected]> |
| |
| examples: check the errors |
| * examples/test (run): Check stderr, unless -noerr is passed. |
| * examples/calc++/calc++.test, examples/mfcalc/mfcalc.test: Check |
| errors. |
| |
| 2018-10-25 Akim Demaille <[email protected]> |
| |
| doc: minor fixes |
| * doc/bison.texi: Simplify wording. |
| Fix Texinfo error. |
| (Complete Symbols): Handle the token EOF. |
| (Calc++ Parser): In the modern C++ world, prefer assignment to swap. |
| (Strings are Destroyed): Prefer an explicit 'continue' to a comment. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| configure: quit on trying to get ICC and Flex be friends |
| The CI is using Flex 2.5.35. And ICC is too picky for it. Let's stop |
| making these warnings errors. I wish I could disable them in the |
| source files using the ICC version and the Flex version, but ICC's |
| pragma support is unclear, and I'm tired of fighting it. |
| |
| * configure.ac (FLEX_SCANNER_CXXFLAGS): Make warnings warnings. |
| * examples/c++/local.mk: Comment changes. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| doc: mention earlier how to disable the generation of location.hh |
| Suggested by Victor Khomenko. |
| |
| * doc/bison.texi (C++ Bison Interface): Here. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| c++: std::to_string is available in C++11 |
| Reported by Victor Khomenko. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00033.html |
| |
| * doc/bison.texi, examples/c++/variant-11.yy: Use std::to_string |
| instead of ours. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| examples: move the variant examples into the C++ directory |
| * examples/variant-11.test examples/variant-11.yy, |
| * examples/variant.test examples/variant.yy: |
| Move into examples/c++/. |
| * examples/c++/README: New. |
| * examples/README, examples/c++/local.mk, examples/local.mk: |
| Adjust. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| doc: an introductory example for C++ |
| Suggested by Victor Khomenko. |
| http://lists.gnu.org/archive/html/bug-bison/2018-08/msg00037.html |
| |
| * doc/bison.texi (A Simple C++ Example): New. |
| * examples/c++/local.mk, examples/c++/simple.test: New. |
| Extract, check, and install this new example. |
| * examples/local.mk: Adjust. |
| * examples/test: Adjust to the case where the dirname differs |
| from the test name. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| build: remove a few copies of the Copyright from the generated Makefile |
| * build-aux/local.mk, cfg.mk, examples/calc++/local.mk, |
| * examples/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk, lib/local.mk, src/local.mk, |
| * tests/local.mk: |
| Use Automake comments so that we don't get a copy of each in the |
| generated Makefile. |
| |
| 2018-10-24 Akim Demaille <[email protected]> |
| |
| c++: make operator() an alias to the parse function |
| * data/glr.cc, data/lalr1.cc (operator()): New. |
| * doc/bison.texi: Update. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| build: enable more warnings during tests |
| Prompted by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00018.html |
| |
| * configure.ac: here. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| yacc.c: work around strange typing issues |
| On the CI, both GCC and Clang report: |
| |
| src/parse-gram.c: In function 'yy_lac': |
| src/parse-gram.c:1479:29: error: format '%hd' expects argument of type 'int', |
| but argument 3 has type 'yytype_int16 {aka long int}' [-Werror=format=] |
| YYDPRINTF ((stderr, " G%hd", yystate)); |
| ^ |
| |
| Although yytype_int16 is supposed to be a short int, not a long int. |
| This must be explored. |
| |
| * data/yacc.c (yy_lac): Work around typing issue. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| yacc.c: don't define _Noreturn uselessly |
| Clang warns: |
| |
| aux/x.h:97:11: error: macro name is a reserved identifier |
| [-Werror,-Wreserved-id-macro] |
| # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) |
| |
| Reported by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00024.html |
| |
| * data/c.m4 (b4_attribute_define): Don't define _Noreturn unconditionally. |
| * data/glr.c: Ask for _Noreturn. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| pacify ICC 16.0.3 20160415 |
| Found on the CI. |
| |
| yacc.c: |
| |
| error #2259: non-pointer conversion from "int" to "yytype_int16={short}" may lose significant bits |
| yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyesp |
| ^ |
| |
| glr.c: |
| |
| error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits |
| yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR); |
| ^ |
| |
| error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits |
| return yypact_value_is_default (yypact[yystate]); |
| ^ |
| |
| error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits |
| return 0 < yyaction; |
| ^ |
| |
| error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits |
| return yyaction == 0; |
| ^ |
| |
| error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits |
| yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY; |
| ^ |
| |
| * data/glr.c, data/yacc.c: Avoid these warnings. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| flex: work around more warnings |
| * doc/bison.texi: here. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| examples: clang 5 defines nullptr as a macro |
| * examples/variant.yy: So don't do it. |
| * examples/variant-11.yy: Fix comment. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| glr.c: be strict about types |
| * data/glr.c: Don't use `foo |= bar` with foo and bar being yybool: |
| the result appears to be an int, not a yybool. |
| Use yybool where appropriate. |
| Add casts where needed. |
| |
| 2018-10-23 Akim Demaille <[email protected]> |
| |
| yacc.c: fix warnings about integral types |
| Reported by Derek Clegg. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00018.html |
| |
| Rather than adding casts, we should be more careful with types. For |
| instance yystate should be a yytype_int16. But currently we can't: it |
| is also used sometimes for storing other things that state numbers. |
| |
| * data/yacc.c (yyparse): Add missing casts. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| yacc.c: clarify the computation of yystate |
| The yacc.c skeleton is old, and was using many tricks to save |
| registers. Today's register allocators can do this themselves. Let's |
| keep the code simpler to read and let compilers do their job. |
| |
| * data/yacc.c: Avoid using yystate for different types of content. |
| An inline function would be better, but doing this portably will be |
| a problem. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| printf returns a signed int |
| * tests/local.at: Adjust location_print's signature. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| tests: be strict about types |
| * tests/actions.at, tests/c++.at, tests/cxx-type.at, |
| * tests/glr-regression.at, tests/local.at, tests/torture.at, |
| * tests/types.at: |
| Pay stricter attention to types to avoid warnings. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| c++: fix signedness issues |
| * data/lalr1.cc, data/stack.hh: The callers of stack use int, while |
| stack is based on size_type. Add overloads to avoid warnings. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| c++: minor changes |
| * data/lalr1.cc: Fix oldish comment. |
| * data/stack.hh: Prefer typename for type names. |
| Use size() instead of duplicating it. |
| * examples/variant-11.yy, examples/variant.yy (yylex): Use int, |
| as this is the type of the semantic value. |
| |
| 2018-10-22 Akim Demaille <[email protected]> |
| |
| all: display a clear warning about private macros |
| * data/bison.m4 (b4_disclaimer): New. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it. |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| c++: minor simplification |
| * data/stack.hh: Prefer a default argument value to two constructors. |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| all: avoid useless comments and #lines |
| Currently we emit useless code for places where we might issue user |
| content, but there is none. This commit avoids this. Besides, some |
| of the comments looked like implementation details ("Copy the first |
| part of user declarations"), rather than made for the reader of the |
| result ("First part of user prologue"). |
| |
| On Bison's parse-gram.c we get: |
| |
| @@ -76,10 +76,6 @@ |
| #define yynerrs gram_nerrs |
| |
| -/* Copy the first part of user declarations. */ |
| - |
| -#line 82 "src/parse-gram.c" /* yacc.c:339 */ |
| - |
| |
| * data/bison.m4 (b4_define_user_code): Accept a comment to document |
| the section. |
| Do not emit any code if the content is empty. |
| Adjust callers to not emit the comment. |
| Do not |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, data/yacc.c: |
| Adjust. |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| tests: refactor |
| * tests/actions.at, tests/synclines.at: Prefer iteration to |
| copy-paste. |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| tests: rename AT_SKEL_CC_IF/AT_SKEL_JAVA_IF as AT_CXX_IF/AT_JAVA_IF |
| The previous name is too obscure, and the other macros for C++ use |
| CXX, not CC. |
| |
| * tests/local.at (AT_SKEL_CC_IF, AT_SKEL_JAVA_IF): Rename as... |
| (AT_CXX_IF, AT_JAVA_IF): these. |
| Adjust callers. |
| |
| 2018-10-21 Akim Demaille <[email protected]> |
| |
| c++: check that emplace for rvalues works |
| See the previous commit. |
| |
| * tests/local.at (AT_REQUIRE_CXX_VERSION): New. |
| * tests/types.at (api.value.type): Check emplace in C++14. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| c++: prefer a perfect forwarding version of variant's emplace |
| * data/variant.hh (emplace): In modern C++, use only a perfect |
| forwarding version. |
| And use it. |
| * doc/bison.texi: Document it. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| c++: prefer 'emplace' to 'build' |
| When we introduced variants in Bison, C++ did not have the 'emplace' |
| functions, and we chose 'build'. Let's align with modern C++ and |
| promote 'emplace' rather than 'build'. |
| |
| * data/lalr1.cc, data/variant.hh (emplace): New. |
| (build): Deprecate in favor of emplace. |
| * doc/bison.texi: Adjust. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| %printer: promote yyo rather than yyoutput |
| * doc/bison.texi: Promote yyo rather than yyoutput. |
| |
| * data/c.m4, data/glr.cc, tests/types.at, tests/calc.at, |
| tests/regression.at: Adjust. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| doc: improve the C++ section |
| * doc/bison.texi (C++ Parser): file.hh and location.hh are no longer |
| mandatory. |
| Various minor fixes. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| doc: reorder C++ sections |
| * doc/bison.texi (C++ Parser Interface): Document before semantic_type |
| and location_type. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| git: don't ignore auxiliary Texinfo files |
| As a matter of fact, I think it is wrong to gitignore generated files |
| that belong to the build tree. There should be the strict minimum, |
| and it's up to people that build in place to adjust their own |
| ~/.gitignore. |
| |
| * doc/.gitignore: here. |
| Remove files we no longer produce (thanks to texi2dvi). |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| c++: do not exhibit private macros |
| * examples/variant-11.yy: here. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| c++: don't obfuscate std::move when not needed |
| * data/lalr1.cc, data/variant.hh: Avoid macros that depend on the |
| version of C++ when not needed. |
| |
| 2018-10-20 Akim Demaille <[email protected]> |
| |
| build: add missing gnulib libs |
| Reported by Denis Excoffier. |
| |
| * lib/local.mk, src/local.mk: here. |
| |
| 2018-10-18 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-10-18 Akim Demaille <[email protected]> |
| |
| version 3.1.91 |
| * NEWS: Record release date. |
| |
| 2018-10-18 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-10-18 Akim Demaille <[email protected]> |
| |
| examples: force stack resizing with unique_ptr |
| In the previous commit we fixed a problem when the C++ stack was |
| resized. The test was using ints. Let's add a test with someone |
| quite touchy: unique_ptr |
| |
| * examples/variant-11.yy: Accept an argument, which is the number of |
| numbers to send to the parser. |
| * examples/variant-11.test: Check with many numbers. |
| |
| 2018-10-18 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix stack symbol move |
| In some casing, once we moved a stack symbol, we forget to mark the |
| source stack symbol as emptied. As a consequence, it may be destroyed |
| a second time. |
| |
| This happens when the stack has to be resized. |
| |
| * data/lalr1.cc (stack_symbol_type::stack_symbol_type): Record that |
| the source was emptied. |
| (stack_symbol_type::operator=): Likewise. |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): Force the stack |
| to be resized. Check its content. |
| |
| 2018-10-17 Akim Demaille <[email protected]> |
| |
| doc: improve the doc of the examples |
| * examples/README: here. |
| |
| 2018-10-17 Akim Demaille <[email protected]> |
| |
| reader: recognize C++ even when it's not lalr1.cc or glr.cc |
| * src/reader.c (grammar_rule_check_and_complete): If a user uses her |
| own skeleton but sets the language to C++, recognize it as C++. |
| |
| 2018-10-17 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-10-17 Akim Demaille <[email protected]> |
| |
| version 3.1.90 |
| * NEWS: Record release date. |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| examples: don't generate the position/stack files |
| * examples/variant-11.yy, examples/variant.yy: Require 3.2. |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| pacify syntax-checks |
| * lib/lbitset.c, tests/c++.at: here. |
| * cfg.mk: Add exceptions. |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| generate the default action only for C++ |
| This commit adds restrictions to what was done in |
| 01898726e27c8cf64f8fcea7f26f8ce62f3f5cf2 [1]. |
| |
| Rici Lake [2] has shown that it's risky to disable the pre-action, at |
| least now. Also, generating the default $$ = $1 action can have bad |
| effects in some cases [3]. |
| |
| The original change [1] was prompted for C++. Let's try it there |
| only, for a start. We could restrict it further to lalr1.cc with |
| variants, but we need to see in the wild how this change behaves. And |
| it is not unreasonable to expect grammar files in C++ to behave better |
| wrt types. |
| |
| See |
| [1] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00050.html |
| [2] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00061.html |
| [3] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00066.html |
| |
| * src/getargs.c: Style changes. |
| * src/reader.c (grammar_rule_check_and_complete): Complete only for |
| C++. |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-10-16 Akim Demaille <[email protected]> |
| |
| C++: let %require "3.2" disable the generation of obsolete files |
| The files stack.hh and position.hh are deprecated. Rather than |
| devoting specify %define variables to discard them (api.position.file |
| and api.stack.file), and rather than having to use special rules when |
| api.location.file is used, let's simply decide that from %require |
| "3.2" onwards, these files will not be generated. |
| |
| The only noticeable thing here is that, in order to be able to check |
| the behavior of %require "3.2", to have this version (which is still |
| 3.1-*) to accept %require "3.2". |
| |
| * src/gram.h, src/gram.c (required_version): New. |
| * src/parse-gram.y (version_check): Set it. |
| * src/output.c (prepare): Pass it m4. |
| * data/bison.m4 (b4_required_version_if): Receive it and use it. |
| * data/location.cc, data/stack.hh: Replace the api.*.file with only |
| required version comparison. |
| * tests/input.at: No longer check api.stack.file and api.position.file. |
| * NEWS, doc/bison.texi: Don't mention them. |
| Document the %require 3.2 behavior. |
| * tests/output.at: Use %require 3.2 instead. |
| |
| 2018-10-15 Akim Demaille <[email protected]> |
| |
| java: bump to Java SE 7 |
| macOS 10.14 no longer supports versions of Java earlier than 5. |
| And Java 6 will be deprecated by the end of this year. So let's move |
| our requirement to Java 7. |
| Reported by Yu Yijun. |
| https://lists.gnu.org/archive/html/bug-bison/2018-09/msg00060.html |
| Suggested by Paul Eggert and Bruno Haible. |
| http://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00094.html |
| |
| * configure.ac: Require Java 7, both compiler and runtime. |
| |
| 2018-10-15 Akim Demaille <[email protected]> |
| |
| doc: do not advertise %nterm |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html |
| |
| * NEWS, doc/bison.texi: here. |
| |
| 2018-10-14 Akim Demaille <[email protected]> |
| |
| generate the default semantic action |
| Currently, in C, the default semantic action is implemented by being |
| always run before running the actual user semantic action. As a |
| consequence, when the user action is run, $$ is already set as $1. |
| |
| In C++ with variants, we don't do that, since we cannot manipulate the |
| semantic value without knowing its exact type. When variants are |
| enabled, the only guarantee is that $$ is default contructed and ready |
| to the used. |
| |
| Some users still would like the default action to be run with |
| variants. Frank Heckenbach's parser in |
| C++17 (http://lists.gnu.org/archive/html/bug-bison/2018-04/msg00011.html) |
| provides this feature, but relying on std::variant's dynamic typing, |
| which we forbid in lalr1.cc. |
| |
| The simplest seems to be actually generating the default semantic |
| action (in all languages/skeletons). This makes the pre-action (that |
| sets $$ to $1) useless. But... maybe some users depend on this, in |
| spite of the comments that clearly warn againt this. So let's not |
| turn this off just yet. |
| |
| * src/reader.c (grammar_rule_check_and_complete): Rename as... |
| (grammar_rule_check_and_complete): this. |
| Install the default semantic action when applicable. |
| * examples/variant-11.yy, examples/variant.yy, tests/calc.at: |
| Exercise the default semantic action, even with variants. |
| |
| 2018-10-14 Jannick <[email protected]> |
| |
| xml2xhtml.xsl: add UTF-8 encoding |
| To make arrows appear nicely in the browser. Currently it is shown as |
| some garbled something in mine (Firefox). |
| |
| * data/xslt/xml2xhtml.xsl: here. |
| |
| 2018-10-14 Akim Demaille <[email protected]> |
| |
| reader: reorder some calls to separate checks from assignments |
| * src/reader.c (packgram): Move assignments to rules[ruleno] after the |
| checks on the rule. |
| |
| 2018-10-14 Akim Demaille <[email protected]> |
| |
| C++: style: add missing space before parens |
| * data/c++.m4, data/lalr1.cc, data/stack.hh, data/variant.hh, |
| * examples/variant-11.yy: here. |
| |
| 2018-10-14 Akim Demaille <[email protected]> |
| |
| gnulib: update timevar |
| See |
| https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00005.html. |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/vbitset.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/vbitset.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/lbitset.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/lbitset.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/ebitset.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/ebitset.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitsetv.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitsetv.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitsetv-print.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitsetv-print.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitset_stats.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitset_stats.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitset.c |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bitset.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/bbitset.h |
| |
| 2018-10-11 Akim Demaille <[email protected]> |
| |
| style: modernize lib/abitset.c |
| |
| 2018-10-10 Akim Demaille <[email protected]> |
| |
| style: modernize lib/abitset.h |
| |
| 2018-10-09 Akim Demaille <[email protected]> |
| |
| C++: issue a better CPP guard and Doxygen file command |
| Currently we use "<dir><api.location.file>" as \file argument, and as |
| base for the CPP guard. This is not nice when <dir> is absolute, in |
| which case it is expected that the user will use api.location.include |
| to get something nicer. If defined, use that name instead. |
| |
| * data/location.cc (b4_location_path): New. |
| Use it. |
| * tests/c++.at (Shared locations): Check the guard and Doxygen doc. |
| |
| 2018-10-09 Akim Demaille <[email protected]> |
| |
| C++: remove stray empty line |
| * data/stack.hh: here. |
| |
| 2018-10-09 Akim Demaille <[email protected]> |
| |
| doc: spell check |
| |
| 2018-10-09 Akim Demaille <[email protected]> |
| |
| doc: document api.*.file and the like |
| * doc/bison.texi (Exposing the Location Classes): New. |
| (%define Summary): Document api.location.file, api.location.include, |
| api.stack.file and api.position.file. |
| (C++ Bison Interface): stack.hh and position.hh are deprecated. |
| |
| 2018-10-07 Akim Demaille <[email protected]> |
| |
| build: add missing gnulib libs |
| * src/local.mk (LDADD): Here. |
| |
| 2018-10-07 Akim Demaille <[email protected]> |
| |
| build: let timevar be dealt with by gnulib |
| * lib/local.mk (lib_libbison_a_SOURCES): Remove timevar. |
| |
| 2018-10-07 Akim Demaille <[email protected]> |
| |
| build: fix distcheck |
| Now that distcheck no longer fails (see previous commit), let's |
| address the shortcomings. |
| |
| * Makefile.am (CLEANDIRS, clean-local): New. |
| * doc/local.mk, examples/calc++/local.mk, examples/local.mk, |
| * examples/mfcalc/local.mk, examples/rpcalc/local.mk, |
| * src/local.mk |
| (CLEANDIRS): Get rid of Apple's *.dSYM directories. |
| (CLEANFILES): Get rid of *.output files. |
| * examples/variant-11.yy, examples/variant.yy: Don't generate |
| any of the auxiliary files (location.hh and the like). |
| |
| 2018-10-07 Akim Demaille <[email protected]> |
| |
| README: work around a nasty behavior of gettext |
| `make update-po` runs: |
| |
| package_gnu="$(PACKAGE_GNU)"; \ |
| test -n "$$package_gnu" || { \ |
| if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ |
| LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \ |
| -size -10000000c -exec grep 'GNU @PACKAGE@' \ |
| /dev/null '{}' ';' 2>/dev/null; \ |
| else \ |
| LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ |
| fi; \ |
| } | grep -v 'libtool:' >/dev/null; then \ |
| package_gnu=yes; \ |
| else \ |
| package_gnu=no; \ |
| fi; \ |
| }; \ |
| |
| and based on the result, put GNU or not in the following line from |
| bison.pot: |
| |
| # This file is distributed under the same license as the GNU bison package. |
| |
| It turns out that in my environment some log files had the 'GNU bison' |
| string (note the lower case), but in distcheck, these files are no |
| longer visible, so the generate bison.pot was different, and distcheck |
| failed because we try to update bison.pot, which is read only in |
| distcheck. |
| |
| The heuristics should look accept 'GNU Bison', not just 'GNU bison'. |
| But let's please it to make sure we have our 'GNU'. |
| |
| * README: Mention 'GNU bison'. |
| |
| 2018-10-07 Akim Demaille <[email protected]> |
| |
| NEWS: document api.*.file changes |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: provide a means to control how location.hh is included |
| Users may want to generate the location file elsewhere, say |
| $top_srcdir/include/ast/location.hh. Yet, we should not generate |
| `#include "$top_srcdir/include/ast/location.hh"` but probably |
| something like `#include <ast/location.hh>`, or `#include |
| "ast/location.hh", or `#include <location.hh>`. It entirely depends |
| on the compiler flags (-I/-isystem) that are used. Bison cannot guess |
| what is expected, so let's give the user a means to tell how the |
| location file should be included. |
| |
| * data/location.cc (b4_location_file): New. |
| * data/glr.cc, data/lalr1.cc: Use it. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: support absolute api.location.file names |
| In the case a user wants to create location.hh elsewhere, it can be |
| helpful to define api.location.file to some possibly absolute path |
| such as -Dapi.location.file='"$(top_srcdir)/include/ast/location.hh"'. |
| Currently this does not work with `-o foo/parser.cc`, as we join foo/ |
| and $(top_srcdir) together, the latter starting with slash. |
| |
| We should not try to do that in m4, manipulating file names is quite |
| complex when you through Windows file name in. Let m4 delegate this |
| to gnulib. |
| |
| * src/scan-skel.l (at_output): Accept up to two arguments. |
| * data/bison.m4 (b4_output): Adjust. |
| * tests/skeletons.at (Fatal errors but M4 continues producing output): |
| Adjust to keep the error. |
| |
| * data/location.cc, data/stack.hh: Leave the concatenation to @output. |
| * tests/output.at: Exercise api.location.file with an absolute path. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: when api.location.file is defined, don't generate stack.hh |
| Make it easier to have fewer files. |
| |
| * data/stack.hh: Don't generate stack.hh when api.location.file is |
| specified. |
| * tests/calc++.at, tests/output.at: Adjust tests. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: make position.hh completely useless |
| Let's put the definition of position into location.hh, there's no real |
| value in keeping them separate: they are small, and share the same |
| requirements. |
| |
| To help users transition to this new model, still generate position.hh |
| by default, but as a simple include to location.hh. |
| |
| * data/location.cc (api.position.file): Accept only 'none' as possible |
| value. |
| (position.hh): Make it a stub. |
| (location.hh): Adjust. |
| (b4_position_define): Merge into... |
| (b4_location_define): this. |
| * data/glr.cc, data/lalr1.cc, tests/input.at, tests/output.at: Adjust. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: make stack.hh completely useless |
| Let's completely deprecate stack.hh. Don't provide a means to give it |
| a new name, allow only its removal. |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00151.html |
| and https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00182.html. |
| |
| * data/stack.hh: Reduce stack.hh to a simple comment explaining how to |
| get rid of it. |
| * data/lalr1.cc: Adjust |
| * tests/input.at (%define file variables): Adjust. |
| * tests/output.at: Remove cases where stack.hh was removed. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: add support for api.position.file and api.location.file |
| * data/location.cc: Sort includes. |
| (b4_position_file, b4_location_file): New. |
| When there's a file for locations but not for positions, include the |
| definition of position in the location file. |
| * data/lalr1.cc (b4_shared_declarations): Include the |
| position/location file when it exists. |
| Otherwise, define the class. |
| * data/glr.cc: Likewise. |
| * tests/input.at (%define file variables): Check them. |
| * tests/output.at (C++ output): Check various cases with |
| api.position.file and api.location.file. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: provide control over the stack.hh file name |
| It was not a good idea to generate the file stack.hh. It never was. |
| But now we have to deal with backward compatibility: if we stop |
| generating it, the build system of some build system will probably |
| break. |
| |
| So offer the user a means to (i) decide what the name of the output |
| file should be, and (ii) not generate this file at all (its content |
| will be inline where the parser is defined). |
| |
| * data/lalr1.cc (b4_percent_define_check_file_complain) |
| (b4_percent_define_check_file): New. |
| * data/stack.hh: Generate the file only if api.stack.file is not |
| empty. |
| In that case, use it as file name. |
| * data/lalr1.cc: Adjust to include the right file, or to include |
| the definition of stack. |
| * tests/calc.at, tests/output.at: Exercise api.stack.file. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| tests: c++: don't fuse prefix and namespace |
| They are not the same concept. It appears that we still consider that |
| api.prefix is the default for api.namespace. We should stop that. |
| |
| * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): |
| Separate namespace and prefix. |
| Adjust dependencies. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| style: tests: factor file extension computations |
| * tests/local.at (AT_LANG_HDR): New. |
| * tests/calc.at, tests/headers.at, tests/synclines.at: Use it, and |
| AT_LANG_EXT. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| c++: style changes |
| * data/lalr1.cc: Formatting changes. |
| Remove duplicate definition of YY_NULLPTR. |
| Add quotes to help Emacs track balanced parens. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| lib: introduce xpath_join |
| * lib/path-join.h, lib/path-join.c: New. |
| * lib/local.mk: Adjust. |
| * src/output.c: Use it. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| CI: travis finally knows about llvm-toolchain-trusty-7 |
| See https://github.com/travis-ci/apt-source-safelist/pull/392. |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-10-06 Akim Demaille <[email protected]> |
| |
| doc: restore spello made on purpose |
| |
| 2018-10-05 Akim Demaille <[email protected]> |
| |
| THANKS: add Josh Soref |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: whether |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: typedef |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: troubleshooting |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: transparent |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: translated |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: transitions |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: transition |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: tracking |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: suppress |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: succesful |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: storage |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: safely |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: responsibility |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: resources |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: releases |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: reduction |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: reachable |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: rawtoknumflag |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: possibly |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: persistent |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: outputting |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: otherwise |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: occurrence |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: namespace |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: minimal |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: invocations |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: initialize |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: incorrectly |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: included |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: illicit |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: handling |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: gratuitously |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: grammar |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: generation |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: generate |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: forewarn |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: fnchange |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: family |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: extensions |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: enum |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: diagnostics |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: determined |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: detailed |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: descriptive |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: definitions |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: declaration |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: corrupted |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: consuming |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: consistently |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: conflicts |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: concatenation |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: complete |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: compatibility |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: comparison |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: combination |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: characters |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: builddir |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: assoc |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: appropriate |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: alignment |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: aggregate |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: adjust |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: additional |
| |
| 2018-10-05 Josh Soref <[email protected]> |
| |
| spelling: accurately |
| |
| 2018-10-05 Akim Demaille <[email protected]> |
| |
| README-hacking: details about make check-local |
| |
| 2018-10-05 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-10-04 Akim Demaille <[email protected]> |
| |
| main: fix error message for missing argument |
| * src/getargs.c (getargs): Don't display any argv other that argv[0] |
| when reporting a missing argument. |
| * tests/bison.in: Neutralize path differences in stderr. |
| * tests/input.at (Invalid number of arguments): New. |
| |
| 2018-09-30 Akim Demaille <[email protected]> |
| |
| gnulib: move timevar to it |
| * lib/timevar.c, lib/timevar.h, m4/timevar.m4: Remove. |
| * gnulib: Update. |
| * configure.ac: Adjust. |
| * lib/timevar.def: Use lower case for the timevvars. |
| Adjust dependencies. |
| |
| 2018-09-29 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * data/glr.cc, data/lalr1.cc: here. |
| |
| 2018-09-29 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-09-29 Paul Eggert <[email protected]> |
| |
| getargs: use LC_MESSAGES trick only on glibc |
| * src/getargs.c (usage): Rely on setlocale (LC_MESSAGES, NULL) |
| trick only on glibc, as POSIX does not specify the output |
| of setlocale in this case, and the Gnulib localename module |
| source code indicates that the trick works only on glibc. |
| |
| 2018-09-29 Paul Eggert <[email protected]> |
| |
| uniqstr: avoid need for VLAs |
| C11 no longer requires support for variable-length arrays, and |
| VS2015 does not have them. Redo UNIQSTR_CONCAT to use a method |
| that is simpler and better anyway. |
| * src/uniqstr.c (uniqstr_vsprintf): Remove; no longer needed. |
| * src/uniqstr.h (UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): |
| * src/uniqstr.c (uniqstr_concat): New function. |
| * src/uniqstr.h (UNIQSTR_CONCAT): Use it instead of using |
| uniqstr_vsprintf. |
| |
| 2018-09-26 Akim Demaille <[email protected]> |
| |
| doc: clean up the C++ section |
| * doc/bison.texi: Minor fixes in typography. |
| It is no longer require to pass --defines for C++ (it was addressed |
| long ago). |
| No longer refer to the `variant` define variable, it was replaced by |
| `api.value.type variant`. |
| Prefer nullptr to 0 for the null pointer. |
| Use deftypeop for constructors. |
| (Complete Symbols): Give the expected signature of yylex. |
| Don't document the symbol_type constructors, as we want users to focus |
| on make_TOKEN. |
| Also show the case without locations. |
| |
| 2018-09-26 Akim Demaille <[email protected]> |
| |
| CI: fixes for clang and asan |
| Bison's test 464 (Syntax error as exception) fails on the CI. |
| Do not use clang with asan on Ubuntu's libc++. |
| https://bugs.llvm.org/show_bug.cgi?id=17379 |
| |
| * .travis.yml (Clang 7 libc++ and ASAN): New. |
| (Clang 6 -O3 and libc++): Really use libc++. |
| (Clang 5): Don't use libc++, nor asan (does not work either, same |
| reason). |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in muscle-tab.c |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| style: remove useless parens |
| * data/bison.m4, data/glr.c, data/glr.cc, data/lalr1.cc, |
| * data/lalr1.java, data/location.cc, data/yacc.c: Call b4_output_end |
| without parens. |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| c++: fix warning message for automove |
| * src/scan-code.l: Remove 'enabled'. |
| Use only $k (numeric), even for named references, for clarity. |
| * tests/c++.at: Adjust expectations. |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| style: minor refactoring |
| * data/bison.m4: Formatting changes. |
| * src/scan-code.l: Avoid loops, prefer standard string functions. |
| (find_prefix_end): Be const correct. |
| Avoid useless intermediate variables. |
| (variant_add): Be const correct. |
| (parse_ref): Prefer variable definitions to assignments. |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| CI: don't exit |
| * .travis.yml: Prefer `false` to `exit`, as it completely ends the |
| script (so we don't get the logs). |
| |
| 2018-09-24 Akim Demaille <[email protected]> |
| |
| CI: really use Clang 3.3 and 3.4, not 5.0 |
| * .travis.yml: Don't define CC/CXX, it does not work. |
| Use `[[...]]` instead of `[...]`. |
| Show the compiler versions. |
| (Clang 3.3, Clang 3.4): Specify the path to avoid using |
| /usr/local/clang-5.0.0/bin's clang. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| CI: more compiler configurations |
| * .travis.yml (GCC 8): Use sanitizers. |
| (Clang 5 -O3): Remove, replaced by... |
| (Clang 7 ASAN and libc++, Clang 6 -O3 and libc++): New. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| build: rename and simplify the -std checks for C++ |
| Too much code duplication. |
| |
| * m4/bison-cxx-std.m4: s/BISON_CXX_COMPILE_STDCXX/BISON_CXXSTD/. |
| (BISON_CXXSTD): New. |
| * configure.ac: Use it. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| build: check for C++98 and 03 like the others |
| * m4/bison-cxx-std.m4 (BISON_CXX_COMPILE_STDCXX_98) |
| (BISON_CXX_COMPILE_STDCXX_03): New. |
| * configure.ac: Use them. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| build: use our own version of ax_check_link_flag |
| The message on configure is misleading: |
| |
| checking whether the linker accepts -std=c++11... yes |
| checking whether the linker accepts -std=c++14... yes |
| checking whether the linker accepts -std=c++17... no |
| |
| It is the compiler that we check, not just the linker. |
| |
| * m4/ax_check_link_flag.m4: Remove. |
| * m4/bison-check-compiler-flag.m4: New. |
| * m4/bison-cxx-std.m4: Use it. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| build: fix Autoconf macros to check for C++ standard flags |
| * m4/bison-cxx-std.m4: Since now we link the program, we need a |
| program: main was missing and linking was failing. |
| |
| 2018-09-23 Akim Demaille <[email protected]> |
| |
| tests: fix a memory leak |
| This has been bugging me for while. I was hard to reproduce: it |
| worked only on GNU/Linux, probably because libc++ implements the small |
| string optimization, while libstdc++ did not and actually allocated on |
| the heap for this small string. |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00110.html. |
| |
| * tests/types.at (api.value.type): Do not provide a semantic value to |
| EOF. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| doc: work around Flex's use of 'register' |
| The CI uses an old version of Flex. |
| See 65fa634cdcfc5cf59b8b074670f488bba4df57cd. |
| |
| * doc/bison.texi (calc++/scanner.ll): Here. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: don't declare getrusage if we don't use it |
| This fails on MinGW. |
| Reported by Simon Sobisch. |
| http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00058.html |
| |
| * lib/timevar.c: Don't provide default prototypes for functions |
| we don't use. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: get rid of a useless macro |
| * lib/timevar.h (timevar_report): Rename as... |
| (timevar_enabled): this. |
| * lib/timevar.c (TIMEVAR_ENABLE): Remove. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: introduce and use get_current_time |
| * lib/timevar.c: here. |
| Remove useless prototypes. |
| (timevar_accumulate): Be const correct. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: rename get_time as set_to_current_time |
| * lib/timevar.c: here. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: reduce scopes |
| * lib/timevar.c: here. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: document in the header, not in the implementation |
| * lib/timevar.c: Move documentation from here... |
| * lib/timevar.h: to there. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: remove useless 'extern' for prototypes |
| * lib/timevar.h, lib/timevar.c: here. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: rename init_timevar as timevar_init |
| * lib/timevar.h, lib/timevar.c: here. |
| * src/main.c: Adjust. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: we don't care about backward compatibility |
| * lib/timevar.h, lib/timevar.c (get_run_time, print_time): Remove. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: prefer #elif |
| * lib/timevar.c: Use #if/#elif to be clearer about mutually exclusive |
| cases. |
| Indent CPP nested directives. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: assume ANSI C |
| Suggested by Bruno Haible. |
| https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00102.html |
| |
| * lib/timevar.c: Wow... This was still KnR C! |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| timevar: remove remains of GCC |
| * lib/timevar.h, lib/timevar.c: Rename the header guard. |
| Get rid of parts meant for GCC only. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| news: c++: move semantics |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| c++: issue a warning with a value is moved several times |
| Suggested by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00022.html |
| |
| * src/scan-code.l (parse_ref): Check multiple occurrences of rhs |
| values. |
| * tests/c++.at (Multiple occurrences of $n and api.value.automove): New. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| c++: introduce api.value.automove |
| Based on work by Frank Heckenbach. |
| See http://lists.gnu.org/archive/html/bug-bison/2018-04/msg00000.html |
| and http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00019.html. |
| |
| * data/lalr1.cc (b4_rhs_value): Use YY_MOVE api.rhs.automove is set. |
| * doc/bison.texi (%define Summary): Document api.rhs.automove. |
| * examples/variant-11.yy: Use it. |
| |
| * tests/local.at (AT_AUTOMOVE_IF): New. |
| * tests/c++.at (Variants): Check move semantics. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| tests: c++: use a custom string type |
| The forthcoming automove feature, to be properly checked, will require |
| that we can rely on the value of a moved-from string, which is not |
| something the C++ standard guarantees. So introduce our own wrapper. |
| |
| Suggested by Frank Heckenbach. |
| https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00111.html |
| |
| * tests/c++.at (Variants): Introduce and use a new 'string' class. |
| |
| 2018-09-22 Akim Demaille <[email protected]> |
| |
| tests: prepare a test for automove |
| The 'Variants' tests are well suited to check support for move, and in |
| particular for the forthcoming automove feature. But the tests were |
| written to show the best practice in C++98, using swap: |
| |
| list "," item { std::swap ($$, $1); $$.push_back ($3); } |
| |
| This cannot work with std::move. So, make this example simpler, based |
| on regular assignment instead of swap, which is a regression for |
| C++98 (as the new traces show), but will be an improvement for modern |
| C++ with automove. |
| |
| * tests/c++.at (Variants): Stop using swap. |
| We don't generate a header file, so remove the 'require' code section. |
| Adjust expectations. |
| |
| 2018-09-20 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in gram.c |
| * src/gram.c: here. |
| |
| 2018-09-20 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in reduce.c |
| * src/reduce.c: Here. |
| |
| 2018-09-20 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-09-20 Akim Demaille <[email protected]> |
| |
| build: work around ICC's limitations |
| Several types of failures. First, unable to pass the file name |
| properly to the linker. |
| |
| ./synclines.at:416: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o \"\\\"\" \"\\\"\".c $LIBS |
| stderr: |
| ld: cannot open output file "/"": No such file or directory |
| stdout: |
| |
| Unable to save under such a file name. |
| |
| ./synclines.at:421: $CXX $CXXFLAGS $CPPFLAGS -c $LDFLAGS -o \"\\\"\" \"\\\"\".cc $LIBS |
| stderr: |
| error: can't open file "/"" for write |
| compilation aborted for "\"".cc (code 1) |
| |
| Spurious output because of warning flags is failed to reject as an |
| error during configure: |
| |
| ./headers.at:343: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx || |
| exit 77 |
| --- /dev/null 2018-09-18 21:21:37.745649000 +0000 |
| +++ /home/travis/build/akimd/bison/tests/testsuite.dir/at-groups/222/stderr 2018-09-18 21:28:17.291919519 +0000 |
| @@ -0,0 +1,7 @@ |
| +icpc: command line warning #10006: ignoring unknown option '-Wcast-align' |
| +icpc: command line warning #10006: ignoring unknown option '-fparse-all-comments' |
| +icpc: command line warning #10006: ignoring unknown option '-Wdocumentation' |
| +icpc: command line warning #10006: ignoring unknown option '-Wnull-dereference' |
| +icpc: command line warning #10006: ignoring unknown option '-Wnoexcept' |
| +icpc: command line warning #10006: ignoring unknown option '-fno-color-diagnostics' |
| +icpc: command line warning #10006: ignoring unknown option '-Wno-keyword-macro' |
| stdout: |
| |
| * tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): Also ignore |
| stderr, as with ICC we get |
| * tests/synclines.at (syncline escapes): Don't link the output. |
| |
| 2018-09-19 Akim Demaille <[email protected]> |
| |
| doc: fix typo |
| Introduced in the previous commit. |
| |
| * doc/bison.texi: here. |
| |
| 2018-09-19 Akim Demaille <[email protected]> |
| |
| style: use midrule only, not mid-rule |
| The code was already using midrule only, never mid_rule. This is |
| simpler to remember, and matches a similar change we made from |
| look-ahead to lookahead. |
| |
| * NEWS, doc/bison.texi, src/reader.c, src/scan-code.h, src/scan-code.l |
| * tests/actions.at, tests/c++.at, tests/existing.at: here. |
| |
| 2018-09-19 Akim Demaille <[email protected]> |
| |
| style: use _foo for private macros, not foo_ |
| We use both styles, let's stick to a single one. Autoconf uses the |
| prefix one, let's do the same. |
| |
| * data/bison.m4, data/c++.m4, data/c-like.m4, data/lalr1.cc, |
| * data/variant.hh, data/yacc.c: Rename all the b4_*_ macros |
| as _b4_*. |
| |
| 2018-09-19 Akim Demaille <[email protected]> |
| |
| build: don't accept a broken standard lib for C++ |
| On the CI, we had failures such as: |
| |
| ./c++.at:401: $PREPARSER ./list |
| stderr: |
| ./list: error while loading shared libraries: libc++.so.1: |
| cannot open shared object file: No such file or directory |
| |
| because we accepted `-std=c++ -stdlib=libc++` although libc++ is not |
| installed on the machine. |
| |
| * m4/ax_check_compile_flag.m4 (AX_CHECK_COMPILE_FLAG): Rewrite as... |
| * m4/bison-check-compile-flag.m4 (BISON_CHECK_COMPILE_FLAG): this, so |
| that we use AC_LINK_IFELSE to check the compiler (and its std lib) |
| instead of AC_COMPILE_IFELSE. |
| |
| 2018-09-18 Paul Eggert <[email protected]> |
| |
| doc: document older compiler issues |
| * doc/bison.texi (Compiler Requirements for GLR): |
| Rename from Compiler Requirements. |
| (I can't build Bison): Add FAQ for older compilers. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| glr.c: work around ICC limitations |
| The CI is littered with |
| |
| # -*- compilation -*- |
| 423. regression.at:907: testing Dancer %glr-parser ... |
| ./regression.at:907: bison -fno-caret -o dancer.c dancer.y |
| ./regression.at:907: $BISON_C_WORKS |
| stderr: |
| stdout: |
| ./regression.at:907: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o dancer dancer.c $LIBS |
| stderr: |
| icc: command line warning #10006: ignoring unknown option '-Wcast-align' |
| icc: command line warning #10006: ignoring unknown option '-fparse-all-comments' |
| icc: command line warning #10006: ignoring unknown option '-Wdocumentation' |
| icc: command line warning #10006: ignoring unknown option '-Wnull-dereference' |
| icc: command line warning #10006: ignoring unknown option '-Wbad-function-cast' |
| icc: command line warning #10006: ignoring unknown option '-fno-color-diagnostics' |
| icc: command line warning #10006: ignoring unknown option '-Wno-keyword-macro' |
| dancer.c(755): error #1628: function declared with "noreturn" does return |
| } |
| ^ |
| |
| dancer.c(761): error #1628: function declared with "noreturn" does return |
| } |
| ^ |
| |
| compilation aborted for dancer.c (code 2) |
| |
| ICC sees that `longjmp(buf, 1);` does not return, it sees that |
| `abort();` does not either, but fails to see it for |
| `longjmp(buf, 1); abort();` |
| |
| * data/glr.c (YYLONGJMP): Be even clearer on the fact this does not |
| return. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| TODO: more |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: change strategy to pass CXXFLAGS and the like |
| Putting them in the env is useless. We don't want to pass |
| `CPPFLAGS="$CPPFLAGS"` to configure, as it means "set it to nothing" |
| when $CPPFLAGS is not set, which is not what we want. |
| |
| This correctly started to use libc++, but it is not installed on the |
| Ubuntu. We will see later if we can use it. |
| |
| * .travis.yml: Define CONFIGUREFLAGS, and pass it to configure. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: also use GCC 4.7 and 4.8 |
| * .travis.yml (matrix): here. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: name the items of the matrix |
| * .travis.yml: here. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: also check with ICC |
| * build-aux/install-icc.sh: New. |
| * .travis.yml (icc): New. |
| Use -k to get as many errors as possible from the start. |
| * src/complain.c (warnings_types): Use a more precise type. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: be sure to exit on failures |
| a807cfa6eb1a5362ead0b7c99bdc8fd2f4f896da completely broke the whole |
| point of having a CI: we always exit with success! |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| build: strengthen the C++ standard flag test |
| On the CI, we have this spurious failure with clang 3.9 with |
| -std=c++17: |
| |
| In file included from list.y:23: |
| In file included from /usr/include/c++/4.8/iostream:39: |
| In file included from /usr/include/c++/4.8/ostream:38: |
| In file included from /usr/include/c++/4.8/ios:42: |
| In file included from /usr/include/c++/4.8/bits/ios_base.h:41: |
| In file included from /usr/include/c++/4.8/bits/locale_classes.h:40: |
| In file included from /usr/include/c++/4.8/string:52: |
| In file included from /usr/include/c++/4.8/bits/basic_string.h:2815: |
| In file included from /usr/include/c++/4.8/ext/string_conversions.h:43: |
| /usr/include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace |
| using ::gets; |
| ~~^ |
| |
| This shows that our test, based on gl_WARN_ADD, is a joke. We have to |
| really check for at least a bit of C++. |
| |
| * m4/ax_check_compile_flag.m4, m4/bison-cxx-std.m4: New. |
| * configure.ac: Use them to make sure the compiler actually works. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| tests: fix memory leak |
| This was reported by ASAN on the CI. |
| |
| * tests/types.at (api.value.type): Don't set a semantic value to EOF. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| glr.c: prefer true/false to 1/0 in C++ |
| * data/glr.c: here. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| doc: work around Flex's use of 'register' |
| The CI uses an old version of Flex. |
| |
| * doc/bison.texi (calc++/scanner.ll): Here. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| tests: fight G++ warnings about zero as null pointer constant |
| In C++ pre C++11 it is standard practice to use 0 for the null pointer. |
| But GCC pre 8 -std=c++98 with -Wzero-as-null-pointer-constant warns about |
| this. |
| |
| So disable -Wzero-as-null-pointer-constant when compiling C++ pre 11. |
| Let's do this in AT_DATA_SOURCE_PROLOGUE (which is pasted on top of |
| all the test grammar files). Unfortunately, that shifts all the |
| locations in the expected error messages, which would be too noisy. |
| Instead, let's introduce testsuite.h, which can vary in length, and |
| include it in AT_DATA_SOURCE_PROLOGUE. |
| |
| * tests/testsuite.h: New. |
| Disable -Wzero-as-null-pointer-constant's warning with GCC pre 8, |
| C++ pre 11. |
| * tests/local.at (AT_DATA_SOURCE_PROLOGUE): Use it. |
| * tests/atlocal.in (CPPFLAGS): Find it. |
| * tests/local.mk: Ship it. |
| * data/c.m4 (YY_NULLPTR): Prefer ((void*)0) to 0 in C. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: make sure `git describe` works |
| For some reasons, the checkout on travis may not have any tags, so |
| `git describe` fails, so bootstrap fails. |
| |
| * .travis.yml: If git describe fails, install some tag. |
| |
| 2018-09-18 Akim Demaille <[email protected]> |
| |
| CI: install Doxygen |
| * .travis.yml: here, so that its tests are not skipped. |
| Remove valgrind: it's too expensive on the CI, and asan does the job. |
| |
| 2018-09-16 Akim Demaille <[email protected]> |
| |
| style: prefer %D% in Automake files |
| * tests/local.mk: Prefer %D%/ to tests/. |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in complain.c |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in tables.c |
| * src/tables.c: here. |
| * src/state.h: Formatting changes. |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in graphviz.c |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in LR0.c |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| style: reduce scopes in print_graph.c |
| * src/print_graph.c: here. |
| |
| 2018-09-15 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: No changes in the output. |
| |
| 2018-09-13 Akim Demaille <[email protected]> |
| |
| tests: run the C++ tests on all the available standards |
| This is much of course more efficient than in the matrix of the CI (or |
| on our own machines), but a bit more tedious. |
| |
| * configure.ac (CXX03_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS) |
| (CXX17_CXXFLAGS, CXX2A_CXXFLAGS, STDCXX_FLAGS): New. |
| * tests/atlocal.in: Receive them. |
| * tests/local.at (AT_FOR_EACH_CXX): New. |
| * tests/c++.at: Use AT_FOR_EACH_CXX. |
| |
| 2018-09-13 Akim Demaille <[email protected]> |
| |
| tests: allow to override variables with envvars |
| * tests/atlocal.in: Allow the user to change interesting variables |
| (CFLAGS, CXXFLAGS, etc.). |
| |
| 2018-09-13 Akim Demaille <[email protected]> |
| |
| lalr1.cc: modern C++ no longer needs an assignment for symbols |
| Reported by Frank Heckenbach. |
| http://lists.gnu.org/archive/html/bug-bison/2018-03/msg00002.html |
| |
| Actually the assignment operator should never be needed: the C++98 |
| requirements for vector::push_back is CopyInsertable, which does not require |
| an assignment operator. However, libstdc++ shipped with GCC up to (and |
| including) 6 uses the assignment operator (which affects Clang on top of |
| libstdc++, but also ICC). So let's keep it for legacy C++. |
| |
| See https://gcc.godbolt.org/z/q0XXmC. |
| |
| * data/lalr1.cc (stack_symbol_type::operator=): Remove. |
| * data/c++.m4 (basic_symbol::operator=): Ditto. |
| * tests/c++.at (C++ Variant-based Symbols Unit Tests): Adjust. |
| |
| 2018-09-13 Akim Demaille <[email protected]> |
| |
| lalr1.cc: support move semantics |
| Modern C++ (i.e., C++11 and later) introduced "move only" types: types such |
| as std::unique_ptr<T> that can never be duplicated. They must never be |
| copied (by assignments and constructors), they must be "moved". The |
| implementation of lalr1.cc used to copy symbols (including their semantic |
| values). This commit ensures that values are only moved in modern C++, yet |
| remain compatible with C++98/C++03. |
| |
| Suggested by Frank Heckenbach, who provided a full implementation on |
| top of C++17's std::variant. |
| See http://lists.gnu.org/archive/html/bug-bison/2018-03/msg00002.html, |
| and https://lists.gnu.org/archive/html/bison-patches/2018-04/msg00002.html. |
| |
| Symbols (terminal/non terminal) are handled by several functions that used |
| to take const-refs, which resulted eventually in a copy pushed on the stack. |
| With modern C++ (C++11 and later) the callers must use std::move, and the |
| callees must take their arguments as rvalue refs (foo&&). In order to avoid |
| duplicating these functions to support both legacy C++ and modern C++, let's |
| introduce macros (YY_MOVE, YY_RVREF, etc.) that rely on copy-semantics for |
| C++98/03, and move-semantics for modern C++. |
| |
| That's easy for inner types, when the parser's functions pass arguments to |
| each other. Functions facing the user (make_NUMBER, make_STRING, etc.) |
| should support both rvalue-refs (for instance to support move-only types: |
| make_INT (std::make_unique<int> (1))), and lvalue-refs (so that we can pass |
| a variable: make_INT (my_int)). To avoid the multiplication of the |
| signatures (there is also the location), let's take the argument by value. |
| |
| See: |
| https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00024.html. |
| |
| * data/c++.m4 (b4_cxx_portability): New. |
| (basic_symbol): In C++11, replace copy-ctors with move-ctors. |
| In C++11, replace copies with moves. |
| * data/lalr1.cc (stack_symbol_type, yypush_): Likewise. |
| Use YY_MOVE to avoid useless copies. |
| * data/variant.hh (variant): Support move-semantics. |
| (make_SYMBOL): In C++11, in order to support both read-only lvalues, |
| and rvalues, take the argument as a copy. |
| * data/stack.hh (yypush_): Use rvalue-refs in C++11. |
| * tests/c++.at: Use move semantics. |
| |
| * tests/headers.at: Adjust to the new macros (YY_MOVE, etc.). |
| |
| * configure.ac (CXX98_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS) |
| (CXX17_CXXFLAGS, ENABLE_CXX11): New. |
| * tests/atlocal.in: Receive them. |
| |
| * examples/variant.yy: Don't define things in std. |
| * examples/variant-11.test, examples/variant-11.yy: New. |
| Check the support of move-only types. |
| * examples/README, examples/local.mk: Adjust. |
| |
| 2018-09-12 Akim Demaille <[email protected]> |
| |
| tests: factor the definition of full compilation |
| * tests/local.at (AT_LANG_EXT): New. |
| (AT_FULL_COMPILE): Simplify. |
| |
| 2018-09-10 Akim Demaille <[email protected]> |
| |
| CI: use clang with libc++ |
| GCC uses libstdc++. Let's also check libc++. |
| |
| * .travis.yml: here. |
| |
| 2018-09-10 Akim Demaille <[email protected]> |
| |
| CI: use address sanitizer |
| * .travis.yml (matrix): Use the latest (available) clang with asan. |
| |
| 2018-09-10 Akim Demaille <[email protected]> |
| |
| CI: sort the matrix in reverse-chronological |
| There are only three builds at a time: show the result of modern |
| compilers first. |
| |
| * .travis.yml (matrix): Sort in reverse-chronological. |
| |
| 2018-09-10 Akim Demaille <[email protected]> |
| |
| build: use -fparse-all-comments with -Wdocumentation |
| Clang checks only /** ... */ comments without this flag. |
| |
| * configure.ac (warn_common): Also check -fparse-all-comments. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| TODO: minor updates |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| build: fix support for --disable-dependency-tracking |
| Reported by Juan Manuel Guerrero. |
| https://lists.gnu.org/archive/html/bug-bison/2014-07/msg00000.html. |
| |
| * examples/local.mk (%D%/extracted.stamp): Make sure the output |
| directory exists. |
| * examples/extexi (process): Likewise. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| configure.ac: fix definition of NO_EXCEPTIONS_CXXFLAGS |
| * configure.ac: Always define it, not just when --enable-gcc-warnings |
| is passed. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| skeletons: style/comment changes |
| * data/c++.m4, data/c.m4, data/glr.c: Here. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| variant: indent better the generated code |
| * data/variant.hh (b4_basic_symbol_constructor_declare) |
| (b4_basic_symbol_constructor_define): here. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| lalr1.cc: don't generate useless constructors when variant is used |
| This generates less code, which is nicer to read, but also takes less |
| chances with compilers such as G++ 4.8 that are too strict and check |
| "dead code" (templated code that is not instantiated). |
| |
| * data/c++.m4 (b4_symbol_type_declare, b4_symbol_type_define): When |
| variants are used, don't generate code meant for non variants. |
| |
| 2018-09-09 Akim Demaille <[email protected]> |
| |
| CI: Clang 6.0 is not available |
| But Clang 3.3 and 3.4 are. |
| |
| * .travis.yml (addons): Remove, it appears to be ignore if the matrix |
| also defines it. |
| (matrix): Update. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| build: work around warnings in Flex |
| See ea0db44fedc8d5cbdc5c3180bef0285d7ae83803. We also need to disable |
| the warning in the examples (but don't want to clutter the |
| documentation with such details). |
| |
| * doc/bison.texi (scanner.ll): Disable Clang's -Wdocumentation. |
| While at it, hide the other kludges. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| CI: more compiler configurations |
| * .travis.yml: here. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| configure: reveal the name of the Valgrind suppression file we use |
| * configure.ac: here. |
| * build-aux/Linux.valgrind (libstdcxx_init): New. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| build: work around warnings in Flex 2.5.35 |
| That's the version on Ubuntu Precise. |
| See also 1dac131ec45ffa1e382319a94640c65bd10f6aa5. |
| |
| * src/flex-scanner.h: Disable -Wdocumentation. |
| * doc/bison.texi: Turn off a warning triggered by Flex 2.6.4. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| CI: show the version of the tools we use |
| We have failures on Flex output, which are probably related to an old |
| release. Let's check. |
| |
| In file included from src/scan-code-c.c:3: |
| src/scan-code.c:2198:21: error: empty paragraph passed to '@param' command |
| [-Werror,-Wdocumentation] |
| * @param line_number |
| ~~~~~~~~~~~~~~~~~^ |
| |
| * .travis.yml: here. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| CI: run more maintainer tests and show the logs |
| Running all these tests might be overkill: it is very long, and don't |
| need full portability checks. Besides, some tests under Valgrind are |
| too slow and get killed by the CI (timeout of 10min without output). |
| |
| * .travis.yml: here. |
| |
| 2018-09-08 Akim Demaille <[email protected]> |
| |
| CI: enable compiler warnings |
| * .travis.yml: here. |
| * README-hacking: We no longer aim at K&R C. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| build: work around GCC warnings on Flex code |
| See ef98967ada3c1cd48c177d7349e65a709bb49b97. |
| |
| * src/flex-scanner.h: Disable -Wnull-dereference for GCC 6+. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| tests: fix target naming convention |
| We have some maintainer-check-foo and some maintainer-foo-check. Keep |
| only the former. |
| |
| * tests/local.mk (maintainer-push-check, maintainer-xml-check) |
| (maintainer-release-check): Rename as... |
| (maintainer-check-push, maintainer-check-xml) |
| (maintainer-check-release): these. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| tests: fix variable naming convention |
| Most of our variables for C++ flags are named FOO_CXXFLAGS, not |
| CXXFLAGS_FOO. |
| |
| * configure.ac, tests/atlocal.in, tests/calc.at |
| (NO_EXCEPTIONS_CXXFLAGS): Rename as... |
| (CXXFLAGS_NO_EXCEPTIONS): this. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| tests: fix maintainer-check-g++ make recipe |
| Clang++ issues warnings when it's used to compile C. This make target |
| is precisely checking whether we can do that. |
| |
| * configure.ac (NO_DEPRECATED_CXXFLAGS): New. |
| * tests/atlocal.in: Use it. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| tests: fix maintainer-check-valgrind make recipe |
| * tests/local.mk (maintainer-check-valgrind): Run the with Valgrind |
| when it's available, not the converse. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| CI: prepare for travis |
| * .travis.yml: New. |
| |
| 2018-09-06 Akim Demaille <[email protected]> |
| |
| examples: beware of shell portability issues |
| This completes 2d7e7438024e47650c3a0c9f5f313c6eb6acae2d. |
| |
| Some shells don't grok "local var=`cmd`" very well: they need the rhs |
| to be quoted. |
| |
| ./examples/test: 72: local: you.,: bad variable name |
| FAIL examples/variant.test (exit status: 2) |
| |
| Reported by Étienne Renault. |
| |
| * examples/test (run): Quote the values in 'local' assignments. |
| |
| 2018-09-04 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/c++.at: Formatting changes. |
| Use 'using' to shorten the code. |
| |
| 2018-09-02 Akim Demaille <[email protected]> |
| |
| tests: disable GCC7 warnings for some tests |
| With GCC7 we have warnings (false positive): |
| |
| x8.c: In function 'x8_parse': |
| x8.c:1233:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| yylval = *yypushed_val; |
| ~~~~~~~^~~~~~~~~~~~~~~ |
| x8.c: In function 'x8_pull_parse': |
| x8.c:1233:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| yylval = *yypushed_val; |
| ~~~~~~~^~~~~~~~~~~~~~~ |
| |
| See also 9645a2b20ee7cbfa8bb4ac2237f87d598afe349c. |
| |
| * tests/local.at (AT_PUSH_IF): New. |
| (AT_BISON_OPTION_POPDEFS): Pop it, and pop AT_PURE_IF. |
| * tests/headers.at (Several parsers, Several parsers): Disable these |
| warnings when in push parser. |
| |
| 2018-09-02 Akim Demaille <[email protected]> |
| |
| C++: don't issue the definition of symbol_type when not used |
| Currently, in glr.cc, we emit the definitions of basic_symbol and |
| symbol_type, although there are not used. |
| |
| * data/c++.m4 (b4_public_types_declare): Extract these definitions from |
| here, and move them... |
| (b4_symbol_type_declare): here. |
| (b4_public_types_declare): Also remove the definition of the symbol |
| constructors. |
| * data/lalr1.cc (b4_shared_declarations): Adjust: call |
| b4_symbol_type_declare and b4_symbol_constructor_declare. |
| |
| 2018-09-02 Akim Demaille <[email protected]> |
| |
| examples: beware of shell portability issues |
| Some shells don't grok `local var=$val` very well: they need the rhs |
| to be quoted. |
| |
| ./examples/test: 66: local: you.,: bad variable name |
| FAIL examples/variant.test (exit status: 2) |
| |
| Reported by Étienne Renault. |
| |
| * examples/test (run): Quote the values in 'local' assignments. |
| |
| 2018-08-31 Akim Demaille <[email protected]> |
| |
| C++: leave 'inline' on the definition, not the declaration |
| This is for consistency with the other uses of 'inline' in the C++ |
| skeletons. On examples/variant.yy, this change gives: |
| |
| --- examples/variant.hh 2018-08-31 07:16:57.214222580 +0200 |
| +++ examples/variant.hh 2018-08-31 07:19:52.285431997 +0200 |
| @@ -444,15 +444,15 @@ |
| typedef basic_symbol<by_type> symbol_type; |
| |
| // Symbol constructors declarations. |
| - static inline |
| + static |
| symbol_type |
| make_END_OF_FILE (const location_type& l); |
| |
| - static inline |
| + static |
| symbol_type |
| make_TEXT (const ::std::string& v, const location_type& l); |
| |
| - static inline |
| + static |
| symbol_type |
| make_NUMBER (const int& v, const location_type& l); |
| |
| @@ -945,19 +945,23 @@ |
| }; |
| return static_cast<token_type> (yytoken_number_[type]); |
| } |
| + |
| // Implementation of make_symbol for each symbol type. |
| + inline |
| parser::symbol_type |
| parser::make_END_OF_FILE (const location_type& l) |
| { |
| return symbol_type (token::END_OF_FILE, l); |
| } |
| |
| + inline |
| parser::symbol_type |
| parser::make_TEXT (const ::std::string& v, const location_type& l) |
| { |
| return symbol_type (token::TEXT, v, l); |
| } |
| |
| + inline |
| parser::symbol_type |
| parser::make_NUMBER (const int& v, const location_type& l) |
| { |
| @@ -967,7 +971,7 @@ |
| |
| } // yy |
| -#line 971 "examples/variant.hh" // lalr1.cc:380 |
| +#line 975 "examples/variant.hh" // lalr1.cc:380 |
| |
| and no changes on variant.cc. |
| |
| * data/c++.m4 (b4_public_types_define): Formatting changes. |
| * data/variant.hh (b4_symbol_value_template_, b4_symbol_constructor_declare_): |
| Move the 'inline' from declaration to implementation. |
| |
| 2018-08-30 Akim Demaille <[email protected]> |
| |
| c++: style changes |
| Instead of |
| |
| parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) |
| : super_type (that.state, that.location) |
| { |
| value = that.value; |
| } |
| |
| generate |
| |
| parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) |
| : super_type (that.state, that.value, that.location) |
| {} |
| |
| * data/lalr1.cc (stack_symbol_type): Improve the copy ctor, when not |
| using the variants. |
| (yypush_): Rename arguments for clarity. |
| |
| 2018-08-30 Akim Demaille <[email protected]> |
| |
| c++: the assignment operator does not have to be const |
| * data/lalr1.cc (stack_symbol_type::operator=): Don't copy the |
| argument, move it. |
| |
| 2018-08-30 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/c++.at (C++ Variant-based Symbols): Rename as... |
| (C++ Variant-based Symbols Unit Tests): this. |
| Comment/style changes. |
| |
| 2018-08-27 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-08-27 Akim Demaille <[email protected]> |
| |
| version 3.1 |
| * NEWS: Record release date. |
| |
| 2018-08-27 Akim Demaille <[email protected]> |
| |
| build: tabs are ok in a Makefile |
| * cfg.mk: TABs are ok in examples/calc++/Makefile. |
| |
| 2018-08-26 Akim Demaille <[email protected]> |
| |
| C++: make sure the generated header is self container |
| See the previous commit. |
| |
| * data/lalr1.cc: Be sure to define YY_NULLPTR. |
| * tests/headers.at: Check the case that was failing. |
| |
| 2018-08-26 Akim Demaille <[email protected]> |
| |
| tests: check that headers are sane |
| The header generated for variants with assertions but without |
| locations, is not self-contained. Prepare a check for this. |
| |
| * tests/headers.at (Sane headers): New, extracted from... |
| (Several parsers): here. |
| |
| 2018-08-25 Akim Demaille <[email protected]> |
| |
| "C++: restore copy-constructor for stack_symbol_type |
| Benchmarks show that it is more efficient to keep this copy |
| constructor, rather than forcing the use of the default constructor |
| and then assignment. |
| |
| This reverts commit 7ab25ad0208d00f509613e1e151aa3043cf2862f. |
| |
| 2018-08-25 Akim Demaille <[email protected]> |
| |
| examples: calc++: a Makefile and a README |
| * examples/calc++/Makefile, examples/calc++/README: New. |
| * examples/calc++/local.mk: Ship and install them. |
| * doc/bison.texi: Formatting changes. |
| |
| 2018-08-25 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2018-08-25 Jiahao Li <[email protected]> |
| |
| variant: fix uninitialized memory access in `variant<>` |
| Currently, in bison's C++ parser template (`lalr.cc`), the `variant<>` |
| struct's `build()` method uses placement-new in the form `new (...) T` |
| to initialize a variant type. However, for POD variant types, this |
| will leave the memory space uninitialized. If we subsequently tries |
| to `::move` into a variant object in such state, the call can trigger |
| clang's undefined behavior sanitizer due to accessing the |
| uninitialized memory. |
| |
| https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00098.html |
| |
| * data/variant.hh (build): Always initialize the stored value. |
| |
| 2018-08-24 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-08-24 Akim Demaille <[email protected]> |
| |
| examples: calc++: minor improvements |
| * doc/bison.texi (A Complete C++ Example): Prefer throw exceptions |
| from the scanner. |
| Show the invalid characters. |
| Since the scanner sends exceptions, it no longer needs to report |
| errors, so we can get rid of the driver's routine to report error, |
| do it in yyerror. |
| Use @group/@end group to improve rendering. |
| |
| 2018-08-24 Akim Demaille <[email protected]> |
| |
| examples: calc++: make sure the file name in location is set |
| Reported by Hans Åberg. |
| http://lists.gnu.org/archive/html/bug-bison/2018-08/msg00039.html |
| |
| * doc/bison.texi (A Complete C++ Example): Move the token's location |
| from the scanner to the driver. |
| |
| 2018-08-24 Akim Demaille <[email protected]> |
| |
| examples: calc++: remove prefixes |
| This example uses the calcxx_ prefix for each class. That's uselessly |
| heavy. |
| |
| * doc/bison.texi (A Complete C++ Example): Simplify the class names. |
| Since now 'driver' denotes the class, use 'drv' for the values. |
| Formatting changes. |
| |
| 2018-08-23 Akim Demaille <[email protected]> |
| |
| examples: fix the leading empty line |
| * examples/extexi: Really avoid the first empty line. |
| Remove useless `next`. |
| |
| 2018-08-23 Akim Demaille <[email protected]> |
| |
| examples: shorten the name of the calc++ files |
| * doc/bison.texi: Turn the calc++- prefix into calc++/. |
| * examples/extexi (%file_wanted): Replace with |
| (&file_wanted): this. |
| * examples/calc++/local.mk: Adjust. |
| |
| 2018-08-23 Akim Demaille <[email protected]> |
| |
| tests: disable -Wmaybe-uninitialized in some tests |
| On these tests, at -O2 and above, GCC 8 complains that yylval may be |
| uninitialized. But it seems wrong: it is initialized. Rather than |
| turning off the warning in the skeleton (hence possibility hiding |
| relevant warnings of user parsers), let's turn it off in the tests |
| only. |
| |
| 163: parse.error=verbose and consistent errors: FAILED (conflicts.at:625) |
| 165: parse.error=verbose and consistent errors: lr.default-reduction=consistent FAILED (conflicts.at:635) |
| 166: parse.error=verbose and consistent errors: lr.default-reduction=accepting FAILED (conflicts.at:641) |
| 167: parse.error=verbose and consistent errors: lr.type=canonical-lr FAILED (conflicts.at:645) |
| 168: parse.error=verbose and consistent errors: parse.lac=full FAILED (conflicts.at:650) |
| 169: parse.error=verbose and consistent errors: parse.lac=full lr.default-reduction=accepting FAILED (conflicts.at:655) |
| |
| We get: |
| |
| input.c: In function 'yyparse': |
| input.c:980:9: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); |
| ^~~~~~ |
| cc1: all warnings being treated as errors |
| |
| See https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00063.html. |
| |
| * tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Disable |
| -Wmaybe-uninitialized. |
| |
| 2018-08-19 Akim Demaille <[email protected]> |
| |
| doc: clarify that the push parser object can be reused |
| Suggested by Rici Lake. |
| https://lists.gnu.org/archive/html/bug-bison/2018-08/msg00033.html |
| |
| * doc/bison.texi: Complete description of the first node in the main |
| @menu. |
| (Push Decl): Remove the 'experimental' warnings about push parser. |
| Clarify that the push parser object can be reused in several parses. |
| |
| 2018-08-19 Akim Demaille <[email protected]> |
| |
| lalr1.cc: support compilation with disabled support for exceptions |
| Reported by Brooks Moses <[email protected]> |
| http://lists.gnu.org/archive/html/bison-patches/2018-02/msg00000.html |
| |
| * data/lalr1.cc (YY_EXCEPTIONS): New. |
| Use it to disable try/catch clauses. |
| |
| * doc/bison.texi (C++ Parser Interface): Document it. |
| |
| * configure.ac (CXXFLAGS_NO_EXCEPTIONS): New. |
| * tests/atlocal.in: Receive it. |
| * tests/local.at (AT_FULL_COMPILE, AT_LANG_COMPILE): |
| Accept a new argument, extra compiler flags. |
| * tests/calc.at: Run the C++ calculator with exception support disabled. |
| |
| 2018-08-19 Akim Demaille <[email protected]> |
| |
| examples: add empty lines |
| Currently the examples are too dense, let's put empty lines where |
| '#line' would be issued. And also remove some spurious empty |
| lines (remains from @group, @end group, etc.). |
| |
| * examples/extexi: Do that. |
| * examples/local.mk (extexiFLAGS): Rename as... |
| (EXTEXIFLAGS): this. |
| |
| 2018-08-19 Akim Demaille <[email protected]> |
| |
| examples: check the variant example |
| * examples/mfcalc/local.mk, examples/rpcalc/local.mk: Define the |
| programs in a more natural order, source, preproc, then linker. |
| |
| * examples/test: Be ready to work on programs that are not in |
| a subdir. |
| * examples/variant.test: New. |
| * examples/local.mk: Use it. |
| * examples/variant.yy: Don't use 0 for nullptr. |
| Use a more natural output for a list of string. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| C++: fix portability issue with MSVC 2017 |
| Visual Studio issues a C4146 warning on '-static_cast<unsigned>(rhs)'. |
| The code is weird, probably to cope with INT_MIN. Let's go back to |
| using std::max (whose header is still included in position.hh...) like |
| originally, but with the needed casts. |
| |
| Reported by 長田偉伸, and with help from Rici Lake. |
| |
| See also |
| http://lists.gnu.org/archive/html/bug-bison/2013-02/msg00000.html |
| and commit 75ae8299840bbd854fa2474d38402bbb933c6511. |
| |
| * data/location.cc (position::add_): Take min as an int. |
| Use std::max. |
| While here, get rid of a couple of useless inlines. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| build: fix concurrent build failure |
| Reported by Dengke Du and Robert Yang. |
| https://lists.gnu.org/archive/html/bison-patches/2017-07/msg00000.html |
| |
| * src/local.mk (src/yacc): Make sure the directory exists. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| lalr1.cc: remove debug comment |
| * data/lalr1.cc: Remove a comment about indentation. |
| I'm not sure it would be nice to indent even more, it's already quite |
| of the right. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| doc: fix the name of the GFDL section |
| Reported by dine <[email protected]>. |
| http://lists.gnu.org/archive/html/bug-bison/2016-10/msg00000.html |
| |
| I mirrored what the Coreutils do. |
| |
| * doc/bison.texi (Copying This Manual): Rename as... |
| (GNU Free Documentation License): this, since that the name we |
| used in the preamble. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| doc: clarify the destructor selection example |
| Reported by Gary L Peskin. |
| http://lists.gnu.org/archive/html/help-bison/2016-02/msg00000.html |
| |
| * doc/bison.texi (Destructor Decl): here. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| portability: don't use _Pragma with ICC |
| ICC defines __GNUC__ [1], but does not support GCC's _Pragma for |
| diagnostics. As a matter of fact, I believe it does not support |
| _Pragma at all (only #pragma) [2]. |
| |
| Reported by Maxim Prohorenko. |
| https://savannah.gnu.org/support/index.php?108339 |
| |
| [1] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-gcc-compatibility-and-interoperability |
| [2] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-pragmas |
| |
| * data/c.m4 (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): Exclude ICC from |
| the club. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| doc: typed mid-rule actions |
| * doc/bison.texi (Mid-Rule Actions): Restructure to insert... |
| (Typed Mid-Rule Actions): this new section. |
| Move the manual translation of mid-rule actions into regular actions |
| to... |
| (Mid-Rule Action Translation): here. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| escape properly the file names in #line for printer/destructor |
| Reported by Jannick. |
| http://lists.gnu.org/archive/html/bug-bison/2017-05/msg00001.html |
| |
| "Amusingly" enough, we have the same problem with %defines when the |
| parser file name has backslashes or quotes: we generate #includes with |
| an incorrect C string. |
| |
| * src/output.c (prepare_symbol_definitions): Escape properly the file |
| names before passing them to M4. |
| * data/bison.m4, data/lalr1.cc: Don't simply put the file name between |
| two quotes (that should have been strong enough a smell...), expect |
| the string to be properly quoted. |
| * tests/synclines.at: New tests to check this. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| tests: fix title and improve quoting |
| * tests/synclines.at: here. |
| Also, prefer '%code' to ;%{...%}' for yylex/yyerror prototypes. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/output.c: here. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/scan-code.l: here. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/parse-gram.y: Declare iterator within the for-loop. |
| |
| 2018-08-18 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/c++.at, tests/local.at: Formatting and title changes. |
| |
| 2018-08-17 Akim Demaille <[email protected]> |
| |
| reader: simplify the search of the start symbol |
| Suggested by Paul Eggert. |
| |
| * src/reader.c (find_start_symbol): Don't check 'res', we know it is |
| not null. That suffices to avoid the GCC warnings. |
| * bootstrap.conf: We don't need 'assume', which doesn't exist anyway. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| c++: fix GCC8 warnings about uninitialized values |
| In 0931d14728fb4a2272399f2c927ae78e2607b4fb I removed too many |
| initializations from some ctors: some were not about base ctors, but |
| about member variables. In fact, more of them were missing to please |
| GCC 8. |
| |
| While at it, generate more natural code for C++ without variant: |
| instead of |
| |
| template <typename Base> |
| parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) |
| : Base (other) |
| , value () |
| { |
| value = other.value |
| } |
| |
| generate |
| |
| template <typename Base> |
| parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) |
| : Base (other) |
| , value (other.value) |
| {} |
| |
| * data/c++.m4 (basic_symbol::basic_symbol): Always initialize 'value', |
| it might be a POD without a ctor. |
| * data/lalr1.cc (stack_symbol_type::stack_symbol_type): Likewise. |
| * data/variant.hh (variant::variant): Default initialize the buffer too. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| tests: style: use %empty |
| * tests/conflicts.at: here. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| tests: fix warnings in push mode |
| Fix warning with GCC 8, -DNDEBUG. |
| |
| 422. push.at:83: testing Multiple impure instances ... |
| input.y: In function 'main': |
| input.c:1022:12: error: potential null pointer dereference [-Werror=null-dereference] |
| if (!yyps->yynew && yyps->yyss != yyps->yyssa) |
| ~~~~^~~~~~~ |
| |
| * data/yacc.c (pstate_delete): Do nothing if called on null pointer. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| c++: avoid GCC 8 warnings |
| GCC 8 issues warnings whose root cause was a bit hard to find. |
| |
| calc.cc: In member function 'virtual int yy::parser::parse()': |
| calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized] |
| , location (l) |
| ^ |
| calc.cc: In member function 'void yy::parser::yypush_(const char*, yy::parser::stack_symbol_type&)': |
| calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized] |
| , location (l) |
| ^ |
| calc.cc: In member function 'void yy::parser::yypush_(const char*, yy::parser::state_type, yy::parser::symbol_type&)': |
| calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized] |
| , location (l) |
| ^ |
| |
| The problem is with locations that don't have a constructor, such as |
| Span (in calc.cc) which is POD. It is POD on purpose: so that we can |
| use that structure to test glr.cc which cannot use non POD in its |
| (C) stacks. |
| |
| * data/c++.m4 (basic_symbol): Also ensure that 'location' is |
| initialized. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| tests: avoid compiler warnings |
| * tests/calc.at (AT_CALC_MAIN): Declare yyparse and operator<< in an |
| unnamed namespace to avoid "not declared" warnings (clang |
| -Weverything). |
| Remove useless prototypes. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| build: work around GCC warnings on Flex code |
| With GCC 7.3.0 and Flex 2.6.4, we get warnings on all the generated |
| scanners: |
| |
| examples/calc++/calc++-scanner.cc: In function 'void yyrestart(FILE*)': |
| examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference] |
| /* %endif */ |
| ~~~~~~~~~~~ ^ |
| examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference] |
| /* %if-c-only */ |
| ~~~~~~~~~~~~~~~ ^ |
| examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference] |
| /* %endif */ |
| ~~~~~~~~~~~ ^ |
| examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference] |
| /* %if-c-only */ |
| ~~~~~~~~~~~~~~~ ^ |
| cc1plus: all warnings being treated as errors |
| |
| Obviously the lines are incorrect, and the warnings are emitted twice. |
| Still, let's get rid of these warnings. |
| |
| * doc/bison.texi, src/flex-scanner.h: Disable these warnings in code |
| generated by Flex. |
| |
| 2018-08-15 Akim Demaille <[email protected]> |
| |
| fix incorrect C code |
| Commit 3df32101e7978eaafa63bce8908de3dcae4d9cda introduced invalid C |
| code. Caught by GCC 7.3.0. |
| |
| * bootstrap.conf (gnulib_modules): We need assume. |
| * src/reader.c (find_start_symbol): Fix the signature (too much C++, |
| sorry...). |
| Prefer 'assume' to 'assert', so that we don't have these warnings even |
| when NDEBUG is defined. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| examples: fix Englishoes |
| * examples/README: Fix my mistakes. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| examples: ship and install variant.yy |
| This file was meant to be shown as an example. Install it. |
| |
| * README, data/README: Put Emacs metadata in the final section. |
| * examples/README: New. |
| * examples/variant.yy: Use %empty. |
| * examples/local.mk: Install both these files. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| C++: remove useless copy-constructor |
| We currently generate copy constructors such as the following |
| one (taken from examples/variant.yy): |
| |
| parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) |
| : super_type (that.state, that.location) |
| { |
| switch (that.type_get ()) |
| { |
| case 3: // TEXT |
| case 8: // item |
| value.copy< ::std::string > (that.value); |
| break; |
| |
| case 7: // list |
| value.copy< ::std::vector<std::string> > (that.value); |
| break; |
| |
| case 4: // NUMBER |
| value.copy< int > (that.value); |
| break; |
| |
| default: |
| break; |
| } |
| } |
| |
| they are actually useless: we never need it. |
| |
| * data/lalr1.cc: Don't generate the stack_symbol_type copy ctor. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| C++: symbol constructors: add a missing reference |
| Fix a typo so that instead of |
| |
| basic_symbol::basic_symbol (typename Base::kind_type t, const int v) |
| |
| we now generate |
| |
| basic_symbol::basic_symbol (typename Base::kind_type t, const int& v) |
| |
| * data/variant.hh (b4_basic_symbol_constructor_declare) |
| (b4_basic_symbol_constructor_define): Add missing reference. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| C++: remove useless calls to the base default constructor |
| * data/c++.m4, data/stack.hh, data/variant.hh: here. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| C++: prefer size_type to unsigned for indexes |
| * data/stack.hh (size_type): New, based on the container type. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: m4: remove useless reference to 'int' in integral types |
| * m4/cxx.m4: Prefer 'unsigned' to 'unsigned int'. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: doc: remove useless reference to 'int' in integral types |
| * doc/bison.texi: Prefer 'unsigned' to 'unsigned int'. Likewise for |
| long and short. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: lib: remove useless reference to 'int' in integral types |
| * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h, |
| * lib/bitset_stats.c, lib/bitsetv-print.c, lib/bitsetv.c, |
| * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/timevar.c, |
| * lib/vbitset.c: |
| Prefer 'unsigned' to 'unsigned int'. Likewise for long and short. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: src: remove useless reference to 'int' in integral types |
| * src/AnnotationList.c, src/AnnotationList.h, src/InadequacyList.h, |
| * src/closure.c, src/closure.h, src/gram.c, src/gram.h, src/ielr.c, |
| * src/location.c, src/output.c, src/reader.c, src/relation.c, |
| * src/scan-code.l, src/scan-gram.l, src/tables.c, src/tables.h: |
| Prefer 'unsigned' to 'unsigned int'. Likewise for long and short. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: tests: remove useless reference to 'int' in integral types |
| * tests/actions.at, tests/cxx-type.at: Prefer 'unsigned' to 'unsigned |
| int'. Likewise for long and short. |
| |
| 2018-08-14 Akim Demaille <[email protected]> |
| |
| style: data: remove useless reference to 'int' in integral types |
| * data/c.m4, data/glr.c, data/yacc.c: Prefer 'unsigned' to 'unsigned |
| int'. Likewise for long and short. |
| |
| 2018-08-12 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| * bootstrap.conf: gnulib_mk is defined again by bootstrap. |
| |
| 2018-08-12 Akim Demaille <[email protected]> |
| |
| doc: avoid type aliases |
| * doc/bison.texi (C++ Location Values): Use 'unsigned' instead of |
| 'uint'. |
| |
| 2018-08-12 Akim Demaille <[email protected]> |
| |
| doc: remove the "experimental" warning for some features |
| Several features were flagged 'experimental' and waiting for user |
| feedback to 'stabilize', but i. AFAIK, no user ever reported anything |
| about them, ii. they'be been here long enough to prove they don't do |
| harm. |
| |
| * doc/bison.texi: No longer experimental: default %printer and |
| %destructor (typed: <*> and untyped: <>), %define api.value.type union |
| and variant, Java parsers, XML output, LR family (lr, ielr, lalr), |
| semantic predicates (%?). |
| |
| 2018-08-12 Akim Demaille <[email protected]> |
| |
| tests: check variants and typed mid-rule actions |
| See |
| http://lists.gnu.org/archive/html/bison-patches/2018-08/msg00013.html |
| |
| * tests/c++.at (Variants and Typed Mid-rule Actions): New. |
| |
| 2018-08-12 Akim Demaille <[email protected]> |
| |
| tests: fix minor issues |
| * tests/actions.at: Fix some log messages. |
| Prefer #error to fprintf: it fixes the invalid use of yyoutput in |
| %destructor, and it is an even stronger check: that the code is not |
| even emitted. The portability of #error is not really a problem here, |
| since the point is anyway to have the compilation fail. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| c++: variant: add more assertions |
| * data/variant.hh (variant::as): Check yytypeid_ before |
| checking *yytypeid_. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| doc: -fcaret is enabled by default |
| * doc/bison.texi (Mid-Rule Action Translation): So no need to pass it. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/closure.c, src/conflicts.c: here. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| rule actions cannot be typed |
| Make sure that we cannot apply a type to the (main) action of a rule. |
| |
| * src/reader.c (grammar_rule_check): Issue the warning. |
| * tests/input.at (Cannot type action): Check the warning. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| warn about typed mid-rule actions in Yacc mode |
| * src/reader.c (grammar_current_rule_action_append): Warn. |
| * tests/input.at (AT_CHECK_UNUSED_VALUES): Check. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| tests: check typed mid-rule actions |
| * tests/input.at (_AT_UNUSED_VALUES_DECLARATIONS): Check |
| typed mid-rule actions. |
| * tests/report.at (Reports): Check that types of typed mid-rule |
| actions are reported. |
| * tests/actions.at (Typed mid-rule actions): Check that |
| the values of typed mid-rule actions are correct. |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-08-11 Akim Demaille <[email protected]> |
| |
| add support for typed mid-rule actions |
| Prompted on Piotr Marcińczyk's message: |
| http://lists.gnu.org/archive/html/bug-bison/2017-06/msg00000.html. |
| See also http://lists.gnu.org/archive/html/bug-bison/2018-06/msg00001.html. |
| |
| Because their type is unknown to Bison, the values of midrule actions are |
| not treated like the others: they don't have %printer and %destructor |
| support. In addition, in C++, (Bison) variants cannot work properly. |
| |
| Typed midrule actions address these issues. Instead of: |
| |
| exp: { $<ival>$ = 1; } { $<ival>$ = 2; } { $$ = $<ival>1 + $<ival>2; } |
| |
| write: |
| |
| exp: <ival>{ $$ = 1; } <ival>{ $$ = 2; } { $$ = $1 + $2; } |
| |
| * src/scan-code.h, src/scan-code.l (code_props): Add a `type` field to |
| record the declared type of an action. |
| (code_props_rule_action_init): Add a type argument. |
| * src/parse-gram.y: Accept an optional type tag for actions. |
| * src/reader.h, src/reader.c (grammar_current_rule_action_append): Add |
| a type argument. |
| (grammar_midrule_action): When a mid-rule is typed, pass its type to |
| the defined dummy non terminal symbol. |
| |
| 2018-08-05 Akim Demaille <[email protected]> |
| |
| tests: make room for more cases |
| * tests/input.at (AT_CHECK_UNUSED_VALUES): Add an empty line |
| to allow more symbols, and adjust line numbers. |
| Use a more consistent m4 quoting scheme. |
| |
| 2018-08-05 Akim Demaille <[email protected]> |
| |
| warnings: address -Wnull-dereference in reader.c |
| Based on a patch by David Michael. |
| http://lists.gnu.org/archive/html/bison-patches/2018-07/msg00000.html |
| |
| * src/reader.c (find_start): New, extracted from... |
| (check_and_convert_grammar): here. |
| |
| 2018-08-05 Akim Demaille <[email protected]> |
| |
| style: ielr: reduce scopes |
| * src/ielr.c: Use modern C to reduce the scopes of some variables. |
| |
| 2018-07-26 Akim Demaille <[email protected]> |
| |
| style: move to C99 to reduce scopes |
| * src/symtab.c, src/reader.c: Freely mix statements and variable |
| definitions. And use for-loops with initializers. |
| |
| 2018-07-26 Akim Demaille <[email protected]> |
| |
| style: split a function in two |
| grammar_current_rule_action_append was used in two different places: |
| for actual action (`{...}`), and for predicates (`%?{...}`). Let's |
| split this in two different functions. |
| |
| * src/reader.h, src/reader.c (grammar_current_rule_predicate_append): New. |
| Extracted from... |
| (grammar_current_rule_action_append): here. |
| Remove arguments that don't apply. |
| Adjust dependencies. |
| |
| 2018-07-26 Akim Demaille <[email protected]> |
| |
| tests: fix typo |
| * tests/actions.at: Remove (harmless) stray character. |
| |
| 2018-07-26 Akim Demaille <[email protected]> |
| |
| print: remove unused function |
| This function was unused since 1991's original import by |
| rms (e06f0c34427faedc7afbec9554adbffc4c87312e). |
| |
| * src/print.c (print_token): Remove. |
| |
| 2018-06-23 Akim Demaille <[email protected]> |
| |
| doc: fix Texinfo syntax error |
| * doc/bison.texi (Understanding): here. |
| |
| 2018-06-22 Akim Demaille <[email protected]> |
| |
| doc: we now show the type of the symbols |
| * doc/bison.texi (Understanding Your Parser): Update the output |
| from Bison. |
| Use types in the example, and show them in the report. |
| * NEWS: Update. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| tests: check the typed symbols in the reports |
| * tests/report.at: New. |
| * tests/local.mk, tests/testsuite.at: Use it. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| report: display the type of the symbols |
| * src/print.c (print_nonterminal_symbols, print_terminal_symbols): |
| Also should the type of the symbols. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/print.c (print_terminal_symbols, print_nonterminal_symbols): Here. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| style: split large function |
| * src/print.c (print_grammar): Split into... |
| (print_terminal_symbols, print_nonterminal_symbols): these. |
| Adjust dependencies. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| style: reduce scopes |
| * src/print.c (print_grammar): Shorten scopes. |
| |
| 2018-06-18 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| Fixes the `make install-pdf` problem reported by Hans Åberg in |
| http://lists.gnu.org/archive/html/bug-bison/2018-06/msg00000.html |
| that had already been fixed by Joel E. Denny in |
| http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00011.html |
| Final fix in |
| http://lists.gnu.org/archive/html/bug-gnulib/2018-06/msg00019.html |
| |
| 2018-06-17 Akim Demaille <[email protected]> |
| |
| Merge maint into master |
| * upstream/maint: (48 commits) |
| THANKS: update an address |
| tests: adjust syncline tests to GCC 7 |
| glr: fix improperly placed synclines |
| bison: be git grep friendly |
| Replace ftp with https |
| maint: post-release administrivia |
| version 3.0.5 |
| bison: style: indentation fixes |
| regen |
| bison: please address sanitizer |
| C++: style: fix indentation |
| NEWS: update |
| C++: style: prefer `unsigned` to `unsigned int` |
| C++: style: space before paren |
| C++: fix -Wdeprecated warnings |
| tests: fix -Wdeprecated warning |
| maint: update syntax-check exclusions |
| autoconf: update |
| regen |
| Update copyright years |
| ... |
| |
| 2018-05-30 Akim Demaille <[email protected]> |
| |
| THANKS: update an address |
| |
| 2018-05-30 Akim Demaille <[email protected]> |
| |
| tests: adjust syncline tests to GCC 7 |
| GCC 7 also underlines the error. |
| |
| syncline.c:4:2: error: #error "4" |
| #error "4" |
| ^~~~~ |
| |
| * tests/synclines.at (_AT_SYNCLINES_COMPILE): Remove tildas from GCC 7. |
| |
| 2018-05-29 Akim Demaille <[email protected]> |
| |
| glr: fix improperly placed synclines |
| Predicates with GLR are issued with synclines in the middle of C code: |
| |
| case 2: |
| if (! (#line 6 "sempred.y" /* glr.c:816 */ |
| new_syntax)) YYERROR; |
| #line 793 "sempred.tab.c" /* glr.c:816 */ |
| break; |
| |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2018-05/msg00033.html |
| |
| * data/c.m4 (b4_predicate_case): Be sure to start on column 0. |
| It would be nicer if b4_syncline could ensure this by itself |
| (that would avoid ugly code when synclines are disabled), but that's |
| way more work. |
| * tests/glr-regression.at (Predicates): Be a real end-to-end test. |
| This would have caught this error years ago... |
| |
| 2018-05-29 Akim Demaille <[email protected]> |
| |
| bison: be git grep friendly |
| * src/output.c (user_actions_output): Make calls to b4_case and |
| b4_predicate_case explicit. |
| |
| 2018-05-29 Akim Demaille <[email protected]> |
| |
| Replace ftp with https |
| Reported by Hans Åberg. |
| |
| * README, cfg.mk, doc/bison.texi: here. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| version 3.0.5 |
| * NEWS: Record release date. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| bison: style: indentation fixes |
| * src/parse-gram.y: here. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| bison: please address sanitizer |
| * src/parse-gram.y (add_param): Asan does not like that the second |
| argument of strspn is not 0-terminated. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| C++: style: fix indentation |
| * data/variant.hh (b4_symbol_variant): De-indent, as the callers are |
| indented. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| NEWS: update |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| C++: style: prefer `unsigned` to `unsigned int` |
| * data/c++.m4: here. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| C++: style: space before paren |
| * data/c++.m4, data/lalr1.cc: here. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| C++: fix -Wdeprecated warnings |
| For instance on test 99: |
| |
| In file included from @@.cc:56: |
| @@.hh:409:26: error: definition of implicit copy constructor for |
| 'stack_symbol_type' is deprecated because it |
| has a user-declared copy assignment operator |
| [-Werror,-Wdeprecated] |
| stack_symbol_type& operator= (const stack_symbol_type& that); |
| ^ |
| |
| Reported by Derek Clegg. |
| https://lists.gnu.org/archive/html/bison-patches/2018-05/msg00036.html |
| |
| * configure.ac (warn_tests): Add -Wdeprecated. |
| * data/lalr1.cc (stack_symbol_type): Add an explicit copy ctor. |
| We cannot rely on the explicit default implementation (`= default`) |
| as we support C++ 98. |
| |
| 2018-05-27 Akim Demaille <[email protected]> |
| |
| tests: fix -Wdeprecated warning |
| With recent compilers: |
| |
| input.yy:49:5: error: definition of implicit copy assignment |
| operator for 'Object' is deprecated because |
| it has a user-declared destructor |
| [-Werror,-Wdeprecated] |
| ~Object () |
| ^ |
| input.yy:130:35: note: in implicit copy assignment operator for |
| 'Object' first required here |
| { yylhs.value.as< Object > () = yystack_[0].value.as< Object > (); } |
| |
| * tests/c++.at (Object): Add missing assignment operator. |
| |
| 2018-05-19 Akim Demaille <[email protected]> |
| |
| maint: update syntax-check exclusions |
| sc_two_space_separator_in_usage complains about bootstrap: |
| |
| two_space_separator_in_usage |
| /Users/akim/src/gnu/bison/bootstrap:905: --aux-dir $build_aux\ |
| /Users/akim/src/gnu/bison/bootstrap:906: --doc-base $doc_base\ |
| /Users/akim/src/gnu/bison/bootstrap:907: --lib $gnulib_name\ |
| /Users/akim/src/gnu/bison/bootstrap:908: --m4-base $m4_base/\ |
| /Users/akim/src/gnu/bison/bootstrap:909: --source-base $source_base/\ |
| /Users/akim/src/gnu/bison/bootstrap:910: --tests-base $tests_base\ |
| /Users/akim/src/gnu/bison/bootstrap:911: --local-dir $local_gl_dir\ |
| maint.mk: help2man requires at least two spaces between an option and its description |
| |
| * cfg.mk: Exclude bootstrap from this check. |
| |
| 2018-05-19 Akim Demaille <[email protected]> |
| |
| autoconf: update |
| * submodules/autoconf: Update to latest master. |
| No difference on the M4 files we use. |
| |
| 2018-05-19 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2018-05-12 Akim Demaille <[email protected]> |
| |
| Update copyright years |
| Run `make update-copyright`. |
| |
| 2018-05-12 Nate Guerin <[email protected]> |
| |
| Add a missing word in the documentation |
| Small patch adds the word 'to' to the documentation. |
| |
| 2018-05-12 Akim Demaille <[email protected]> |
| |
| Examples: improve C++ style |
| * examples/variant.yy: Prefer vector to list. |
| Remove useless inline. |
| |
| 2018-05-12 Akim Demaille <[email protected]> |
| |
| Avoid compiler warnings |
| At least GCC 7.3, with -O1 or -O2 (but not -O0 or -O3) generates |
| warnings with -Wnull-dereference when using yyformat: it fails to see |
| yyformat cannot be null. |
| |
| Reported by Frank Heckenbach, https://savannah.gnu.org/patch/?9620. |
| |
| * configure.ac: Use -Wnull-dereference if supported. |
| * data/glr.c, data/lalr1.cc, data/yacc.c: Define yyformat in such |
| a way that GCC cannot not see that yyformat is defined. |
| Using `default: abort();` also addresses the issue, but forces |
| the inclusion of `stdlib.h`, which we avoid. |
| |
| 2018-05-10 Akim Demaille <[email protected]> |
| |
| C++: fix uses of `inline` |
| Sometimes `inline` would be used in *.cc files on symbols that are not |
| exported (useless but harmless), and sometimes on exported symbols |
| such as the constructor of syntax_error (harmful: linking fails). |
| |
| Reported several times, including: |
| |
| - by Dennis T |
| http://lists.gnu.org/archive/html/bug-bison/2016-03/msg00002.html |
| - by Frank Heckenbach |
| https://savannah.gnu.org/patch/?9616 |
| |
| * data/c++.m4 (b4_inline): New: expands to `inline` or nothing. |
| Use it where appropriate. |
| * data/lalr1.cc: Use it where appropriate. |
| |
| * tests/c++.at (Syntax error as exception): Put the scanner in another |
| compilation unit to exercise the constructor of syntax_error. |
| |
| 2018-05-10 Akim Demaille <[email protected]> |
| |
| C++: remove useless `inline` in CC files |
| * data/glr.cc, data/lalr1.cc: Remove `inline` from implementations |
| that are not in headers. |
| |
| 2018-05-10 Akim Demaille <[email protected]> |
| |
| C++: remove useless `inline` on templates |
| Templates are implicitly `inline`. |
| |
| * data/c++.m4, data/lalr1.cc: Remove `inline` from templates. |
| |
| 2018-05-08 Akim Demaille <[email protected]> |
| |
| style: don't use std::endl |
| * data/lalr1.cc, doc/bison.texi, etc/bench.pl.in, examples/variant.yy, |
| * tests/actions.at, tests/atlocal.in, tests/c++.at, tests/headers.at, |
| * tests/local.at, tests/types.at: |
| Don't use std::endl, it flushes uselessly, and is considered bad |
| style. |
| |
| 2018-05-08 Akim Demaille <[email protected]> |
| |
| doc: wrap |
| * README-hacking: Refill paragraphs. |
| |
| 2018-05-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| * README-hacking: Commit before bootstrapping. |
| * bootstrap.conf: gnulib_mk is no longer defined by bootstrap. |
| * bootstrap, gnulib, lib/.gitignore, m4/.gitignore: Update/regen. |
| |
| 2018-05-08 Akim Demaille <[email protected]> |
| |
| tests: we might need to find gnulib headers |
| 315. calc.at:596: testing Calculator ... |
| ++ cat |
| ++ test x = x1 |
| ++ set +x |
| bison/tests/calc.at:596: bison -fno-caret -o calc.c calc.y |
| ++ bison -fno-caret -o calc.c calc.y |
| ++ set +x |
| bison/tests/calc.at:596: $BISON_C_WORKS |
| stderr: |
| stdout: |
| ++ set +x |
| bison/tests/calc.at:596: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o calc calc.c $LIBS |
| ++ ccache clang-mp-6.0 -Qunused-arguments -O3 -g -Wall -Wextra -Wno-sign-compare -Wcast-align -Wdocumentation -Wformat -Wpointer-arith -Wwrite-strings -Wbad-function-cast -Wshadow -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wmissing-declarations -Wmissing-prototypes -Wundef -pedantic -Wsign-compare -fno-color-diagnostics -Wno-keyword-macro -Werror -Ibison/_build/6s/lib -DNDEBUG -isystem /opt/local/include -I/opt/local/include -L/opt/local/lib -o calc calc.c bison/_build/6s/lib/libbison.a -lintl -Wl,-framework -Wl,CoreFoundation |
| stderr: |
| In file included from calc.y:198: |
| bison/_build/6s/lib/unistd.h:592:11: fatal error: 'getopt-pfx-core.h' file not found |
| # include <getopt-pfx-core.h> |
| ^~~~~~~~~~~~~~~~~~~ |
| 1 error generated. |
| stdout: |
| bison/tests/calc.at:596: exit code was 1, expected 0 |
| 315. calc.at:596: 315. Calculator (calc.at:596): FAILED (calc.at:596) |
| |
| * tests/atlocal.in (CPPFLAGS): Find gnulib's headers. |
| |
| 2018-05-08 Akim Demaille <[email protected]> |
| |
| getargs: rename argument to avoid gnulib's renaming |
| With Clang 6.0: |
| |
| CC src/bison-getargs.o |
| bison/src/getargs.c:67:12: error: parameter 'option' not found in the |
| function declaration [-Werror,-Wdocumentation] |
| * \param option option being decoded. |
| ^~~~~~ |
| bison/src/getargs.c:67:12: note: did you mean 'rpl_option'? |
| |
| * src/getargs.c: Don't use `option` as a documentation argument. |
| |
| 2017-09-22 Paul Eggert <[email protected]> |
| |
| Capitalize "Polish" when it's a proper adjective |
| |
| 2017-09-17 Paul Eggert <[email protected]> |
| |
| Adjust to recent Gnulib changes |
| |
| 2017-09-17 Paul Eggert <[email protected]> |
| |
| autoconf: update |
| |
| 2017-09-17 Paul Eggert <[email protected]> |
| |
| gnulib: update |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| lalr1, yacc: use the default location as initial error location |
| Currently lalr1.cc makes an out-of-bound access when trying to read @1 |
| in rules with an empty rhs (i.e., when there is no @1) that raises an |
| error (YYERROR). |
| |
| glr.c already gracefully handles this by using @$ as initial location |
| for the errors. Let's do that in yacc.c and lalr1.cc. |
| |
| * data/lalr1.cc, data/yacc.c: Use @$ to initialize the error location. |
| * tests/actions.at: Check that case. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| style: formatting and comment changes |
| * data/glr.c: Avoid empty lines. |
| * data/lalr1.cc: Use the same comments as in glr.c and yacc.c. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| c++: style: use "unsigned", not "unsigned int" |
| This style appears to be more traditional, at least in C++. |
| For instance in the standard, [facets.examples]. |
| There are occurrences using "unsigned int" too though. |
| |
| * data/lalr1.cc, data/location.cc, data/stack.hh: here. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| c++: style: remove useless "inline" and fix space issues |
| * data/lalr1.cc, data/c++.m4: Formatting changes. |
| * data/stack.hh: Remove useless "inline". |
| Add documentation. |
| * data/location.cc: Prefer {} for empty bodies. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| tests: beware of additional warnings from GCC 5 |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Avoid warnings about |
| unused functions. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| tests: beware that clang warns about "#define private public" |
| We use this trick to write some test about internal details. But |
| since we use -Werror, clang++ 3.6 dies issueing a warning about it. |
| |
| * configure.ac (warn_tests): Disable this warning. |
| |
| 2015-08-12 Akim Demaille <[email protected]> |
| |
| tests: update our Valgrind suppression files |
| * build-aux/linux-gnu.valgrind, build-aux/darwin11.4.0.valgrind: Rename as... |
| * build-aux/Linux.valgrind, build-aux/Darwin.valgrind: these. |
| * build-aux/Linux.valgrind: Add suppression clause. |
| * configure.ac: Update. |
| * tests/local.mk: Use it. |
| |
| 2015-03-03 Akim Demaille <[email protected]> |
| |
| doc: improve html and pdf rendering |
| * doc/bison.texi: Help html conversion to understand where the |
| function names end. |
| Beware of PDF width. |
| |
| 2015-03-03 Akim Demaille <[email protected]> |
| |
| doc: fixes in the C++ part |
| Reported by Askar Safin. |
| |
| http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00018.html |
| http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00019.html |
| |
| * doc/bison.texi (Split Symbols): Fix access to token types. |
| yylval is a pointer, so use ->. |
| Fix coding style issues: space before paren. |
| |
| 2015-02-10 Akim Demaille <[email protected]> |
| |
| tests: be robust to platforms that support UTF-8 even with LC_ALL=C |
| Because musl supports UTF-8 with LC_ALL=C, gcc produces: |
| |
| input.y: In function ‘yyparse’: |
| |
| instead of: |
| |
| input.y: In function 'yyparse': |
| |
| Reported by Ferdinand Thiessen. |
| http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00001.html |
| |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Skip syncline tests when |
| we can't trust error messages issued about a function body. |
| |
| 2015-02-10 Akim Demaille <[email protected]> |
| |
| tests: java: avoid recent Java features |
| Tests 463 and 464 fail with Java 1.4 compilers. |
| |
| Reported by Michael Felt. |
| <http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00091.html> |
| |
| * tests/javapush.at: Use StringBuffer instead of StringBuilder. |
| |
| 2015-01-26 Akim Demaille <[email protected]> |
| |
| tests: c++: fix symbol lookup issue |
| Sun C 5.13 SunOS_sparc 2014/10/20 reports errors on tests 430-432. |
| |
| Reported by Dennis Clarke. |
| <http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00087.html> |
| |
| * tests/c++.at (Variants): Be sure to emit operator<< before using it: |
| use "%code top" rather than "%code". |
| Prefer std::vector to std::list. |
| Do not define anything in std::, to avoid undefined behavior. |
| |
| 2015-01-23 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: post-release administrivia |
| version 3.0.4 |
| gnulib: update |
| build: re-enable compiler warnings, and fix them |
| tests: c++: fix a C++03 conformance issue |
| tests: fix a title |
| c++: reserve 200 slots in the parser's stack |
| tests: be more robust to unrecognized synclines, and try to recognize xlc |
| tests: fix C++ conformance |
| build: fix some warnings |
| build: avoid infinite recursions on include_next |
| |
| 2015-01-23 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2015-01-23 Akim Demaille <[email protected]> |
| |
| version 3.0.4 |
| * NEWS: Record release date. |
| |
| 2015-01-23 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2015-01-23 Akim Demaille <[email protected]> |
| |
| build: re-enable compiler warnings, and fix them |
| There are warnings (-Wextra) in generated C++ code: |
| |
| ltlparse.cc: In member function 'ltlyy::parser::symbol_number_type |
| ltlyy::parser::by_state::type_get() const': |
| ltlparse.cc:452:33: warning: enumeral and non-enumeral type in |
| conditional expression |
| return state == empty_state ? empty_symbol : yystos_[state]; |
| |
| Reported by Alexandre Duret-Lutz. |
| |
| It turns out that -Wall and -Wextra were disabled because of a stupid |
| typo. |
| |
| * configure.ac: Fix the stupid typo. |
| * data/lalr1.cc, src/AnnotationList.c, src/InadequacyList.c, |
| * src/ielr.c, src/print.c, src/scan-code.l, src/symlist.c, |
| * src/symlist.h, src/symtab.c, src/tables.c, tests/actions.at, |
| * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at, |
| * tests/named-refs.at, tests/torture.at: |
| Fix warnings, mostly issues about variables used only with assertions, |
| which are disabled with -DNDEBUG. |
| |
| 2015-01-22 Akim Demaille <[email protected]> |
| |
| tests: c++: fix a C++03 conformance issue |
| This fixes test 241 on xLC: |
| |
| "input.y", line 42.11: 1540-0274 (S) The name lookup for "report" did not find a declaration. |
| "input.y", line 42.11: 1540-1292 (I) Static declarations are not considered for a function call if the function is not qualified. |
| |
| where report is: |
| |
| static void |
| report (std::ostream& yyo, int ival, float fval) |
| { |
| yyo << "ival: " << ival << ", fval: " << fval; |
| } |
| |
| and line 42 is: |
| |
| %printer { report (yyo, $$, $<fval>$); } <ival>; |
| |
| It turns out that indeed this function must not be declared static, |
| <http://stackoverflow.com/a/17662745/1353549>. Let's put it into an |
| anonymous namespace. |
| |
| Reported by Thomas Jahns. |
| http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html |
| |
| * tests/actions.at (Qualified $$ in actions): Don't use "static", |
| prefer anonymous namespace. |
| |
| 2015-01-20 Akim Demaille <[email protected]> |
| |
| tests: fix a title |
| * tests/conflicts.at: De-overquote. |
| |
| 2015-01-20 Akim Demaille <[email protected]> |
| |
| c++: reserve 200 slots in the parser's stack |
| This is consistent with what is done with yacc.c and glr.c. Because |
| it also avoids that the stack needs to be resized very soon, it should |
| help keeping tests about destructors more reliable. |
| |
| Indeed, if the stack is created too small, very soon the C++ library |
| needs to enlarge it, which means creating a new one, copying the |
| elements from the initial one onto it, and then destroy the elements |
| of the initial stack: that would be a spurious call to a destructor. |
| |
| Reported by Thomas Jahns. |
| http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html |
| |
| * data/stack.hh (stack::stack): Reserve 200 slots. |
| * tests/c++.at: Remove traces of stack expansions. |
| |
| 2015-01-20 Akim Demaille <[email protected]> |
| |
| tests: be more robust to unrecognized synclines, and try to recognize xlc |
| Reported by Thomas Jahns. |
| http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html |
| |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Rename as... |
| (_AT_SYNCLINES_COMPILE): this. |
| Try to recognize xlc locations. |
| (AT_SYNCLINES_COMPILE): New. Skips the test if we can't read the |
| synclines. |
| |
| 2015-01-20 Akim Demaille <[email protected]> |
| |
| tests: fix C++ conformance |
| Reported by Thomas Jahns. |
| http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html |
| |
| * tests/c++.at (Exception safety): Add missing include. |
| Don't use const_iterator for erase. |
| |
| 2015-01-18 Akim Demaille <[email protected]> |
| |
| build: fix some warnings |
| Reported by John Horigan. |
| http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00034.html |
| |
| * src/graphviz.c, src/symtab.h: Address compiler warnings. |
| |
| 2015-01-16 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' into origin/master |
| * origin/maint: |
| doc: minor fixes |
| gnulib: strtoul is considered obsolete and now useless |
| c++: avoid warnings when destructors don't use $$ |
| maint: post-release administrivia |
| version 3.0.3 |
| gnulib: update |
| |
| 2015-01-16 Akim Demaille <[email protected]> |
| |
| build: avoid infinite recursions on include_next |
| On MacOS X 10.5 PPC with Apple's GCC 4.0.1: |
| |
| % uname -a |
| Darwin aria.cielonegro.org 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:0 |
| 1 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh |
| % gcc --version |
| powerpc-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5493) |
| Copyright (C) 2005 Free Software Foundation, Inc. |
| This is free software; see the source for copying conditions. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| |
| building in place enters into an infinite recursion on "#include_next": |
| |
| % gmake V=1 |
| [snip] |
| depbase=`echo lib/math.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ |
| gcc -std=gnu99 -I. -Ilib -I. -I./lib -g -O2 -MT lib/math.o -MD -MP -MF $depbase.Tpo -c -o lib/math.o lib/math.c &&\ |
| mv -f $depbase.Tpo $depbase.Po |
| In file included from lib/math.h:27, |
| from lib/math.h:27, |
| from lib/math.h:27, |
| from lib/math.h:27, |
| [snip] |
| from lib/math.h:27, |
| from lib/math.h:27, |
| from lib/math.c:3: |
| lib/math.h:27:23: error: #include nested too deeply |
| Makefile:3414: recipe for target 'lib/math.o' failed |
| gmake[2]: *** [lib/math.o] Error 1 |
| |
| Using -I./lib instead of -Ilib fixes the problem. |
| |
| Reported by Pho. |
| <https://lists.gnu.org/archive/html/bison-patches/2014-01/msg00000.html> |
| |
| * Makefile.am (AM_CPPFLAGS): Use -I./lib instead of -Ilib. |
| |
| 2015-01-16 Akim Demaille <[email protected]> |
| |
| doc: minor fixes |
| * doc/bison.texi: Fix warnings about colon in reference names. |
| * data/bison.m4, src/files.h: Fix comments. |
| * doc/Doxyfile.in: update. |
| |
| 2015-01-15 Akim Demaille <[email protected]> |
| |
| gnulib: strtoul is considered obsolete and now useless |
| * bootstrap.conf: here. |
| |
| 2015-01-15 Akim Demaille <[email protected]> |
| |
| c++: avoid warnings when destructors don't use $$ |
| * data/c++.m4: here. |
| |
| 2015-01-15 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2015-01-15 Akim Demaille <[email protected]> |
| |
| version 3.0.3 |
| * NEWS: Record release date. |
| |
| 2015-01-15 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2015-01-14 Akim Demaille <[email protected]> |
| |
| symbol: use the first occurrence as an LHS as defining location |
| Currently on the following grammar: |
| |
| %type <foo> foo |
| %% |
| start: foo | bar | "baz" |
| foo: foo |
| bar: bar |
| |
| bison reports: |
| |
| warning: 2 nonterminals useless in grammar [-Wother] |
| warning: 4 rules useless in grammar [-Wother] |
| 1.13-15: warning: nonterminal useless in grammar: foo [-Wother] |
| %type <foo> foo |
| ^^^ |
| 3.14-16: warning: nonterminal useless in grammar: bar [-Wother] |
| start: foo | bar | "baz" |
| ^^^ |
| [...] |
| |
| i.e., the location of the first occurrence of a symbol is taken as its |
| definition point. In the case of nonterminals, the first occurrence |
| as a left-hand side of a rule makes more sense: |
| |
| warning: 2 nonterminals useless in grammar [-Wother] |
| warning: 4 rules useless in grammar [-Wother] |
| 4.1-3: warning: nonterminal useless in grammar: foo [-Wother] |
| foo: foo |
| ^^^ |
| 5.1-3: warning: nonterminal useless in grammar: bar [-Wother] |
| bar: bar |
| ^^^ |
| [...] |
| |
| * src/symtab.h, src/symtab.c (symbol::location_of_lhs): New. |
| (symbol_location_as_lhs_set): New. |
| * src/parse-gram.y (current_lhs): Use it. |
| * tests/reduce.at: Update locations. |
| |
| 2015-01-14 Akim Demaille <[email protected]> |
| |
| reduce: don't complain about rules whose lhs is useless |
| In the following grammar, the 'exp' nonterminal is trivially useless. |
| So, of course, its rules are useless too. |
| |
| %% |
| input: '0' | exp |
| exp: exp '+' exp | exp '-' exp | '(' exp ')' |
| |
| Previously all the useless rules were reported, including those whose |
| left-hand side is the 'exp' nonterminal: |
| |
| warning: 1 nonterminal useless in grammar [-Wother] |
| warning: 4 rules useless in grammar [-Wother] |
| 2.14-16: warning: nonterminal useless in grammar: exp [-Wother] |
| input: '0' | exp |
| ^^^ |
| 2.14-16: warning: rule useless in grammar [-Wother] |
| input: '0' | exp |
| ^^^ |
| ! 3.6-16: warning: rule useless in grammar [-Wother] |
| ! exp: exp '+' exp | exp '-' exp | '(' exp ')' |
| ! ^^^^^^^^^^^ |
| ! 3.20-30: warning: rule useless in grammar [-Wother] |
| ! exp: exp '+' exp | exp '-' exp | '(' exp ')' |
| ! ^^^^^^^^^^^ |
| ! 3.34-44: warning: rule useless in grammar [-Wother] |
| ! exp: exp '+' exp | exp '-' exp | '(' exp ')' |
| ! ^^^^^^^^^^^ |
| |
| The interest of being so verbose is dubious. I suspect most of the |
| time nonterminals are not expected to be useless, so the user wants to |
| fix the nonterminal, not remove its rules. And even if the user |
| wanted to get rid of its rules, the position of these rules probably |
| does not help more that just having the name of the nonterminal. |
| |
| This commit discard these messages, marked with '!', and keep the |
| others. In particular, we still report: |
| |
| 2.14-16: warning: rule useless in grammar [-Wother] |
| input: '0' | exp |
| ^^^ |
| |
| All the useless rules (including the '!' ones) are still reported in |
| the reports (xml, text, etc.); only the diagnostics on stderr change. |
| |
| * src/gram.c (grammar_rules_useless_report): Don't complain about |
| useless rules whose lhs is useless. |
| * src/reduce.h, src/reduce.c (reduce_nonterminal_useless_in_grammar): |
| Take a sym_content as argument. |
| Adjust callers. |
| * tests/reduce.at (Useless Rules, Underivable Rules, Reduced Automaton): |
| Adjust. |
| |
| 2015-01-14 Akim Demaille <[email protected]> |
| |
| style: reduce: use unsigned to count a number of objects |
| * src/reduce.h, src/reduce.c (nuseful_productions, nuseless_productions) |
| (nuseful_nonterminals, nuseless_nonterminals): Declare as unsigned. |
| Simplify "0 <" tests into non-zero tests. |
| |
| 2015-01-14 Akim Demaille <[email protected]> |
| |
| style: reduce: introduce and use a swap for bitset |
| * src/reduce.c (bitset_swap): New. |
| Use it. |
| |
| 2015-01-14 Akim Demaille <[email protected]> |
| |
| style: reduce: reduce scopes and other stylistic changes |
| * src/reduce.c: Various stylistic changes: |
| Reduce scopes. |
| Prefer ++i to i++. |
| Prefer < to >. |
| |
| 2015-01-13 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: split a large test case into several smaller ones |
| package: a bit of trouble shooting indications |
| doc: liby's main arms the internationalization |
| bison: avoid warnings from static code analysis |
| c++: fix the use of destructors when variants are enabled |
| style: tests: simplify the handling of some C++ tests |
| c++: symbols can be empty, so use it |
| c++: variants: don't leak the lookahead in error recovery |
| c++: provide a means to clear symbols |
| c++: clean up the handling of empty symbols |
| c++: comment and style changes |
| c++: variants: comparing addresses of typeid.name() is undefined |
| c++: locations: complete the API and fix comments |
| build: do not clean figure sources in make clean |
| |
| 2015-01-13 Akim Demaille <[email protected]> |
| |
| tests: split a large test case into several smaller ones |
| * tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Move AT_SETUP/AT_CLEANUP |
| into it, so that we don't skip non Java tests following a test case in Java. |
| |
| 2015-01-12 Akim Demaille <[email protected]> |
| |
| package: a bit of trouble shooting indications |
| * README-hacking: here. |
| |
| 2015-01-12 Akim Demaille <[email protected]> |
| |
| doc: liby's main arms the internationalization |
| Reported by Nicolas Bedon. |
| <https://lists.gnu.org/archive/html/bug-bison/2014-11/msg00005.html> |
| |
| * doc/bison.texi (Yacc Library): Document the call the setlocale. |
| |
| 2015-01-09 Akim Demaille <[email protected]> |
| |
| bison: avoid warnings from static code analysis |
| A static analysis tool reports that some callers of symbol_list_n_get |
| might get NULL and not handle it properly. This is not the case, yet |
| we can suppress this pattern. |
| |
| Reported by Mike Sullivan. |
| <https://lists.gnu.org/archive/html/bug-bison/2013-12/msg00027.html> |
| |
| * src/symlist.c (symbol_list_n_get): Actually it is never called |
| to return 0. Enforce this postcondition via aver. |
| (symbol_list_n_type_name_get): Simplify accordingly. In particular, |
| discards a (translated) useless error message. |
| * src/symlist.h: Adjust documentation. |
| * src/scan-code.l: Style change. |
| |
| 2015-01-09 Akim Demaille <[email protected]> |
| |
| c++: fix the use of destructors when variants are enabled |
| When using variants, destructors generate invalid code. |
| <http://lists.gnu.org/archive/html/bug-bison/2014-09/msg00005.html> |
| Reported by Michael Catanzaro. |
| |
| * data/c++.m4 (~basic_symbol): b4_symbol_foreach works on yysym: |
| define it. |
| * tests/c++.at (Variants): Check it. |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| style: tests: simplify the handling of some C++ tests |
| * tests/c++.at: here. |
| (Doxygen): Pass %define, so that files such as position.hh etc. |
| are generated, instead of putting everything into input.hh. |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| c++: symbols can be empty, so use it |
| The previous patches ensure that symbols (symbol_type and |
| stack_symbol_type) can be empty, cleared, and their emptiness can be |
| checked. Therefore, yyempty, which codes whether yyla is empty or |
| not, is now useless. |
| |
| In C skeletons (e.g., yacc.c), the fact that the lookahead is empty is |
| coded by "yychar = YYEMPTY", which is exactly what this patch |
| restores, since yychar/yytoken corresponds to yyla.type. |
| |
| * data/lalr1.cc (yyempty): Remove. |
| Rather, depend on yyla.empty (). |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| c++: variants: don't leak the lookahead in error recovery |
| During error recovery, when discarding the lookeahead, we don't |
| destroy it, which is caught by parse.assert assertions. |
| |
| Reported by Antonio Silva Correia. |
| With an analysis and suggested patch from Michel d'Hooge. |
| <http://savannah.gnu.org/support/?108481> |
| |
| * tests/c++.at (Variants): Strengthen the test to try syntax errors |
| with discarded lookahead. |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| c++: provide a means to clear symbols |
| The symbol destructor is currently the only means to clear a symbol. |
| Unfortunately during error recovery we might have to clear the |
| lookahead, which is a local variable (yyla) that has not yet reached |
| its end of scope. |
| |
| Rather that duplicating the code to destroy a symbol, or rather than |
| destroying and recreating yyla, let's provide a means to clear a |
| symbol. |
| |
| Reported by Antonio Silva Correia, with an analysis from Michel d'Hooge. |
| <http://savannah.gnu.org/support/?108481> |
| |
| * data/c++.m4, data/lalr1.cc (basis_symbol::clear, by_state::clear) |
| (by_type::clear): New. |
| (basic_symbol::~basic_symbol): Use clear. |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| c++: clean up the handling of empty symbols |
| * data/c++.m4, data/lalr1.cc (yyempty_): Remove, replaced by... |
| (empty_symbol, by_state::empty_state): these. |
| (basic_symbol::empty): New. |
| |
| 2015-01-08 Akim Demaille <[email protected]> |
| |
| c++: comment and style changes |
| * data/c++.m4, data/lalr1.cc: More documentation. |
| Tidy. |
| * tests/c++.at (string_cast): Rename as... |
| (to_string): this C++11 name. |
| |
| 2015-01-07 Akim Demaille <[email protected]> |
| |
| c++: variants: comparing addresses of typeid.name() is undefined |
| Instead of storing and comparing pointers to names of types, store |
| pointers to the typeids, and compares the typeids. |
| Reported by Thomas Jahns. |
| <http://lists.gnu.org/archive/html/bug-bison/2014-03/msg00001.html> |
| |
| * data/variant.hh (yytname_): Replace with... |
| (yytypeid_): this. |
| |
| 2015-01-05 Akim Demaille <[email protected]> |
| |
| c++: locations: complete the API and fix comments |
| There are no support for += between locations, and some comments are wrong. |
| Reported by Alexandre Duret-Lutz. |
| |
| * data/location.cc: Fix. |
| * doc/bison.texi: Document. |
| * tests/c++.at: Check. |
| |
| 2015-01-05 Akim Demaille <[email protected]> |
| |
| build: do not clean figure sources in make clean |
| "make clean && make" fails in in-tree builds. |
| |
| * doc/local.mk (CLEANDIRS): Replace with... |
| (CLEANFILES): this safer list of files to clean. |
| |
| 2015-01-05 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| build: don't try to generate docs when cross-compiling |
| package: fix a reporter's name |
| %union: fix the support for named %union |
| package: bump to 2015 |
| flex: don't trust YY_USER_INIT |
| yacc.c: fix broken union when api.value.type=union and %defines are used |
| doc: fix missing xref |
| gnulib: update |
| location: remove some ugly debugging code traces |
| build: use abort to pacify compiler errors |
| package: bump to 2014 |
| doc: specify documentation encoding |
| |
| 2015-01-05 Akim Demaille <[email protected]> |
| |
| build: don't try to generate docs when cross-compiling |
| When cross-compiling don't run the generated bison to update the docs. |
| Reported by Aaro Koskinen. |
| <http://lists.gnu.org/archive/html/bison-patches/2014-03/msg00000.html> |
| |
| * configure.ac (CROSS_COMPILING): New. |
| * doc/local.mk: Use it. |
| |
| 2015-01-04 Akim Demaille <[email protected]> |
| |
| package: fix a reporter's name |
| * THANKS, build-aux/git-log-fix: s/Bernd Edligner/Bernd Edlinger/. |
| |
| 2015-01-04 Akim Demaille <[email protected]> |
| |
| %union: fix the support for named %union |
| Bison supports a union tag, for obscure reasons. But it does a poor |
| job at it, especially since Bison 3.0. |
| Reported by Stephen Cameron and Tobias Frost. |
| |
| It did not ensure that the name was not given several times. An easy |
| way to do this is to make the %union tag be handled as a %define |
| variable, as they cannot be defined several times. |
| |
| Since Bison 3.0, the synclines were wrongly placed, resulting in |
| invalid code. Addressing this issue, because of the way the union tag |
| was stored (as a code muscle), would have been tedious. Unless we |
| rather define the %union tag as a %percent variable, whose synclines |
| are easier to manipulate. |
| |
| So replace the b4_union_name muscle by the api.value.union.name |
| %define variable, document, and check. |
| |
| * data/bison.m4: Make sure that api.value.union.name has a keyword value. |
| * data/c++.m4: Make sure that api.value.union.name is not defined. |
| * data/c.m4 (b4_union_name): No longer use it, use api.value.union.name. |
| * doc/bison.texi (%define Summary): Document it. |
| * src/parse-gram.y (union_name): No longer define b4_uion_name, but |
| api.value.union.name. |
| * tests/input.at (Redefined %union name): New. |
| * tests/synclines.at (%union name syncline): New. |
| * tests/types.at: Check named %unions. |
| |
| 2015-01-04 Akim Demaille <[email protected]> |
| |
| package: bump to 2015 |
| Which also requires: |
| |
| * gnulib: Update. |
| |
| 2014-12-31 Akim Demaille <[email protected]> |
| |
| flex: don't trust YY_USER_INIT |
| Reported by Bernd Edlinger and others. |
| |
| * src/scan-gram.l: here. |
| |
| 2014-12-31 Akim Demaille <[email protected]> |
| |
| yacc.c: fix broken union when api.value.type=union and %defines are used |
| Reported by Rich Wilson. |
| |
| * data/c.m4 (b4_symbol_type_register): Append to b4_union_members, |
| not b4_user_union_members. |
| The latter invokes the former, but it is the former which is reinitialized |
| to empty by b4_value_type_setup_union. |
| * tests/types.at: Check it. |
| |
| This reveals another bug, this time in the case of glr.c parsers. |
| |
| * data/glr.c: Generate the header file before the implementation file, |
| to be sure that the setup is run before what depends on it. |
| |
| 2014-12-31 Akim Demaille <[email protected]> |
| |
| doc: fix missing xref |
| Reported by xolodho. |
| |
| * doc/bison.texi (Printer Decl): here. |
| |
| 2014-12-29 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2014-02-03 Akim Demaille <[email protected]> |
| |
| location: remove some ugly debugging code traces |
| * data/location.cc: here. |
| |
| 2014-02-03 Akim Demaille <[email protected]> |
| |
| build: use abort to pacify compiler errors |
| clang, with -DNDEBUG and -Werror fails on some functions that might |
| lack a return. This is because aver is just another assert, discarded |
| with -DNDEBUG. So use abort. |
| |
| * src/muscle-tab.c, src/scan-skel.l: here. |
| |
| 2014-02-03 Akim Demaille <[email protected]> |
| |
| package: bump to 2014 |
| * AUTHORS, ChangeLog-2012, Makefile.am, NEWS, PACKAGING, README, |
| * README-alpha, README-hacking, THANKS, TODO, bootstrap.conf, |
| * build-aux/darwin11.4.0.valgrind, build-aux/local.mk, |
| * build-aux/update-b4-copyright, |
| * build-aux/update-package-copyright-year, cfg.mk, configure.ac, |
| * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4, |
| * data/c-like.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.texi, doc/local.mk, doc/refcard.tex, |
| * etc/README, etc/bench.pl.in, etc/local.mk, |
| * examples/calc++/calc++.test, examples/calc++/local.mk, |
| * examples/extexi, examples/local.mk, examples/mfcalc/local.mk, |
| * examples/mfcalc/mfcalc.test, examples/rpcalc/local.mk, |
| * examples/rpcalc/rpcalc.test, examples/test, examples/variant.yy, |
| * 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/flex.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/graphviz.h, 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.c, 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/bison.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/javapush.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, tests/types.at: |
| here. |
| |
| 2014-01-03 Paul Eggert <[email protected]> |
| |
| doc: specify documentation encoding |
| * doc/bison.texi: Add '@documentencoding UTF-8'; needed since the |
| manual contains UTF-8 characters. This will cause the .info files |
| to contain UTF-8 quotes and the like, which should be OK nowadays. |
| Add @documentlanguage while we're at it. |
| |
| 2013-12-10 Akim Demaille <[email protected]> |
| |
| symbols: properly fuse the properties of two symbol aliases |
| This completes and fixes a7280757105b2909f6a58fdd1c582de8e278319a. |
| Reported by Valentin Tolmer. |
| |
| Before it Bison used to put the properties of the symbols |
| (associativity, printer, etc.) in the 'symbol' structure. An |
| identifier-named token (FOO) and its string-named alias ("foo") |
| duplicated these properties, and symbol_check_alias_consistency() |
| checked that both had compatible properties and fused them, at the end |
| of the parsing of the grammar. |
| |
| The commit a7280757105b2909f6a58fdd1c582de8e278319a introduces a |
| sym_content structure that keeps all these properties, and ensures |
| that both aliases point to the same sym_content (instead of |
| duplicating). However, it removed symbol_check_alias_consistency, |
| which resulted in the non-fusion of *existing* properties: |
| |
| %token FOO "foo" |
| %left FOO %left "foo" |
| |
| was properly diagnosed as a redeclaration, but |
| |
| %left FOO %left "foo" |
| %token FOO "foo" |
| |
| was not, as the properties of FOO and "foo" were not checked before |
| fusion. It certainly also means that |
| |
| %left "foo" |
| %token FOO "foo" |
| |
| did not transfer properly the associativity to FOO. |
| |
| The fix is simple: reintroduce symbol_check_alias_consistency (under a |
| better name, symbol_merge_properties) and call it where appropriate. |
| |
| Also, that commit made USER_NUMBER_HAS_STRING_ALIAS useless, but left |
| it. |
| |
| * src/symtab.h (USER_NUMBER_HAS_STRING_ALIAS): Remove, unused. |
| Adjust dependencies. |
| * src/symtab.c (symbol_merge_properties): New, based on the former |
| symbol_check_alias_consistency. |
| * tests/input.at: Re-enable tests that we now pass. |
| |
| 2013-12-10 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| package: install the examples |
| package: install README and the like in docdir |
| diagnostics: fix the order of multiple declarations reports |
| symbol: provide an easy means to compare them in source order |
| |
| 2013-12-09 Akim Demaille <[email protected]> |
| |
| package: install the examples |
| Currently, we do not install the various examples extracted from the |
| documentation. Let's do it, as they are useful starting points. |
| |
| * configure.ac: When --enable-gcc-warnings is set, enable ENABLE_GCC_WARNINGS. |
| * examples/extexi: No longer issue synclines by default. |
| * examples/local.mk: Except if ENABLE_GCC_WARNINGS. |
| * examples/calc++/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk: Install the example files. |
| |
| 2013-12-09 Akim Demaille <[email protected]> |
| |
| package: install README and the like in docdir |
| * Makefile.am: here. |
| |
| 2013-12-09 Akim Demaille <[email protected]> |
| |
| diagnostics: fix the order of multiple declarations reports |
| On |
| |
| %token FOO "foo" |
| %printer {} "foo" |
| %printer {} FOO |
| |
| we report |
| |
| /tmp/foo.yy:2.10-11: error: %printer redeclaration for FOO |
| %printer {} "foo" |
| ^^ |
| /tmp/foo.yy:3.10-11: previous declaration |
| %printer {} FOO |
| ^^ |
| |
| * src/symtab.c (locations_sort): New. |
| Use it. |
| * tests/input.at (Invalid Aliases): Stress the order of diagnostics. |
| |
| 2013-12-09 Akim Demaille <[email protected]> |
| |
| symbol: provide an easy means to compare them in source order |
| * src/symtab.c (symbols_sort): New. |
| (user_token_number_redeclaration): Taken from here. |
| |
| 2013-12-09 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: (43 commits) |
| maint: post-release administrivia |
| version 3.0.2 |
| gnulib: update |
| output: do not generate source files when late errors are caught |
| output: record what generated files are source or report files |
| output: do not generate source files when early errors are caught |
| xml: also use "%empty" with html output |
| style: formatting changes |
| xml: also display %empty for empty right-hand sides |
| reports: display %empty in the generated pointed-rules |
| news: YYERROR vs variants |
| style: scope reduction in lalr.cc |
| lalr1.cc: formatting changes |
| lalr1.cc: fix the support of YYERROR with variants |
| tests: check $$'s destruction with variant, YYERROR, and no error recovery |
| tests: simplify useless obfuscation |
| skeletons: use better names when computing a "goto" |
| maint: post-release administrivia |
| version 3.0.1 |
| aver: it is no longer "protected against NDEBUG" |
| ... |
| |
| 2013-12-05 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-12-05 Akim Demaille <[email protected]> |
| |
| version 3.0.2 |
| * NEWS: Record release date. |
| |
| 2013-12-05 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| * gnulib: here. |
| |
| 2013-12-04 Akim Demaille <[email protected]> |
| |
| output: do not generate source files when late errors are caught |
| Reported by Alexandre Duret-Lutz as "second problem" in: |
| http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html |
| |
| * bootstrap.conf: We need the "unlink" module. |
| * src/files.h, src/files.c (unlink_generated_sources): New. |
| * src/output.c: Use it. |
| * tests/output.at: Check the case of late errors. |
| |
| 2013-12-04 Akim Demaille <[email protected]> |
| |
| output: record what generated files are source or report files |
| * src/files.h, src/files.c (output_file_name_check): Take an additional |
| argument to record whether a file is a source or report file. |
| * src/files.c (generated_file): New. |
| (file_names, file_names_count): Replace with... |
| (generated_files, generated_files_size): these. |
| * src/scan-skel.l: Adjust. |
| |
| 2013-12-04 Akim Demaille <[email protected]> |
| |
| output: do not generate source files when early errors are caught |
| Reported by Alexandre Duret-Lutz as "second problem" in: |
| http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html |
| |
| One problem is that some errors are caught early, before the |
| generation of output files, while others can only be detected |
| afterwards (since, for instance, skeletons can raise errors |
| themselves). |
| |
| This will be addressed in two steps: early errors do not generate |
| source files at all, while later errors will remove the files that |
| have already been generated. |
| |
| * src/scan-skel.l (yyout): Open to /dev/null when there are errors. |
| * tests/output.at (AT_CHECK_FILES): Factored out of... |
| (AT_CHECK_OUTPUT): this. |
| Fuse the "SHELLIO" argument in the "FLAGS" one. |
| Use $5 to denote the expected exit status. |
| Add a test case for early errors. |
| |
| 2013-11-26 Akim Demaille <[email protected]> |
| |
| xml: also use "%empty" with html output |
| * data/xslt/xml2xhtml.xsl: No longer issue an Epsilon, display as in |
| dot and text formats. |
| |
| 2013-11-26 Akim Demaille <[email protected]> |
| |
| style: formatting changes |
| * src/print-xml.c: here. |
| |
| 2013-11-26 Akim Demaille <[email protected]> |
| |
| xml: also display %empty for empty right-hand sides |
| * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: Display %empty where needed. |
| |
| 2013-11-26 Akim Demaille <[email protected]> |
| |
| reports: display %empty in the generated pointed-rules |
| * src/print.c (print_core): Use %empty for empty rules. |
| * src/print_graph.c (print_core): Ditto. |
| * tests/conflicts.at, tests/output.at, tests/reduce.at: Adjust |
| expectations. |
| |
| 2013-11-26 Akim Demaille <[email protected]> |
| |
| news: YYERROR vs variants |
| |
| 2013-11-18 Akim Demaille <[email protected]> |
| |
| style: scope reduction in lalr.cc |
| * src/lalr.c: Shorten variable scopes. |
| (lookahead_tokens_print): Use the same variable name in two loops |
| iterating over the same structure. |
| |
| 2013-11-15 Akim Demaille <[email protected]> |
| |
| lalr1.cc: formatting changes |
| * data/lalr1.cc: Fix indentation. |
| |
| 2013-11-15 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix the support of YYERROR with variants |
| When variant are enabled, the yylhs variable (the left-hand side of |
| the rule being reduced, i.e. $$ and @$) is explicitly destroyed when |
| YYERROR is called. This is because before running the user code, $$ |
| is initialized, so that the user can properly use it. |
| |
| However, when quitting yyparse, yylhs is also reclaimed by the C++ |
| compiler: the variable goes out of scope. |
| |
| Instead of trying to be too smart, let the compiler do its job: reduce |
| the scope of yylhs to exactly the reduction. This way, whatever the |
| type of scope exit (regular, exception, return, goto...) this variable |
| will be properly reclaimed. |
| |
| Reported by Paolo Simone Gasparello. |
| <http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00003.html> |
| |
| * data/lalr1.cc (yyparse): Reduce the scope of yylhs. |
| * tests/c++.at: We now pass this test. |
| |
| 2013-11-15 Akim Demaille <[email protected]> |
| |
| tests: check $$'s destruction with variant, YYERROR, and no error recovery |
| When variant are enabled, the yylhs variable (the left-hand side of |
| the rule being reduced, i.e. $$ and @$) is explicitly destroyed when |
| YYERROR is called. This is because before running the user code, $$ |
| is initialized, so that the user can properly use it. |
| |
| However, when quitting yyparse, yylhs is also reclaimed by the C++ |
| compiler: the variable goes out of scope. |
| |
| This was not detected by the test suite because (i) the Object tracker |
| was too weak, and (ii) the problem does not show when there is error |
| recovery. |
| |
| Reported by Paolo Simone Gasparello. |
| <http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00003.html> |
| |
| * tests/c++.at (Exception safety): Improve the objects logger to make |
| sure that we never destroy twice an object. |
| Also track copy-constructors. |
| Use a set instead of a list. |
| Display the logs before running the function body, this is more |
| useful in case of failure. |
| Generalize to track with and without error recovery. |
| |
| 2013-11-15 Akim Demaille <[email protected]> |
| |
| tests: simplify useless obfuscation |
| * tests/c++.at: $$ is not special for M4, there is no need to "escape" |
| it. |
| |
| 2013-11-14 Akim Demaille <[email protected]> |
| |
| skeletons: use better names when computing a "goto" |
| * data/glr.c (yyLRgotoState): Name the symbol argument yysym, instead |
| of yylhs. |
| * data/lalr1.cc (yy_lr_goto_state_): Likewise. |
| * data/lalr1.java (yy_lr_goto_state_): New, modeled after the previous |
| two routines. |
| Use it. |
| |
| 2013-11-12 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-11-12 Akim Demaille <[email protected]> |
| |
| version 3.0.1 |
| * NEWS: Record release date. |
| |
| 2013-11-12 Akim Demaille <[email protected]> |
| |
| aver: it is no longer "protected against NDEBUG" |
| Apply the same rules for aver as for assert: no side effects, |
| especially not important ones. |
| |
| * src/AnnotationList.c, src/muscle-tab.c: Adjust aver uses to resist |
| to -DNDEBUG. |
| |
| 2013-11-08 Akim Demaille <[email protected]> |
| |
| parsers: rename YY_NULL as YY_NULLPTR to avoid conflicts with Flex |
| Flex also defines YY_NULL (to 0). Avoid gratuitous conflicts. |
| |
| * data/c.m4 (b4_null_define): Rename YY_NULL as YY_NULLPTR. |
| |
| * data/glr.c, data/lalr1.cc, data/location.cc, data/variant.hh, |
| * data/yacc.c, src/parse-gram.c, tests/actions.at, tests/c++.at, |
| * tests/cxx-type.at, tests/glr-regression.at, tests/headers.at, |
| * tests/push.at, tests/regression.at: |
| Adjust. |
| |
| 2013-11-05 Akim Demaille <[email protected]> |
| |
| build: use Automake 1.14's non-recursive Makefile features |
| * configure.ac: Require Automake 1.14. |
| * examples/calc++/local.mk, examples/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk, tests/local.mk: Use %D% and %C%. |
| |
| 2013-11-05 Akim Demaille <[email protected]> |
| |
| build: restore maintainer-push-check |
| * tests/local.mk: here. |
| |
| 2013-11-05 Akim Demaille <[email protected]> |
| |
| c++: use __attribute__((__pure__)) to avoid warnings |
| Building C++ parsers with -Wsuggest-attribute=const and |
| -Wsuggest-attribute=noreturn triggers warning in generated code. |
| |
| * data/lalr1.cc: Call b4_attribute_define. |
| (debug_stream, debug_level): Flag as pure. |
| * tests/headers.at (Several parsers): There are now more YY macros |
| that "leak". |
| |
| 2013-11-05 Akim Demaille <[email protected]> |
| |
| skeletons: update the handling of compiler attributes |
| * data/c.m4 (b4_attribute_define): Instead of defining __attribute__, |
| define YY_ATTRIBUTE conditionally. |
| (YY_ATTRIBUTE_PURE, YY_ATTRIBUTE_UNUSED, _Noreturn): New. |
| Use them. |
| * data/glr.c: Use them. |
| |
| 2013-11-05 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2013-10-24 Akim Demaille <[email protected]> |
| |
| style: use /* ... */ comments |
| * src/complain.c: Here. |
| |
| 2013-10-24 Akim Demaille <[email protected]> |
| |
| tests: skip C++ tests that are too demanding for some compilers |
| Some tests now fail when compiled with G++ 4.3 or 4.4 on MacPorts. |
| |
| * tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): New. |
| * tests/c++.at (Exception safety): Use it. |
| |
| 2013-10-22 Akim Demaille <[email protected]> |
| |
| install: do not install yacc.1 when --disable-yacc |
| * configure.ac (ENABLE_YACC): New conditional. |
| (YACC_SCRIPT, YACC_LIBRARY): Remove. |
| * lib/local.mk, src/local.mk: Use the former instead of the latter. |
| * doc/local.mk: Use ENABLE_YACC to avoid installing yacc.1. |
| |
| 2013-10-22 Akim Demaille <[email protected]> |
| |
| style: avoid tabs |
| * src/scan-code.l: here. |
| |
| 2013-10-22 Akim Demaille <[email protected]> |
| |
| c++: fix generated doxygen comments |
| * configure.ac: Enable -Wdocumentation if supported. |
| * data/lalr1.cc: Fix comments. |
| |
| 2013-10-22 Akim Demaille <[email protected]> |
| |
| fix: uniqstr are already pointers |
| * src/uniqstr.c (uniqstr_assert): Remove incorrect double indirection, |
| and now useless cast. |
| |
| 2013-10-22 Paul Eggert <[email protected]> |
| |
| bison: pacify Sun C 5.12 |
| * src/scan-code.l (show_sub_message): |
| Redo initializations to work around a bogus Sun C 5.12 warning. |
| (parse_ref): Remove unreachable code that Sun C 5.12 complains about. |
| * src/uniqstr.h (uniqstr_vsprintf): Use |
| _GL_ATTRIBUTE_FORMAT_PRINTF (...) instead of __attribute__ |
| ((__format__ (__printf__, ...))). Otherwise, Sun C 5.12 |
| complains about an unknown attribute. |
| |
| 2013-10-22 Paul Eggert <[email protected]> |
| |
| maint: git now ignores rpcalc |
| * examples/rpcalc/.gitignore: Ignore rpcalc. |
| |
| 2013-10-22 Paul Eggert <[email protected]> |
| |
| build: examples/calc++/calc++ requires flex |
| * configure.ac (FLEX_CXX_WORKS): New AM_CONDITIONAL. |
| * examples/calc++/local.mk (examples/calc++/calc++): |
| Build if FLEX_CXX_WORKS, not BISON_CXX_WORKS. |
| |
| 2013-10-22 Paul Eggert <[email protected]> |
| |
| maint: mention help2man, texinfo, apt-get |
| * README-hacking: Add help2man, texinfo. |
| Describe how to add packages if you're using Debian. |
| |
| 2013-10-22 Paul Eggert <[email protected]> |
| |
| maint: git now ignores .log and .trs files |
| * .gitignore: Add *.log, *.trs. |
| |
| 2013-10-21 Akim Demaille <[email protected]> |
| |
| tests: fix incorrect object construction |
| Reported by Ken Moffat. |
| http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00009.html |
| |
| * tests/c++.at (Exception safety): Here. |
| |
| 2013-10-16 Akim Demaille <[email protected]> |
| |
| glr: allow spaces between "%?" and "{" in predicates |
| Reported by Rici Lake. |
| http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00004.html |
| http://stackoverflow.com/questions/19330171/ |
| |
| * src/scan-gram.l: Do not try to be too smart when diagnosing invalid |
| directives. |
| * tests/glr-regression.at (Predicates): New test. |
| |
| 2013-10-16 Akim Demaille <[email protected]> |
| |
| diagnostics: "-Werror -Wno-error=foo" must not emit errors |
| Currently "-Werror -Wno-error=foo" still turns "foo" warnings into errors. |
| Reported by Alexandre Duret-Lutz. |
| See http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html. |
| |
| * src/complain.c (errority, errority_flag): New. |
| (complain_init): Initialize the latter. |
| (warning_argmatch): Extract the loop iterating on the flag's bits. |
| Set and unset errority_flag here. |
| (warnings_argmatch): -Wno-error is not the same as -Wno-error=everything: |
| we must remember if category foo was explicitly turned in an error/warning |
| via -W(no-)error=foo. |
| (warning_severity): Use errority_flag. |
| |
| * tests/input.at (Symbols): Just check --yacc, not -Wyacc, that's the |
| job of tests on -W. |
| (-Werror is not affected by -Wnone and -Wall): Rename as... |
| (-Werror combinations): this. |
| Tests more combinations of -W, -W(no-)error, and -W(no-)error=foo. |
| * tests/local.at (AT_BISON_CHECK_WARNINGS): Don't expect -Werror |
| to turn runs that issue warnings into runs with errors, as the |
| warnings might be enforced as warnings by -Wno-error=foo, in which |
| case -Werror does not change anything. |
| |
| * doc/bison.texi (Bison Options): Try to be clearer about how |
| -W(no-)error and -W(no-)error=foo interact. |
| |
| 2013-10-16 Akim Demaille <[email protected]> |
| |
| comment changes |
| * src/complain.h, src/complain.c: More documentation, more comments. |
| |
| 2013-10-04 Andreas Schwab <[email protected]> |
| |
| location: fix EOF check |
| * location.c (location_caret): Use int, not char, for values from |
| getc. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| style: variant: remove empty line |
| * data/variant.hh (b4_symbol_constructor_define_): Remove |
| stray eol. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| glr: more assertions |
| glr: shorten scopes |
| glr: formatting changes |
| glr: better use of tracing macros |
| examples: improve the output of the "variant" example |
| variant: remove useless assertion |
| tests: remove stray debugging traces |
| tests: do not use grep -q |
| build: don't require flex for ordinary builds |
| maint: update .gitignore |
| build: port to pre-5.8.7 perl |
| tests: minor change to make it easier to test other skeletons |
| uniqstr: fix assertion |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| glr: simplify the invocation of YYLLOC_DEFAULT |
| The commit which introduces yyresolveLocations (commit |
| 8710fc41aaebc5d167a2783a4b8b60849a803869) saves and restores the |
| look-ahead (type, value and location) for no clear reason. This |
| appears to be useless. |
| |
| * data/glr.c (yyresolveLocations): Don't save/restore the current |
| look-ahead to call YYLLOC_DEFAULT. |
| Minor style changes. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| glr: more assertions |
| * data/glr.c (yyaddDeferredAction, yyglrShiftDefer, yypdumpstack): |
| More assertions. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| glr: shorten scopes |
| * data/glr.c (yyglrReduce): Define yyflag with its value. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| glr: formatting changes |
| * data/glr.c: here. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| glr: better use of tracing macros |
| * data/glr.c (yydestroyGLRState): Use YY_SYMBOL_PRINT instead of |
| yy_symbol_print. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| examples: improve the output of the "variant" example |
| * examples/variant.yy: Improve the printing of lists. |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| variant: remove useless assertion |
| * data/variant.hh (move): Remove precondition assertion which is |
| ensured by the first call of the body (this precondition is also one |
| of "build"). |
| |
| 2013-09-19 Akim Demaille <[email protected]> |
| |
| tests: remove stray debugging traces |
| * tests/atlocal.in: Remove traces. |
| Be ready to remove conftest.dSYM generated on OS X. |
| |
| 2013-09-04 Akim Demaille <[email protected]> |
| |
| tests: do not use grep -q |
| Reported by Daniel Galloway. |
| http://lists.gnu.org/archive/html/bug-bison/2013-08/msg00020.html |
| |
| * tests/java.at: Ignore grep's output instead. |
| |
| 2013-08-25 Paul Eggert <[email protected]> |
| |
| build: don't require flex for ordinary builds |
| * configure.ac (LEX): Don't fail if this is lex, as flex is not |
| required for ordinary builds. Instead, issue a warning and |
| substitute a no-op LEX. Reported by Michael Felt in |
| <http://lists.gnu.org/archive/html/bug-bison/2013-08/msg00009.html>. |
| |
| 2013-08-25 Paul Eggert <[email protected]> |
| |
| maint: update .gitignore |
| * .gitignore: Add *.eps, *.o, *.pdf, *.png, *.stamp, *~, |
| .deps, .dirstamp. Needed to suppress unwanted chatter from |
| 'git status' after a bootstrap build. |
| |
| 2013-08-24 Paul Eggert <[email protected]> |
| |
| build: port to pre-5.8.7 perl |
| * examples/local.mk (extract): Omit -f from perl options. |
| This doesn't work with perl versions before 5.8.7 |
| that are configured without USE_SITECUSTOMIZE. |
| Reported by Michael Felt in |
| <http://lists.gnu.org/archive/html/bug-bison/2013-08/msg00006.html>. |
| |
| 2013-08-01 Akim Demaille <[email protected]> |
| |
| tests: minor change to make it easier to test other skeletons |
| * tests/c++.at (Variants): Pass the skeleton as argument. |
| |
| 2013-08-01 Valentin Tolmer <[email protected]> |
| |
| uniqstr: fix assertion |
| * src/uniqstr.c (uniqstr_assert): Really make sure str is a uniqstr, |
| not just whether some uniqstr with the same content was registered. |
| |
| 2013-08-01 Valentin Tolmer <[email protected]> |
| |
| symbols: improve symbol aliasing |
| Rather than having duplicate info in the symbol and the alias that has |
| to be resolved later on, both the symbol and the alias have a common |
| pointer to a separate structure containing this info. |
| |
| * src/symtab.h (sym_content): New structure. |
| * src/symtab.c (sym_content_new, sym_content_free, symbol_free): New |
| |
| * src/AnnotationList.c, src/conflicts.c, src/gram.c, src/gram.h, |
| * src/graphviz.c, src/ielr.c, src/output.c, src/parse-gram.y, src/print.c |
| * src/print-xml.c, src/print_graph.c, src/reader.c, src/reduce.c, |
| * src/state.h, src/symlist.c, src/symtab.c, src/symtab.h, src/tables.c: |
| Adjust. |
| |
| * tests/input.at: Fix expectations (order changes). |
| |
| 2013-08-01 Akim Demaille <[email protected]> |
| |
| build: ship the ASCII art figures |
| We don't ship the *.txt files that are used to build the info |
| file. |
| Reported by Colin Daley. |
| |
| * doc/figs/example.txt: New. |
| * doc/local.mk (bison.info): Depend on the txt files. |
| And ship them. |
| |
| 2013-08-01 Akim Demaille <[email protected]> |
| |
| doc: prefer the ".gv" extension to ".dot" |
| See http://marc.info/?l=graphviz-devel&m=129418103126092 for the |
| motivation (basically, some word processor now uses *.dot). |
| |
| * doc/figs/example-reduce.dot: Rename as... |
| * doc/figs/example-reduce.gv: this. |
| * doc/figs/example-shift.dot: Rename as... |
| * doc/figs/example-shift.gv: this. |
| * doc/figs/example.dot: Rename as... |
| * doc/figs/example.gv: this. |
| * doc/local.mk: Adjust. |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| version 3.0 |
| * NEWS: Record release date. |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| news: prepare 3.0 |
| * NEWS (3.0): Reorder. |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| tests: fix invalid assignment when using variants in C++11 |
| * tests/c++.at (Exception safety): In variant mode $$ is an instance |
| of Object. Assigning YY_NULL in C++98 is incorrect, but behaves ok, |
| as it assigns YY_NULL=0 using Object::operator= (char v). It is wrong |
| in C++11 as there is operator for "$$ = nullptr". |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| yacc: beware of "uninitialized uses" warnings |
| Again some issues with the fact that yylval is reported by GCC as |
| possibly not initialized in some cases. Here, the case at hand is the |
| %destructor. |
| |
| I am still not convinced that it is worth going all the trouble of |
| using pragmas to disable temporarily some warnings, instead of just |
| initializing the looking symbol once for all, but that's what Paul |
| voted for, see |
| <http://lists.gnu.org/archive/html/bison-patches/2012-10/msg00050.html>. |
| |
| * data/c.m4 (b4_attribute_define): Define |
| YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, |
| YY_INITIAL_VALUE here, as we will need them in the generation of the |
| destructor function, which is defined in yacc.c before yyparse, which |
| was in charge of defining these macros. |
| * data/yacc.c (b4_declare_scanner_communication_variables): Simplify: |
| trying to factor the definitions of the case pure and impure is |
| too complex. |
| Actually, it is not even clear that this macro should really exist, |
| as even the calls are complex. |
| Be careful not to issue a lone ";", as this is a statement, and C90 |
| forbids declarations after statements ; so write |
| "YY_INITIAL_VALUE(Decl;)", not "YY_INITIAL_VALUE(Decl);". |
| |
| 2013-07-25 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2013-07-03 Akim Demaille <[email protected]> |
| |
| tests: skip C++ tests if we can't compile a simple program |
| There are possible conflicts between gnulib replacement functions (in |
| <stdio.h>) and their C++ wrappers (in <stream>). Trying to address |
| these in configure seems too hard, and I don't know how to fix the issue |
| in gnulib. Cowardly avoid the problem by skipping C++ tests when this |
| happens. |
| Reported by Stefano Lattarini. |
| http://lists.gnu.org/archive/html/bug-bison/2013-06/msg00001.html |
| |
| * tests/atlocal.in (BISON_CXX_WORKS): Also set it to "skip" if we can't |
| compile a simple program using <stream>. |
| * tests/local.at: Comment changes. |
| |
| 2013-07-03 Akim Demaille <[email protected]> |
| |
| tests: fix 'find' portability issues |
| Reported by Stefano Lattarini. |
| http://lists.gnu.org/archive/html/bug-bison/2013-06/msg00000.html |
| |
| * tests/output.at (AT_CHECK_OUTPUT): Use Perl instead. |
| |
| 2013-06-24 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-06-24 Akim Demaille <[email protected]> |
| |
| version 2.7.91 |
| * NEWS: Record release date. |
| |
| 2013-06-24 Akim Demaille <[email protected]> |
| |
| NEWS: prepare for 2.7.91 |
| * NEWS (2.7.91): Java push parsers. |
| |
| 2013-06-24 Akim Demaille <[email protected]> |
| |
| java: rename YYMORE as YYPUSH_MORE for consistency with C |
| http://lists.gnu.org/archive/html/bison-patches/2013-06/msg00008.html |
| |
| * data/lalr1.java, doc/bison.texi, tests/javapush.at: |
| s/YYMORE/YYPUSH_MORE. |
| |
| 2013-06-21 Akim Demaille <[email protected]> |
| |
| tests: fix Java push failure when running with BISON_USE_PUSH_FOR_PULL |
| * tests/javapush.at (Trivial Push Parser with api.push-pull verification): |
| When push for pull is enabled, there is one such function generated. |
| |
| 2013-06-21 Akim Demaille <[email protected]> |
| |
| style: minor changes in the Java tests |
| * tests/java.at (AT_CHECK_JAVA_GREP): Ignore the exit status. |
| * tests/javapush.at (AT_CHECK_JAVA_GREP): Be more alike the previous |
| one. |
| Formating changes. |
| Remove stray debugging "jj" file. |
| |
| 2013-06-21 Akim Demaille <[email protected]> |
| |
| java: push: do not reset the error counter |
| * data/lalr1.java (parse): here, when in push-pull is in "both" mode. |
| This breaks the test suite, for instance |
| make check TESTSUITEFLAGS='-d 388 BISON_USE_PUSH_FOR_PULL=1'. |
| More generally make maintainer-push-check. |
| |
| 2013-06-14 Akim Demaille <[email protected]> |
| |
| build: add Valgrind suppression file for GNU/Linux |
| * build-aux/linux-gnu.valgrind: New. |
| * build-aux/local.mk: Ship it. |
| * configure.ac: Use it. |
| |
| 2013-06-13 Dennis Heimbigner <[email protected]> |
| |
| java: add push-parser support |
| * data/lalr1.java: Capture the declarations as m4 macros to avoid |
| duplication. When push parsing, the declarations occur at the class |
| instance level rather than within the parse() function. |
| |
| Change the way that the parser state is initialized. For |
| push-parsing, the parse state declarations are moved to |
| "push_parse_initialize()", which is called on the first invocation of |
| "push_parse()". The %initial-action code is also inserted after the |
| invocation of "push_parse_initialize()". |
| |
| The body of the parse loop is modified to return values at appropriate |
| points when doing push parsing. In order to make push parsing work, |
| it is necessary to divide YYNEWSTATE into two states: YYNEWSTATE and |
| YYGETTOKEN. On the first call to push_parse(), the state is |
| YYNEWSTATE. On all later entries, the state is set to YYGETTOKEN. The |
| YYNEWSTATE switch arm falls through into YYGETTOKEN. YYGETTOKEN |
| indicates that a new token is potentially needed. Normally, with a |
| pull parser, this new token would be obtained by calling "yylex()". In |
| the push parser, the value YYMORE is returned to the caller. On the |
| next call to push_parse(), the parser will return to the YYGETTOKEN |
| state and continue operation. |
| |
| * tests/javapush.at: New test file for java push parsing. |
| * tests/testsuite.at: Use it. |
| * tests/local.mk: Adjust. |
| * doc/bison.texi (Java Push Parser Interface): New. |
| |
| 2013-06-11 Akim Demaille <[email protected]> |
| |
| build: ship all the files, even if the C++ compiler is broken |
| * examples/calc++/local.mk: Be sure to ship calc++.test even if |
| the current C++ compiler is not sufficient to run the tests. |
| |
| 2013-06-05 Dennis Heimbigner <[email protected]> |
| |
| style: comment changes in Java skeleton |
| * data/lalr1.java: Here. |
| |
| 2013-06-03 Akim Demaille <[email protected]> |
| |
| tests: fix a G++ warning |
| * tests/c++.at: Use YY_NULL instead of 0 for the null pointer. |
| And formatting changes. |
| |
| 2013-06-03 Akim Demaille <[email protected]> |
| |
| build: fix a warning from clang |
| * src/muscle-tab.c: Declare local functions static. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| version 2.7.90 |
| * NEWS: Record release date. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| style: syntax-check fixes |
| * data/yacc.c, src/Sbitset.c, src/Sbitset.h, src/muscle-tab.h, |
| * src/output.c, src/parse-gram.y, src/reader.c, src/symtab.c, |
| * src/uniqstr.c, src/uniqstr.h: Fix space before parens. |
| * cfg.mk (_space_before_paren_exempt): Add needed exceptions. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| xml: use %empty in the text output |
| * data/xslt/xml2text.xsl: here. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| build: locally disable new GCC warnings that fail on Flex generated code |
| * configure.ac: here. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| fix a memory leak |
| * src/print-xml.c (num_escape_bufs): New. |
| (print_xml): Be sure to release all the escape_bufs. |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-05-30 Akim Demaille <[email protected]> |
| |
| build: be sure to include config.h first in the generated parser |
| Using %code for config.h is wrong, as some headers will already have |
| been included by Bison. In some cases, e.g., glibc's string.h, this |
| results in some declaration not being made for lack of definition of |
| _GNU_SOURCE, which is performed by config.h. |
| |
| * src/parse-gram.y: here. |
| |
| 2013-05-29 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: post-release administrivia |
| version 2.7.1 |
| regen |
| |
| 2013-05-29 Petr Machata <[email protected]> |
| |
| drop unused options --raw, -n, -e, --include and -I |
| * --raw appears to be ignored. It was marked as obsolete in the |
| commit ec3bc39, and documented as no longer supported as of 1.29 |
| (2001-09-07). Support for %raw appears to have been dropped in |
| e9955c83 on 2002-06-11, but --raw was kept around. Maybe it's time |
| to drop it as well? |
| |
| * Commit e9955c83 dropped support for %no-parser as well, and |
| converted it to option. --no-parser was later dropped in 728c4be2 |
| on 2007-08-12, but -n was kept around, probably as an omission. All |
| three are documented as removed since 2.3b (2008-05-27). |
| |
| * -e existed for a single day in 2001. It was introduced in eeeb962b |
| on 2001-11-27. The handling was removed in c7925b99 on 2001-11-28, |
| but "e" was kept in the list of short options. Probably an |
| omission. |
| |
| * --include appears to be dead code. The option sets a variable, but |
| that variable is not used anywhere. It was added in f6bd5427 on |
| 2001-11-26 as a %-directive, with comments that it's not yet |
| implemented. It was converted to a command-line option later, but |
| doesn't seem to ever have been actually implemented. |
| |
| 2013-05-28 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2013-04-22 Akim Demaille <[email protected]> |
| |
| diagnostics: always point to the first directive |
| Some directives cannot be used several times (e.g., a given symbol may |
| only have a single printer). In case of repeated definitions, an |
| error is issued for the second definition, yet it is not discarded, |
| and becomes the definition used for the rest of the file. |
| |
| This is not consistent with the idea that multiple definitions are not |
| allowed: discard any repeated directive. |
| |
| * src/symtab.c (symbol_type_set, symbol_code_props_set) |
| (semantic_type_code_props_set, symbol_class_set, symbol_translation): |
| Discard repeated directives. |
| * tests/input.at (Default %printer and %destructor redeclared) |
| (Per-type %printer and %destructor redeclared): Update expectations. |
| |
| 2013-04-22 Akim Demaille <[email protected]> |
| |
| tests: factor test for printer/desctructor redefined |
| * tests/input.at (Default %printer and %destructor redeclared): |
| Introduce AT_TEST to factor. |
| |
| 2013-04-22 Akim Demaille <[email protected]> |
| |
| diagnostics: use appropriate location for useless precedence/associativity |
| * src/symtab.c (symbol_precedence_set): Use prec_location, not |
| location (which is the first occurrence of the symbol, possibly just |
| %token). |
| Also, as redefinitions are not allowed, keep the first values, not |
| the subsequent ones. |
| * tests/conflicts.at, tests/existing.at, tests/regression.at: Adjust. |
| |
| 2013-04-22 Akim Demaille <[email protected]> |
| |
| tests: factor duplicate expected warnings |
| * tests/existing.at: Instead of "t ? abc : aBc", write "a(t?b:B)c". |
| |
| 2013-04-19 Akim Demaille <[email protected]> |
| |
| tests: enable -Wsign-compare and fix corresponding warnings |
| -Wsign-compare was disabled for bison's own code, following gnulib's |
| approach. However, the generated parsers should not trigger such |
| warnings. |
| |
| Reported by Efi Fogel. |
| http://lists.gnu.org/archive/html/help-bison/2013-04/msg00018.html |
| |
| See also http://stackoverflow.com/questions/16101062 for the weird |
| "-(unsigned)i" piece of code. |
| |
| * configure.ac (warn_tests): Enable -Wsign-compare. |
| * data/location.cc (position::add_): New. |
| (position::lines, position::columns): Use it. |
| * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): Fix signedness issues. |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| muscle: check more cases of %define variables with code values |
| * data/bison.m4 (b4_percent_define_check_kind): Fix overquotation. |
| (api.location.type, api.position.type): Check they have code values here. |
| * data/c++.m4 (api.location.type): No longer checked here. |
| (parser_class_name): Check it here. |
| * data/java.m4 (api.value.type, init_throws, lex_throws, parser_class_name) |
| (throws, annotations, extends, implements): Check they have code values. |
| * doc/bison.texi: Fix every incorrect occurrence of %define. |
| Document the additional syntax for %define: code values. |
| Document the additional syntax for -D/-F: string and code values. |
| * tests/calc.at, tests/headers.at, tests/input.at, tests/java.at, |
| * tests/local.at: Fix dependencies. |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| parser: do not convert $ and @ in code values of %define variables |
| * src/parse-gram.y (value: "{...}"): Just strip the braces, but pass |
| the value as is. |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| parser: no longer use the "braceless" non-terminal |
| The purpose of this symbol was only to factor function calls. As a |
| result the actions were indeed simpler, but the grammar was somewhat |
| uselessly obfuscated. Get rid of this symbol, but introduce functions |
| to simplify dependencies. |
| |
| There is no (intended) changes of behavior here. |
| |
| * src/parse-gram.y (strip_braces, translate_code( |
| (translate_code_braceless): New. |
| (braceless): Remove, use "{...}" instead, and one of the previous |
| functions depending on the context. |
| (STRING, "%{...%}", EPILOGUE): Declare as <code>, instead of <chars>, |
| the difference between both is useless (well, I couldn't make sense of |
| it, even after having read the initial commit that introduced them). |
| (%union): Remove the now useless "chars" type. |
| Adjust the printers. |
| * src/scan-gram.l: Adjust. |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| style: avoid %{...%} in our parser |
| * src/parse-gram.y (%{...%}): Split in %code and %code requires. |
| * src/location.h: Add missing includes for self containedness. |
| |
| 2013-04-18 Akim Demaille <[email protected]> |
| |
| style: use %code for local function declarations in our parser |
| * src/parse-gram.y (version_check, gram_error, char_name, lloc_default): |
| Move their prototypes from %{...%} to %code. |
| (YYLLOC_DEFAULT, YY_LOCATION_PRINT): Move from %{...%} to %code. |
| (current_lhs): Move its implementation to the epilogue. |
| |
| 2013-04-16 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-16 Akim Demaille <[email protected]> |
| |
| muscle: check the kind of api.prefix, api.location.type |
| * data/bison.m4: Check api.prefix. |
| * data/c++.m4: Check api.location.type. |
| * doc/bison.texi: Fix uses of api.value.type, api.prefix, api.location.type. |
| Document {...} values for %define. |
| * src/parse-gram.y: Fix use of api.prefix. |
| * tests/calc.at: Fix uses of api.location.type. |
| * tests/input.at: Check api.prefix, and api.location.type. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| version 2.7.1 |
| * NEWS: Record release date. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: enforce definition syntax for keyword variables |
| * src/muscle-tab.c (muscle_percent_define_get_kind) |
| (muscle_percent_define_check_kind): New. |
| (muscle_percent_define_default): Variables with a default value are |
| of "keyword" kind. |
| (muscle_percent_define_flag_if, muscle_percent_define_check_values): |
| Check that the variable is of keyword kind. |
| * data/bison.m4: Likewise, but in M4. That is to say... |
| (b4_percent_define_default): Define the kind when the variable is undefined. |
| (b4_percent_define_check_kind): Use a better error message. |
| (_b4_percent_define_check_values, _b4_percent_define_check_values): |
| Former "enum" variables should be defined using the keyword syntax. |
| * doc/bison.texi: Update. |
| A couple of fixes. |
| * tests/input.at (%define keyword variables): New. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: let -D/-F support the three kinds of %define variable values |
| See http://lists.gnu.org/archive/html/bison-patches/2013-04/msg00012.html |
| |
| * src/getargs.c (getargs): Recognize {value} and "value" for -D and -F. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: minor refactoring |
| * src/muscle-tab.c (muscle_percent_define_default): Reduce the scopes. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: minor simplification which uncovers a missing warning |
| * src/muscle-tab.c (muscle_percent_define_ensure): Discover the virtues |
| of || to factor conditionals. |
| * NEWS: As api.pure is no longer flagged as "used" by accident, |
| we now have warnings for useless definitions. |
| * tests/calc.at: So remove api.pure settings when running C++ tests, |
| since C++ skeletons use a pure interface. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: factor the field retrieval |
| * src/muscle-tab.c (muscle_percent_define_get_raw): New. |
| Use it where appropriate. |
| (location_decode): No longer fetch the value from the table, |
| take the value as argument. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: factor the handling of used variables |
| * src/muscle-tab.c (muscle_percent_define_use): New, corresponding |
| to b4_percent_define_use. |
| Use it where appropriate. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: factor the computation of variable names |
| * src/muscle-tab.c (muscle_name): New. |
| Use it. |
| Propagate "uniqstr" as value type instead of plain "char const *". |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: factor the kind check in M4 |
| * data/bison.m4 (b4_percent_define_check_kind): New. |
| Use it to check api.token.prefix. |
| * data/c++.m4: Check the kind of api.namespace. |
| * doc/bison.texi: Update a reference to former 'namespace' variable. |
| * tests/input.at ("%define" code variables): Check api.namespace. |
| |
| 2013-04-15 Akim Demaille <[email protected]> |
| |
| muscle: factor conditionals on defined %define variables |
| * data/bison.m4 (b4_percent_define_ifdef_): New. |
| Use it where appropriate. |
| |
| 2013-04-11 Akim Demaille <[email protected]> |
| |
| api.token.prefix: use code values |
| * data/bison.m4: Remove useless (and incorrect: m4_* instead of b4_*) |
| default assignment to api.token.prefix. |
| Check that api.token.prefix is assigned code. |
| * tests/input.at (%define code variables): New test. |
| * NEWS, doc/bison.texi, tests/c++.at, tests/calc.at, |
| * tests/java.at, tests/local.at: Adjust to use braces. |
| |
| 2013-04-11 Akim Demaille <[email protected]> |
| |
| c++: fix several issues with locations |
| Reported by Daniel Frużyński. |
| http://lists.gnu.org/archive/html/bug-bison/2013-02/msg00000.html |
| |
| * data/location.cc (position::columns, position::lines): Check for |
| underflow. |
| Fix some weird function signatures. |
| (location): Accept signed integers as arguments where appropriate. |
| Add operator- and operator+=. |
| * doc/bison.texi (C++ position, C++ location): Various fixes |
| and completion. |
| * tests/c++.at (C++ Locations): New tests. |
| |
| 2013-04-11 Akim Demaille <[email protected]> |
| |
| muscles: be sure that %code snippets are not glue together on a single line |
| Recently "braceless" in the parser was changed so that an eol was no |
| longer added to the value. This is not correct when a %code is used |
| multiple times, because the syncline of the next snippet might be |
| appended to the last (and not ended) line of the previous snippet. |
| |
| * src/muscle-tab.h (muscle_grow): Make it private. |
| * src/muscle-tab.c (muscle_grow): Accept a fourth argument: a required |
| terminator. |
| Adjust callers. |
| * tests/input.at (Multiple %code): New. |
| |
| 2013-04-11 Akim Demaille <[email protected]> |
| |
| style: fix comments |
| * tests/actions.at: Fix incorrect "prototype". |
| |
| 2013-04-10 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| glr.cc: fix a clang warning |
| maint: update copyright years |
| build: fix VPATH issue |
| build: avoid clang's colored diagnostics in the test suite |
| tests: please clang and use ".cc", not ".c", for C++ input |
| gnulib: update |
| skeletons: avoid empty switch constructs |
| lalr1.cc: fix compiler warnings |
| yacc.c: do not use __attribute__ unprotected |
| tests: style changes |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| api.value.type: use keyword/brace values |
| Suggested by Joel E. Denny. |
| http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html |
| |
| * data/bison.m4 (b4_percent_define_get_kind): New. |
| (b4_variant_flag): Check that api.value.type is defined as the 'variant' |
| keyword value. |
| * data/c.m4 (_b4_value_type_setup_keyword): New. |
| (b4_value_type_setup): Use it to simplify reading. |
| Use b4_define_silent. |
| Decode api.value.type, including its type. |
| (b4_value_type_define): Likewise. |
| * data/c++.m4 (b4_value_type_declare): Adjust the decoding of api.value.type, |
| taking its kind into account. |
| * doc/bison.texi: Adjust all the examples to the new syntax. |
| * NEWS: Ditto. |
| * tests/types.at: Adjust |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| api.value.type: diagnose guaranteed failure with --yacc |
| Instead of generating invalid C code, generate an error when --yacc and |
| '%define api.value.type union' are used together. |
| |
| * data/bison.m4: Issue an error in this case. |
| * tests/types.at (%yacc vs. %define api.value.type union): New, check this |
| error. |
| * doc/bison.texi (Type Generation): Document it. |
| * tests/output.at: Check that '-o y.tab.c' and '-y' behave equally |
| wrt generated file names. |
| * NEWS (Use of YACC='bison -y'): New. |
| Promote the use of 'bison -o y.tab.c'. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| doc: style changes |
| * doc/bison.texi (Destructor Decl, Printer Decl): Group series of %token |
| and %type together. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| doc: display locations in error as recommended by GNU Coding Standards |
| * doc/bison.texi (Actions and Locations): here. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| doc: api.value.type union |
| * doc/bison.texi (Type Generation): New section. |
| (Multi-function Calc): Convert to use api.value.type=union. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| doc: move the section about "%union" where types are discussed |
| * doc/bison.texi (Union Decl): Move to... |
| (Defining Language Semantics): here. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| doc: deprecate #define YYSTYPE in favor of %define api.value.type |
| * doc/bison.texi: Convert examples with YYSTYPE to use api.value.type. |
| Deprecate YYSTYPE. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| value type: accept "->" in type tags |
| Provide a means to dereference pointers when defining tags. One |
| example could be: |
| |
| %code requires |
| { |
| typedef struct ListElementType |
| { |
| union value |
| { |
| int intVal; |
| float floatVal; |
| char* charptrVal; |
| } value; |
| |
| struct ListElementType* next; |
| } ListElementType; |
| } |
| |
| %union |
| { |
| ListElementType* list; |
| } |
| |
| %token <list->value.charptrVal> STRING |
| %token <list->value.intVal> INTEGER |
| %token <list->value.floatVal> REAL |
| %type <list> ElementList LiteralType |
| |
| * src/scan-code.l, src/scan-gram.l: Accept "->" in tags. |
| * tests/types.at: Add more test cases to cover this case. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| style: simplify the scanning of type tags |
| * src/scan-gram.l: Remove the rule for simple tags: the "complex" case |
| subsumes it. It was more efficient, but duplicated the code for a |
| negligible benefit. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| api.value.type: implement proper support, check, and document |
| * data/c.m4 (b4_symbol_type_register, b4_type_define_tag) |
| (b4_symbol_value_union, b4_value_type_setup_union) |
| (b4_value_type_setup_variant, b4_value_type_setup): |
| New. |
| (b4_value_type_define): Use it to set up properly the type. |
| Handle the various possible values of api.value.type. |
| * data/c++.m4 (b4_value_type_declare): Likewise. |
| * data/lalr1.cc (b4_value_type_setup_variant): Redefine. |
| |
| * tests/types.at: New. |
| Exercise all the C/C++ skeletons with different types of |
| api.value.type values. |
| * tests/local.mk, tests/testsuite.at: Use it. |
| |
| * doc/bison.texi (%define Summary): Document api.value.type. |
| * NEWS: Advertise it, together with api.token.constructor. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| m4: allow the definition of side-effect only macros |
| * data/bison.m4 (b4_divert_kill, b4_define_silent): New. |
| * data/c.m4: Comment change. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| variant: fix inconsistent quotation |
| * data/variant.hh (b4_char_sizeof): De-overquote. |
| (b4_value_type_declare): De-underquote. |
| |
| 2013-04-09 Akim Demaille <[email protected]> |
| |
| m4: style changes in error messages |
| * data/bison.m4: Use $0 to denote the current macro's name. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| glr.cc: fix a clang warning |
| * data/glr.cc (b4_epilogue): Be sure to end with an end-of-line, |
| so that the file does end with one. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| maint: update copyright years |
| Run "make update-copyright". |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| build: fix VPATH issue |
| * Makefile.am (update-b4-copyright, update-package-copyright-year): Fix |
| path to build-aux. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| build: avoid clang's colored diagnostics in the test suite |
| The syncline tests, which try to recognize compiler diagnostics, |
| are confused by escapes for colors. |
| |
| * configure.ac (warn_tests): New, to factor the warnings for both |
| C and C++ tests. |
| Add -fno-color-diagnostics to it. |
| * tests/local.at (AT_TEST_TABLES_AND_PARSE): Do not remove glue |
| together compiler flags. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| tests: please clang and use ".cc", not ".c", for C++ input |
| When fed with foo.c, clang++ 3.2 answers: |
| |
| clang: error: treating 'c' input as 'c++' when in C++ mode, |
| this behavior is deprecated |
| |
| * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use *.cc and *.hh |
| for C++. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| skeletons: avoid empty switch constructs |
| Reported by Rob Conde. |
| http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html |
| |
| * data/c.m4 (b4_symbol_actions): Rename as... |
| (_b4_symbol_actions): this. |
| (b4_symbol_actions): New wrapper. |
| Do not emit empty switches. |
| Adjust all b4_symbol_actions callers. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix compiler warnings |
| Reported by Rob Conde. |
| http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html |
| |
| * data/stack.hh (operator=, stack(const stack&)): Make this class |
| uncopyable, i.e., "undefine" these operators: make them private and |
| don't implement them. |
| (clear): New. |
| * data/lalr1.cc: Use it instead of an assignment. |
| (parser): Make this class uncopyable. |
| |
| 2013-04-08 Akim Demaille <[email protected]> |
| |
| yacc.c: do not use __attribute__ unprotected |
| Reported by Victor Khomenko. |
| http://lists.gnu.org/archive/html/bug-bison/2013-04/msg00001.html |
| |
| * data/glr.c (YYUSE, __attribute__): Fuse their definition into... |
| * data/c.m4 (b4_attribute_define): this new macro. |
| * data/yacc.c, data/glr.c: Use it. |
| |
| 2013-04-05 Akim Demaille <[email protected]> |
| |
| api.namespace: demonstrate and use {...} values instead of "..." values |
| * tests/c++.at, tests/input.at: Use "%define api.namespace {foo}" instead |
| of using quotes. |
| * tests/local.at (AT_SETUP_STRIP, AT_NAME_PREFIX): Recognize uses of |
| braces instead of quotes. |
| * doc/bison.texi: Use braces for api.namespace's values. |
| |
| 2013-04-05 Akim Demaille <[email protected]> |
| |
| grammar: do not add a \n at the end of blocks of code |
| Now that we use "braceless" (which is {...} blocks of code with |
| initial and final braces stripped) to denote "short" values (such as |
| api.namespaces), the added end-of-line is a nuisance. As a matter of |
| fact, this extra-safety was useless, as every expansion of "braceless" |
| (aka, "user code") is followed by an end of line. |
| |
| * src/parse-gram.y, src/parse-gram.c (braceless): Instead of replacing |
| the final brace by \n, just delete the brace. |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| grammar: record the kind of %define variable values |
| Provide a means to tell the difference between "keyword" values (e.g., |
| %define api.pull both), "string" values (e.g., %define file.name |
| "foo"), and "code" values (e.g., %define api.namespace {calc}). |
| |
| Suggested by Joel E. Denny. |
| http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html |
| |
| * src/muscle-tab.h, src/muscle-tab.c (muscle_kind, muscle_kind_new) |
| (muscle_kind_string): New. |
| (muscle_percent_define_insert): Take the kind as new argument. |
| Insert it in the muscle table. |
| Adjust callers. |
| * src/getargs.c: Adjust callers. |
| * src/parse-gram.y: Ditto. |
| (content.opt): Remove, replaced by... |
| (value): this new non-terminal, whose semantics value is stored |
| in the new "value" union member. |
| Provide a printer. |
| Support values in braces in additions to keyword and string values. |
| |
| fuse me |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| style: fix comments |
| * src/muscle-tab.c (muscle_percent_define_ensure): Update obsolete |
| comments. |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| grammar: style changes |
| * src/parse-gram.y (PARAM_TYPE): Remove useless typedef guard. |
| There's a header guard. |
| Use 'yyo' with %printer. |
| Use a consistent style for %union one-liners. |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| grammar: split %union to group together related aspects |
| * src/parse-gram.y (INT): Fuse the %type and %token declaration. |
| Move its %union right before its introduction. |
| (%union): Split in several %unions, right before their use. |
| |
| 2013-04-04 Akim Demaille <[email protected]> |
| |
| muscle: refactor |
| * src/muscle-tab.c (muscle_lookup, muscle_entry_new): New. |
| (muscle_insert, muscle_grow, muscle_find_const, muscle_find): Use them. |
| |
| 2013-04-03 Akim Demaille <[email protected]> |
| |
| style: comment changes |
| * src/muscle-tab.c: Move the documentation of public functions to... |
| * src/muscle-tab.h: here. |
| Fix comment consistency issues. |
| |
| 2013-04-03 Akim Demaille <[email protected]> |
| |
| muscle: minor refactoring |
| * src/muscle-tab.h (MUSCLE_INSERT_C_STRING): Use MUSCLE_INSERT_STRING. |
| |
| 2013-03-06 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-03-06 Valentin Tolmer <[email protected]> |
| |
| gram: correct token numbering in precedence declarations |
| In a precedence declaration, when tokens are declared with a litteral |
| character (e.g., 'a') or with a identifier (e.g., B), Bison behaved |
| differently: the litteral tokens would be numbered first, and then the |
| other ones, leading to the following grammar: |
| |
| %right A B 'c' 'd' |
| |
| being numbered as such: 'c' 'd' A B. |
| |
| * src/parse-gram.y (symbol.prec): Set the symbol number when reading the |
| symbols. |
| * tests/conflicts.at (Token declaration order: literals vs. identifiers): |
| New. |
| |
| 2013-03-04 Akim Demaille <[email protected]> |
| |
| maint: update autoconf submodule |
| * submodules/autoconf: Up to master. |
| No significant changes in the files we use (m4sugar.m4 and foreach.m4). |
| |
| 2013-03-04 Akim Demaille <[email protected]> |
| |
| diagnostics: no longer include the yacc category in -Wall |
| It would be a pity to warn the users against Bison features... |
| http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00107.html |
| |
| * src/complain.h, src/complain.c (Wall): Disable Wyacc. |
| (Weverything): New (hidden so far) category which really denotes all |
| the categories (what used to be Wall). |
| (warnings_args, warnings_types): Adjust. |
| (warning_argmatch): Now !none = Weverything and conversely, no longer Wall. |
| * NEWS, doc/bison.texi, src/getargs.c: Adjust the documentation. |
| * tests/input.at (-Werror is not affected by -Wnone and -Wall): Adjust |
| by not using a -Wyacc type of warning. |
| |
| 2013-03-04 Akim Demaille <[email protected]> |
| |
| grammar: no longer detect and cure missing semicolon at end of actions |
| Bison 3.0 is already breaking backward compatibility with other |
| features. It is an appropriate time to drop this feature. Note that |
| it was disabled when --yacc is passed. See |
| http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00102.html |
| |
| Basically, revert e8cd1ad655bcc704b06fb2f191dc3ac1df32b796. |
| |
| * src/scan-code.l (braces_level, need_semicolon, in_cpp): Remove. |
| Remove every rule needed to detect and add missing semicolon. |
| * tests/actions.at (Fix user actions without a trailing semicolon): |
| Remove. |
| * NEWS: Adjust. |
| |
| 2013-03-04 Akim Demaille <[email protected]> |
| |
| build: stop using bison -y |
| * Makefile.am (YACC): Pass -o y.tab.c, so that ylwrap is happy, and |
| yet we don't pass --yacc to bison. |
| (AM_YFLAGS): Disable Yacc warnings. |
| |
| 2013-02-23 Akim Demaille <[email protected]> |
| |
| c++: rename b4_semantic_type_declare as b4_value_type_declare |
| This is to match the names used in C and api.value.type, even if the |
| parser actually defines semantic_type. |
| |
| * data/c++.m4 (b4_semantic_type_declare): Rename as... |
| (b4_value_type_declare): this. |
| * data/variant.hh: Likewise. |
| |
| 2013-02-23 Akim Demaille <[email protected]> |
| |
| news: typo |
| * NEWS: here. |
| |
| 2013-02-23 Akim Demaille <[email protected]> |
| |
| style: space changes in the tests |
| * tests/local.at: here. |
| |
| 2013-02-22 Akim Demaille <[email protected]> |
| |
| style: formatting changes in the doc |
| * doc/bison.texi: Use @file where appropriate. |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| tests: fix invalid C++11 code |
| * tests/c++.at (Object): Somehow instances of Object were assigned |
| YY_NULL, which is 0 most of the time (that case passes), but is |
| nullptr in C++11, and there is nothing in Object to support such an |
| assignment (failure). Use 0 as value, and provide the needed |
| assignment operator. |
| Also, use a more natural order within the class definition. |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| tests: fix failures with G++ 4.8 in Flex scanner |
| * configure.ac (WARN_NO_NULL_CONVERSION_CXXFLAGS): Rename as... |
| (FLEX_SCANNER_CXXFLAGS): this. |
| Pass -Wno-zero-as-null-pointer-constant to G++ if it supports it. |
| * examples/calc++/local.mk: Adjust. |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| style: rename variant private members |
| * data/variant.hh (buffer, tname, as_, raw, align_me): Rename as... |
| (yybuffer_, yytname_,yyas_, yyraw, yyalign_me): these. |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| style: space changes |
| * data/variant.hh: Be sure to leave a space before arguments in function |
| calls. |
| |
| 2013-02-19 Akim Demaille <[email protected]> |
| |
| variant: fix G++ 4.4 warnings |
| The changes by Théophile Ranquet about type punning issues need |
| to be extend to in-place new to please G++ 4.4.7. |
| |
| * data/variant.hh (variant::as_): New, factors the casts that avoid |
| compiler warnings. |
| (as, build): Use them. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| news: spell fixes |
| * NEWS: here. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| diagnostics: factor and enhance messages about duplicate rule directives |
| When reporting a duplicate directive on a rule, point to its first |
| occurrence: |
| |
| one.y:11.10-15: error: only one %empty allowed per rule |
| %empty {} %empty |
| ^^^^^^ |
| one.y:11.3-8: previous declaration |
| %empty {} %empty |
| ^^^^^^ |
| |
| And consistently discard the second one. |
| |
| * src/complain.h, src/complain.c (duplicate_directive): New. |
| * src/reader.c: Use it where appropriate. |
| * src/symlist.h, src/symlist.c (symbol_list): Add a dprec_location member. |
| * tests/actions.at: Adjust expected output. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| style: no longer use backquotes |
| * tests/actions.at, tests/atlocal.in, tests/c++.at, tests/calc.at, |
| * tests/conflicts.at, tests/existing.at, tests/glr-regression.at, |
| * tests/input.at, tests/java.at, tests/local.at, tests/sets.at, |
| * tests/synclines.at, doc/bison.texi, lib/libiberty.h, lib/timevar.h: |
| Use single quotes. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| style: no longer use backquotes |
| * README, REFERENCES, TODO, configure.ac, data/README, data/bison.m4, |
| * data/c++.m4, data/c.m4, data/java.m4, data/lalr1.cc, |
| * data/lalr1.java, data/yacc.c, doc/local.mk, etc/bench.pl.in, |
| * src/conflicts.c, src/files.c, src/getargs.c, src/gram.h, src/lalr.c, |
| * src/location.c, src/location.h, src/muscle-tab.c, src/muscle-tab.h, |
| * src/output.c, src/parse-gram.c, src/parse-gram.y, src/print-xml.c, |
| * src/print.c, src/reader.c, src/reduce.c, src/scan-skel.l, |
| * src/symtab.h, src/system.h, src/tables.c: |
| Use single quotes, as currently recommended by the GNU Coding Standards. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| style: no longer use backquotes in messages |
| * src/getargs.c (usage): Use single quotes. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| doc: use %empty instead of /* empty */ |
| * doc/bison.texi: Change the comments into explicit %empty. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| doc: introduce %empty and -Wempty-rule |
| * doc/bison.texi (Grammar Rules): Make it a @section which |
| contains... |
| (Rules Syntax): this new subsection (with the previous contents of |
| "Grammar Rules". |
| (Empty Rules): New subsection, extracted from the former |
| "Grammar Rules". |
| Document %empty. |
| (Recursion): New a subsection of "Grammar Rules". |
| Complete a few index entries. |
| (Bison Options): Document -Wempty-rule. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| report: use %empty to denote empty rules |
| * src/gram.c (rule_rhs_print): Use %empty for empty rules. |
| * tests/conflicts.at, tests/regression.at, tests/sets.at: Adjust. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| diagnostics: %empty enables -Wempty-rule |
| * src/complain.h, src/complain.c (warning_is_unset): New. |
| * src/reader.c (grammar_current_rule_empty_set): If enabled -Wempty-rule, |
| if not disabled. |
| * tests/actions.at (Implicitly empty rule): Check this feature. |
| Also check that -Wno-empty-rule does disable this warning. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| -Wempty-rule: diagnose empty rules without %empty |
| * src/complain.h, src/complain.c (warning_empty_rule, Wempty_rule): |
| New warning category. |
| (warnings_args, warnings_types): Adjust. |
| * src/reader.c (grammar_rule_check): Check the empty rules are |
| flagged by %empty. |
| * tests/actions.at (Implicitly empty rule): New. |
| * tests/existing.at: Add expected warnings. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| tests: use %empty |
| * tests/actions.at, tests/input.at, tests/reduce.at, |
| * tests/regression.at: |
| here. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| parser: use %empty |
| Avoid that Bison's own use of "bison -Wall" trigger warnings. |
| |
| * src/parse-gram.y: Use %empty for every empty rule. |
| |
| 2013-02-18 Akim Demaille <[email protected]> |
| |
| grammar: introduce %empty |
| Provide a means to explicitly denote empty right-hand sides of rules: |
| instead of |
| |
| exp: { ... } |
| |
| allow |
| |
| exp: %empty { ... } |
| |
| Make sure that %empty is properly used. |
| |
| With help from Joel E. Denny and Gabriel Rassoul. |
| http://lists.gnu.org/archive/html/bison-patches/2013-01/msg00142.html |
| |
| * src/reader.h, src/reader.c (grammar_current_rule_empty_set): New. |
| * src/parse-gram.y (%empty): New token. |
| Use it. |
| * src/scan-gram.l (%empty): Scan it. |
| * src/reader.c (grammar_rule_check): Check that %empty is properly used. |
| * tests/actions.at (Invalid uses of %empty, Valid uses of %empty): New. |
| |
| 2013-02-16 Akim Demaille <[email protected]> |
| |
| getargs: minor simplification |
| * src/getargs.c (flag_argmatch): Simplify the handling of "none". |
| |
| 2013-02-16 Akim Demaille <[email protected]> |
| |
| style: move argument handling of -W into the diagnostics module |
| This allows to reduce the number of public interfaces. |
| |
| * src/getargs.c (--yacc): Use warning_argmatch instead of tweaking |
| directly warnings_flag (which will be private). |
| (warning_argmatch, warnings_argmatch): Move to... |
| * src/complain.h, src/complain.c: here. |
| |
| * src/getargs.h, src/getargs.c (warnings_args, warnings_types): Move to... |
| * src/complain.c: here, now private. |
| |
| * src/complain.h (severity, warnings_flag): Move to... |
| * src/complain.c: here, now private. |
| |
| 2013-02-16 Akim Demaille <[email protected]> |
| |
| diagnostics: revamp the handling of -Werror |
| Recent discussions with Joel E. Denny |
| (http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00026.html) |
| show that it is desirable to tell the difference between an option |
| that was explicitly disabled with -Wno-foo, as opposed to be left |
| unset. The current framework does not allow this. |
| |
| Instead of having a first int to store which options are enabled, and |
| another to store which are turned into errors, use an array that for |
| each warning category tells its status: disabled, unset, warning, |
| error. |
| |
| * src/complain.h, src/complain.c (warning_bit): New enum. |
| (warnings): Use it. |
| (severity): New enum. |
| (warnings_flag): Now an array of severity. |
| (errors_flag): Remove, now done by warnings_flag. |
| (complain_init): New function, to initialie warnings_flag. |
| (warnings_are_errors): New Boolean, for -Werror. |
| * src/complain.c (warning_severity): New. |
| (warnings_print_categories, complains): Use it. |
| * src/getargs.c (warning_argmatch): Adjust to use warnings_flag. |
| (warnings_argmatch): Ditto. |
| Handle -Werror and -Wno-error here. |
| (getargs): Adjust. |
| * src/main.c (main): Call complain_init. |
| * tests/input.at (Invalid options): Add more corner cases. |
| |
| 2013-02-14 Akim Demaille <[email protected]> |
| |
| options: simplify the handling of -W |
| * src/getargs.c (warnings_argmatch, warning_argmatch): Simplify by |
| replacing function arguments with their actual values. |
| (WARNING_ARGMATCH): Remove, useless. |
| Adjust callers. |
| |
| 2013-02-14 Akim Demaille <[email protected]> |
| |
| options: don't accept "error=" for -f and -r |
| * src/getargs.c (warning_argmatch, warnings_argmatch, WARNINGS_ARGMATCH): |
| New. |
| Use them for -W/--warning. |
| They are copied from... |
| (flag_argmatch, flags_argmatch, FLAGS_ARGMATCH): these. |
| Simplify by removing the support for "error". |
| * tests/input.at (Invalid options): New. |
| * TODO (Laxism in Bison invocation arguments): Remove. |
| |
| 2013-02-14 Akim Demaille <[email protected]> |
| |
| diagnostics: factor the list of warning names |
| * src/getargs.h, src/getargs.c (warnings_args, warnings_types): Make |
| them public. |
| * src/complain.h, src/complain.c (warnings_print_categories): Its |
| only use outside complain.c was removed in a recent commit, so |
| make it static. |
| Simplify its implementation. |
| Use warnings_args and warnings_types. |
| * src/muscle-tab.c (muscle_percent_define_check_values): Make it |
| silent. |
| |
| 2013-02-14 Akim Demaille <[email protected]> |
| |
| diagnostics: no longer pretty-print rules in error messages, carets suffice |
| * src/gram.c (grammar_rules_useless_report): Let -fcaret handle the |
| pretty-printing of the guilty rules. |
| (rule_print): Inline in its only use. |
| * tests/conflicts.at, tests/existing.at, tests/reduce.at, |
| * tests/regression.at: Adjust. |
| * NEWS: Document. |
| |
| 2013-02-14 Akim Demaille <[email protected]> |
| |
| options: no longer document warnings when diagnosing an invalid -W |
| The argmatch functions accept prefixes of the alternatives (like |
| getopt does for long options). Bison uses this to document the |
| warning categories. This is troublesome: it duplicates the --help |
| documentation, it is not gettextized, it is displayed with ugly quotes |
| (because argmatch uses it to display the list of possible answers), |
| and it prevents straighforward uses of the tables of valid warning |
| categories (for instance so that warning diagnostics end with the name |
| of the warning). |
| |
| The "hidden" option --trace uses the same trick, but it does not need |
| to be translated, nor to be described in --help. |
| |
| * src/getargs.c (warnings_args): Remove pseudo documentation. |
| Comment changes. |
| |
| 2013-02-11 Akim Demaille <[email protected]> |
| |
| tests: enlarge the allowed duration for calc tests |
| Hydra "often" fails on this test: |
| |
| 252. calc.at:658: 252. Calculator %glr-parser api.pure |
| parse.error=verbose %debug %locations %defines api.prefix="calc" |
| %verbose %yacc %parse-param {semantic_value *result} |
| %parse-param {int *count} (calc.at:658): FAILED |
| |
| * tests/calc.at: Give 200s instead of 100s. |
| Use AT_DEBUG_IF. |
| |
| 2013-02-11 Akim Demaille <[email protected]> |
| |
| debug: improve the display of symbol lists |
| * src/symtab.c (symbol_print): Remove useless quotes (the symbol already |
| has quotes). |
| Prefer fputs. |
| * src/symlist.c (symbol_list_syms_print): Likewise. |
| Fix separators. |
| |
| 2013-02-09 Akim Demaille <[email protected]> |
| |
| style: minor changes |
| * src/complain.c: Space changes. |
| * src/reader.c: Comment changes. |
| Avoid && in assertions. |
| * src/location.c: Move comments to... |
| * src/location.h: here. |
| * src/symlist.h, src/symlist.c: Create a pseudo section for members |
| that apply to the rule. |
| |
| 2013-02-08 Akim Demaille <[email protected]> |
| |
| news: restructure, document variants for C++ |
| * NEWS: here. |
| |
| 2013-02-08 Akim Demaille <[email protected]> |
| |
| c++: api.token.constructor requires api.value.type=variant |
| Eventually it should also support "union". |
| |
| * data/glr.cc: Move this check to... |
| * data/c++.m4: here, as lalr1.cc is affected too. |
| |
| 2013-02-05 Akim Demaille <[email protected]> |
| |
| build: restore C90 compatibility |
| * src/parse-gram.y, src/parse-gram.c: Don't use // comments. |
| |
| 2013-02-05 Akim Demaille <[email protected]> |
| |
| doc: use @group to improve page breaking |
| * doc/bison.texi: here. |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| style: rename internal "stype" as "union_members" for clarity |
| "stype" is quite unclear, and it also collides with the former %define |
| variable that had the same name (replaced by api.value.type). |
| |
| * src/parse-gram.y (stype): Rename as... |
| (union_members): this. |
| * data/bison.m4: Adjust. |
| (b4_user_stype): Rename as... |
| (b4_user_union_members): this. |
| * data/c++.m4, data/c.m4: Adjust. |
| * src/parse-gram.c: regen. |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| tests: improve the language independance layer |
| * tests/local.at (_AT_LANG_DISPATCH): New, shamelessly stolen from |
| Autoconf's _AT_LANG_DISPATCH. |
| (AT_LANG_DISPATCH): New. |
| (AT_YYERROR_FORMALS, AT_YYERROR_PROTOTYPE, AT_YYERROR_DECLARE_EXTERN) |
| (AT_YYERROR_DECLARE, AT_YYERROR_DEFINE, AT_MAIN_DEFINE, AT_COMPILE) |
| (AT_FULL_COMPILE): |
| Use AT_LANG_DISPATCH instead of an ad hoc m4_case. |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| style: space changes in the parser |
| * src/parse-gram.y: Fix spaces. |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| parser: use api.pure full |
| * src/parse-gram.y: Use api.pure full instead of silly macro tricks. |
| |
| 2013-02-04 Akim Demaille <[email protected]> |
| |
| style: use a for loop instead of a while loop, and scope reduction |
| * src/reader.c (packgram): Improve readability. |
| The parser calls grammar_current_rule_end at the end of every rhs, |
| which adds a NULL to separate the rules. So there is no need to |
| check whether "p" is non-null before proceeding. |
| |
| 2013-02-01 Theophile Ranquet <[email protected]> |
| |
| variants: stylistic change |
| * data/variant.hh (tname): Respect the GNU Coding Standards for this |
| pointer's declaration. |
| |
| 2013-02-01 Theophile Ranquet <[email protected]> |
| |
| grammar: free the association tracking graph |
| The graph introduced by Valentin wasn't free'd after use. |
| |
| * src/symtab.c (assoc_free): New, clear the array of linked lists with... |
| (linkedlist_free): This, new. |
| (print_precedence_warnings): Call assoc_free when done. |
| (print_assoc_warnings): Free used_assoc after use. |
| |
| 2013-02-01 Theophile Ranquet <[email protected]> |
| |
| tests: use AT_FULL_COMPILE where possible |
| * tests/c++.at (C++ Variant-based Symbol, Variants): Here. Rename the |
| generated input files to use .y instead of .yy, as a requirement for using |
| AT_FULL_COMPILE instead of a combination of AT_BISON_CHECK and |
| AT_BISON_COMPILE_CXX. |
| |
| 2013-02-01 Theophile Ranquet <[email protected]> |
| |
| variants: avoid type punning issue |
| This is based on what is recommended by both Scott Meyers, in 'Effective |
| C++', and Andrei Alexandrescu and Herb Sutter in 'C++ Coding Standards'. |
| |
| Use a static_cast on void* rather than directly use a reinterpret_cast, |
| which can have nefarious effects on objects. However, even though following |
| this guideline is good practice in general, I am not quite sure how relevant |
| it is when applied to conversions from POD to objects. Actually, it might |
| very well be the opposite: isn't this exactly what reinterpret_cast is for? |
| What we really want *is* to transmit the memory map as a series of bytes, |
| which, if I am correct, falls into the kind of "low level" hack for which |
| this cast is meant. |
| |
| In any case, this silences the warning, which will be greatly appreciated by |
| anyone using variants with a compiler supporting -fstrict-aliasing. |
| |
| * data/variant.hh (as): Here. |
| * tests/c++.at (Exception safety, C++ Variant-based Symbols, Variants): |
| Don't use NO_STRICT_ALIAS_CXXFLAGS (revert commit ddb9db15), as type punning |
| is no longer an issue. |
| * tests/atlocal.in, configure.ac (NO_STRICT_ALIAS_CXXFLAGS): Remove |
| definition. |
| * examples/local.mk (NO_STRICT_ALIAS_CXXFLAGS): Remove from AM_CXXFLAGS. |
| * doc/bison.texi: Don't mention type punning issues. |
| |
| 2013-02-01 Theophile Ranquet <[email protected]> |
| |
| todo: update |
| Reformulate and give more details on my thoughts concerning the graphical |
| visualization, and add an entry about a bug in the options processing for |
| warnings as errors. |
| |
| * TODO: Here. |
| |
| 2013-02-01 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-02-01 Akim Demaille <[email protected]> |
| |
| location: pass the location first |
| * src/location.h, src/location.c (location_print): For consistency |
| with other data structures and other location_* routines, pass the |
| location argument first. |
| * src/complain.c: Adjust. |
| (location_caret): Likewise. |
| * src/parse-gram.y: Adjust. |
| |
| 2013-02-01 Akim Demaille <[email protected]> |
| |
| symlist: use the right stream |
| * src/symlist.c (symbol_list_syms_print): Use "f", not stderr. |
| |
| 2013-01-30 Akim Demaille <[email protected]> |
| |
| tests: put two related tests together |
| * tests/conflicts.at (Useless associativity warning): Move next |
| to "Useless precedence warning". |
| |
| 2013-01-30 Akim Demaille <[email protected]> |
| |
| news: name contributors |
| * NEWS: here. |
| |
| 2013-01-30 Valentin Tolmer <[email protected]> |
| |
| warnings: introduce -Wprecedence |
| The new warning category "precedence" flags useless precedence and |
| associativity. -Wprecedence can now be used, it is disabled by default. |
| The warnings about precedence and associativity are grouped into one, and |
| the testsuite was corrected accordingly. |
| |
| * src/complain.h (warnings): Introduce "precedence". |
| * src/complain.c (warnings_print_categories): Adjust. |
| * src/getargs.c (warnings_args, warning_types): Likewise. |
| * src/symtab.h, src/symtab.c (print_associativity_warnings): Remove. |
| * src/symtab.h (register_assoc): Correct arguments. |
| * src/symtab.c (print_precedence_warnings): Print both warnings together. |
| * doc/bison.texi (Bison options): Document the warnings and provide an |
| example. |
| * tests/conflicts.at, tests/existing.at, tests/local.at, |
| * tests/regression.at: Adapt the testsuite for the new category |
| (-Wprecedence instead of -Wother where appropriate). |
| |
| 2013-01-30 Akim Demaille <[email protected]> |
| |
| build: avoid clang's colored diagnostics in the test suite |
| The syncline tests, which try to recognize compiler diagnostics, |
| are confused by escapes for colors. |
| |
| * configure.ac (warn_tests): New, to factor the warnings for both |
| C and C++ tests. |
| Add -fno-color-diagnostics to it. |
| * tests/local.at (AT_TEST_TABLES_AND_PARSE): Do not remove glue |
| together compiler flags. |
| |
| 2013-01-30 Akim Demaille <[email protected]> |
| |
| build: please Clang++ 3.2+ on Flex scanners |
| Clang++, with -Wall, rejects code generated by Flex (for C scanners): |
| |
| CXX examples/calc++/examples_calc___calc__-calc++-scanner.o |
| In file included from examples/calc++/calc++-scanner.cc:1: |
| error: implicit conversion of NULL constant to 'bool' [-Werror,-Wnull-conversion] |
| if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)] : __null) ) { |
| ~ ^~~~~~ |
| false |
| * configure.ac (WARN_NO_NULL_CONVERSION_CXXFLAGS): Compute it. |
| * examples/calc++/local.mk (examples_calc___calc___CXXFLAGS): Use it. |
| |
| 2013-01-30 Valentin Tolmer <[email protected]> |
| |
| grammar: record used associativity and print useless ones |
| Record which symbol associativity is used, and display useless ones. |
| |
| * src/symtab.h, src/symtab.c (register_assoc, print_assoc_warnings): New |
| * src/symtab.c (init_assoc, is_assoc_used): New |
| * src/main.c: Use print_assoc_warnings |
| * src/conflicts.c: Use register_assoc |
| * tests/conflicts.at (Useless associativity warning): New. |
| |
| Due to the new warning, many tests had to be updated. |
| |
| * tests/conflicts.at tests/existing.at tests/regression.at: |
| Add the associativity warning in the expected results. |
| * tests/java.at: Fix the java calculator's grammar to remove a useless |
| associativity. |
| * doc/bison.texi (mfcalc example): Fix associativity to remove |
| warning. |
| |
| 2013-01-29 Valentin Tolmer <[email protected]> |
| |
| grammar: warn about unused precedence for symbols |
| Symbols with precedence but no associativity, and whose precedence is |
| never used, can be declared with %token instead. The used precedence |
| relationships are recorded and a warning about useless ones is issued. |
| |
| * src/conflicts.c (resolve_sr_conflict): Record precedence relation. |
| * src/symtab.c, src/symtab.h (prec_nodes, init_prec_nodes) |
| (symgraphlink_new, register_precedence_second_symbol) |
| (print_precedence_warnings): New. |
| Record relationships in a graph and warn about useless ones. |
| * src/main.c (main): Print precedence warnings. |
| * tests/conflicts.at: New. |
| |
| 2013-01-29 Theophile Ranquet <[email protected]> |
| |
| variants: remove the 'built' assertions |
| When using %define parse.assert, the variants come with additional variables |
| that are useful for development purposes. One is a Boolean indicating if the |
| variant is built (to make sure we don't read a non-built variant), and the |
| other is a string describing the stored type. There is no need to have both of |
| these, the string is enough. |
| |
| * data/variant.hh (built): Remove. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| style: indentation fixes |
| * src/parse-gram.y: here. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| maint: be sure to neutralize out-of-tree paths from our parser |
| * tests/bison.in: Adjust to support fixed versions of ylwrap. |
| |
| 2013-01-29 Theophile Ranquet <[email protected]> |
| |
| m4: generate a basic_symbol constructor for each symbol type |
| Recently, there was a slightly vicious bug hidden in the make_ functions: |
| |
| parser::symbol_type |
| parser::make_TEXT (const ::std::string& v) |
| { |
| return symbol_type (token::TOK_TEXT, v); |
| } |
| |
| The constructor for symbol_type doesn't take an ::std::string& as |
| argument, but a constant variant. However, because there is a variant |
| constructor which takes an ::std::string&, this caused the implicit |
| construction of a built variant. Considering that the variant argument |
| for the symbol_type constructor was cv-qualified, this temporary variant |
| was never destroyed. |
| |
| As a temporary solution, the symbol was built in two stages: |
| |
| symbol_type res (token::TOK_TEXT); |
| res.value.build< ::std::string&> (v); |
| return res; |
| |
| However, the solution introduced in this patch contributes to letting |
| the symbols handle themselves, by supplying them with constructors that |
| take a non-variant value and build the symbol's own variant with that |
| value. |
| |
| * data/variant.hh (b4_symbol_constructor_define_): Use the new |
| constructors rather than building in a temporary symbol. |
| (b4_basic_symbol_constructor_declare, |
| b4_basic_symbol_constructor_define): New macros generating the |
| constructors. |
| * data/c++.m4 (basic_symbol): Invoke the macros here. |
| |
| 2013-01-29 Theophile Ranquet <[email protected]> |
| |
| c++: minor stylistic changes |
| * data/c++m4: Remove useless comment lines. |
| * data/variant.hh (self_type): Use this typedef instead of variant<S>. |
| (b4_symbol_constructor_define_): Remove commented-out line, and stylistic |
| change (avoid blank line). |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: please G++ 4.8 with -O3: type puning issue |
| * tests/c++.at (Exception safety): Now that this test covers |
| variants, pass -fno-strict-aliasing to g++. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: please G++ 4.8 with -O3: array bounds |
| * data/c++.m4, data/lalr1.cc (by_state, by_type): Do not use -1 to |
| denote the absence of value, as GCC then fears that this -1 might |
| be used to dereference arrays (such as yytname). |
| Use 0, which corresponds to $accept, which is valueless (the needed |
| property: the symbol destructor must not try to reclaim the memory |
| associated with the symbol). |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: use more explicit types than int |
| * data/c++.m4 (b4_public_types_declare): Declare token_number_type soon. |
| Introduce symbol_number_type (wider than token_number_type). |
| Clarify the requirement that kind_type from by_state and by_type |
| denote the _input_ type (required by the constructor), not the stored type. |
| Use symbol_number_type and token_number_type where appropriate, instead |
| of int. |
| * data/lalr1.cc: Adjust to these changes. |
| Propagate "symbol_number_type". |
| Invoke "type_get ()" instead of read "type" directly. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: value_type -> kind_type |
| * data/c++.m4, data/lalr1.cc (by_type, by_state): Rename 'value_type' |
| as 'kind_type', as it is clearer. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: improve the signature of yysyntax_error_ |
| * data/lalr1.cc: This function is const. |
| It takes a symbol_number_type. |
| |
| 2013-01-29 Akim Demaille <[email protected]> |
| |
| c++: style changes |
| * data/lalr1.cc: Formatting changes. |
| And name changes. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| doxygen: upgrade Doxyfile, and complete it |
| * doc/Doxyfile.in: Let doxygen upgrade it. |
| (INCLUDE_PATH): Point to lib too. |
| (PROJECT_BRIEF): New. |
| (EXCLUDE): Update to reflect the current file hierarchy. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| maint: fix syntax-check issues |
| * cfg.mk: Ignore strcmp in local.at. |
| * tests/conflicts.at: Use AT_PARSER_CHECK. |
| * tests/regression.at: Preserve the exit status of the generated parsers. |
| |
| * tests/local.mk ($(TESTSUITE)): Map @tb@ to a tabulation. |
| * tests/c++.at, tests/input.at, tests/regression.at: Use @tb@. |
| * cfg.mk: (space-tab): There are no longer exceptions. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: please C90 compilers |
| * tests/actions.at, tests/conflicts.at: Use /* ... */ comments. |
| Let "main" return a value. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| maint: update todo |
| * TODO: Remove fixed items. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| news: minor improvements |
| * NEWS: Name some more contributors. |
| Restructure slightly. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: please clang and use ".cc", not ".c", for C++ input |
| When fed with foo.c, clang++ 3.2 answers: |
| |
| clang: error: treating 'c' input as 'c++' when in C++ mode, |
| this behavior is deprecated |
| |
| * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use *.cc and *.hh |
| for C++. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/local.at: Restore proper indentation. |
| |
| 2013-01-28 Theophile Ranquet <[email protected]> |
| |
| c++: better inline expansion |
| Many 'inline' keywords were in the declarations. They rather belong in |
| definitions, so move them. |
| |
| * data/c++.m4 (basic_symbol, by_type): Many inlines here. |
| * data/lalr1.cc (yytranslate_, yy_destroy_, by_state, yypush_, yypop_): Inline |
| these as well. |
| (move): Move the definition outside the struct, where it belongs. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: check that using variants is exception safe |
| * tests/local.at: (Slightly) improve the regexp by escaping '.' |
| when it denotes a point. |
| (AT_VARIANT_IF): New. |
| * tests/c++.at (Exception Safety): Run it for variants too. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: remove useless %defines |
| Many tests were using %defines because C++ skeletons used to require |
| it. |
| |
| * tests/actions.at, tests/c++.at, tests/input.at, tests/regression.at: |
| Remove useless %defines. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| c++: remove now-useless operators |
| Now that symbols behaves properly, we can eliminate special routines |
| that are no longer needed. |
| |
| * data/c++.m4, data/glr.cc, data/lalr1.cc, data/variant.hh: |
| Remove useless assignment operators and copy constructors. |
| As a consequence, remove useless includes for "abort". |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| tests: enable support for --debug |
| * tests/c++.at (Variants): Here. |
| And remove useless clutter when api.token.constructor is enabled. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| c++: revamp the support for variants |
| The current approach was too adhoc: the symbols were not sufficiently |
| self-contained, in particular wrt memory management. The "new" |
| guideline is the one that should have been followed from the start: |
| let the symbols handle themslves, instead of leaving their users to |
| it. It was justified by the will to avoid gratuitious moves and |
| copies, but the current approach does not seem to be slower, yet it |
| will probably be simpler to adjust to support move semantics from |
| C++11. |
| |
| The documentation says that the %parse-param are available from the |
| %destructor. In retrospect, that was a silly design decision, which |
| we can break for variants, as its a new feature. It should be phased |
| out for non-variants too. |
| |
| * data/variant.hh: A variant never knows if it stores something or |
| not, it is up to its users to store this information. |
| Yet, in parse.assert mode, make sure the empty/filled variants |
| are properly used. |
| (b4_symbol_constructor_define_): Don't call directly the symbol |
| constructor, to save a useless temporary. |
| * data/stack.hh (push): Steal the pushed value instead of duplicating |
| it. |
| This will simplify the callers of push, who handled this "move" |
| approach themselves. |
| * data/c++.m4 (basic_symbol): Let -1, as kind, denote the fact that |
| a symbol is empty. |
| This is needed for instance when shifting the lookahead: yyla |
| is given as argument to "push", and its value is then moved on |
| the stack. But then yyla must be declared "empty" so that its |
| destructor won't be called. |
| (basic_symbol::move): New. |
| Move the responsibility of calling the destructor from yy_destroy |
| to ~basic_symbol in the case of variants. |
| * data/lalr1.cc (stack_symbol_type): Now a derived class from its |
| previous value, so that we can add a constructor from a symbol_type. |
| (by_state): State -1 means empty. |
| (yypush_): Factor, by calling one overload from the other one, and |
| using the new semantics of stack::push. |
| No longer reclaim by hand the memory from rhs symbols, since now |
| that we store objects with proper destructors, they will be reclaimed |
| automatically. |
| Conversely, be sure to delete yylhs. |
| * tests/c++.at (C++ Variant-based Symbols): New "unit" test for |
| symbols. |
| |
| 2013-01-28 Akim Demaille <[email protected]> |
| |
| c++: formatting and comment changes |
| * data/c++.m4, data/lalr1.cc, data/stack.hh, data/variant.hh: |
| Fix indentation. |
| Fix some comments. |
| |
| 2013-01-27 Valentin Tolmer <[email protected]> |
| |
| tests: add token declaration order test |
| * tests/conflicts.at: New test. |
| |
| 2013-01-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-01-27 Valentin Tolmer <[email protected]> |
| |
| grammar: preserve token declaration order |
| In a declaration %token A B, the token A is declared before B, but in %left |
| A B (or with %precedence or %nonassoc or %right), the token B was declared |
| before A (tokens were declared in reverse order). |
| |
| * src/symlist.h, src/symlist.c (symbol_list_append): New. |
| * src/parse-gram.y: Use it instead of symbol_list_prepend. |
| * tests/input.at: Adjust expectations. |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| tests: improve test group titles |
| * tests/local.at (AT_SETUP_STRIP): AT_SETUP does not behave properly |
| with new-lines in its argument. |
| Remove them. |
| Fix the handling of %define with quotes. |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| c: no longer require stdio.h when locations are enabled |
| Recent changes (in 2.7) introduced a dependency on both FILE and |
| fprintf, which are "available" only in %debug mode. This was to |
| define yy_location_print_, which is used only in %debug mode by the |
| parser, but massively used by the test suite to output the locations |
| in yyerror. |
| |
| Break this dependency: the test suite should define its own routines |
| to display the locations. Eventually Bison will provide the user with |
| a means to display locations, but not yet. |
| |
| * data/c.m4 (b4_yy_location_print_define): Use YYFPRINTF instead of |
| fprintf directly. |
| * data/yacc.c (b4_yy_location_print_define): Invoke it only in %debug |
| mode, so that stdio.h is included (needed for FILE*), and YYFPRINTF |
| is defined. |
| |
| * tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DEFINE): Declare |
| and define location_print and LOCATION_PRINT. |
| |
| * tests/actions.at, tests/existing.at, tests/glr-regression.at, |
| * tests/input.at, tests/named-refs.at, tests/regression.at: Adjust |
| to use them. |
| Fix the expected line numbers (as the prologue's length has changed). |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| c: minor simplification in the debug code |
| * data/c.m4 (yy_symbol_print): Minor factoring. |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| c++: display locations as C does |
| See commit 3804aa260b956dd012adde3894767254422a5fcf. |
| |
| * data/location.cc (operator<<): Display location exactly as is |
| done in C skeletons. |
| * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): Also define |
| AT_FIRST_LINE, AT_LAST_LINE, AT_FIRST_COLUMN, AT_LAST_COLUMN. |
| * tests/actions.at (Location Print): Also check C++ skeletons. |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| tests: highlight empty right-hand sides |
| * tests/actions.at, tests/c++.at, tests/headers.at, |
| * tests/input.at: here. |
| |
| 2013-01-25 Akim Demaille <[email protected]> |
| |
| news: prepare for 2.8 |
| * NEWS: Restructure. |
| Name contributors. |
| |
| 2013-01-21 Akim Demaille <[email protected]> |
| |
| tests: generalize default main for api.namespace |
| * tests/local.at (AT_NAME_PREFIX): Also match api.namespace. |
| (AT_MAIN_DEFINE): Take it into account. |
| * tests/c++.at, tests/headers.at: Use AT_NAME_PREFIX. |
| (AT_CHECK_NAMESPACE): Rename as... |
| (AT_TEST): this. |
| |
| 2013-01-21 Akim Demaille <[email protected]> |
| |
| tests: improve factoring of the main function |
| * tests/local.at (AT_MAIN_DEFINE): If %debug is used, check if |
| -d/--debug is passed to the generated parser, and enable the traces. |
| Return exactly the result of yyparse, so that we can check exit code |
| 2 too. |
| * tests/actions.at, tests/glr-regression.at, tests/regression.at: |
| Use AT_MAIN_DEFINE, helping AT_BISON_OPTION_PUSHDEFS where needed, |
| preferably to option -t. |
| |
| 2013-01-21 Akim Demaille <[email protected]> |
| |
| tests: factor the definition of main |
| With Théophile Ranquet. |
| |
| * tests/local.at (AT_MAIN_DEFINE): New. |
| (AT_YYERROR_DEFINE): Improve formatting. |
| * tests/actions.at, tests/c++.at, tests/conflicts.at, |
| * tests/glr-regression.at, tests/input.at, tests/regression.at, |
| * tests/skeletons.at, tests/torture.at: Adjust. |
| * tests/c++.at: Add missing %skeleton for a PUSHDEFS, and a missing |
| PUSH/POPDEFS for another test. |
| |
| 2013-01-21 Akim Demaille <[email protected]> |
| |
| tests: minor refactoring |
| * tests/named-refs.at: Use AT_FULL_COMPILE where applicable. |
| |
| 2013-01-21 Akim Demaille <[email protected]> |
| |
| diagnostics: avoid useless caret stuttering |
| * src/scan-code.l: When reporting a missing ending ';', don't display |
| the guilty action twice. |
| |
| 2013-01-21 Theophile Ranquet <[email protected]> |
| |
| examples: please clang |
| * doc/bison.texi (calc++-scanner.ll): Don't output useless yyinput function. |
| |
| 2013-01-21 Theophile Ranquet <[email protected]> |
| |
| tests: better silencing of unused argument warnings |
| input.yy:35:44: error: unused parameter 'msg' [-Werror,-Wunused-parameter] |
| void yy::parser::error (std::string const& msg) |
| ^ |
| |
| * tests/c++.at (C++ GLR parser identifier shadowing): Don't name unused |
| argument, use YYUSE instead of a direct cast to void. |
| |
| 2013-01-21 Theophile Ranquet <[email protected]> |
| |
| bench: compatibility for Bison <= 2.7 |
| There used to be a bug in some skeletons, which caused the expansion of |
| 'yylval' and 'yylloc', generating these errors: |
| |
| input.cc:547:16: error: expected ',' or '...' before '(' token |
| #define yylval (yystackp->yyval) |
| ^ |
| input.yy:29:39: note: in expansion of macro 'yylval' |
| int yylex (yy::parser::semantic_type *yylval) |
| ^ |
| |
| This bug is fixed by 'skel: better aliasing of identifiers', but a workaround |
| is useful when benchmarking against older versions of Bison, which are still |
| affected by the bug. |
| |
| * etc/bench.pl.in: Rename yylval to yylvalp and yylloc to yyllocp in base |
| grammar 'list'. |
| |
| 2013-01-15 Theophile Ranquet <[email protected]> |
| |
| c++: remove useless inlines |
| * data/c++.m4 (basic_symbol): Keep 'inline' in the prototypes, but don't |
| duplicate it in the implementation. |
| * data/variant.hh (variant): 'inline' is not needed when the implementation is |
| provided in the class definition. |
| |
| 2013-01-15 Theophile Ranquet <[email protected]> |
| |
| c++: m4 stylistic change |
| * data/c++.m4 (syntax_error): Fix the indentation of 'inline'. |
| |
| 2013-01-14 Theophile Ranquet <[email protected]> |
| |
| c++: silence warnings |
| * data/c++.m4 (basic_symbol<Base>::operator=): Unused parameter. |
| * tests/c++.at (C++ GLR parser identifier shadowing): Here too. |
| - |
| |
| 2013-01-14 Theophile Ranquet <[email protected]> |
| |
| news: typos |
| * NEWS: Fix a typo, use YYSTYPE rather than semantic_type. |
| |
| 2013-01-12 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-01-12 Akim Demaille <[email protected]> |
| |
| maint: update copyright years |
| Suggested by Stefano Lattarini. |
| Run "make update-copyright". |
| |
| 2013-01-12 Akim Demaille <[email protected]> |
| |
| build: fix VPATH issue |
| * Makefile.am (update-b4-copyright, update-package-copyright-year): Fix |
| path to build-aux. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| carets: document default activation |
| * NEWS: Announce it. |
| * doc/bison.texi: Adjust. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| carets: show them in more tests |
| * tests/input.at, tests/named-refs.at: Here. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| carets: activate by default |
| * src/getargs.c (feature_flag): Here. |
| * tests/local.at (AT_BISON_CHECK_, AT_BISON_CHECK_NO_XML): Deactivate carets |
| for the testsuite, by default. |
| * tests/input.at: Adjust the locations for command line definitions. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| variants: document move and swap |
| * data/variant.hh (swap): Doc. |
| (build): Rename as... |
| (move): This, more coherent naming with clearer meaning. |
| * data/c++.m4 (move): Adjust. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| c++: privatize variant blind copies |
| * data/variant.hh (variant, operator=): Make private. |
| * data/c++.m4 (operator=): New, to avoid needing a definition of that operator |
| for each class member (such as a possible variant). |
| * data/glr.cc, data/lalr.cc: Add the necessary include for the abort. |
| |
| 2013-01-11 Akim Demaille <[email protected]> |
| |
| glr.c: fix an unused argument issue |
| * data/glr.c (yyuserAction): "Use" yyrhslen, as in variant mode, we might |
| not use it. |
| |
| 2013-01-11 Akim Demaille <[email protected]> |
| |
| glr.c: style changes |
| * data/glr.c (yyuserAction): Use a size_t for sizes. |
| |
| 2013-01-11 Akim Demaille <[email protected]> |
| |
| c.m4: style fix |
| * data/c.m4 (b4_parse_param_use): Add missing space before paren. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| skel: better aliasing of identifiers |
| * data/glr.c, data/yacc.c: Avoid emitting useless defines. |
| * data/glr.cc: Restore prefixes for epilogue. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| glr.cc: fatal if using api.token.ctor without variants |
| * data/glr.cc: Here. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| skel: correctly indent switch cases |
| * data/bison.m4 (b4_type_action_): Here. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| variants: assert changes |
| * data/variant.hh (swap): More asserts can't hurt. Don't perform useless swaps. |
| (build): Deactivate problematic asserts, pending further investigation. |
| (variant): Prohibit copy construction. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| lalr1.cc: use a vector for the symbol stack |
| * data/lalr1.cc: Adjust includes. |
| * data/stack.hh (push, pop): Use push_back and pop_back. |
| (operator []): Access vector from the end. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| lalr1.cc: change symbols implementation |
| A "symbol" groups together the symbol type (INT, PLUS, etc.), its |
| possible semantic value, and its optional location. The type is |
| needed to access the value, as it is stored as a variant/union. |
| |
| There are two kinds of symbols. "symbol_type" are "external symbols": |
| they have type, value and location, and are returned by yylex. |
| "stack_symbol_type" are "internal symbols", they group state number, |
| value and location, and are stored in the parser stack. The type of |
| the symbol is computed from the state number. |
| |
| The class template symbol_base_type<Exact> factors the code common to |
| stack_symbol_type and symbol_type. It uses the Curiously Recurring |
| Template pattern so that we can always (static_) downcast to the exact |
| type. symbol_base_type features value and location, and delegates the |
| handling of the type to its parameter. |
| |
| When trying to generalize the support for variant, a significant issue |
| was revealed: because stack_symbol_type and symbol_type _derive_ from |
| symbol_base_type, the type/state member is defined _after_ the value |
| and location. In C++ the order of the definition of the members |
| defines the order in which they are initialized, things go backward: |
| the value is initialized _before_ the type. This is wrong, since the |
| type is needed to access the value. |
| |
| Therefore, we need another means to factor the common code, one that |
| ensures the order of the members. |
| |
| The idea is simple: define two (base) classes that code the symbol |
| type ("by_type" codes it by its type, and "by_state" by the state |
| number). Define basic_symbol<Base> as the class template that |
| provides value and location support. Make it _derive_ from its |
| parameter, by_type or by_state. Then define stack_symbol_type and |
| symbol_type as basic_symbol<by_state>, basic_symbol<by_type>. The |
| name basic_symbol was chosen by similarity with basic_string and |
| basic_ostream. |
| |
| * data/c++.m4 (symbol_base_type<Exact>): Remove, replace by... |
| (basic_symbol<Base>): which derives from its parameter, one of... |
| (by_state, by_type): which provide means to retrieve the actual type of |
| symbol. |
| (symbol_type): Is now basic_symbol<by_type>. |
| (stack_symbol_type): Is now basic_symbol<by_state>. |
| * data/lalr1.cc: Many adjustments. |
| |
| 2013-01-11 Theophile Ranquet <[email protected]> |
| |
| bench: add %b directive to use a specific Bison |
| For example, |
| $ bench.pl -v '%s lalr1.cc & %d variant & ( %b ~/old-bison/bin/bison |
| | %b ~/new-bison/bin/bison )' -g list -i 10000 |
| |
| * etc/bench.pl.in: Here. |
| |
| 2013-01-09 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2013-01-04 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| doc: use deffn to declare the list of %define variables |
| * doc/bison.texi (%define Summary): Use @deffn instead of @table, it |
| spares a lot of width, especially in PDF, and looks nicer in the other |
| formats too. |
| It is also more consistent with the rest of the document. |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| doc: minor completion and fixes |
| * doc/bison.texi (%define Summary): Provide more history to some |
| variables. |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| java: stype is obsoleted by api.value.type |
| This is consistent with the other %define variable names. |
| |
| * data/java.m4: Use api.value.type instead of stype. |
| * doc/bison.texi, NEWS: Document that change. |
| * src/muscle-tab.c (muscle_percent_variable_update): Provide backward |
| compatibility. |
| * tests/java.at: Adjust. |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| doc: fix html build |
| * doc/local.mk (bison.html): Fix dependencies. |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| todo: remove erroneous task |
| * tests/input.at: Check that there are no warnings about stray $ and @ |
| in the epilogue. |
| * TODO: Remove the correponding task. |
| |
| 2012-12-31 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| syncline: one line is enough |
| So far we were issuing two lines for each syncline change: |
| |
| /* Line 356 of yacc.c */ |
| #line 1 "src/parse-gram.y" |
| |
| This is a lot of clutter, especially when reading diffs, as these |
| lines change often. Fuse them into a single, shorter, line: |
| |
| #line 1 "src/parse-gram.y" /* yacc.c:356 */ |
| |
| * data/bison.m4 (b4_syncline): Issue a single line. |
| Comment improvements. |
| (b4_sync_start, b4_sync_end): Issue a shorter comment. |
| * data/c++.m4 (b4_semantic_type_declare): b4_user_code must be |
| on its own line as it might start with a "#line" directive. |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| maint: restore ANSI 89 compliance |
| * data/bison.m4, src/conflicts.c, src/files.c, src/output.c, |
| * src/symtab.c: Use /* ... */ comments only. |
| Declare variables before statements. |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| graph: minor simplification |
| * src/gram.c (print_lhs): Use %*s to indent. |
| * src/print_graph.c (print_lhs): Use obstack_printf. |
| Became simple enough to be inlined in... |
| (print_core): here. |
| Use a "rule*" instead of an index in "rules[]". |
| |
| 2012-12-28 Akim Demaille <[email protected]> |
| |
| closure, gram: add missing const |
| * src/closure.h, src/closure.c, src/gram.h, src/gram.c: Add some missing |
| const where appropriate. |
| |
| 2012-12-27 Theophile Ranquet <[email protected]> |
| |
| carets: properly display when no line feed is present |
| * src/location.c (location_caret): finish the line with one whether or not it |
| is present in input. Rewrite code without getline. |
| (cleanup_caret): Reset the caret_info global. |
| * bootstrap.conf: No longer require getline. |
| |
| 2012-12-27 Theophile Ranquet <[email protected]> |
| |
| scanner: reintroduce unput for missing end tokens |
| Unput was no longer used since a POSIX-compatiblity issue with Flex 2.5.31, |
| which has been adressed in newer versions of Flex. See this discussion: |
| <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00029.html> |
| |
| This partially reverts commit aa4180418fff518198e1b0f2c43fec6432210dc7. |
| |
| * src/scan-gram.l (unexpected_end): Here. |
| * tests/input.at: Adjust for new order of error reports. |
| |
| 2012-12-27 Akim Demaille <[email protected]> |
| |
| tables: scope reduction |
| * src/tables.c (default_goto): Make it easier to understand. |
| |
| 2012-12-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-12-27 Akim Demaille <[email protected]> |
| |
| skeletons: fix comments |
| The commit 38de4e570fdc7c8db9633c3b2054e565d8c1c6b9 underquoted the |
| content of the comments, which resulted in losing square brackets in |
| the comments. Besides, some other invocations were underquoting the |
| effective arguments. |
| |
| * data/c.m4 (b4_comment_): Properly quote the comment. |
| (b4_comment_, b4_comment): Move to... |
| * data/c-like.m4: here, so that... |
| * data/java.m4: can use it instead of its own copy. |
| * data/bison.m4 (b4_integral_parser_tables_map): Fix some comments. |
| |
| * data/lalr1.cc, data/lalr1.java, data/yacc.c: Comment fixes. |
| |
| * data/lalr1.cc: Reorder a bit to factor some CPP directives. |
| |
| 2012-12-27 Akim Demaille <[email protected]> |
| |
| maint: which -> whose |
| Apparently, I was confusing both. |
| |
| * data/bison.m4, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: |
| Use "whose" where appropriate. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: scope reduction |
| * src/tables.c (matching_state): here. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: scope reduction |
| * src/tables.c (token_actions): here. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: scope reduction |
| * src/tables.c (save_row): here. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: scope reduction |
| * src/tables.c (save_column, pack_vector): Reduce the scope to |
| emphasize the structure of the code. |
| Rename the returned value "res" to make understanding easier. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: use size_t where appropriate |
| These changes aim at making the code easier to understand. |
| |
| * src/tables.c (tally): This is a size, always >= 0, so make it |
| a size_t. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tables: style changes |
| * src/tables.c: Prefer < to >. |
| Fix/complete some comments. |
| Remove useless parens. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| skeletons: no longer call yylex via a CPP macro |
| The YYLEX existed only to support YYLEX_PARAM, which is now removed. |
| This macro was a nuisance, since incorrect yylex calls where pointed |
| the macro _use_, instead of its definition. |
| |
| * data/c.m4 (b4_lex_formals, b4_lex): New. |
| * data/glr.c, data/yacc.c: Use it. |
| * data/lalr1.cc (b4_lex): New. |
| Use it. |
| |
| squash! skeletons: no longer call yylex via a CPP macro |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| YYLEX_PARAM: drop support |
| * data/yacc.c, doc/bison.texi: Remove YYLEX_PARAM support. |
| * NEWS: Document it. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| examples: minor improvements |
| * examples/variant.yy: Don't use debug_stream(), obsoleted. |
| Use <*>. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| skeletons: factor comments about symbols |
| * data/variant.hh (b4_char_sizeof_): Rename as... |
| * data/bison.m4 (b4_symbol_tag_comment): this. |
| Provide more documentation about b4_symbol_*. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| c: improve the definition of public types |
| * data/c.m4 (b4_token_enum): Improve comments. |
| (b4_value_type_define, b4_location_type_define): New, extracted |
| from... |
| (b4_declare_yylstype): here. |
| Separate the typedefs from the union/struct definitions. |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| doc: update variant usage |
| * doc/bison.texi, examples/variant.yy: Use "%define api.value.type variant", |
| instead of "%define variant". |
| |
| 2012-12-26 Akim Demaille <[email protected]> |
| |
| tests: check the "%define variant" is deprecated. |
| * tests/input.at: Rename some AT_SETUP to avoid that |
| AT_SETUP_STRIP thinks they contain %define directives. |
| ("%define" backward compatibility): Merge tests together |
| to speed up the test suite, and to make maintenance easier |
| (multiple AT_CHECK means multiple runs of the test suite to |
| be sure to have updated all the error messages). |
| Check the "%define variant" is properly obsoleted. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| %define variables: support value changes in deprecation |
| * src/muscle-tab.c (define_directive): Be robust to "assignment" |
| containing '='. |
| (muscle_percent_variable_update): Upgrade "variant" to "api.value.type". |
| Support such upgrade patterns. |
| Adjust callers. |
| |
| * data/bison.m4: Use api.value.type for variants. |
| * tests/c++.at: Adjust tests. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| diagnostics: treat obsolete %define variable names as obsolete directives |
| Instead of |
| |
| warning: deprecated %define variable name: 'namespace', use 'api.namespace' [-Wdeprecated] |
| |
| display (in -fno-caret mode): |
| |
| warning: deprecated directive: '%define namespace foo', use '%define api.namespace foo' [-Wdeprecated] |
| |
| and (in -fcaret mode): |
| |
| warning: deprecated directive, use '%define api.namespace toto' [-Wdeprecated] |
| %define namespace toto |
| ^^^^^^^^^ |
| |
| This is in preparation of cases where not only the variable is |
| renamed, but the values are too: |
| |
| warning: deprecated directive: '%define variant', use '%define api.value.type variant' [-Wdeprecated] |
| |
| * src/muscle-tab.c (define_directive): New. |
| (muscle_percent_variable_update): Take the value as argument, and use it |
| in the diagnostics. |
| Loop with a pointer instead of an index. |
| * tests/input.at (%define backward compatibility): Adjust. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| diagnostics: factor the deprecated directive message |
| * src/complain.h, src/complain.c (deprecated_directive): New. |
| * src/muscle-tab.c: Use it. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| variant: produce stable results |
| Improve the output by ensuring a well defined order for type switches. |
| |
| * src/uniqstr.h: Style changes for macro arguments. |
| (UNIQSTR_CMP): Replace by... |
| (uniqstr_cmp): this. |
| * src/uniqstr.c (uniqstr_cmp): New. |
| Produce well defined results. |
| * src/output.c: Use it. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| uniqstr: formatting changes |
| * src/uniqstr.h: Sort functions by object type. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| skeletons: fix an error message |
| * data/bison.m4 (b4_flag_if): Display the invalid value. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| tests: improve titles |
| * tests/local.at (AT_SETUP_STRIP): New. |
| (AT_SETUP): Use it to shorten the test titles: remove %defines, %language |
| and %skeleton whose arguments suffice. |
| * tests/synclines.at: Use more precise AT_SETUP. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| c++: comment changes |
| * data/c++.m4, data/glr.cc, data/lalr1.cc: Convert some /* ... */ |
| comments to //. |
| |
| 2012-12-23 Akim Demaille <[email protected]> |
| |
| c++: use // comments in the output |
| This is mostly used for the license header, the synclines, and the |
| generated tables: |
| |
| - /* STOS_[STATE-NUM] -- The (internal number of the) accessing |
| - symbol of state STATE-NUM. */ |
| + // STOS_[STATE-NUM] -- The (internal number of the) accessing |
| + // symbol of state STATE-NUM. |
| static const unsigned char yystos_[]; |
| |
| * data/c.m4: Comment changes. |
| (b4_comment_): Expand the text argument. |
| Before this change, we were actually formatting M4 code as a |
| C comment, and then expand it. |
| (b4_comment): Fix the closing of comments: there is no reason to |
| add the (line) prefix before the closing "*/". |
| * data/c++.m4 (b4_comment): New. |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| maint: disable sc_prohibit_test_backticks |
| * cfg.mk: here. |
| And fix typos. |
| Reported by Stefano Lattarini. |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| maint: more syntax-checks |
| * cfg.mk (sc_prohibit_tab_based_indentation, sc_prohibit_test_backticks) |
| (sc_preprocessor_indentation, sc_space_before_open_paren): New, |
| stolen from Coreutils (2e9f5ca4ebbbdb6a9fa2dd3d5add3f7720a172d7). |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| debug: no longer generate tabs |
| * src/closure.c, src/derives.c, src/nullable.c, tests/sets.at: Use |
| spaces. |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| style changes: run cppi |
| Run it in src/ for a start. |
| |
| * src/AnnotationList.h, src/InadequacyList.h, src/Sbitset.h, |
| * src/closure.c, src/complain.h, src/flex-scanner.h, src/getargs.h, |
| * src/gram.h, src/graphviz.h, src/ielr.h, src/location.h, |
| * src/muscle-tab.h, src/named-ref.h, src/relation.h, src/scan-code.h, |
| * src/state.h, src/symtab.h, src/system.h, src/uniqstr.h: |
| Reindent preprocessor directives. |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| style changes: untabify |
| * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl, m4/flex.m4, |
| * tests/glr-regression.at, tests/torture.at: here. |
| |
| 2012-12-21 Akim Demaille <[email protected]> |
| |
| tests: be robust to set -e. |
| * examples/test (run): here. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| variants: prohibit simple copies |
| The "variant" structure provides a means to store, in a typeless way, |
| C++ objects. Manipulating it without provide the type of the stored |
| content is doomed to failure. So provide a means to copy in a type |
| safe way, and prohibit typeless assignments. |
| |
| * data/c++.m4 (symbol_type::move): New. |
| * data/lalr1.cc: Use it. |
| * data/variant.hh (b4_variant_define): Provide variant::copy. |
| Let variant::operator= abort. |
| We cannot undefine it, yet, as it is still uses by the implicit |
| assigment in symbols, which must also be disabled. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| variant: more assertions |
| Equip variants with more checking code. Provide a means to request |
| includes. |
| |
| * data/variant.hh (b4_variant_includes): New. |
| * data/lalr1.cc: Use it. |
| * data/variant.hh (variant::built): Define at the end, as a private member. |
| (variant::tname): New. |
| Somewhat makes "built" useless, but let's keep both for a start, in |
| case using "typeinfo" is considered unacceptable in some environments. |
| Fix some formatting issues. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| skeletons: fix output directives |
| * data/lalr1.cc, data/location.cc, data/glr.cc: Use b4_output_begin. |
| Broken during a merge. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| yacc.c: style changes |
| * data/yacc.c (b4_lex_param): Provide arguments with a name. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| glr.cc: simplifying the handling of parse/lex params |
| The fact that glr.cc uses glr.c makes the handling of parse params |
| more complex, as the parser object of glr.cc must be passed to the |
| parse function of glr.c. Yet not all the functions need access to |
| the parser object. |
| |
| * data/glr.cc (b4_parse_param_wrap): New. |
| Use them. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| glr: rename lex params |
| * data/glr.c (b4_lex_param): Rename as... |
| (b4_lex_formals): this, for consistency. |
| Provide arguments a name. |
| (LEX): Adjust. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| glr.c: move function declaration earlier |
| * data/glr.c (yypstack, yypdumpstack): Declare earlier, to make |
| it easier to call them from other functions. |
| |
| 2012-12-19 Akim Demaille <[email protected]> |
| |
| %define variables: backward compatibility |
| * src/muscle-tab.c (muscle_percent_variable_update): Accept lex_symbol. |
| Reported by Roland Levillain. |
| |
| 2012-12-16 Akim Demaille <[email protected]> |
| |
| diagnostics: improve -fcaret for list of accepted values |
| Instead of |
| |
| input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither' |
| %define api.push_pull "neither" |
| ^^^^^^^^^^^^^ |
| input.y:1.9-21: accepted value: 'pull' |
| %define api.push_pull "neither" |
| ^^^^^^^^^^^^^ |
| input.y:1.9-21: accepted value: 'push' |
| %define api.push_pull "neither" |
| ^^^^^^^^^^^^^ |
| input.y:1.9-21: accepted value: 'both' |
| %define api.push_pull "neither" |
| ^^^^^^^^^^^^^ |
| |
| report |
| |
| input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither' |
| %define api.push_pull "neither" |
| ^^^^^^^^^^^^^ |
| input.y:1.9-21: accepted value: 'pull' |
| input.y:1.9-21: accepted value: 'push' |
| input.y:1.9-21: accepted value: 'both' |
| |
| * src/complain.h (no_caret): New. |
| * src/complain.c (error_message): Use it. |
| * src/muscle-tab.c (muscle_percent_define_check_values): Use it. |
| * src/scan-skel.l (flag): Ditto. |
| * tests/input.at: Adjust and check. |
| |
| 2012-12-16 Akim Demaille <[email protected]> |
| |
| skeletons: simplify the handling of default api.location.type |
| * data/bison.m4 (b4_bison_locations_if): New. |
| * data/glr.cc, data/lalr1.cc: Use it. |
| |
| 2012-12-16 Akim Demaille <[email protected]> |
| |
| tests: address syntax-check failures |
| * cfg.mk: Ignore failures in timevar (uses GCC style configuration, |
| not gnulib's). |
| * doc/local.mk: Space changes. |
| * lib/main.c, tests/calc.at: Remove useless HAVE_ tests. |
| |
| 2012-12-15 Akim Demaille <[email protected]> |
| |
| remove duplicate definitions |
| * src/system.h: here, inherited from a merge. |
| |
| 2012-12-15 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/glr-regression.at: Issue yyerror before yylex. |
| |
| 2012-12-15 Akim Demaille <[email protected]> |
| |
| doc: fix dependencies |
| * doc/local.mk: here. |
| |
| 2012-12-14 Akim Demaille <[email protected]> |
| |
| doc: style fixes |
| * doc/bison.texi: Add a couple of missing @var and @code. |
| |
| 2012-12-14 Theophile Ranquet <[email protected]> |
| |
| doc: fix build dependencies |
| Suggested by Nick Bowler |
| <http://lists.gnu.org/archive/html/bug-automake/2012-12/msg00001.html> |
| |
| * doc/local.mk: Avoid overwriting Automake's rules. |
| |
| 2012-12-14 Akim Demaille <[email protected]> |
| |
| Merge branch 'origin/maint' |
| * origin/maint: |
| maint: credit Wojciech Polak |
| maint: post-release administrivia |
| version 2.7 |
| yacc.c: scope reduction |
| tests: C90 compliance |
| fix C90 compliance |
| glr.c: scope reduction |
| gnulib: update |
| |
| 2012-12-14 Theophile Ranquet <[email protected]> |
| |
| symtab: add missing initializations |
| * src/symtab.c (semantic_type_new): Here. |
| |
| 2012-12-14 Theophile Ranquet <[email protected]> |
| |
| symtab: fix some leaks |
| * src/symlist.c (symbol_list_free): Deep free it. |
| * src/symtab.c (symbols_free, semantic_types_sorted): Free it too. |
| (symbols_do, sorted): Call by address. |
| |
| 2012-12-14 Theophile Ranquet <[email protected]> |
| |
| tests: remove use of PARSE_PARAM |
| * tests/header.at: Here. |
| |
| 2012-12-13 Akim Demaille <[email protected]> |
| |
| maint: credit Wojciech Polak |
| * NEWS, THANKS: He is the author of XML support (including XSLTs). |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| version 2.7 |
| * NEWS: Record release date. |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| yacc.c: scope reduction |
| * data/yacc.c (yysyntax_error): here. |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| tests: C90 compliance |
| * tests/synclines.at: here. |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| fix C90 compliance |
| * data/glr.c, src/graphviz.h, src/ielr.c, src/scan-gram.l, |
| * src/system.h, tests/actions.at, tests/glr-regression.at: Do not |
| use // comments. |
| Do not introduce variables after statements. |
| Provide "main" with a return value. |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| glr.c: scope reduction |
| * data/glr.c (yyreportSyntaxError): Reduce the scope of yysize1 (now |
| yysz). |
| |
| 2012-12-12 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-12-10 Theophile Ranquet <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| news: prepare for forthcoming release |
| doc: explain how mid-rule actions are translated |
| error: use better locations for unused midrule values |
| doc: various minor improvements and fixes |
| tests: ignore more useless compiler warnings |
| tests: be robust to C being compiled with a C++11 compiler |
| build: beware of Clang++ not supporting POSIXLY_CORRECT |
| maint: post-release administrivia |
| version 2.6.90 |
| build: fix syntax-check error. |
| cpp: simplify the Flex version checking macro |
| news: improve the carets example and fix a typo |
| cpp: improve the Flex version checking macro |
| carets: improve the code |
| maint: update news |
| build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs |
| build: drop -Wcast-qual |
| gnulib: update |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| news: prepare for forthcoming release |
| * NEWS: Fill paragraph. |
| Reorder. |
| Update examples. |
| Remove line for 2.6.90. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| doc: explain how mid-rule actions are translated |
| * doc/bison.texi (Actions in Mid-Rule): Mention and use named references. |
| Split into three subsections, among which... |
| (Mid-Rule Action Translation): this new section. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| error: use better locations for unused midrule values |
| On |
| |
| %% |
| exp: {;} {$$;} { $$ = $1; } |
| |
| instead of reporting (with -fcaret -Wmidrule-value) |
| |
| midrule.y:2.6-8: warning: unset value: $$ [-Wmidrule-values] |
| exp: {;} {$$;} { $$ = $1; } |
| ^^^ |
| midrule.y:2.6-27: warning: unused value: $2 [-Wmidrule-values] |
| exp: {;} {$$;} { $$ = $1; } |
| ^^^^^^^^^^^^^^^^^^^^^^ |
| |
| report |
| |
| midrule.y:2.6-8: warning: unset value: $$ |
| exp: {;} {$$;} { $$ = $1; } |
| ^^^ |
| midrule.y:2.10-14: warning: unused value: $2 |
| exp: {;} {$$;} { $$ = $1; } |
| ^^^^^ |
| |
| * src/reader.c (grammar_rule_check): When warning about the value of a |
| midrule action, use the location of the midrule action instead of the |
| location of the rule. |
| the location of the part of the rule. |
| * tests/actions.at (Default %printer and %destructor for mid-rule values): |
| Adjust expectations |
| * tests/input.at (Unused values with default %destructor): Ditto. |
| (AT_CHECK_UNUSED_VALUES): Ditto. |
| And use -fcaret. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| doc: various minor improvements and fixes |
| * doc/figs/example.dot, doc/figs/example.y: New. |
| * doc/bison.texi: Prefer "token" to TOKEN. |
| Use @group where appropriate. |
| Adjust with style changes in the output (State 0, not state 0). |
| Fix some @ref that were missing the third argument. |
| Fix some incorrect line numbers. |
| Use "nonterminal", not "non-terminal". |
| Fix overfull and underfull TeX hboxes. |
| Put the comments in the index. |
| Remove duplicate index entries. |
| Fuse glossary entries where appropriate. |
| (Understanding): Improve the continuity between sections. |
| Use example.dot to show the whole graph. |
| * doc/Makefile.am: Adjust. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| tests: ignore more useless compiler warnings |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore complains about |
| using c++ to compile C. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| tests: be robust to C being compiled with a C++11 compiler |
| * tests/glr-regression.at: Use YY_NULL instead of NULL. |
| Comment changes. |
| |
| 2012-12-09 Akim Demaille <[email protected]> |
| |
| build: beware of Clang++ not supporting POSIXLY_CORRECT |
| * m4/c-working.m4 (BISON_LANG_COMPILER_POSIXLY_CORRECT): New. |
| (BISON_C_COMPILER_POSIXLY_CORRECT): Use it. |
| For consistency with C++, also define BISON_C_WORKS. |
| * m4/cxx.m4 (BISON_CXX_COMPILER_POSIXLY_CORRECT): New. |
| * configure.ac: Use it. |
| * tests/atlocal.in: Get its result. |
| Propagate properly CXX values when used to compile C. |
| When POSIXLY_CORRECT, adjust BISON_C_WORKS and BISON_CXX_WORKS. |
| * tests/local.at (AT_COMPILE): Use BISON_C_WORKS. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| version 2.6.90 |
| * NEWS: Record release date. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| build: fix syntax-check error. |
| * cfg.mk: Exclude names-refs, it includes a "double" if (end of first |
| line, first of second line below). |
| |
| test.y:43.12-44.59: symbol not found in production: if |
| if-stmt-a: IF expr[cond] THEN stmt.list[then] ELSE stmt.list[else] FI |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| 2012-12-07 Theophile Ranquet <[email protected]> |
| |
| cpp: simplify the Flex version checking macro |
| * src/flex-scanner,h (FLEX_VERSION): Consider YY_FLEX_SUBMINOR_VERSION |
| defined. |
| |
| 2012-12-07 Theophile Ranquet <[email protected]> |
| |
| news: improve the carets example and fix a typo |
| * NEWS: Here. |
| |
| 2012-12-07 Theophile Ranquet <[email protected]> |
| |
| cpp: improve the Flex version checking macro |
| * src/flex-scanner.h (FLEX_VERSION): Here. |
| |
| 2012-12-07 Theophile Ranquet <[email protected]> |
| |
| carets: improve the code |
| * src/location.c: Remove duplicate documentations. |
| (caret_info): Stylistic change. |
| (location_caret): Many reworks. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| maint: update news |
| * NEWS: There is no 2.6.6, remove its stub. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs |
| Fixes a -Werror failure of xalloc.h used in src. |
| From Eric Blake. |
| http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00006.html |
| |
| * configure.ac: Check whether GCC pragma diagnostic push/pop works. |
| Enable these warnings for bison if it does. |
| Enable these warnings for the test suite anyway. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| build: drop -Wcast-qual |
| Suggested by Jim Meyering. |
| http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00017.html |
| * configure.ac (warn_common): Remove -Wcast-qual. |
| |
| 2012-12-07 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-12-06 Theophile Ranquet <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| misc: pacify the Tiny C Compiler |
| cpp: make the check of Flex version portable |
| misc: require getline |
| c++: support wide strings for file names |
| doc: document carets |
| tests: enhance existing tests with carets |
| errors: show carets |
| getargs: add support for --flags/-f |
| |
| 2012-12-06 Theophile Ranquet <[email protected]> |
| |
| misc: pacify the Tiny C Compiler |
| * src/graphviz.c (conclude_red): Remove a useless return. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| cpp: make the check of Flex version portable |
| This was problematic with tcc 0.9.25 |
| |
| * src/flex-scanner.h (FLEX_VERSION_GT): Rewrite and rename as... |
| (FLEX_VERSION): This. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| misc: require getline |
| * bootstrap.conf: Here, used by src/location.c. |
| * src/getargs.c (long_options): Rename --flags to --feature. |
| |
| 2012-12-05 Akim Demaille <[email protected]> |
| |
| c++: support wide strings for file names |
| Reported by Mark Boyall. |
| http://lists.gnu.org/archive/html/help-bison/2011-08/msg00002.html |
| |
| * data/location.cc (operator<<): Be templated on the type of |
| output stream. |
| * tests/headers.at (Several parsers): Adjust. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| doc: document carets |
| * NEWS: Announce it. |
| * doc/bison.texi (Bison Options): Here. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| tests: enhance existing tests with carets |
| * tests/actions.at: Unset value. |
| * tests/conflicts.at: Rule useless due to conflicts. |
| * tests/input.at: Missing terminator, unexpected end of file, command line |
| redefinition of variable. |
| * tests/named-refs.at: Many errors. |
| * tests/reduce.at: Useless nonterminals and rules. |
| * tests/regression.at: Large token. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| errors: show carets |
| * src/locations.c (caret_info): New, persistant information useful |
| for... |
| (location_caret): New, print a caret. |
| (cleanup_caret): Release caret_info cleanly, call it... |
| * src/main.c (main): Here. |
| * src/complain.c (error_message): Call location_caret here. |
| |
| 2012-12-05 Theophile Ranquet <[email protected]> |
| |
| getargs: add support for --feature/-f |
| Introduce -fdiagnostics-show-caret |
| |
| * src/getargs.c (feature_flag): New global. |
| * src/getargs.h (feature): New enum. |
| |
| 2012-12-05 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| getargs: don't label --language/-l as experimental |
| getargs: fix the locations of command-line input |
| errors: indent missing action code semicolon warning |
| |
| 2012-12-04 Theophile Ranquet <[email protected]> |
| |
| getargs: don't label --language/-l as experimental |
| * NEWS: Announce it. |
| * doc/bison.texi, src/getargs.c (usage): Here. |
| |
| 2012-12-03 Akim Demaille <[email protected]> |
| |
| tests: minor improvements |
| * tests/calc.at (AT_CHECK_SPACES): To speed up, accept several files |
| at once, and factor some calls. |
| |
| 2012-12-03 Theophile Ranquet <[email protected]> |
| |
| getargs: fix the locations of command-line input |
| * src/getargs.c (command_line_location): Here. |
| * tests/input.at: Adjust. |
| |
| 2012-12-03 Theophile Ranquet <[email protected]> |
| |
| errors: indent missing action code semicolon warning |
| Also, remove a duplicate #define. |
| |
| * src/scan-code.l (SC_RULE_ACTION): Here. |
| * tests/actions.at: Adjust. |
| |
| 2012-12-03 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| parser: accept #line NUM |
| m4: use a safer pattern to enable/disable output |
| tests: beware of gnulib's need for config.h |
| gnulib: update |
| yacc.c, glr.c: check and fix the display of locations |
| formatting changes |
| glr.c: remove stray macro |
| |
| 2012-12-03 Akim Demaille <[email protected]> |
| |
| parser: accept #line NUM |
| * src/scan-gram.l (scanner): Accept '#line NUM'. |
| (handle_syncline): Adjust to the possible missing file name. |
| |
| 2012-12-03 Akim Demaille <[email protected]> |
| |
| m4: use a safer pattern to enable/disable output |
| Work on some other areas of Bison revealed that some macros expanded |
| to be expanded only once were actually expanded several times. This |
| was due to the fact that changecom was not properly restored each |
| time, and macro names appearing in comments were then expanded. |
| |
| Introduce begin/end macros which are easier to match that |
| changecom()/changecom(#). |
| |
| * data/bison.m4 (b4_output_begin, b4_output_end): New. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, |
| * data/location.cc, data/stack.hh, data/yacc.c: |
| Use them. |
| |
| 2012-12-03 Akim Demaille <[email protected]> |
| |
| tests: beware of gnulib's need for config.h |
| * tests/skeletons.at, tests/torture.at: Be sure to include config.h |
| where appropriate. |
| |
| 2012-11-30 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| * lib/yyerror.c: Include config.h since the following stdio.h might be |
| from gnulib. |
| |
| 2012-11-30 Akim Demaille <[email protected]> |
| |
| yacc.c, glr.c: check and fix the display of locations |
| In some case, negative column number could be displayed. |
| Make YY_LOCATION_PRINT similar to bison's own implementation of |
| locations. Since the macro is getting fat, make it a static |
| function. |
| Reported by Jonathan Fabrizio. |
| |
| * data/c.m4 (yy_location_print_define): Improve the implementation, |
| and generate the yy_location_print_ function. |
| Adjust YY_LOCATION_PRINT. |
| * tests/actions.at (Location Print): New tests. |
| |
| 2012-11-30 Akim Demaille <[email protected]> |
| |
| formatting changes |
| * data/c.m4: Fix comments, put macros in a more natural order. |
| Space changes (from M-x whitespace-cleanup). |
| * src/location.c: Fix spaces. |
| * tests/actions.at: Space changes. |
| |
| 2012-11-30 Akim Demaille <[email protected]> |
| |
| glr.c: remove stray macro |
| * data/glr.c (YYOPTIONAL_LOC): Remove, unused since commit |
| 769a8ef9bcb5e14d0be9d0869f5dca20ab093930. |
| |
| 2012-11-29 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| doc: minor fixes |
| doc: improve the index |
| doc: introduce api.pure full, rearrange some examples |
| yacc.c: support "%define api.pure full" |
| local.at: improvements |
| |
| 2012-11-29 Akim Demaille <[email protected]> |
| |
| doc: minor fixes |
| * doc/bison.texi: Use stderr for error messages. |
| Meta-variables are usually spelled in lower case. |
| Use @code for function names. |
| |
| 2012-11-29 Akim Demaille <[email protected]> |
| |
| doc: improve the index |
| * doc/bison.texi: Fix uses of "deffn" so that the arguments of the |
| directives do not show in the index. |
| Remove a duplicate entry for api.pure. |
| |
| 2012-11-29 Theophile Ranquet <[email protected]> |
| |
| doc: introduce api.pure full, rearrange some examples |
| * NEWS: Add entry. |
| * doc/bison.texi (%define Summary): Show the old Yacc behaviour. |
| (Parser Function): Move parse-param examples here. |
| (Pure Calling): Remove parse-param examples. |
| (Error Reporting): Don't show the old behavior, stick to 'full'. |
| |
| 2012-11-29 Theophile Ranquet <[email protected]> |
| |
| yacc.c: support "%define api.pure full" |
| This makes the interface for yyerror() pure without the need for a spurious |
| parse_param. |
| |
| * data/yacc.c (b4_pure_if, b4_pure_flag): New definition, accept three states. |
| (b4_yacc_pure_if): Rename as... |
| (b4_yyerror_arg_loc_if): This, and use b4_pure_flag. |
| * tests/actions.at (%define api.pure): Modernize. |
| * test/calc.at (Simple LALR Calculator): Modernize. |
| * tests/local.at (AT_YYERROR_ARG_LOC_IF): Adjust. |
| |
| 2012-11-28 Akim Demaille <[email protected]> |
| |
| tests: check variants without locations |
| * tests/c++.at (Variants): Support non-use of locations, and |
| check its support. |
| |
| 2012-11-26 Theophile Ranquet <[email protected]> |
| |
| local.at: improvements |
| * tests/local.at (AT_YYERROR_FORMALS): Make llocp const. |
| (AT_PURE_AND_LOC_IF, AT_GLR_OR_PARAM_IF): Remove, expand... |
| (AT_YYERROR_ARG_LOC_IF): Here, and use m4_join for readability. |
| |
| 2012-11-26 Akim Demaille <[email protected]> |
| |
| tests: use -fno-strict-aliasing with variants |
| Reported by Théophile Ranquet. |
| |
| * configure.ac (NO_STRICT_ALIAS_CXXFLAGS): New. |
| * tests/c++.at, tests/atlocal.in, examples/local.mk: Use it. |
| |
| 2012-11-26 Akim Demaille <[email protected]> |
| |
| tests: remove leftover |
| * tests/atlocal.in: Remove duplicate handling of --compile-c-with-cxx. |
| |
| 2012-11-26 Akim Demaille <[email protected]> |
| |
| doc: use %precedence instead of nonassoc when associativity is not wanted |
| * doc/bison.texi: here. |
| Formatting changes in some grammars. |
| Fix a %prec into %precedence. |
| |
| 2012-11-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| yacc.c: always initialize yylloc |
| scanner: issue a single error for groups of invalid characters |
| tests: formatting changes |
| doc: one of the fixes for an ambiguous grammar was ambiguous too |
| doc: fix the dangling else with precedence directives |
| doc: prefer "token" to TOKEN |
| doc: formatting changes |
| scanner: use explicit "ignore" statements |
| |
| 2012-11-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/branch-2.6' into maint |
| * origin/branch-2.6: |
| yacc.c: always initialize yylloc |
| doc: one of the fixes for an ambiguous grammar was ambiguous too |
| doc: fix the dangling else with precedence directives |
| doc: prefer "token" to TOKEN |
| doc: formatting changes |
| |
| 2012-11-23 Theophile Ranquet <[email protected]> |
| |
| yacc.c: always initialize yylloc |
| The initial location might be used if the parser starts by an empty |
| reduction, so really ensure proper initialization of the initial |
| location. The previous approach fails for PostgreSQL, which uses |
| Reported by Peter Eisentraut. |
| http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00023.html |
| With help from Théophile Ranquet. |
| |
| * data/yacc.c (b4_declare_scanner_communication_variables): Be sure |
| to initialize yylloc, even when its structure is unknown. |
| (yyparse): Simplify the call to b4_dollar_pushdef. |
| * tests/actions.at (Initial location): Check of similar pattern |
| as in the case of PostgreSQL. |
| |
| 2012-11-23 Akim Demaille <[email protected]> |
| |
| scanner: issue a single error for groups of invalid characters |
| * src/scan-gram.l: Scan groups of invalid characters together. |
| * tests/input.at, tests/named-refs.at: Adjust. |
| |
| 2012-11-23 Akim Demaille <[email protected]> |
| |
| tests: formatting changes |
| * tests/named-refs.at: Here. |
| |
| 2012-11-23 Akim Demaille <[email protected]> |
| |
| doc: one of the fixes for an ambiguous grammar was ambiguous too |
| Reported by Аскар Сафин. |
| http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00024.html |
| |
| * doc/bison.texi (Reduce/Reduce): Fix the resulting ambiguity using |
| precedence/associativity directives. |
| |
| 2012-11-22 Akim Demaille <[email protected]> |
| |
| doc: fix the dangling else with precedence directives |
| * doc/bison.texi (Non Operators): New node. |
| (Shift/Reduce): Point to it. |
| Don't promote "%expect n" too much. |
| |
| 2012-11-22 Akim Demaille <[email protected]> |
| |
| doc: prefer "token" to TOKEN |
| This is more readable in short examples. |
| |
| * doc/bison.texi (Shift/Reduce): here. |
| Make "win" and "lose" action more alike. |
| |
| 2012-11-22 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: Use @group. |
| |
| 2012-11-14 Akim Demaille <[email protected]> |
| |
| scanner: use explicit "ignore" statements |
| * src/scan-gram.l: here. |
| |
| 2012-11-13 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: close files in glr-regression |
| xml: match DOT output and xml2dot.xsl processing |
| xml: factor xslt space template |
| graph: fix a memory leak |
| xml: documentation |
| output: capitalize State |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| tests: close files in glr-regression |
| * tests/glr-regression.at: Here. |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| xml: match DOT output and xml2dot.xsl processing |
| Make the DOT produced by XSLT processing equivalent to the one made with the |
| --graph option. |
| |
| * data/xslt/xml2dot.xsl: Stylistic changes, and add support for reductions. |
| * doc/bison.texi (Xml): Update. |
| * src/graphviz.c (conclude_red): Minor stylistic changes to DOT internals. |
| (output_red): Swap enabled and disabled reductions output, for coherence |
| with XSLT output. |
| * src/print_graph.c (print_core): Minor stylistic change to States' output. |
| (print_actions): Swap order of output for reductions and transitions. |
| * tests/local.at (AT_BISON_CHECK_XML): Ignore differences in order. |
| * tests/output.at: Adjust to changes in DOT internals. |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| xml: factor xslt space template |
| * data/xslt/bison.xsl (space): New, import from... |
| * data/xslt/xml2text.xsl: Here. |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| graph: fix a memory leak |
| * src/graphviz.c (output_red): Here. |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| xml: documentation |
| The XML output combined with the XSL Transformations provided in data/ are |
| incredibly useful, they should be documented. |
| |
| * doc/bison.texi (Xml): New node. |
| |
| 2012-11-12 Theophile Ranquet <[email protected]> |
| |
| output: capitalize State |
| * src/print.c (print_state): Here. |
| * tests/conflicts.at, tests/existing.at, tests/local.at, tests/reduce.at, |
| tests/regression.at, tests/sets.at: Adjust. |
| |
| 2012-11-12 Akim Demaille <[email protected]> |
| |
| tests: fix syntax-check errors |
| Reported by Théophile Ranquet. |
| |
| * tests/c++.at: Use AT_PARSER_CHECK. |
| Avoid using "strcmp", which triggers an error from syntax-check. |
| |
| 2012-11-12 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: address syntax-check errors. |
| tests: use valgrind where appropriate |
| tests: use valgrind where appropriate |
| tests: don't expect $EGREP to support -w |
| tests: more possible error compiler messages for "#error" |
| |
| 2012-11-12 Akim Demaille <[email protected]> |
| |
| maint: address syntax-check errors. |
| * cfg.mk: Ignore the "error" call in tests/c++.at, it is not to be |
| translated. |
| * doc/bison.texi: Fix incorrect @pxref use. |
| * po/POTFILES.in: Add missing file. |
| * src/print_graph.c: Remove useless include. |
| |
| 2012-11-12 Akim Demaille <[email protected]> |
| |
| tests: use valgrind where appropriate |
| Reported by Théophile Ranquet. |
| |
| * cfg.mk (sc_at_parser_check): New. |
| * tests/c++.at: Fix use of AT_CHECK vs. AT_PARSER_CHECK. |
| |
| 2012-11-12 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/branch-2.6' into maint |
| * origin/branch-2.6: |
| tests: use valgrind where appropriate |
| tests: don't expect $EGREP to support -w |
| |
| 2012-11-10 Akim Demaille <[email protected]> |
| |
| tests: use valgrind where appropriate |
| Reported by Théophile Ranquet. |
| |
| * tests/glr-regression.at: Rewrite some test cases so that AT_PARSER_CHECK, |
| which runs valgrind, is exposed with the parser, not with "echo". |
| * tests/local.at, tests/regression.at, tests/headers.at: |
| Use AT_PARSER_CHECK for generated parsers. |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| tests: don't expect $EGREP to support -w |
| Does not work on Solaris 10. Reported by Dennis Clarke. |
| http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00009.html |
| * tests/headers.at (Several parsers): Use Perl instead. |
| While at it, run it only once, on all the generated headers. |
| Adjust to YY_NULL be defined in position.hh. |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| tests: more possible error compiler messages for "#error" |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust for Clang. |
| Verified with GCC 4.0, 4.2 to 4.8, and Clang 2.9, 3.2: none skip. |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| regen |
| maint: post-release administrivia |
| version 2.6.5 |
| regen |
| tests: syntax-check |
| tests: beware of compilers that do not support POSIXLY_CORRECT |
| gnulib: update |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-11-08 Akim Demaille <[email protected]> |
| |
| Merge branch 'branch-2.6' into maint |
| * origin/branch-2.6: |
| maint: post-release administrivia |
| version 2.6.5 |
| regen |
| tests: syntax-check |
| tests: beware of compilers that do not support POSIXLY_CORRECT |
| gnulib: update |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| version 2.6.5 |
| * NEWS: Record release date. |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| tests: syntax-check |
| * tests/actions.at: Fix typo. |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| tests: beware of compilers that do not support POSIXLY_CORRECT |
| Running "maintainer-release-check" on OS X with Clang 2.9 fails, |
| because "clang-mp-2.9 -o test -g test.c" launches "/usr/bin/dsymutil |
| test -o test.dSYM" which fails with "error: unable to open executable |
| '-o'". |
| |
| * m4/c-working.m4 (BISON_CHECK_WITH_POSIXLY_CORRECT) |
| (BISON_C_COMPILER_POSIXLY_CORRECT): New. |
| * configure.ac: Use the latter. |
| * tests/atlocal.in (POSIXLY_CORRECT_IS_EXPORTED): New. |
| * tests/local.at (AT_BISON_CHECK_WARNINGS_): Use it instead of computing its |
| value each time. |
| (AT_QUELL_VALGRIND): Skip tests that cannot work because of compilers |
| that do not support POSIXLY_CORRECT. |
| |
| 2012-11-07 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: (24 commits) |
| tests: calc: modernize the use of locations |
| tests: remove useless location initializations |
| lalr1.cc: always initialize yylval. |
| tests: check that C and C++ objects can be linked together. |
| yacc.c: also disable -Wuninitialized. |
| glr.cc, yacc.c: initialize yylloc properly |
| yacc.c, glr.c: a better YY_LOCATION_PRINT |
| yacc.c: simplify initialization |
| doc: formatting changes |
| c++: fix position operator signatures |
| tests: remove useless location initialization. |
| tests: fix locations in C |
| tests: handle %parse-param in the generated yyerror |
| tests: simplifications |
| grammars: fix display of nul character in error message |
| tests: sort |
| tests: cosmetic changes |
| comment changes |
| autoconf: update |
| gnulib: update |
| ... |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| Merge branch 'branch-2.6' into maint |
| * origin/branch-2.6: (24 commits) |
| tests: calc: modernize the use of locations |
| tests: remove useless location initializations |
| lalr1.cc: always initialize yylval. |
| tests: check that C and C++ objects can be linked together. |
| yacc.c: also disable -Wuninitialized. |
| glr.cc, yacc.c: initialize yylloc properly |
| yacc.c, glr.c: a better YY_LOCATION_PRINT |
| yacc.c: simplify initialization |
| doc: formatting changes |
| c++: fix position operator signatures |
| tests: remove useless location initialization. |
| tests: fix locations in C |
| tests: handle %parse-param in the generated yyerror |
| tests: simplifications |
| grammars: fix display of nul character in error message |
| tests: sort |
| tests: cosmetic changes |
| comment changes |
| autoconf: update |
| gnulib: update |
| ... |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| tests: calc: modernize the use of locations |
| * tests/calc.at: Don't initialize the location, let the parser |
| do it. |
| Use a $printer. |
| Change some testing input to be easier to distinguish (instead of always |
| "0 0" for instance). |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| tests: remove useless location initializations |
| * tests/actions.at, tests/calc.at: here. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: always initialize yylval. |
| * data/lalr1.cc: here. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| tests: check that C and C++ objects can be linked together. |
| * tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): New. |
| * tests/headers.at (Several parsers): Use it. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| yacc.c: also disable -Wuninitialized. |
| * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): For some versions |
| of GCC, -Wmaybe-uninitialized alone does not suffice. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| glr.cc, yacc.c: initialize yylloc properly |
| There are several issues to address here. One is that yylloc should |
| be initialized when possible. Another is that the push parser needs |
| to update yypushed_loc when the user modified it. And if the parser |
| starts by a reduction of an empty, it uses the first location on the |
| stack, which, therefore, must also be initialized to this initial |
| location. |
| |
| This is getting complex, especially since because initializing a |
| global (impure interface) is different from initializing a local |
| variable. To simplify, the local yylloc is not initialized during its |
| definition. |
| |
| * data/c.m4 (b4_yyloc_default_define): Replace by... |
| (b4_yyloc_default): this. |
| Adjust dependencies. |
| * data/glr.cc: Initialize yylloc. |
| * data/yacc.c (b4_declare_scanner_communication_variables): |
| Initialize yylloc during its definition. |
| Don't define yyloc_default. |
| (yypush_parse): The location formal is not const, as we might |
| initialize it. |
| (yyparse): Define yyloc_default. |
| Use it before running the user initial action. |
| Possibly update the first location on the stack, and the pushed |
| location after the user initial action. |
| * tests/actions.at (Initial locations): Check that the initial |
| location is correct. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| yacc.c, glr.c: a better YY_LOCATION_PRINT |
| * data/c.m4 (b4_yy_location_print_define): New. |
| Now issues "short" locations, e.g., "1.1" instead of "1.1-1.1". |
| Was initially a function, but then we face "static but unused" |
| warnings. |
| Simpler as a macro. |
| * tests/local.at, data/glr.c, data/yacc.c: Use it instead of duplicating. |
| * tests/actions.at: Adjust expectations. |
| |
| 2012-11-06 Akim Demaille <[email protected]> |
| |
| yacc.c: simplify initialization |
| * data/yacc.c: Fuse the initializations of yyssp, yyss and the like. |
| Remove an obsolete comment: we do initialize these initial stack |
| members (in some cases). |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| doc: formatting changes |
| * doc/bison.texi: In a pointer type. |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| c++: fix position operator signatures |
| * data/location.cc (operator+=, operator-=): Remove const from return |
| type. |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| tests: remove useless location initialization. |
| * tests/glr-regression.at: here. |
| glr.c does initialize yylloc. |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| tests: fix locations in C |
| * tests/local.at (AT_YYERROR_DEFINE): Don't display the end of the location |
| if it is not after its beginning. |
| * tests/actions.at, tests/cxx-type.at: Adjust the expected output. |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| tests: handle %parse-param in the generated yyerror |
| * tests/local.at (AT_PARSE_PARAMS): New. |
| (AT_YYERROR_FORMALS, AT_YYERROR_DEFINE): Use it to add the parse-param |
| to yyerror. |
| * tests/calc.at, tests/regression.at: Use AT_YYERROR_DEFINE and |
| AT_YYERROR_DECLARE, now that they handle properly the parse-params. |
| Be sure to let AT_BISON_OPTION_PUSHDEFS now what parse-params are used. |
| |
| 2012-11-05 Akim Demaille <[email protected]> |
| |
| tests: simplifications |
| * tests/actions.at (Exotic Dollars): Formatting changes. |
| Use AT_FULL_COMPILE. |
| (AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove useless initialization of @$. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| lalr1.cc: rename lex_symbol as api.token.constructor |
| * data/bison.m4 (b4_lex_symbol_if): Rename as... |
| (b4_token_ctor_if): this. |
| Depend upon api.token.constructor. |
| * data/c++.m4, data/lalr1.cc: Adjust. |
| * doc/bison.texi: Fix all the occurrences of lex_symbol. |
| * etc/bench.pl.in: Adjust. |
| * examples/variant.yy: Likewise. |
| |
| * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): |
| Handle AT_TOKEN_CTOR_IF. |
| * tests/c++.at: Adjust to using api.token.constructor and AT_TOKEN_CTOR_IF. |
| Simplify the test of both build call styles. |
| (AT_CHECK_VARIANTS): Rename as... |
| (AT_TEST): this. |
| And undef when done. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| examples: simplify/improve |
| * examples/variant.yy: Put yylex in yy::, and simplify accordingly. |
| Minor formatting changes. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| bison.m4: support b4_*_if macros whose name differ from their variable |
| * data/bison.m4 (b4_percent_define_if_define_, b4_percent_define_if_define): |
| Accept a second argument. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| grammars: fix display of nul character in error message |
| Reported by Marc Mendiola. |
| http://lists.gnu.org/archive/html/help-bison/2012-10/msg00017.html |
| |
| * gnulib: Update to get quote_mem. |
| * src/scan-gram.l: Use it. |
| * tests/input.at (Invalid inputs): Additional checks. |
| * tests/named-refs.at: Likewise. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| tests: sort |
| * tests/regression.at (Invalid inputs, Invalid inputs with {}): Move to... |
| * tests/input.at: here, for consistency. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| tests: cosmetic changes |
| * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): Improve the |
| displayed title. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| comment changes |
| * data/lalr1.cc: here. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| autoconf: update |
| There are comment changes only in the files we use. |
| |
| 2012-11-01 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-10-28 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-28 Akim Demaille <[email protected]> |
| |
| yacc.c: initialize yylval and yylloc. |
| When generating a pure push parser, the initialization of yylval and |
| yylloc may not be visible to the compiler. With warnings enabled, GCC |
| 4.3.6, 4.4.7, 4.5.4, and 4.6.3 report uninitialized uses of |
| yylval/yylloc. Using local pragmas to disable these warnings is not |
| supported before 4.6, and 4.6 does not support it properly. So |
| initialize yylval and yylloc at their definition. Reported by Peter |
| Simons. See |
| http://lists.gnu.org/archive/html/bison-patches/2012-10/msg00133.html |
| |
| * data/c.m4 (b4_yyloc_default_define): New. |
| * data/yacc.c: Use it when locations are requested. |
| (YYLVAL_INITIALIZE): Replace by... |
| (YY_INITIAL_VALUE): this. |
| (yyparse): Initialize yylloc and yylval. |
| Therefore, remove the initialization of yylloc's field. |
| * data/glr.c: Likewise. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| graphs: fix spacing refactoring |
| * src/print_graph.c (print_lhs, print_core): Here. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| tests: make deprecation tests more specific |
| * tests/input.at (Deprecated directives): Here, don't generate unrelated errors |
| or warnings. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| tests: fix AT_BISON_CHECK_WARNINGS_ stderr rewriting |
| * tests/input.at (Deprecated directives): Avoid spurious error. |
| * tests/locat.at (AT_BISON_CHECK_WARNINGS): Adjust for recent changes. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| scan-skel.l: consider m4 notes as related to "complaint" errors |
| * src/scan-skel.l (flag): Here. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| warnings: distinguish context information based on warning type |
| * src/scan-code.l (show_sub_message, show_sub_messages): Take a new warnings |
| argument. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| warnings: fix early exit of warnings treated as errors |
| Treating warnings as errors caused Bison to exit earlier than needed, making it |
| hide warnings that would have been printed had -Werror not been set. |
| |
| Also, fix a bug that caused some context information of errors to not be |
| shown. |
| |
| * src/complain.c (complaint_issued): Rename as... |
| (complaint_status): This, and change its type from boolean to |
| * src/complain.h (err_status): This, new enumeration. |
| * src/main.c (main): Adjust (only finish early if an actual complaint was |
| risen, not a mere warning treated an error). |
| * src/reader.c: Adjust. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| tests: reindent for legibility |
| * tests/local.at (AT_BISON_CHECK_WARNINGS_): Here. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| build: fix Texinfo compilation |
| * doc/local.mk: fix dependencies. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: (46 commits) |
| doc: minor style change |
| maint: use gendocs's new -I option |
| regen |
| yacc.c: do not define location support when not using locations |
| maint: be compilable with GCC 4.0 |
| tests: address a warning from GCC 4.4 |
| tests: don't use options that Clang does not support |
| tests: restore the tests on -Werror |
| regen |
| parse-gram: update the Bison interface |
| fix comment |
| maint: post-release administrivia |
| version 2.6.4 |
| regen |
| 2.6.4: botched 2.6.3 |
| maint: post-release administrivia |
| version 2.6.3 |
| gnulib: update |
| tests: check %no-lines |
| NEWS: warnings with clang |
| ... |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| Merge branch 'branch-2.6' into maint |
| * origin/branch-2.6: |
| regen |
| yacc.c: do not define location support when not using locations |
| maint: be compilable with GCC 4.0 |
| tests: address a warning from GCC 4.4 |
| tests: don't use options that Clang does not support |
| tests: restore the tests on -Werror |
| regen |
| parse-gram: update the Bison interface |
| fix comment |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| doc: minor style change |
| * doc/figs/example-reduce.txt: here. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| maint: use gendocs's new -I option |
| * gnulib: Update gendocs. |
| * cfg.mk (gendocs_options_): New. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| yacc.c: don't use _Pragma GCC diagnostic with 4.6 |
| Reported by Peter Simons. |
| http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00033.html |
| |
| * data/yacc.c (b4_declare_scanner_communication_variables): 4.7 |
| seems fine though. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| yacc.c: do not define location support when not using locations |
| * data/yacc.c (YYLLOC_DEFAULT, YYRHSLOC): Don't define when not |
| using locations. |
| |
| 2012-10-26 Akim Demaille <[email protected]> |
| |
| maint: be compilable with GCC 4.0 |
| The "shadows a global declaration" warning in GCC 4.0 was a bit |
| annoying. It does not like that a type name be used in a prototype of |
| a function (not the implementation, just the declaration): |
| |
| In file included from src/LR0.c:38: |
| src/reader.h:56: warning: declaration of 'named_ref' shadows a |
| global declaration |
| src/named-ref.h:35: warning: shadowed declaration is here |
| |
| It does not like either when a global variable name is used in a |
| prototype. Flex 2.5.37 generates this prototype: |
| |
| void gram_set_debug (int debug_flag ); |
| |
| * src/getargs.h, src/getargs.c (debug_flag): Rename as... |
| (debug): this. |
| Adjust dependencies. |
| * src/reader.h: Don't use "named_ref" as a formal argument name. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| misc: document TESTSUITEFLAGS in README-hacking |
| * README-hacking: Document -j and -k flags. |
| |
| 2012-10-26 Theophile Ranquet <[email protected]> |
| |
| deprecation: add tests |
| * tests/input.at (Deprecated directives warn, Non-deprecated |
| directives don't, Unput doesn't mess up locations): New tests. |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| tests: address a warning from GCC 4.4 |
| 236. torture.at:465: testing Exploding the Stack Size with Alloca ... |
| ../../../tests/torture.at:474: bison -o input.c input.y |
| ../../../tests/torture.at:474: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o input input.c $LIBS |
| stderr: |
| cc1: warnings being treated as errors |
| input.y: In function 'main': |
| input.y:60: error: 'status' may be used uninitialized in this function |
| |
| * tests/torture.at (AT_DATA_STACK_TORTURE): Initial status to avoid |
| the previous error. |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| tests: don't use options that Clang does not support |
| * configure.ac (WARN_CFLAGS, WARN_CXXFLAGS): Do not include options |
| that Clang does not support. |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| tests: restore the tests on -Werror |
| When run as /bin/sh, Bash sets the shell variable POSIXLY_CORRECT to |
| y. The test suite checks for the envvar POSIXLY_CORRECT to turn of |
| some tests not supported in POSIX mode. Restore these tests. |
| |
| Reported by the Hydra build farm, from Rob Vermaas. |
| |
| * tests/local.at (AT_BISON_CHECK_WARNINGS_): Check the envvar |
| POSIXLY_CORRECT, not the shell variable. |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| parse-gram: update the Bison interface |
| * src/parse-gram.y (%pure-parser, %name-prefix): Replace with... |
| (%define api.pure, %define api.prefix) |
| * src/location.h, src/scan-gram.h: Adjust to api.prefix. |
| |
| 2012-10-25 Akim Demaille <[email protected]> |
| |
| fix comment |
| * data/c.m4 (b4_YYDEBUG_define): here. |
| |
| 2012-10-24 Theophile Ranquet <[email protected]> |
| |
| regen |
| |
| 2012-10-24 Theophile Ranquet <[email protected]> |
| |
| deprecation: issue warnings in scanner |
| * src/parse-gram.y: Move the handling of (three) deprecated constructs ... |
| * src/scan-gram.l: ...Here, and issue warnings. |
| (DEPRECATED): New. |
| |
| 2012-10-23 Akim Demaille <[email protected]> |
| |
| Merge branch 'branch-2.6' into maint |
| * origin/branch-2.6: |
| maint: post-release administrivia |
| version 2.6.4 |
| regen |
| 2.6.4: botched 2.6.3 |
| |
| 2012-10-23 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-10-23 Akim Demaille <[email protected]> |
| |
| version 2.6.4 |
| * NEWS: Record release date. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| 2.6.4: botched 2.6.3 |
| * NEWS: here. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| Merge branch '2.6.3' into maint |
| * 2.6.3: (22 commits) |
| maint: post-release administrivia |
| version 2.6.3 |
| gnulib: update |
| tests: check %no-lines |
| NEWS: warnings with clang |
| warnings: avoid warnings from clang |
| tests: no longer disable -O compiler options |
| yacc.c: initialize yylval in pure-parser mode |
| skeletons: style changes |
| tests: minor improvements |
| tests: use $PERL instead of perl |
| build: look for Perl in configure. |
| tests: fix sed portability issues |
| tests: diff -u is not portable |
| maint: word changes |
| lalr1.cc: fix test suite portability |
| maint: fix an erroneous include |
| tests: check that headers are self contained |
| doc: add missing documentation for --report |
| headers: move CPP guards into YY_*_INCLUDED to avoid collisions |
| ... |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| version 2.6.3 |
| * NEWS: Record release date. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: check %no-lines |
| * tests/synclines.at: here. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| NEWS: warnings with clang |
| * NEWS: here. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| warnings: avoid warnings from clang |
| Fix the following warning |
| |
| parse-gram.c:2078:14: error: equality comparison with extraneous parentheses |
| [-Werror,-Wparentheses-equality] |
| if (((yyn) == (-91))) |
| ~~~~~~^~~~~~~~ |
| parse-gram.c:2078:14: note: remove extraneous parentheses around the |
| comparison to silence this warning |
| if (((yyn) == (-91))) |
| ~ ^ ~ |
| parse-gram.c:2078:14: note: use '=' to turn this equality comparison into |
| an assignment |
| if (((yyn) == (-91))) |
| ^~ |
| = |
| 1 error generated. |
| |
| and the following one: |
| |
| input.cc:740:1: error: function declared 'noreturn' should not return |
| [-Werror,-Winvalid-noreturn] |
| static void yyMemoryExhausted (yyGLRStack* yystackp) |
| __attribute__ ((__noreturn__)); |
| static void |
| yyMemoryExhausted (yyGLRStack* yystackp) |
| { |
| YYLONGJMP (yystackp->yyexception_buffer, 2); |
| } |
| ^ |
| 1 warning and 1 error generated. |
| |
| This is Apple clang version 3.1 (tags/Apple/clang-318.0.61). |
| |
| * data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B) |
| to avoid this warning. |
| Any reasonable compiler should generate the same code. |
| * src/uniqstr.h (UNIQSTR_EQ): Likewise. |
| * data/glr.c (LONGJMP): abort after longjmp to pacify clang. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: no longer disable -O compiler options |
| Tests are running without -O since |
| f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about |
| yylval not being initialized) show only when GCC is given -O2. The |
| previous patch fixes the warnings. Run the test suite with compiler |
| options unmodified. |
| |
| * tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and |
| CXXFLAGS. |
| |
| 2012-10-22 Paul Eggert <[email protected]> |
| |
| yacc.c: initialize yylval in pure-parser mode |
| See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html |
| (spreading over September and October). |
| |
| * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN) |
| (YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE): |
| New macros. Use them to suppress an unwanted GCC diagnostic. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| skeletons: style changes |
| * data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: minor improvements |
| * tests/c++.at: Space changes. |
| Use AT_YYERROR_DEFINE. |
| * tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: use $PERL instead of perl |
| * tests/atlocal.in (PERL): New. |
| Sort. |
| * tests/calc.at, tests/input.at, tests/local.at, tests/regression.at, |
| * tests/skeletons.at, tests/synclines.at, tests/torture.at: here. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| build: look for Perl in configure. |
| Bison uses "/usr/bin/perl" or "perl" in several places, and it does |
| not appear to be a problem. But, at least to make it simpler to |
| change PERL on the make command line, check for perl in configure. |
| |
| * configure.ac (PERL): New. |
| * doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: fix sed portability issues |
| Reported by Didier Godefroy, |
| <http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00005.html>. |
| |
| * tests/calc.at (AT_CHECK_SPACES): Use Perl. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: diff -u is not portable |
| Reported by Didier Godefroy |
| <http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00006.html>. |
| |
| * tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not |
| work. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| maint: word changes |
| * README-hacking (Typical errors): Improve wording. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix test suite portability |
| Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with |
| G++ 4.6.3. |
| |
| * tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE |
| in the files to compile. |
| * data/location.cc: Do not include twice string and iostream (once |
| by position.hh, and then by location.hh). |
| * README-hacking (Typical errors): Some hints for other maintainers. |
| |
| 2012-10-22 Theophile Ranquet <[email protected]> |
| |
| maint: fix an erroneous include |
| This fixes test 130 (Several parsers). |
| |
| * data/location.cc: Include <iostream> rather than <iosfwd> since |
| we really need << on strings for instance. |
| * NEWS: Document this. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| tests: check that headers are self contained |
| Reported by Alexandre Duret-Lutz. |
| |
| * tests/headers.at (Several parsers): here. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| doc: add missing documentation for --report |
| * doc/bison.texi (Bison Options): Document --report's "solved", "all", |
| and "none". |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| headers: move CPP guards into YY_*_INCLUDED to avoid collisions |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00016.html>. |
| |
| * data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED. |
| * tests/headers.at: Adjust. |
| * NEWS, doc/bison.texi: Document. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| minor changes. |
| * NEWS: Word changes. |
| * doc/bison.texi: Spell check. |
| Fix minor issues. |
| * tests/headers.at: Comment and formatting changes. |
| |
| 2012-10-22 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-10-19 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-10-19 Akim Demaille <[email protected]> |
| |
| xml: slight improvement of the DOT output |
| This was completely forgotten... Nothing about XML is actually |
| documented... |
| |
| * data/xslt/xml2dot.xsl: Use boxes, and Courier font. |
| |
| 2012-10-19 Akim Demaille <[email protected]> |
| |
| maint: check for dot before using it |
| * configure.ac: here. |
| * doc/Makefile.am: Use $(DOT). |
| Ship the generated files, to spare the user the need for Graphviz. |
| |
| 2012-10-18 Theophile Ranquet <[email protected]> |
| |
| graphs: documentation |
| Note that 'make web-manual' fails. |
| |
| * NEWS: Document these changes. |
| * doc/Makefile.am: Adjust to generate example files. |
| * doc/bison.texi: Add a Graphviz section after "Understanding::", the section |
| describing the .output file, because these are similar. |
| * doc/figs/example-reduce.dot, doc/figs/example-reduce.txt, |
| doc/figs/example-shift.dot, doc/figs/example-shift.txt: New, minimal |
| examples to illustrate the documentation. |
| |
| 2012-10-18 Theophile Ranquet <[email protected]> |
| |
| graphs: add tests, introducing -k graph |
| * tests/output.at (AT_TEST): New. |
| Use it to add 6 --graph tests. |
| |
| 2012-10-18 Theophile Ranquet <[email protected]> |
| |
| graphs: change the output format of the rules |
| Use something similar to the report file. |
| |
| * src/print_graph.c (print_lhs): New, obstack equivalent of rule_lhs_print. |
| (print_core): Use here. |
| |
| 2012-10-18 Theophile Ranquet <[email protected]> |
| |
| graphs: style changes |
| * src/graphviz.c (start_graph): Use courier font. |
| (conclude_red): Use commas to separate attributes. Show the acceptation |
| as a special reduction, with a blue color and an "Acc" label. Show the |
| lookahead tokens between square brackets. |
| (output_red): No longer label default reductions. |
| * src/print_graph.c (print_core): Refactor spacing, and print an |
| additional space between a rule's rhs and its lookahead tokens. Also, |
| capitalize "State". |
| (print_actions): Style, move a declaration. |
| |
| 2012-10-18 Theophile Ranquet <[email protected]> |
| |
| graphs: address an issue with R/R conflicts |
| All disabled reductions should now be shown as such. |
| |
| * src/graphviz.c (output_red): Here. |
| (conclude_red): New. |
| |
| 2012-10-16 Akim Demaille <[email protected]> |
| |
| news: spell check |
| * NEWS: here. |
| |
| 2012-10-16 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| java: use api.location.type and api.position.type |
| |
| 2012-10-16 Akim Demaille <[email protected]> |
| |
| variables: use singular in %define variable names |
| See http://lists.gnu.org/archive/html/bison-patches/2012-02/msg00045.html |
| |
| * doc/bison.texi, src/lalr.c, src/main.c, src/muscle-tab.c, |
| * src/print.c, src/reader.c, src/tables.c, tests/conflicts.at, |
| * tests/input.at, tests/reduce.at: |
| s/lr.default-reductions/lr.default-reduction/ |
| s/lr.keep-unreachable-states/lr.keep-unreachable-state/. |
| * NEWS: Document. |
| |
| 2012-10-16 Akim Demaille <[email protected]> |
| |
| java: fixes |
| * data/java.m4: Remove stray M4 characters. |
| |
| 2012-10-16 Akim Demaille <[email protected]> |
| |
| api.tokens.prefix -> api.token.prefix |
| See |
| http://lists.gnu.org/archive/html/bison-patches/2012-02/msg00045.html |
| Note that api.tokens.prefix has not been released, yet. |
| |
| * NEWS, data/bison.m4, doc/bison.texi, tests/c++.at, |
| * tests/calc.at, tests/java.at, tests/local.at: Do it. |
| * src/muscle-tab.c (muscle_percent_variable_update): Ensure |
| backward compatibility. |
| |
| 2012-10-15 Theophile Ranquet <[email protected]> |
| |
| scan-skel.l: shift complain_args arguments |
| Because argv[0] is never used, shift it out from the argument list. |
| |
| * src/complain.c (complain_args): Here. |
| * src/scan-skel.l (at_complain): Adjust argv and argc. |
| |
| 2012-10-15 Theophile Ranquet <[email protected]> |
| |
| scan-skel.l: formatting changes |
| * src/scan-skel.l (fail_for_at_directive_too_few_args): Here. |
| |
| 2012-10-12 Akim Demaille <[email protected]> |
| |
| java: use api.location.type and api.position.type |
| * data/java.m4: here. |
| * NEWS, doc/bison.texi, tests/java.at: Adjust. |
| |
| 2012-10-12 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| tests: check %no-lines |
| tests: minor simplification |
| graphs: stylistic changes. |
| graphs: minor style changes |
| graphs: show reductions |
| graphs: style: prefix state number with "state" |
| graphs: style: use left justification for states |
| graphs: style: prefix rules and change shapes |
| obstack: import obstack_finish0 from master |
| c++: api.location.type |
| muscles: a function for backward compatibility |
| maint: more macros |
| |
| 2012-10-12 Akim Demaille <[email protected]> |
| |
| tests: check %no-lines |
| * tests/synclines.at: here. |
| |
| 2012-10-12 Akim Demaille <[email protected]> |
| |
| tests: minor simplification |
| * tests/headers.at (Several parsers): Use *.y even for C++. |
| |
| 2012-10-11 Akim Demaille <[email protected]> |
| |
| graphs: stylistic changes. |
| * src/graphviz.c (output_red): Comment and formatting changes. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| graphs: minor style changes |
| * src/graphviz.c (output_red): Fix C90 issues. |
| Reduce variable scopes. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| graphs: show reductions |
| * src/graphviz.c (output_red): New, show reductions on the graph. |
| (no_reduce_bitset_init): New, initialize a bitset. |
| (print_token): New, print a lookahead token. |
| (escape): New, print "foo" as \"foo\" because Dot doesn't like quotes within |
| a label. |
| |
| * src/graphviz.h : Adjust. |
| * src/print_graph.c (print_actions): Call output_red here. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| graphs: style: prefix state number with "state" |
| * src/print_graph.c (print_core): Here. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| graphs: style: use left justification for states |
| The label text of nodes is centered "by default" (by the use of '\n' as |
| a line feed). This gives bad readability to the grammar rules shown in |
| state nodes, a left justification is much nicer. This is done by using '\l' |
| as the line feed. |
| |
| In order to allow \l in the DOT file, changes to the quoting system seem |
| necessary. |
| |
| * src/print_graph.c (print_core): Escape tokens here, instead of... |
| * src/graphviz.c (output_node): Here... |
| (escape): Using this, new. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| graphs: style: prefix rules and change shapes |
| * src/graphviz.c (start_graph): Use box rather than ellipsis. |
| * src/print_graph.c (print_core): Prefix rules with their number. |
| |
| 2012-10-11 Theophile Ranquet <[email protected]> |
| |
| obstack: import obstack_finish0 from master |
| * src/system.h (obstack_finish0): New. |
| |
| 2012-10-11 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| NEWS: warnings with clang |
| warnings: avoid warnings from clang |
| tests: no longer disable -O compiler options |
| yacc.c: initialize yylval in pure-parser mode |
| skeletons: style changes |
| lalr1.cc: document exception safety |
| lalr1.cc: check exception safety of error handling |
| lalr1.cc: check (and fix) %printer exception safety |
| lalr1.cc: check (and fix) %initial-action exception safety |
| lalr1.cc: fix exception safety |
| lalr1.cc: check exception safety. |
| lalr1.cc: indentation fixes. |
| lalr1.cc: don't leave macros define to nothing |
| tests: minor improvements |
| tests: use $PERL instead of perl |
| build: look for Perl in configure. |
| tests: fix sed portability issues |
| tests: diff -u is not portable |
| |
| 2012-10-09 Akim Demaille <[email protected]> |
| |
| c++: api.location.type |
| This feature was introduced in 95a2de5695670ae0df98cb3c42141cad549f0204 |
| (which is part of 2.5), but not documented. Give it a proper name, and |
| make it public. |
| |
| * data/c++.m4, data/lalr1.cc, data/glr.cc, data/java.m4: Use |
| api.location.type instead of location_type. |
| * src/muscle-tab.c (muscle_percent_variable_update): Map the latter to |
| the former. |
| * tests/local.at: Adjust. |
| * tests/calc.at: Use api.location.type. |
| Leave tests/java.at with location_type, at least for the time being, |
| to cover both names. |
| * doc/bison.texi: Document api.location.type. |
| (User Defined Location Type): New. |
| * NEWS: Update. |
| |
| 2012-10-09 Akim Demaille <[email protected]> |
| |
| muscles: a function for backward compatibility |
| Based on commit 171ad99d6421935a278656be6dc7161591835d00 from master. |
| |
| * src/muscle-tab.c (muscle_percent_variable_update): New. |
| (muscle_percent_define_insert): Use it. |
| Define the variables with their initial value. |
| |
| 2012-10-09 Akim Demaille <[email protected]> |
| |
| maint: more macros |
| * src/output.c (ARRAY_CARDINALITY): Move to... |
| * src/system.h: here. |
| (STREQ, STRNEQ): new. |
| |
| 2012-10-08 Akim Demaille <[email protected]> |
| |
| NEWS: warnings with clang |
| * NEWS: here. |
| |
| 2012-10-08 Akim Demaille <[email protected]> |
| |
| warnings: avoid warnings from clang |
| Fix the following warning |
| |
| parse-gram.c:2078:14: error: equality comparison with extraneous parentheses |
| [-Werror,-Wparentheses-equality] |
| if (((yyn) == (-91))) |
| ~~~~~~^~~~~~~~ |
| parse-gram.c:2078:14: note: remove extraneous parentheses around the |
| comparison to silence this warning |
| if (((yyn) == (-91))) |
| ~ ^ ~ |
| parse-gram.c:2078:14: note: use '=' to turn this equality comparison into |
| an assignment |
| if (((yyn) == (-91))) |
| ^~ |
| = |
| 1 error generated. |
| |
| and the following one: |
| |
| input.cc:740:1: error: function declared 'noreturn' should not return |
| [-Werror,-Winvalid-noreturn] |
| static void yyMemoryExhausted (yyGLRStack* yystackp) |
| __attribute__ ((__noreturn__)); |
| static void |
| yyMemoryExhausted (yyGLRStack* yystackp) |
| { |
| YYLONGJMP (yystackp->yyexception_buffer, 2); |
| } |
| ^ |
| 1 warning and 1 error generated. |
| |
| This is Apple clang version 3.1 (tags/Apple/clang-318.0.61). |
| |
| * data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B) |
| to avoid this warning. |
| Any reasonable compiler should generate the same code. |
| * src/uniqstr.h (UNIQSTR_EQ): Likewise. |
| * data/glr.c (LONGJMP): abort after longjmp to pacify clang. |
| |
| 2012-10-08 Akim Demaille <[email protected]> |
| |
| tests: no longer disable -O compiler options |
| Tests are running without -O since |
| f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about |
| yylval not being initialized) show only when GCC is given -O2. The |
| previous patch fixes the warnings. Run the test suite with compiler |
| options unmodified. |
| |
| * tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and |
| CXXFLAGS. |
| |
| 2012-10-08 Paul Eggert <[email protected]> |
| |
| yacc.c: initialize yylval in pure-parser mode |
| See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html |
| (spreading over September and October). |
| |
| * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN) |
| (YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE): |
| New macros. Use them to suppress an unwanted GCC diagnostic. |
| |
| 2012-10-08 Akim Demaille <[email protected]> |
| |
| skeletons: style changes |
| * data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: document exception safety |
| * NEWS: here. |
| * doc/bison.texi (Destructor Decl, C++ Parser Interface): and there. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: check exception safety of error handling |
| * tests/c++.at (Exception safety): Don't use swap here, it |
| is useless. |
| Cover more test cases: yyerror, YYERROR, YYABORT, and |
| error recovery. |
| (Object): Instead of just keeping a counter of instances, keep |
| a list of them. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: check (and fix) %printer exception safety |
| * tests/c++.at (Exception safety): Let the parser support the --debug |
| option. |
| On 'p', throw an exception from the %printer. |
| * data/lalr1.cc (yyparse): Do not display the values we discard, as it |
| uses %printer, which might have thrown the exception. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: check (and fix) %initial-action exception safety |
| * data/lalr1.cc: Check size > 1, rather than size != 1, when cleaning |
| the stack, as at the beginning, size is 0. |
| * tests/c++.at (Exception safety): Check exception safety in |
| %initial-action. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix exception safety |
| lalr1.cc does not reclaim its memory when ended by an exception. |
| |
| Reported by Oleksii Taran: |
| http://lists.gnu.org/archive/html/help-bison/2012-09/msg00000.html |
| |
| * data/lalr1.cc (yyparse): Protect the whole yyparse by a try-catch |
| block that cleans the stack and the lookahead. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: check exception safety. |
| * tests/c++.at (Exception safety): New. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: indentation fixes. |
| * data/lalr1.cc (yyparse): here. |
| Untabify a block of code. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| lalr1.cc: don't leave macros define to nothing |
| * data/lalr1.cc (YY_SYMBOL_PRINT, YY_REDUCE_PRINT, YY_STACK_PRINT): |
| Define to something so that, for instance, "if (foo) YY_SYMBOL_PRINT" |
| is valid even when !YYDEBUG. |
| |
| 2012-10-06 Akim Demaille <[email protected]> |
| |
| tests: minor improvements |
| * tests/c++.at: Space changes. |
| Use AT_YYERROR_DEFINE. |
| * tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages. |
| |
| 2012-10-05 Akim Demaille <[email protected]> |
| |
| tests: use $PERL instead of perl |
| * tests/atlocal.in (PERL): New. |
| Sort. |
| * tests/calc.at, tests/input.at, tests/local.at, tests/regression.at, |
| * tests/skeletons.at, tests/synclines.at, tests/torture.at: here. |
| |
| 2012-10-05 Akim Demaille <[email protected]> |
| |
| build: look for Perl in configure. |
| Bison uses "/usr/bin/perl" or "perl" in several places, and it does |
| not appear to be a problem. But, at least to make it simpler to |
| change PERL on the make command line, check for perl in configure. |
| |
| * configure.ac (PERL): New. |
| * doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it. |
| |
| 2012-10-05 Akim Demaille <[email protected]> |
| |
| tests: fix sed portability issues |
| Reported by Didier Godefroy, |
| <http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00005.html>. |
| |
| * tests/calc.at (AT_CHECK_SPACES): Use Perl. |
| |
| 2012-10-05 Akim Demaille <[email protected]> |
| |
| tests: diff -u is not portable |
| Reported by Didier Godefroy |
| <http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00006.html>. |
| |
| * tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not |
| work. |
| |
| 2012-10-04 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| maint: word changes |
| lalr1.cc: fix test suite portability |
| maint: fix an erroneous include |
| tests: check that headers are self contained |
| doc: add missing documentation for --report |
| |
| 2012-10-04 Akim Demaille <[email protected]> |
| |
| scan-skel: use the scanner to reject all invalid directives |
| * src/scan-skel.l: Use a simpler and more consistent pattern escaping |
| scheme. |
| Catch all the invalid directives here by just removing the previous |
| catch-all-but-alphabetical rule. |
| |
| 2012-10-04 Theophile Ranquet <[email protected]> |
| |
| scan-skel: recognize the @directives directly in scanner |
| * src/scan-skel.l (at_directive, at_init): New. |
| (at_ptr): New, function pointer used to call the right at_directive |
| function (at_basename, etc.). |
| (outname): Rename as... |
| (out_name): this, for consistency with out_lineno. |
| |
| 2012-10-04 Theophile Ranquet <[email protected]> |
| |
| scan-skel: split @directive functions |
| * src/scan-skel.l (at_directive_perform): Split as... |
| (at_basename, at_complain, at_output): these. |
| |
| 2012-10-04 Theophile Ranquet <[email protected]> |
| |
| errors: support indented context info in m4 macros |
| * TODO: Address the issue, so remove it. |
| * data/bison.m4: Use b4_error with [[note]] rather than a complain_at |
| for context information. |
| * src/complain.c (complain_args): Take an additional argument, an |
| indentation pointer, to allow the dispatching of context information. |
| * src/complain.h (complain_args): Adjust prototype. |
| * src/scan-skel.l (at_directive_perform): Recognize the new @note mark. |
| * tests/input.at: Adjust. |
| |
| 2012-10-04 Theophile Ranquet <[email protected]> |
| |
| errors: factor b4_error @directives |
| Instead of @complain, @warn, and @fatal, use a unique @complain |
| directive. This directive's first argument is "complain", "warn", etc. |
| |
| * data/bison.m4 (m4_error): Here. |
| * src/scan-skel.l (at_directive_perform): Adjust. |
| (flag): Replace the switch by safer and more explicit if branches. |
| |
| 2012-10-04 Theophile Ranquet <[email protected]> |
| |
| errors: pointerize complain_at_indent |
| * src/complain.c (complain_at_indent): Rename as... |
| (complaint_indent): This, and take the location as a pointer. |
| * src/complain.h, src/muscle-tab.c, src/reader.c, src/scan-code.l, |
| src/symtab.c: Adjust. |
| |
| 2012-10-04 Akim Demaille <[email protected]> |
| |
| maint: word changes |
| * README-hacking (Typical errors): Improve wording. |
| |
| 2012-10-04 Akim Demaille <[email protected]> |
| |
| lalr1.cc: fix test suite portability |
| Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with |
| G++ 4.6.3. |
| |
| * tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE |
| in the files to compile. |
| * data/location.cc: Do not include twice string and iostream (once |
| by position.hh, and then by location.hh). |
| * README-hacking (Typical errors): Some hints for other maintainers. |
| |
| 2012-10-03 Theophile Ranquet <[email protected]> |
| |
| maint: fix an erroneous include |
| This fixes test 130 (Several parsers). |
| |
| * data/location.cc: Include <iostream> rather than <iosfwd> since |
| we really need << on strings for instance. |
| * NEWS: Document this. |
| |
| 2012-10-03 Akim Demaille <[email protected]> |
| |
| tests: check that headers are self contained |
| Reported by Alexandre Duret-Lutz. |
| |
| * tests/headers.at (Several parsers): here. |
| |
| 2012-10-03 Akim Demaille <[email protected]> |
| |
| doc: add missing documentation for --report |
| * doc/bison.texi (Bison Options): Document --report's "solved", "all", |
| and "none". |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| build: use gnulib's non-recursive-gnulib-prefix-hack |
| Suggested by Jim Meyering. |
| |
| * etc/prefix-gnulib-mk: Remove, as it is now provided by... |
| * bootstrap.conf (modules): the non-recursive-gnulib-prefix-hack module. |
| * build-aux/.gitignore, configure.ac, m4/.gitignore: Adjust. |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| warnings: simplify the m4 interface |
| * data/bison.m4 (error_at): Replace... |
| (error): this. |
| (b4_warn, b4_complain, b4_fatal): Bounce to their _at equivalent, |
| with empty location. |
| * src/scan-skel.l (at_directive_perform): Simplify accordingly. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| warnings: separate flags_argmatch |
| This function is now a mere iterator that calls flag_argmatch, |
| a new function, that matches a single option parameter. |
| |
| * src/getargs.c (flag_argmatch): New, taken from... |
| (flags_argmatch): Here. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| warnings: refactoring |
| The code here was too confusing, this seems more natural. |
| |
| * src/complain.c (error_message): Move the indentation check and the category |
| output to complains. Also, no longer take a 'warnings' argument. |
| (complains): Factor calls to error_message. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| formatting changes |
| * src/complain.c: Here. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| warnings: organize variadic complaints call |
| Move the dispatch of variadic complains to complain.c, rather than do |
| it in a scanner. |
| |
| * src/complain.h, src/complain.c (complain_args): New. |
| * src/scan-skel.l (at_directive_perform): Use it. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| warnings: fusion of complain and complain_at |
| These functions are very similar, and keeping them seperate makes |
| future improvements difficult, so merge them. |
| |
| This impacts 89 calls. |
| |
| * src/bootstrap.conf: Adjust. |
| * src/complain.c (complain, complain_at): Merge into... |
| (complain): this. |
| (complain_args): Adjust. |
| * src/complain.h, src/conflicts.c, src/files.c, src/getargs.c, |
| * src/gram.c, src/location.c, src/muscle-tab.c, src/parse-gram.y, |
| * src/reader.c, src/reduce.c, src/scan-code.l, src/scan-gram.l, |
| * src/scan-skel.l, src/symlist.c, src/symtab.c: |
| Adjust. |
| |
| 2012-10-01 Theophile Ranquet <[email protected]> |
| |
| warnings: remove spurious suffixes on context |
| Rectify a bug that introduced suffixes out of place. |
| |
| * src/complainc.c (complains): Handle all three special warning bits. |
| * src/scan-code.l (show_sub_message): Remove useless argument. |
| * tests/named-refs.at: Adjust. |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| headers: move CPP guards into YY_*_INCLUDED to avoid collisions |
| minor changes. |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| gnulib: update |
| errors: indent "user token number redeclaration" context |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| headers: move CPP guards into YY_*_INCLUDED to avoid collisions |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00016.html>. |
| |
| * data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED. |
| * tests/headers.at: Adjust. |
| * NEWS, doc/bison.texi: Document. |
| |
| 2012-10-01 Akim Demaille <[email protected]> |
| |
| minor changes. |
| * NEWS: Word changes. |
| * doc/bison.texi: Spell check. |
| Fix minor issues. |
| * tests/headers.at: Comment and formatting changes. |
| |
| 2012-09-28 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-09-28 Theophile Ranquet <[email protected]> |
| |
| errors: indent "user token number redeclaration" context |
| This is the continuation of the work on the readability of errors |
| context. |
| |
| * src/symtab.c (user_token_number_redeclaration): Use |
| complain_at_indent to output with increased indentation level. |
| * tests/input:at: Apply this change. |
| |
| 2012-09-27 Theophile Ranquet <[email protected]> |
| |
| errors: don't display "warnings treated as errors" |
| This line doesn't add any meaningful information anymore, the appended |
| [-Werror=CATEGORY] is enough. It is actually more insightful, as it |
| allows to distinguish warnings treated as errors from those that |
| aren't. This line is also removed by gcc 4.8. |
| |
| * src/complain.c (set_warnings_issued): The only action left was |
| checking if the error bit corresponding to the warning issued was set, |
| and that function was only called once. Therefore, remove it, and do |
| its job directly in the caller... |
| (complains): here. |
| * src/complains.h: Adjust. |
| * tests/input.at: Adjust. |
| * NEWS: Document this change. |
| |
| 2012-09-27 Akim Demaille <[email protected]> |
| |
| errors: change output, and improve -y coherence |
| The prefix of warnings treated as errors is now "error: ". Also, their |
| suffix now reflects the changes in the Werror option format. |
| |
| An output for -Werror=other used to be: |
| bison: warnings being treated as errors |
| input.y:1.1: warning: stray ',' treated as white space [-Wother] |
| |
| It is now: |
| bison: warnings being treated as errors |
| input.y:1.1: error: stray ',' treated as white space [-Werror=other] |
| |
| The line "warnings being treated as errors" no longer adds any info, |
| it will be removed in a forthcoming change. |
| |
| * NEWS: Add entry "Enhancement of the -Werror" |
| * doc/bison.texi: Move the warnings-as-error to a new bullet. |
| * src/complain.c (complains): Refactor, change the prefix of warnings |
| that are treated as errors. |
| (warnings_print_categories): Support for [-Werror=CATEGORY] display |
| * src/getargc.c (getargs): -y implies -Werror=yacc |
| * tests/input.at: Update expected --yacc output for coherence. |
| |
| 2012-09-27 Theophile Ranquet <[email protected]> |
| |
| errors: introduce the -Werror=CATEGORY option |
| This new option is a lot more flexible than the previous one. Its |
| details will be discussed in the NEWS and info file, in a forthcoming |
| change. |
| |
| If no category is specified (ie: used as simply "-Werror"), the |
| functionality is the same as before. |
| |
| * src/complain.c (errors_flag): New variable. |
| (set_warning_issued): Accept warning categories as an argument. |
| * src/complain.h (Wall): Better definition. |
| * src/getargs.c (flags_argmatch): Support for the new format. |
| (usage): Update -Werror to -Werror[=CATEGORY] format. |
| |
| * src/complain.c (errors_flag): New variable. |
| (set_warning_issued): Accept warning categories as an argument. |
| * src/complain.h (Wall): Better definition. |
| * src/getargs.c (flags_argmatch): Support for the new format. |
| (usage): Update -Werror to -Werror=[CATEGORY] format. |
| |
| 2012-09-26 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * maint: |
| warnings: introduce -Wdeprecated in the usage info |
| errors: prefix the output with "error: " |
| errors: indent "invalid value for %define" context |
| errors: indent "%define var" redefinition context |
| errors: indent "symbol redeclaration" context |
| errors: indent "result type clash" error context |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| warnings: introduce -Wdeprecated in the usage info |
| The deprecated warning, introduced some time ago, was not displayed in |
| the usage message. This patch addresses the issue. |
| |
| * src/getargs.c (usage): Insert here. |
| |
| 2012-09-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-09-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| regen |
| yacc: fix handling of CPP guards when no header is generated |
| gnulib: update |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| errors: prefix the output with "error: " |
| This improves readability. This is also what gcc does. |
| |
| * NEWS: Document this change. |
| * src/complain.c (complain_at): Prefix all errors with "error: ". |
| (complain_at_indent, warn_at_indent): Do not prefix the context |
| information of errors, which are basically just indented errors. |
| * tests/conflicts.at, tests/glr-regression.at, tests/input.at, |
| tests/named-refs.at, tests/output.at, tests/push.at, |
| tests/regression.at, tests/skeletons.at: Apply this change. |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| errors: indent "invalid value for %define" context |
| This is the continuation of the work on the readability of errors |
| context. |
| |
| For example, what used to be: |
| input.y:1.9-29: invalid value for %define variable 'foo' : 'bar' |
| input.y:1.9-29: accepted value: 'most' |
| |
| is now: |
| input.y:1.9-29: invalid value for %define variable 'foo' : 'bar' |
| input.y:1.9-29: accepted value: 'most' |
| |
| * src/muscle-tab.c (muscle_percent_define_check_values): Use |
| complain_at_indent to output with increased indentation level. |
| * tests/input:at: Apply this change. |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| errors: indent "%define var" redefinition context |
| This is the continuation of the work on the readability of errors |
| context. |
| |
| For example, what used to be: |
| input.y:2.9-11: %define variable 'var' redefined |
| input.y:1.9-11: previous definition |
| |
| is now: |
| input.y:2.9-11: %define variable 'var' redefined |
| input.y:1.9-11: previous definition |
| |
| * src/muscle-tab.c (muscle_percent_define_insert): Use |
| complain_at_indent to output with increased indentation level. |
| * tests/input.at: Apply this change. |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| errors: indent "symbol redeclaration" context |
| This is the continuation of the work on the readability of errors |
| context. |
| |
| For example, what used to be: |
| input.y:5.10-24: %printer redeclaration for <field2> |
| input.y:3.11-25: previous declaration |
| |
| is now: |
| input.y:5.10-24: %printer redeclaration for <field2> |
| input.y:3.11-25: previous declaration |
| |
| * NEWS: Document this change. |
| * src/symtab.c (symbol_redeclaration, semantic_type_redeclaration, |
| user_token_number_redeclaration, default_tagged_destructor_set, |
| default_tagless_destructor_set, default_tagged_printer_set, |
| default_tagless_printer_set): Use complain_at_indent to |
| output with increased indentation level. |
| * tests/input.at: Apply this change. |
| |
| 2012-09-26 Theophile Ranquet <[email protected]> |
| |
| errors: indent "result type clash" error context |
| This used to be the format of the error report: |
| |
| input.y:6.5-10: result type clash on merge function 'merge': [...] |
| input.y:2.4-9: previous declaration |
| |
| In order to distinguish the actual error from the context provided, we |
| rather this new output: |
| |
| input.y:6.5-10: result type clash on merge function 'merge': [...] |
| input.y:2.4-9: previous declaration |
| |
| Another patch will introduce an "error: " prefix to all non-indented |
| lines, giving yet better readability to the reports. |
| |
| * src/complain.h (SUB_INDENT): Move to here. |
| * src/reader.c (record_merge_function_type): Use complain_at_indent to |
| output with increased indentation level. |
| * src/scan-code.l (SUB_INDENT): Remove from here. |
| * tests/glr-regression.at: Apply this change. |
| |
| 2012-09-25 Akim Demaille <[email protected]> |
| |
| warnings: use the regular interface for s/r and r/r conflicts |
| The current routines used to display s/r and r/r conflicts are both |
| inconvenient from the programmer point of view (they do not use the |
| warning infrastructure) and for the user (the messages are rather |
| terse, not necessarily pleasant to read, and because they don't use |
| the same routines, they look different). |
| |
| It was due to the belief (dating back to the initial checked-in |
| version of Bison) that, at some point, POSIX Yacc mandated the format |
| for these messages. Today, the Open Group's manual page for Yacc, |
| <http://pubs.opengroup.org/onlinepubs/009695399/utilities/yacc.html>, |
| explicitly states that the format of these messages is unspecified. |
| See commit be7280480c175bed203883f524c7dcd6cf37c13d and |
| <http://lists.gnu.org/archive/html/bison-patches/2002-12/msg00027.html>. |
| |
| For a discussion on the chosen warning format, see |
| http://lists.gnu.org/archive/html/bison-patches/2012-09/msg00039.html |
| |
| In an effort to factor the handling of errors and warnings, use the |
| Bison warning routines to report these messages. |
| |
| * src/conflicts.c (conflicts_print): Rewrite with clearer sections |
| about S/R and then R/R conflicts. |
| (conflict_report): Remove, inlined in its sole |
| caller... |
| (conflicts_output): here. |
| * tests/conflicts.at, tests/existing.at, tests/glr-regression.at, |
| * tests/reduce.at, tests/regression.at: Adjust the expected results. |
| * NEWS: Update. |
| |
| 2012-09-25 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-09-25 Akim Demaille <[email protected]> |
| |
| yacc: fix handling of CPP guards when no header is generated |
| When no header was to be generated, Bison would issue: |
| |
| /* In a future release of Bison, this section will be replaced |
| by #include "". */ |
| #ifndef YY_ |
| # define YY_ |
| |
| It now properly generates nothing. |
| |
| * data/c.m4 (b4_cpp_guard_open, b4_cpp_guard_close): Issue nothing when |
| the file name is empty. |
| * data/yacc.c: Do not generate the above comment when there is no header |
| to generate. |
| * NEWS: Update. |
| |
| 2012-09-25 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| conflicts: refactor the counting routines |
| * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Rename as... |
| (count_sr_conflicts, count_rr_conflicts): these. |
| Use size_t for counts. |
| (count_sr_conflicts, count_rr_conflicts): New. |
| Use them. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| %expect-rr is for GLR only |
| * src/conflicts.c (conflicts_print): Complain about %expect-rr if not |
| in GLR mode, regardless of the number of reduce/reduce conflicts. |
| * tests/conflicts.at (%expect-rr non GLR): New test. |
| * NEWS: Update. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| TODO: lalr1.cc master vs maint |
| * TODO: here. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| c++: coding style fixes |
| * data/lalr1.cc, tests/c++.at: Formatting changes. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| Revert "introduced a GCC-like -Werror=type" |
| This reverts commit 981c53e257f1974854edc4f6ad0e88c7f18e2bea. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| Revert "made previous commit less hairy" |
| This reverts commit fd01e1d05ea3e627033d148b5400b99a18ac7ba3. |
| |
| 2012-09-21 Akim Demaille <[email protected]> |
| |
| Revert "new Werror report format fixed in a test" |
| This reverts commit 41511178a71ebaf81bde7ffc682c575537af45cb. |
| |
| 2012-09-21 Theophile Ranquet <[email protected]> |
| |
| new Werror report format fixed in a test |
| * tests/input.at : replaced [-Wyacc] with [-Werror=yacc] |
| |
| todo: fix the other failed test of the suite, tests/conflicts.at:1554 |
| |
| 2012-09-21 Theophile Ranquet <[email protected]> |
| |
| made previous commit less hairy |
| * src/getargs.c : here |
| |
| 2012-09-20 Theophile Ranquet <[email protected]> |
| |
| introduced a GCC-like -Werror=type |
| * src/complain.h : errors_flag variable |
| * src/complain.c : actual stuff happens here |
| * src/conflits.c : differentiated SR and RR conflicts |
| * src/getargs.c : flags_argmatch recognizes the new -Werror format |
| |
| 2012-09-04 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-09-04 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: remove useless file |
| update files to ignore |
| remove useless include |
| use locale-indep. c_is* functions for parsing, not isspace, isprint etc |
| gnulib: update |
| --help: include a place to report translation issues |
| tests: style changes |
| tests: fix push-pull test |
| yacc.c: style changes |
| |
| 2012-09-04 Akim Demaille <[email protected]> |
| |
| maint: remove useless file |
| * externals/bootstrap.cfg: Remove. |
| This file was used by a specific build system. |
| It was added to the master repository by accident. |
| |
| 2012-09-04 Akim Demaille <[email protected]> |
| |
| update files to ignore |
| * doc/.gitignore: Don't ignore split info files as we don't split our |
| info file. |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-08/msg00006.html>. |
| |
| 2012-09-04 Akim Demaille <[email protected]> |
| |
| remove useless include |
| * src/system.h: Don't include sys/types.h. |
| Reported by Eric Blake, |
| <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00002.html>. |
| (FUNCTION_PRINT): Remove, unused. |
| |
| 2012-09-03 Jim Meyering <[email protected]> |
| |
| use locale-indep. c_is* functions for parsing, not isspace, isprint etc |
| * src/parse-gram.y: Include "c-ctype.h". |
| (add_param): Parse with c_isspace, not isspace. |
| * src/parse-gram.c: Likewise. |
| * src/scan-gram.l: Include c-ctype.h, not ctype.h. |
| (SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER): Use c_isspace and c_isprint, |
| not ctype.h's locale-dependent functions. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| --help: include a place to report translation issues |
| http://lists.gnu.org/archive/html/bug-bison/2012-08/msg00007.html |
| shows that it is useful to help users report translation issues. |
| While at it, include other informative bits that the coreutils shows. |
| |
| * src/getargs.c (usage): Report more URLs where the user can |
| refer to. |
| Mostly copied/pasted from coreutils' emit_ancillary_info function. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| news: style changes |
| * NEWS: Minor improvements. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| use -Wdeprecated for obsolete %define variable names |
| * src/muscle-tab.c (muscle_percent_variable_update): Here. |
| * tests/input.at (%define backward compatibility): Update expectations. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| introduce -Wdeprecated |
| GCC seems to be using "deprecated" consistently over "obsoleted", so |
| use -Wdeprecated rather than -Wobsolete. |
| |
| * src/complain.h (warnings): Add Wdeprecated. |
| * src/complain.c (warnings_print_categories): Adjust. |
| * src/getargs.c: Likewise. |
| * doc/bison.texi: Document it. |
| |
| * src/scan-code.l: Use this category for the trailing ';' support. |
| * tests/actions.at: Adjust expected output. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| undefined but unused is a warning |
| * src/symtab.c (symbol_check_defined): Undeclared symbols are only |
| a warning. |
| * tests/input.at (Undeclared symbols used for a printer or destructor): |
| Rename as... |
| (Undefined symbols): this, and check this case. |
| * NEWS: Doc it. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| glr.cc: %defines is no longer mandatory |
| * data/glr.cc: No longer require %defines. |
| When it is not given, define the position and location classes instead |
| of including their headers. |
| (b4_shared_declarations): Use the original parse-params. |
| * data/glr.c (b4_shared_declarations): Define only if undefined. |
| * tests/actions.at, tests/calc.at: No longer force the use of %defines |
| for glr.cc. |
| * NEWS: Doc it. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| todo: check push parsers |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| style: remove useless C++ provisio |
| * src/complain.h: here. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| parser: style changes |
| * src/parse-gram.y: Avoid deprecated directives. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| doc: address a fixme |
| * doc/bison.texi (Calc++ Parser): Add a cross-reference. |
| |
| 2012-09-03 Akim Demaille <[email protected]> |
| |
| style changes |
| * data/glr.cc, tests/actions.at: Fix comments. |
| * src/symtab.h, src/symtab.c: Fix indentation/comments. |
| * src/symlist.c: Fix indentation. |
| |
| 2012-08-31 Akim Demaille <[email protected]> |
| |
| tests: style changes |
| * tests/torture.at (AT_DATA_STACK_TORTURE): M4 style changes to |
| improve readability. |
| Fix an assertion which, because of a <= instead of ==, did not check |
| new_status as visibly meant. |
| (get_args): New. |
| |
| 2012-08-31 Akim Demaille <[email protected]> |
| |
| tests: fix push-pull test |
| * tests/torture.at: %push-pull-parser is no longer supported. |
| |
| 2012-08-31 Akim Demaille <[email protected]> |
| |
| yacc.c: style changes |
| * data/yacc.c: (yytoken): Define with initial value. |
| |
| 2012-08-12 Akim Demaille <[email protected]> |
| |
| refactoring: define variables with a value |
| * src/muscle-tab.c: Where possible, fuse definition and initial assignment. |
| |
| 2012-08-12 Akim Demaille <[email protected]> |
| |
| minor refactoring: shorten variable names |
| * src/scan-skel.l (at_directive_argc, at_directive_argv) |
| (AT_DIRECTIVE_ARGC_MAX): Rename as... |
| (argc, argv, ARGC_MAX): these, as there is no possible confusion. |
| (flags): New. |
| (QPUTS): Remove, inline its only use. |
| |
| 2012-08-12 Akim Demaille <[email protected]> |
| |
| obstacks: simplifications |
| * src/system.h (obstack_finish0): New. |
| Use it to simplify several uses. |
| * src/muscle-tab.h (MUSCLE_INSERTF): New. |
| * src/muscle-tab.c: Use obstack_printf where simpler. |
| |
| 2012-08-12 Akim Demaille <[email protected]> |
| |
| minor refactoring in user code scanning |
| * src/scan-code.l (show_sub_message, show_sub_messages): Instead of a |
| Boolean, take a "warnings" argument. |
| Avoid storing printf-like format strings in a variable, so that GCC |
| can check them. |
| |
| 2012-08-12 Akim Demaille <[email protected]> |
| |
| minor refactoring in user code scanning |
| * src/scan-code.l (show_sub_message): New, extracted from... |
| (show_sub_messages): here. |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| tests: strengthen the trailing spaces check |
| * tests/calc.at: here. |
| * data/glr.c: Fix accordingly. |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * origin/maint: |
| maint: post-release administrivia |
| version 2.6.2 |
| NEWS: update. |
| yacc: remove trailing end of line at end of file |
| thanks: fix a contributor name |
| gnulib: update |
| tests: synch line -> syncline, for consistency |
| tests: synclines: style changes |
| tests: synclines: fix perl invocation |
| regen |
| c++: trailing end-of-lines in %parse-param |
| tests: simplify |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| remove support for lint |
| Basically revert commit 12ce2df60d16961eaa03a5aa009eeaa645e4e1cb. |
| http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00004.html |
| |
| * data/c.m4, data/glr.c, data/yacc.c (YYID): Remove. |
| No longer use ARGSUSED. |
| * src/getargs.c: Restore simpler inclusion of getopt.h (anyway, since |
| then we now use gnulib which certainly protects us from such issues). |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| skeletons: renamings after knr removal |
| * data/c.m4 (b4_yydestruct_generate, b4_yy_symbol_print_generate): |
| Rename as... |
| (b4_yydestruct_define, b4_yy_symbol_print_define): these, for consistency. |
| * data/glr.c, data/glr.cc, data/yacc.c: Adjust. |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-08-03 Akim Demaille <[email protected]> |
| |
| version 2.6.2 |
| * NEWS: Record release date. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| c++: fix a comment |
| * data/c++.m4: Be sure to attach a ';' to its declaration, otherwise |
| it appears in the preceding comment. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| skeletons: simplify after knr removal |
| * data/c.m4 (b4_yydestruct_generate, b4_yy_symbol_print_generate): |
| They no longer need an argument, it has a single possible value. |
| * data/glr.c, data/yacc.c: Adjust. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| skeletons: renamings after knr removal |
| * data/c.m4 (b4_c_comment_, b4_c_args, b4_c_function_def) |
| (b4_c_function_decl, b4_c_formals, b4_c_call, b4_c_arg): Rename as... |
| (b4_comment, b4_args, b4_function_define, b4_function_declare, |
| b4_formals, b4_function_call, b4_arg): these. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Adjust. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| skeletons: b4_args -> b4_join to prepare forthcoming changes |
| * data/bison.m4 (b4_args, _b4_args): Rename as... |
| (b4_join, _b4_join): these. |
| * data/c++.m4, data/lalr1.cc, data/variant.hh: Adjust. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| YYPARSE_PARAM: drop support |
| * data/yacc.c: No longer support it. |
| * doc/bison.texi, tests/headers.at: Adjust. |
| * NEWS: Document. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| skeletons: remove K&R C support |
| * data/c.m4 (b4_c_modern, b4_c_knr_formal_names, b4_c_knr_formal_decls) |
| (b4_c_knr_formal_decl, b4_c_formal_names, b4_c_formal_decls) |
| (b4_c_formal_decl): Remove. |
| (b4_c_ansi_formal_names, b4_c_ansi_formal_decls, b4_c_ansi_formal_decl): |
| Rename as... |
| (b4_c_formal_names, b4_c_formal_decls, b4_c_formal_decl): |
| these. |
| * data/glr.c, data/glr.cc, data/yacc.c: Adjust. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| NEWS: update. |
| * NEWS: Catch up with the other changes from 2.6.1. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| yacc: remove trailing end of line at end of file |
| There are still spurious spaces at the end of some lines. But this is |
| addressed in the master branch, and I am reluctant to try to backport |
| this. |
| |
| * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here. |
| * tests/calc.at (AT_CHECK_SPACES): New. |
| Use it. |
| Be sure not to introduce trailing empty lines in the *.y files. |
| * NEWS: Doc it. |
| * cfg.mk (syntax-check): Remove the exception. |
| |
| 2012-08-02 Akim Demaille <[email protected]> |
| |
| thanks: fix a contributor name |
| * THANKS: On his request. |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| tests: synch line -> syncline, for consistency |
| * tests/synclines.at: Do it, as "syncline" is used consistently |
| everywhere else in Bison. |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| tests: synclines: style changes |
| * tests/synclines.at (AT_TEST_SYNCLINE): Rename as... |
| (AT_TEST): this. |
| Use pushdef/popdef. |
| Formatting changes. |
| Use '+' instead of '*' where appropriate. |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| tests: synclines: fix perl invocation |
| Reported by Summum Bonum. |
| |
| * tests/synclines.at: Fix Perl invocation: its -f is not like sed's. |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| c++: trailing end-of-lines in %parse-param |
| * src/parse-gram.y (add_param): No only skip ' ' and '\t', skip all |
| leading and trailing spaces. |
| * tests/regression.at (Lex and parse params): Check it. |
| * NEWS: Document it. |
| |
| 2012-08-01 Akim Demaille <[email protected]> |
| |
| tests: simplify |
| * tests/regression.at: Remove useless compilations: AT_FULL_COMPILE |
| includes the compilation by bison. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| todo: more items |
| * TODO: $ in the epilogue, and obstack_copy. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| Merge branch 'maint' |
| * maint: |
| use obstack_printf |
| scanner: restore a missing start condition |
| gnulib: update |
| maint: post-release administrivia |
| version 2.6.1 |
| gnulib: update |
| maint: fix some syntax-check issues |
| tests: do not depend on __cplusplus to decide for C++ or C output |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| tests: comment changes |
| * tests/actions.at, tests/input.at: here. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| tests: really check the set of generated files |
| * tests/output.at (AT_CHECK_OUTPUT): It used to check that the |
| expected files are indeed generated, but it did not check that |
| there are no additional ones. |
| Do that, and adjust expectations (in particular alphabetical order). |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| lalr1.cc: do not create stack.hh without %defines |
| * data/stack.hh (b4_stack_define): New. |
| * data/lalr1.cc: Use it when %defines is not passed. |
| * tests/output.at: Adjust expected output. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| lalr1.cc: location.hh and position.hh are not generated without %defines |
| * data/location.cc (b4_position_define, b4_location_define): New. |
| (location.hh, position.hh): Generate only if %defines. |
| * data/lalr1.cc: therefore, define these classes when locations are |
| needed, but headers are not generated. |
| * tests/output.at: Check that these files are not generated. |
| * NEWS: Document. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| lalr1.cc: no longer require %defines. |
| * data/lalr1.cc: Generate the parser header only when %defines is |
| passed. |
| * tests/calc.at: Check it. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| skeletons: style changes |
| * data/glr.c, data/lalr1.cc: Use more consistent comments, |
| and YY_NULL declaration. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| glr.cc, lalr1.cc: define b4_shared_declarations |
| * data/glr.cc, data/lalr1.cc: here. |
| The name is no longer right, but at least it is consistent with |
| the other skeletons. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| glr.cc: no longer require location support |
| * data/glr.cc: Use b4_locations_if where appropriate. |
| * data/lalr1.cc: M4 quotation changes to highlight code duplication |
| with glr.cc. |
| * tests/calc.at: Check glr.cc with and without %location. |
| While at it, fuse multiple %parse-params into one. |
| * tests/actions.at: Simplify. |
| * NEWS: Doc this. |
| Some other wording changes. |
| |
| 2012-07-31 Akim Demaille <[email protected]> |
| |
| use obstack_printf |
| This is not just nicer, it is also much safer, since we were |
| using sprintf... |
| |
| * bootstrap.conf: Require it. |
| * src/system.h (obstack_fgrow1, obstack_fgrow2, obstack_fgrow3) |
| (obstack_fgrow4): Remove. |
| Adjust dependencies. |
| |
| 2012-07-30 Akim Demaille <[email protected]> |
| |
| scanner: restore a missing start condition |
| $ flex src/scan-skel.l |
| src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_ARGS |
| src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_SKIP_WS |
| This is warning, and it seems there are no means to make it an error. |
| |
| * src/scan-skel.l: Restore the start-condition INITIAL for an <<EOF>> |
| clause. |
| |
| 2012-07-30 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-07-30 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-07-30 Akim Demaille <[email protected]> |
| |
| version 2.6.1 |
| * NEWS: Record release date. |
| |
| 2012-07-30 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| maint: fix some syntax-check issues |
| * cfg.mk: Nuke the following warnings which are confused by our |
| text reports (that state that the error token is number 256). |
| prohibit_magic_number_exit |
| ../../doc/bison.texi:8170:error (256) |
| ../../tests/conflicts.at:570:error (256) |
| ../../tests/conflicts.at:673:error (256) |
| ../../tests/conflicts.at:811:error (256) |
| ../../tests/conflicts.at:1154:error (256) |
| ../../tests/regression.at:281:error (256) |
| ../../tests/regression.at:582:error (256) |
| maint.mk: use EXIT_* values rather than magic number |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| tests: do not depend on __cplusplus to decide for C++ or C output |
| Since we do support compiling C code with a C++ compiler. |
| |
| * tests/actions.at (Qualified $$ in actions): Use AT_SKEL_CC_IF. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: (29 commits) |
| regen |
| synclines: remove spurious empty line |
| also support $<foo>$ in the %initial-action |
| skeletons: b4_dollar_pushdef and popdef to simpify complex definitions |
| regen |
| printer/destructor: translate only once |
| factor the handling of m4 escaping |
| news: schedule the removal of the ";" hack |
| style changes in the scanners |
| regen |
| support $<tag>$ in printers and destructors |
| scan-code: factor the handling of the type in $<TYPE>$ |
| muscles: fix another occurrence of unescaped type name |
| glr.cc: fix the handling of yydebug |
| gnulib: update |
| formatting changes |
| tests: fix an assertion |
| tests: adjust to GCC 4.8, which displays caret errors |
| be sure to properly escape type names |
| obstack_quote: escape and quote for M4 |
| muscles: shuffle responsabilities |
| muscles: make private functions static |
| muscles: rename private functions/macros |
| obstack_escape: escape M4 characters |
| remove dead macro |
| maint: style changes |
| doc: avoid problems with case insensitive file systems |
| configure: fix botched quoting |
| news: fix typo. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| synclines: remove spurious empty line |
| * data/bison.m4 (b4_syncline): Do not start with an empty line. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| also support $<foo>$ in the %initial-action |
| scan-code.l is already passing argument to b4_dollar_dollar for the |
| initial acton, but its definition (of b4_dollar_dollar) does not use |
| this argument. |
| |
| Generalize this definition, and use it for the %initial-action too. |
| |
| * data/c.m4 (b4_dollar_dollar_, b4_dollar_pushdef, b4_dollar_popdef): |
| Instead of expecting a pointer, require a value, and use ".". |
| Since they are now generic enough, move to... |
| * data/c-like.m4: this new file. |
| * data/c.m4, data/java.m4: Load it. |
| * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Use |
| b4_dollar_pushdef for the %initial-action. |
| * tests/actions.at: Check that. |
| * data/Makefile.am: Adjust. |
| * NEWS, doc/bison.texi: Document. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| skeletons: b4_dollar_pushdef and popdef to simpify complex definitions |
| M4 is really making it uselessly hard to define macros that define |
| macros. |
| * data/c.m4 (b4_dollar_pushdef, b4_dollar_popdef): New. |
| Use it. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| printer/destructor: translate only once |
| Currently "%printer {...} a b c d e f" translates the {...} six times. |
| Not only is this bad for time and space, it also issues six times the |
| same warnings. |
| |
| * src/symlist.h, src/symlist.c (symbol_list_destructor_set) |
| (symbol_list_printer_set): Take the action as code_props instead of |
| const char *. |
| * src/parse-gram.y: Translate these actions here. |
| * src/scan-code.h: Comment change. |
| * tests/input.at: Check that warnings are issued only once. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| factor the handling of m4 escaping |
| The conversion from @ to @@ and so forth is coded is too many |
| different places. Factor, a bit. |
| |
| * src/scan-code.l: Instead of duplicating the logic of obstack_escape, |
| use it. |
| It sure is less efficient, but the cost is negligible. |
| This allows to factor rules that are alike. |
| And to factor some start-condition clauses. |
| * tests/input.at (Stray $ or @): New. |
| * NEWS: Document it. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| news: schedule the removal of the ";" hack |
| scan-code.l is significantly more complex because of this. |
| |
| * NEWS: Doc it. |
| |
| 2012-07-27 Akim Demaille <[email protected]> |
| |
| style changes in the scanners |
| * src/scan-code.l, src/scan-skel.l: Use a more traditional indentation |
| style for start-conditions. |
| Prefer "continue" to a comment, for empty actions. |
| Strip useless {}. |
| Remove useless start-condition clauses. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| support $<tag>$ in printers and destructors |
| * src/scan-code.l (SC_SYMBOL_ACTION): Accept $<tag>$, not just $$. |
| * data/c.m4 (b4_dollar_dollar_): New. |
| (b4_symbol_actions): Let b4_dollar_dollar use b4_dollar_dollar_. |
| * NEWS, doc/bison.texi: Document it. |
| * tests/actions.at: Check this for C and C++. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| scan-code: factor the handling of the type in $<TYPE>$ |
| * src/scan-code.l (fetch_type_name): New. |
| (handle_action_dollar): Use it. |
| (gt_ptr): Remove, useless. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| muscles: fix another occurrence of unescaped type name |
| * src/output.c (quoted_output): Split into... |
| (quoted_output, string_output): these. |
| Use the former when outputting a type_name. |
| * tests/input.at: Check this case. |
| * src/symtab.h: Comment changes. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| glr.cc: fix the handling of yydebug |
| * data/glr.cc (yydebug_): Remove, unused. |
| (set_debug_level, debug_level): Work on yydebug instead. |
| * doc/bison.texi, NEWS: Document this. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| formatting changes |
| * src/symtab.h: here. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| tests: fix an assertion |
| * tests/local.at (AT_YYLEX_DEFINE): Be sure to check the array |
| against its length, not its size in bytes. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| tests: adjust to GCC 4.8, which displays caret errors |
| With GCC 4.8, the tests on synclines are skipped. Transform |
| |
| input.y:1:2: error: #error "1" |
| #error "1" |
| ^ |
| |
| into |
| |
| input.y:1: #error "1" |
| |
| * tests/synclines.at (AT_SYNCLINES_COMPILE): Do it, using Perl instead of |
| sed. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| be sure to properly escape type names |
| * src/scan-code.l: Use obstack_quote when passing type_name to m4. |
| * tests/input.at (Code injection): New. |
| * NEWS: Document it. |
| Thanks to Paul Eggert for the wording. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| obstack_quote: escape and quote for M4 |
| * src/system.h (obstack_quote): New. |
| * src/muscle-tab.c: Use it instead of obstack_escape where applicable. |
| * src/scan-code.l: Since obstack_quote supports NULL, leave type_name |
| as NULL instead of defaulting to "". |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| muscles: shuffle responsabilities |
| * src/muscle-tab.c (muscle_boundary_grow): Be in charge of quotation, |
| instead of leaving this to the caller. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| muscles: make private functions static |
| * src/muscle-tab.h, src/muscle-tab.c (muscle_boundary_grow) |
| (muscle_location_grow): Now static. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| muscles: rename private functions/macros |
| * src/muscle-tab.c (MUSCLE_COMMON_DECODE, muscle_string_decode) |
| (muscle_location_decode): Not related to muscles, rename as... |
| (COMMON_DECODE, string_decode, location_decode): these. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| obstack_escape: escape M4 characters |
| * src/muscle-tab.h (MUSCLE_OBSTACK_SGROW): This is not related to |
| muscles, so move to, and rename as... |
| * src/system.h (obstack_escape): this. |
| Adjust dependencies. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| remove dead macro |
| * src/system.h (DEFAULT_TMPDIR): Remove, unused. |
| |
| 2012-07-26 Akim Demaille <[email protected]> |
| |
| maint: style changes |
| * src/scan-code.l: Remove useless braces. |
| Formatting changes. |
| Prefer NULL to 0. |
| * src/muscle-tab.c, src/system.h: Formatting changes. |
| |
| 2012-07-24 Akim Demaille <[email protected]> |
| |
| doc: avoid problems with case insensitive file systems |
| makeinfo --html generates index.html, and the node "Index" will result |
| in Index.html. On case insensitive file systems, such as on Mac OS X |
| by default, this results in a single, invalid, file (Texinfo 4.13). |
| See http://lists.gnu.org/archive/html/bug-texinfo/2012-07/msg00032.html |
| |
| * doc/bison.texi (Index): Rename as... |
| (Index of Terms): this. |
| |
| 2012-07-24 Stefano Lattarini <[email protected]> (tiny change) |
| |
| configure: fix botched quoting |
| * configure.ac: In the AC_SUBST call on 'VALGRIND_PREBISON'. Without |
| this change, when running ./configure, I see: |
| |
| ... |
| checking for valgrind... valgrind |
| ./configure: line 35221: -q: command not found |
| checking for Java compiler... gcj -C -fsource=1.3 -ftarget=1.4 |
| ... |
| |
| 2012-07-24 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-24 Akim Demaille <[email protected]> |
| |
| yystype, yyltype: remove. |
| * data/c.m4: here. |
| * NEWS: Doc it. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| regen |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| YYFAIL: remove. |
| * data/lalr1.java, data/yacc.c, src/scan-code.l: Remove YYFAIL support. |
| * NEWS, TODO: Update. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| todo: update. |
| * TODO: obsolete items. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| regen. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| space changes. |
| * data/bison.m4 (b4_symbol_action): Remove spurious eol in the output. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| parser: fix %printer usage. |
| * src/parse-gram.y: Instead of stderr, using yyo. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| parser: factor the handling of code_props |
| * src/parse-gram.y: Now that %printer and %destructor are treated |
| equally, let... |
| (code_props_type): handle them. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| parser: factor handling of type tags |
| * src/parse-gram.y: Now that <*> and <> are processed like regular |
| tags, let... |
| (tag): handle them. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| regen. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| simplify the handling of <> and <*>'s code_props. |
| Currently they are treated in separated variables, contrary to other |
| <TYPE> code_props. This duplicates code (and messages for translators) |
| uselessly, as demonstrated by the fact that thanks to this patch, now |
| useless <*> and <> code_props are reported like the others. |
| |
| * src/parse-gram.y (generic_symlist_item): Treat "<*>" and "<>" as regular |
| type tags. |
| * src/symlist.h, src/symlist.c (symbol_list_default_tagged_new) |
| (symbol_list_default_tagless_new,SYMLIST_DEFAULT_TAGGED) |
| (SYMLIST_DEFAULT_TAGLESS): Remove. |
| * src/symtab.h, src/symtab.c (default_tagged_code_props) |
| (default_tagless_code_props, default_tagged_code_props_set) |
| (default_tagless_code_props_set): Remove. |
| (symbol_code_props_get): Default to <*> or <>'s code_props. |
| |
| * tests/actions.at: Complete expected errors: there are new warnings. |
| * tests/input.at: Likewise. |
| (Useless printers or destructors): Extend. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| allow modification on retrieved code_props. |
| The logic to compute the %printer or %destructor to used (i.e., a |
| code_props) is implemented twice: one, of course, in |
| symbol_code_props_get, and another time in symbol_check_defined to |
| record the fact that a code_props is used (so that we can reported |
| unused ones). Let the former use the latter. |
| |
| I would probably use "mutable" in C++ and keep these guys const, |
| but this is C. And casting away constness triggers warnings. |
| |
| * src/scan-code.h, src/scan-code.l (code_props_none): Is not const. |
| * src/symtab.h, src/symtab.c (symbol_code_props_get): The symbol |
| is not const. |
| (symbol_check_defined): Use it. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| maint: regen. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| maint: fix bison's own header guards. |
| Because I'm using a VPATH build with an absolute srcdir, I have |
| GRAM__USERS_AKIM_SRC_GNU_BISON_SRC_PARSE_GRAM_H. Before, I was using |
| a relative srcdir, and had GRAM_______SRC_PARSE_GRAM_H (coming from |
| ../../). Let it be GRAM_SRC_PARSE_GRAM_H. |
| |
| * tests/bison.in: Do not depend on the value of $top_srcdir for |
| Bison itself. |
| If we were to use relative paths from .c to .y, we would not have |
| this problem. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| maint: add missing const. |
| * src/symtab.h, src/symtab.c (symbol_print): here. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| style changes. |
| * src/parse-gram.y, src/symtab.c: Space changes. |
| * src/symtab.h: Comment changes. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| autoconf: update. |
| * submodules/autoconf: here. |
| No significant changes for our use of m4sugar.m4. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| output: no longer use b4_tokens. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, data/yacc.c: |
| Since the previous commit, b4_tokens_define and the like no longer need |
| b4_tokens. |
| * src/output.c (token_definitions_output): Remove. |
| |
| 2012-07-22 Akim Demaille <[email protected]> |
| |
| output: use the token list to define the yytokentype |
| There are currently two systems used to pass information about tokens to |
| m4: the original one, and another, which is used for instance for |
| printers and destructors, variants etc. Move to using only the latter. |
| |
| * data/bison.m4 (b4_symbol_map, b4_token_visible_if) |
| (b4_token_has_definition, b4_any_token_visible_if, b4_token_format): New. |
| * data/c++.m4, data/c.m4, data/glr.c, data/java.m4: Adjust to use them. |
| |
| 2012-07-20 Akim Demaille <[email protected]> |
| |
| tests: fix VPATH issue |
| * examples/test: With an absolute VPATH build, "../" is incorrect. |
| |
| 2012-07-20 Akim Demaille <[email protected]> |
| |
| news: fix typo. |
| * NEWS: here. |
| Reported by Ben Pfaff. |
| |
| 2012-07-19 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: update gnu-web-doc-update. |
| maint: post-release administrivia |
| version 2.6 |
| maint: prepare for release 2.6 |
| maint: post-release administrivia |
| version 2.5.91 |
| maint: prepare NEWS. |
| maint: fix spaces. |
| tests: adjust to case where the C compiler is actually a C++ compiler |
| tests: fix dependencies |
| doc: fix Texinfo command |
| maint: Valgrind on OS X. |
| tests: be sure that backups are safe. |
| maint: dead comment. |
| tests: refactor for legibility. |
| tests: refactor the bison invocations. |
| maint: fix syntax-check ignore patterns. |
| gnulib: update |
| gnulib: update. |
| gnulib: update |
| |
| 2012-07-19 Akim Demaille <[email protected]> |
| |
| maint: update gnu-web-doc-update. |
| * gnulib: here. |
| |
| 2012-07-19 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-07-19 Akim Demaille <[email protected]> |
| |
| version 2.6 |
| * NEWS: Record release date. |
| |
| 2012-07-19 Akim Demaille <[email protected]> |
| |
| maint: prepare for release 2.6 |
| * NEWS: here. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| version 2.5.91 |
| * NEWS: Record release date. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| maint: prepare NEWS. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| maint: fix spaces. |
| * build-aux/Makefile.am: here. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| tests: adjust to case where the C compiler is actually a C++ compiler |
| * tests/atlocal.in (CC_IS_CXX): New. |
| * tests/headers.at (Several parsers): Use it. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| tests: fix dependencies |
| * tests/Makefile.am: we need atconfig and atlocal to be up to date |
| when calling testsuite. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| doc: fix Texinfo command |
| * doc/bison.texi: In parens, use @pxref. |
| |
| 2012-07-18 Akim Demaille <[email protected]> |
| |
| maint: Valgrind on OS X. |
| * configure.ac (VALGRIND_PREBISON): New. |
| * tests/Makefile.am (maintainer-check-valgrind): Use it. |
| * etc/darwin11.4.0.supp: New. |
| * configure.ac, etc/Makefile.am: Use it. |
| * configure.ac: Disable Valgrind on Mac OS X. |
| * README-hacking: Explain why. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| tests: be sure that backups are safe. |
| * tests/local.at (at_save_special_files): here. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| maint: dead comment. |
| * etc/README: here. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| tests: refactor for legibility. |
| * tests/local.at (AT_BISON_CHECK_WARNINGS, AT_BISON_CHECK_WARNINGS_): |
| New. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| tests: refactor the bison invocations. |
| * tests/local.at (m4_null_if, AT_BISON_CHECK_): New. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| maint: fix syntax-check ignore patterns. |
| * cfg.mk: here. |
| |
| 2012-07-17 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| |
| 2012-07-16 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| * gnulib: Update so that gitlog-to-changelog support --srcdir. |
| * Makefile.am: Use it. |
| |
| 2012-07-10 Akim Demaille <[email protected]> |
| |
| gnulib: update |
| * bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update. |
| |
| 2012-07-06 Akim Demaille <[email protected]> |
| |
| maint: minor fixes |
| * NEWS: restore missing entry. |
| * cfg.mk: Adjust to *.texinfo -> *.texi. |
| * src/symtab.c: Spaces fixes. |
| |
| 2012-07-06 Akim Demaille <[email protected]> |
| |
| tests: address g++-4.8 warnings. |
| list.yy: In function 'yy::parser::symbol_type yylex()': |
| list.yy:107:29: error: typedef 'token' locally defined but not used |
| [-Werror=unused-local-typedefs] |
| typedef yy::parser::token token; |
| ^ |
| |
| * tests/c++.at (AT_CHECK_VARIANTS): here. |
| |
| 2012-07-06 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: update release instructions |
| maint: post-release administrivia |
| version 2.5.90 |
| build: fix gen-ChangeLog call. |
| gnulib: update. |
| tests: fix SKIP_IF for Java. |
| api.prefix: incompatible with %name-prefix. |
| api.prefix: strengthen the tests and fix push-parsers. |
| skeletons: style changes. |
| NEWS: minor changes. |
| api.prefix: improve the documentation for YYDEBUG. |
| gnulib: update. |
| |
| 2012-07-06 Akim Demaille <[email protected]> |
| |
| maint: update release instructions |
| * README-hacking: here. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| version 2.5.90 |
| * NEWS: Record release date. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| build: fix gen-ChangeLog call. |
| * Makefile.am: Be sure to catch errors, and fix option name |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| * gnulib/build-aux/do-release-commit-and-tag: Fix. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| tests: fix SKIP_IF for Java. |
| * tests/local.at (AT_JAVA_COMPILE): here. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| api.prefix: incompatible with %name-prefix. |
| * data/bison.m4: Make it incompatible. |
| * tests/input.at: Check that it is. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| api.prefix: strengthen the tests and fix push-parsers. |
| * tests/calc.at: Check api.prefix in addition to %name-prefix. |
| * tests/headers.at: Check push parsers and pure interface. |
| * tests/local.at: Use YYLTYPE renamed. |
| * data/yacc.c (b4_declare_yyparse_push_): Handle api.prefix. |
| * doc/bison.texi: Style changes. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| skeletons: style changes. |
| * data/bison.m4: Define default values after having defined |
| the support macros. |
| Kill a dead comment. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| NEWS: minor changes. |
| * NEWS: style changes. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| api.prefix: improve the documentation for YYDEBUG. |
| * doc/bison.texi: Explain how api.prefix is applied to YYDEBUG. |
| |
| 2012-07-05 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| * bootstrap, gnulib: Update. |
| * cfg.mk (syntax-check): Don't check "error" usage in bison.texi. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: headers.at: strengthen. |
| glr.cc: do not override C++ definitions by C macros. |
| YYLLOC_DEFAULT: factor, and don't export it in headers. |
| api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc. |
| tests: portability fixes. |
| c++: fewer #includes in the headers. |
| glr.cc: formatting changes. |
| tests: more logs. |
| api.prefix: also rename YYDEBUG. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| tests: headers.at: strengthen. |
| * tests/headers.at (Several headers): Be stricter when checking |
| the exported macros. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| glr.cc: do not override C++ definitions by C macros. |
| * data/glr.c: here. |
| * data/glr.cc: Fix overquotation. |
| * tests/headers.at: Comment changes. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| YYLLOC_DEFAULT: factor, and don't export it in headers. |
| * data/c++.m4, data/c.m4 (b4_yylloc_default_define): New. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it. |
| * data/glr.cc: Do not define YYLLOC_DEFAULT in the header file, |
| but in the implementation one. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc. |
| The following mixture is insane: |
| |
| #define YYSTYPE_IS_TRIVIAL PREFIX_STYPE_IS_TRIVIAL |
| #if (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL) |
| |
| since, of course YYSTYPE_IS_TRIVIAL is defined. Instead we could |
| define YYSTYPE_IS_TRIVIAL as PREFIX_STYPE_IS_TRIVIAL only when the |
| later is defined, but let's avoid stacking CPP on top of M4: rather, use |
| |
| #if (defined PREFIX_STYPE_IS_TRIVIAL && PREFIX_STYPE_IS_TRIVIAL) |
| |
| * data/glr.c, data/yacc.c: Use YYSTYPE_IS_TRIVIAL, YYSTYPE_IS_DECLARED, |
| YYLTYPE_IS_TRIVIAL and YYLTYPE_IS_DECLARED under their api.prefix-renamed |
| name. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| tests: portability fixes. |
| Reported by Hydra. |
| |
| * tests/headers.at (Several headers): Be sure to include config.h |
| in the files to compile. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| c++: fewer #includes in the headers. |
| * data/lalr1.cc: Define YY_NULL in the *.cc file, it is not needed |
| in the header. |
| * data/location.cc: iosfwd suffices. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| glr.cc: formatting changes. |
| * data/glr.cc: here. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| tests: more logs. |
| * tests/headers.at (Several parsers): Here. |
| |
| 2012-07-04 Akim Demaille <[email protected]> |
| |
| api.prefix: also rename YYDEBUG. |
| The testsuite in master has shown weird errors for the "Mulitple |
| Parsers" tests: the caller of p5.parse() received some apparently |
| random value, while tracing p5.parse() showed that the function was |
| consistently returning 0. |
| |
| It happens when mixing several parser headers, some generated without |
| %debug, others with. In particular the C++ parser was generated with |
| %debug, i.e., with: |
| |
| #ifndef YYDEBUG |
| # define YYDEBUG 1 |
| #endif |
| |
| and compiled separatedly. Yet, its header was included after the one |
| of another parser, this time without %debug, i.e., with |
| |
| #ifndef YYDEBUG |
| # define YYDEBUG 0 |
| #endif |
| |
| in its header. As a result, the parser was compiled with YYDEBUG set, |
| but its header was used without. Since the layout of the objects are |
| then completely different, boom. |
| |
| Therefore, do not change the value of YYDEBUG. Rather, use it as a |
| default value for <API.PREFIX>DEBUG. |
| |
| * data/c.m4 (b4_YYDEBUG_define): New. |
| (b4_declare_yydebug): Rename as... |
| (b4_yydebug_declare): this, for consistency. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it. |
| * NEWS: Document it. |
| |
| 2012-07-02 Akim Demaille <[email protected]> |
| |
| formatting changes. |
| * data/lalr1.cc: here. |
| |
| 2012-07-02 Akim Demaille <[email protected]> |
| |
| NEWS: spell fixes. |
| * NEWS: here. |
| Reported by Stefano Lattarini. |
| |
| 2012-07-02 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| NEWS: spell check. |
| api.prefix. |
| |
| 2012-07-02 Akim Demaille <[email protected]> |
| |
| NEWS: spell check. |
| * NEWS: here. |
| |
| 2012-06-29 Akim Demaille <[email protected]> |
| |
| api.prefix. |
| * data/c.m4 (b4_api_prefix, b4_api_PREFIX): New. |
| (b4_prefix, b4_union_name, b4_token_enums, b4_declare_yylstype): Use them. |
| * data/glr.c, data/yacc.c, data/glr.cc, data/lalr1.cc: Use them to change |
| the prefix of exported preprocessor symbols. |
| * src/getargs.c (usage): Ditto. |
| * tests/headers.at (Several parsers): New. |
| * tests/local.at (AT_API_PREFIX): New. |
| AT_YYSTYPE, AT_YYLTYPE): Adjust. |
| * doc/bison.texi (Multiple Parsers): Move documentation of %name-prefix to... |
| (Table of Symbols): here. |
| (Multiple Parsers): Document api.prefix. |
| (%define Summary): Point to it. |
| Use @code for variable names. |
| (Bison Options): -p/--name-prefix are obsoleted. |
| * NEWS: Announce api.prefix. |
| |
| 2012-06-29 Victor Santet <[email protected]> |
| |
| warnings: display warnings categories |
| * src/complain.c (error_message): Call 'warnings_print_categories'. |
| * src/gram.c (grammar_rules_useless_report): Display itself warning |
| category. |
| * tests/actions.at, tests/conflicts.at, tests/existing.at, |
| tests/input.at, tests/named-refs.at, tests/output.at, tests/reduce.at, |
| tests/regression.at, tests/skeletons.at: Adjust. |
| * NEWS: Document this. |
| |
| 2012-06-29 Victor Santet <[email protected]> |
| |
| warnings: be ready to print warnings categories |
| A function to print warnings categories, like -Wyacc, -Wother, etc. |
| |
| * src/complain.h, src/complain.c (print_warning_categories): New function. |
| * src/output.c (ARRAY_CARDINALITY): Move it to file 'src/system.h'. |
| * src/complain.h (enum warnings): New value, 'silent', "complain" |
| must not display the warning type. |
| |
| 2012-06-29 Akim Demaille <[email protected]> |
| |
| maint: prepare forthcoming changes |
| * src/gram.c (rule_rhs_print): Do not print new line anymore. |
| (rule_print): Make it static. |
| * src/closure.c, src/derives.c, src/gram.c: Adjust. |
| |
| 2012-06-29 Victor Santet <[email protected]> |
| |
| style changes |
| * src/complain.c, src/reader.c, src/reduce.c, src/main.c: |
| Fix indentation. |
| Simplify a bit. |
| |
| 2012-06-28 Akim Demaille <[email protected]> |
| |
| regen. |
| |
| 2012-06-28 Victor Santet <[email protected]> |
| |
| warnings: factoring: complaints |
| * src/complain.c (error_message): Accept warning categories (an integer) as |
| argument. |
| Location is a 'const location *' instead of 'location *'. |
| (ERROR_MESSAGE): Delete it. |
| * src/complain.c, src/complain.h (complains): New function. |
| (complain, complain_at, complain_at_indent): Generic functions for |
| complaints. Call 'complains'. |
| (warn_at, warn_at_indent, warn, yacc_at, midrule_value_at) |
| (fatal_at, fatal): Delete them. Adjust dependencies. |
| * src/complain.h (enum warnings): New fields 'complaint' and 'fatal'. |
| * bootstrap.conf (XGETTEXT_OPTIONS): Adjust. |
| |
| 2012-06-28 Victor Santet <[email protected]> |
| |
| warnings: move them to complain.c. |
| * src/getargs.h, src/getargs.c (warnings, warnings_flags): Move to... |
| * src/complain.h, src/complain.c: Here. |
| |
| 2012-06-28 Victor Santet <[email protected]> |
| |
| warnings: rename the categories |
| Forthcoming changes will use the warning categories much more often, |
| so shortening them will improve readability. |
| |
| * src/complain.c, src/complain.h, src/conflicts.c, |
| * src/getargs.c, src/getargs.h, src/gram.c (enum warnings): |
| s/warnings_/W/g. |
| |
| 2012-06-28 Akim Demaille <[email protected]> |
| |
| fix merge. |
| * data/bison.m4: Use b4_error_verbose_if after it was defined. |
| |
| 2012-06-28 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: use the generalized default yylex. |
| tests: AT_YYERROR_DEFINE: prepare for list of ints. |
| skeletons: no longer define YYLSP_NEEDED. |
| c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE. |
| |
| 2012-06-28 Akim Demaille <[email protected]> |
| |
| tests: use the generalized default yylex. |
| * tests/actions.at, tests/glr-regression.at, tests/regression.at: here. |
| |
| 2012-06-28 Akim Demaille <[email protected]> |
| |
| tests: AT_YYERROR_DEFINE: prepare for list of ints. |
| * tests/local.at (AT_YYERROR_DEFINE): Don't add quotes, check their |
| presence to detect char/int types. |
| * tests/actions.at, tests/conflicts.at, tests/glr-regression.at, |
| * tests/push.at, tests/regression.at: Adjust. |
| |
| 2012-06-27 Akim Demaille <[email protected]> |
| |
| skeletons: no longer define YYLSP_NEEDED. |
| * data/c.m4, data/glr.cc: here. |
| * NEWS, TODO: Adjust. |
| |
| 2012-06-27 Akim Demaille <[email protected]> |
| |
| c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE. |
| * src/output.c (prepare_symbols): Do not define b4_token_table. |
| (prepare): Define b4_token_table_flag. |
| * data/bison.m4 (b4_token_table_if): New. |
| Arm it when error-verbose. |
| * data/glr.c, data/yacc.c (YYTOKEN_TABLE): Remove. |
| Use m4. |
| * data/lalr1.cc: Likewise. |
| (YYERROR_VERBOSE): Remove. |
| * NEWS, doc/bison.texi: Document this. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: use *.texi. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| maint: use *.texi. |
| This is more consistent with the other packages, and Automake-NG |
| supports only *.texi. |
| |
| * doc/bison.texinfo: Rename as... |
| * doc/bison.texi: this. |
| * doc/Makefile.am, examples/calc++/Makefile.am: Adjust. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: do not output m4 set up. |
| tests: use the generic yyerror function. |
| tests: use assert instead of plain abort. |
| tests: improve the generic yylex implementation. |
| tests: generalize the compilation macros. |
| tests: fix confusion between api.prefix and name-prefix. |
| maint: gitignores. |
| yacc: work around the ylwrap limitation. |
| |
| 2012-06-26 Victor Santet <[email protected]> |
| |
| warnings: raise warning for useless printers or destructors |
| * src/scan-code.h (code_props): Add field 'is_used'. |
| (CODE_PROPS_NONE_INIT): Adjust. |
| * src/scan-code.l (code_props_plain_init, code_props_symbol_action_init) |
| (code_props_rule_action_init): Instead of implementing several |
| times the initialization of the code_props structures, |
| use code_props_none_init. |
| * src/symtab.c (symbol_check_defined): If a symbol does not have a |
| destructor (resp. printer) but has a type which has a destructor (resp. |
| printer), then set field 'is_used' to true. |
| (semantic_type_check_defined): If a type has a destructor (resp. printer) |
| but all symbols of this type have already a destructor (resp. printer), |
| then raise a warning. |
| * tests/input.at (Useless printers or destructors): New. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: do not output m4 set up. |
| * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): |
| Use a diversion to avoid outputting comments etc. |
| Removes 17k lines from testsuite (10% of the number of lines). |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: use the generic yyerror function. |
| * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Factor. |
| Use AT_YYERROR_DEFINE. |
| Therefore, instead of using stdout, use and check stderr. |
| * tests/glr-regression.at (Uninitialized location when reporting ambiguity): |
| Use AT_YYERROR_DEFINE. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: use assert instead of plain abort. |
| * tests/actions.at, tests/calc.at, tests/conflicts.at, |
| * tests/cxx-type.at, tests/glr-regression.at, tests/input.at, |
| * tests/named-refs.at, tests/regression.at, tests/torture.at, |
| * tests/local.at: |
| Prefer assert to abort. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: improve the generic yylex implementation. |
| * tests/local.at (AT_YYSTYPE, AT_YYLTYPE): New. |
| (AT_YYLEX_FORMALS): Use them. |
| (AT_YYLEX_DEFINE): Be independent of the location implementation. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: generalize the compilation macros. |
| * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): If OUTPUT ends with ".o", |
| then append the "natural" extension for the input file (.c or .cc). |
| If there is no source, pass -c. |
| * tests/headers.at, tests/input.at, tests/regression.at: Adjust. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| tests: fix confusion between api.prefix and name-prefix. |
| * tests/local.at (AT_NAME_PREFIX): Take api.prefix into account. |
| (AT_API_PREFIX): Rename as... |
| (AT_API_prefix): this. |
| Do not take %name-prefix into account. |
| Fix misuses. |
| |
| 2012-06-26 Akim Demaille <[email protected]> |
| |
| maint: gitignores. |
| |
| 2012-06-25 Victor Santet <[email protected]> |
| |
| warnings: useless semantic types |
| * src/symtab.h (symbol_list): Represent semantic types as structure |
| 'semantic_type'. |
| * src/symlist.c (symbol_list_type_new): Allocate this structure. |
| (symbol_list_code_props_set): Set this semantic type's status to used if it |
| was not declared. |
| * src/symtab.c (semantic_types_sorted): New. |
| (semantic_type_new): Set the new semantic type's location appropriately. |
| (symbol_check_defined): If a symbol has a type, then set this type's status |
| to "declared". |
| (semantic_type_check_defined, semantic_type_check_defined_processor): Same |
| as symbol_check_defined and symbol_check_defined_processor, but for semantic |
| types. |
| (symbol_check_defined): Check semantic types usefulness. |
| * src/symtab.h (semantic_type): New fields 'location' and 'status'. |
| * src/symtab.h, src/symtab.c (semantic_type_new) |
| (semantic_type_from_uniqstr, semantic_type_get): Accept a location as a |
| supplementary argument. |
| * tests/input.at (Unassociated types used for printer of destructor): New. |
| * tests/c++.at (AT_CHECK_VARIANTS): Fix an error caught by this commit. |
| |
| 2012-06-25 Akim Demaille <[email protected]> |
| |
| yacc: work around the ylwrap limitation. |
| * data/yacc.c (b4_shared_declarations): Include the header guards. |
| Do not include the header in the *.c file, duplicate it. |
| * NEWS (Future Changes): Extend, and announce the forthcoming change |
| about the use of the parser header. |
| |
| 2012-06-25 Akim Demaille <[email protected]> |
| |
| fix for printers and destructors. |
| The previous "code_props: factor more" patch sends has_%printer |
| etc. to m4, instead of has_printer. |
| |
| * src/output.c (prepare_symbol_definitions): Fix value of pname. |
| |
| 2012-06-25 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| tests: more uniformity. |
| tests: handle locations in a more generic way. |
| tests: handle locations in the generic yyerror functions. |
| tests: fix AT_CHECK_CALC. |
| tests: improve infrastructure |
| tests: factor. |
| skeletons: minor style changes |
| tests: AT_LANG. |
| c skeletons: factor the declaration of yylloc and yylval. |
| news: condemn YYPARSE_PARAM and YYLEX_PARAM. |
| maint: regen. |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| code_props: factor more. |
| * src/symtab.h, src/symtab.c (code_props_type_string): No longer static. |
| * src/output.c (CODE_PROPS): Remove, we can now iterate on both the |
| destructor and the printer. |
| (SET_KEY2): New. |
| |
| 2012-06-22 Victor Santet <[email protected]> |
| |
| maint: factor the handling of %printer and %destructor |
| There is too much code duplication between %printer and %destructor. |
| We used to have two functions for each action: the first one for |
| destructors, the second one for printers. Factor using a |
| 'code_props_type', and an array of code_props instead of two |
| members. |
| |
| * src/symlist.h, src/symlist.c (symbol_list_destructor_set) |
| (symbol_list_printer_set): Fuse into... |
| (symbol_list_code_props_set): this. |
| * src/symtab.h, src/symtab.c (default_tagged_destructor) |
| (default_tagged_printer): Fuse into... |
| (default_tagged_code_props): this. |
| (default_tagless_destructor, default_tagless_printer) |
| (default_tagless_code_props): Likewise. |
| (code_props_type_string): new. |
| (symbol_destructor_set, symbol_destructor_get, semantic_type_destructor_set) |
| (default_tagged_destructor_set, default_tagless_destructor_set) |
| (symbol_printer_set, symbol_printer_get, semantic_type_printer_set) |
| (default_tagged_printer_set, default_tagless_printer_set): Replace by... |
| (symbol_code_props_set, symbol_code_props_get, semantic_type_code_props_set) |
| (default_tagged_code_props_set, default_tagless_code_props_set): these. |
| * src/parse-gram.y (grammar_declaration): Adjust. |
| * src/output.c (CODE_PROP, grammar_declaration): Ditto. |
| * src/reader.c (symbol_should_be_used): Ditto. |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| tests: more uniformity. |
| * tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS) |
| (AT_LEX_PRE_ARGS): Rename as... |
| (AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS) |
| (AT_YYLEX_PRE_ARGS): these, for consistency. |
| (AT_API_PREFIX): Take %name-prefix into account. |
| (AT_YYLEX_PROTOTYPE): New. |
| Use it. |
| * tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to |
| use them. |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| tests: handle locations in a more generic way. |
| * tests/local.at (AT_YYERROR_PROTOTYPE): New. |
| Use it. |
| * tests/cxx-type.at: Extensive revamp to use a more traditional |
| quotation scheme, and to use the generic yyerror implementation. |
| Prefer Autotest macros to CPP macros. |
| * tests/java.at: . |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| tests: handle locations in the generic yyerror functions. |
| * tests/local.at (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE) |
| (AT_YYERROR_DEFINE): Handle locations for C and C++. |
| * tests/calc.at: Use it for C++ (as C has extra arguments which |
| are not yet handled by AT_BISON_OPTION_PUSHDEFS). |
| * tests/actions.at: Adjust. |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| tests: fix AT_CHECK_CALC. |
| * tests/calc.at (AT_CHECK_CALC): Contrary to its documentation, |
| the test was skipped if given a second argument. |
| Unused feature, remove it. |
| |
| 2012-06-22 Akim Demaille <[email protected]> |
| |
| tests: improve infrastructure |
| * tests/local.at (AT_LANG): Use c++ instead of cxx for C++. |
| Adjust dependencies. |
| (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE): Issue nothing |
| for C++/Java. |
| (AT_YYERROR_DEFINE): Use m4_case. |
| (AT_JAVA_COMPILE): Use AT_SKIP_IF. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| tests: factor. |
| * tests/glr-regression.at, tests/output.at, tests/push.at, |
| * tests/regression.at, tests/torture.at, tests/actions.at: |
| Use AT_YYLEX_* and AT_YYERROR_*. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| skeletons: minor style changes |
| * data/glr.c, data/yacc.c: here. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| tests: AT_LANG. |
| * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): |
| Define/undefine AT_LANGE |
| (AT_LANG_COMPILE): New. |
| (AT_FULL_COMPILE): Use AT_LANG. |
| |
| 2012-06-21 Victor Santet <[email protected]> |
| |
| symtab: refactoring |
| Prepares forthcoming changes. |
| |
| * src/symtab.c (symbols_do): Accept the hash table and the sorted |
| list as arguments. Adjust dependencies. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| maint: address syntax-check issues. |
| * examples/calc++/local.mk: Space changes. |
| * src/files.c: Avoid unmarked_diagnostics. |
| * src/output.c: Remove useless include. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| c skeletons: factor the declaration of yylloc and yylval. |
| There is one difference: now, even without --defines, we generate |
| extern declarations for these variables. The factoring is worth it. |
| * data/c.m4 (b4_declare_yylstype): Declare them. |
| * data/glr.c, data/yacc.c: Adjust. |
| |
| 2012-06-21 Akim Demaille <[email protected]> |
| |
| news: condemn YYPARSE_PARAM and YYLEX_PARAM. |
| * NEWS: here. |
| (Bison 1.875): Add %parse-param and %lex-param. |
| * doc/bison.texinfo: Spello. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| fix warnings for useless %printer/%destructor |
| The previous commit, which turns into a warning what used to be an |
| error: |
| |
| %printer {} foo; |
| %% |
| exp: '0'; |
| |
| has two shortcomings: the warning is way too long (foo is reported |
| to be useless later), and besides, it also turns into a warning much |
| more serious errors: |
| |
| %printer {} foo; |
| %% |
| exp: foo; |
| |
| Reduce the amount to warnings in the first case, restore the error in |
| the second. |
| |
| * src/symtab.h (status): Add a new inital state: undeclared. |
| * src/symtab.c (symbol_new): Initialize to undeclared. |
| (symbol_class_set): Simplify the logic of the code that neutralize |
| the "redeclared" warning after the "redefined" one. |
| (symbol_check_defined): "undeclared" is also an error. |
| * src/reader.c (grammar_current_rule_symbol_append): Symbols appearing |
| in a rule are "needed". |
| * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set): |
| An unknown symbol appearing in a %printer/%destructor is "used". |
| * src/reduce.c (nonterminals_reduce): Do not report as "useless" symbols |
| that are not used (e.g., those that for instance appeared only in a |
| %printer). |
| * tests/input.at (Undeclared symbols used for a printer or destructor): |
| Improve the cover the cases described above. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| gitignore: test-driver. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| maint: style changes. |
| * src/reduce.c (reduce_grammar_tables): Define variables with their |
| initial value. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| news: fixes. |
| * NEWS: Fix spelling. |
| |
| 2012-06-20 Victor Santet <[email protected]> |
| |
| warnings: used but undeclared symbols are warnings |
| We used to raise an error if a symbol appears only in a %printer or |
| %destructor. Make it a warning. |
| |
| * src/symtab.h (status): New enum. |
| (symbol): Replace the binary "declared" with the three-state "status". |
| Adjust dependencies. |
| * src/symtab.c (symbol_check_defined): Needed symbols are an error, |
| whereas "used" are simply warnings. |
| * src/symlist.c (symbol_list_destructor_set, symbol_list_printer): Set |
| symbol status to 'used' when associated to destructors or printers. |
| * input.at (Undeclared symbols used for a printer or destructor): New. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| maint: regen. |
| * Makefile.am (regen): New target. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| regen. |
| |
| 2012-06-20 Akim Demaille <[email protected]> |
| |
| maint: regen. |
| * Makefile.am (regen): New target. |
| |
| 2012-06-19 Akim Demaille <[email protected]> |
| |
| tests: enhance AT_YYERROR_DEFINE. |
| * tests/local.at: Handle the fact that locations are no longer |
| needed with lalr1.cc. |
| |
| 2012-06-19 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| maint: formatting changes. |
| tests: support api.prefix. |
| tests: pacify font-lock-mode. |
| tests: remove test covered elsewhere. |
| tests: factor the declaration/definition of yyerror and yylex. |
| regen. |
| tests: portability issues. |
| tests: call the parser from another compilation unit. |
| glr.c, yacc.c: declare yydebug in the header. |
| skeletons: use header guards. |
| tests: improve AT_FULL_COMPILE. |
| tests: reorder. |
| tests: strengthen the test on generated headers inclusion |
| yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it. |
| yacc.c: factor. |
| |
| 2012-06-19 Akim Demaille <[email protected]> |
| |
| maint: formatting changes. |
| * NEWS: Fix indentation of code snippets. |
| Untabify. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| tests: support api.prefix. |
| * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): |
| Define AT_API_PREFIX. |
| (AT_YYERROR_DEFINE, AT_YYERROR_DECLARE_EXTERN, AT_YYLEX_DECLARE_EXTERN) |
| (AT_YYLEX_DEFINE): Use it. |
| * tests/input.at, tests/regression.at, tests/torture.at: Add |
| AT_BISON_OPTION_PUSHDEFS/POPDEFS. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| tests: pacify font-lock-mode. |
| * tests/local.at: here. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| tests: remove test covered elsewhere. |
| * tests/headers.at (%union and --defines): Remove, pretty useless and |
| insignificant. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| tests: factor the declaration/definition of yyerror and yylex. |
| * tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DECLARE_EXTERN) |
| (AT_YYERROR_DEFINE, AT_YYLEX_DECLARE, AT_YYLEX_DECLARE_EXTERN) |
| (AT_YYLEX_DEFINE): New. |
| Must be used inside AT_BISON_OPTION_PUSHDEFS/POPDEFS pair. |
| * tests/actions.at, tests/conflicts.at, tests/glr-regression.at, |
| * tests/headers.at, tests/input.at, tests/named-refs.at, |
| * tests/regression.at, tests/skeletons.at, tests/synclines.at, |
| * tests/torture.at: Use them. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| regen. |
| |
| 2012-06-17 Akim Demaille <[email protected]> |
| |
| tests: portability issues. |
| * tests/calc.at (AT_CALC_MAIN): Missing include reported by Hydra. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| tests: call the parser from another compilation unit. |
| In order to improve the testing of %defines, which exports the |
| interface of the generated parser, change the calc.at tests so that |
| when %defines is passed, main will be in another compilation unit. It |
| loads the generated header. |
| |
| * tests/calc.at (AT_CALC_MAIN): New. |
| Includes the definition of the global variables. |
| Therefore, now declare them from the %requires section of the parser. |
| Adjust to yydebug and yyparse being renamed by %name-prefix. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| glr.c, yacc.c: declare yydebug in the header. |
| * data/c.m4 (b4_declare_yydebug): New. |
| * data/glr.c, data/yacc.c (b4_shared_declarations): Use it. |
| Remove the corresponding code from the parser body. |
| * NEWS: Doc this. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| skeletons: use header guards. |
| * data/glr.c, data/glr.cc, data/yacc.c: here. |
| * NEWS: Document it. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| tests: improve AT_FULL_COMPILE. |
| * tests/local.at: Accept a third argument. |
| Simplify quotation pattern. |
| Calls for better refactoring, but will suffice for a while. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| tests: reorder. |
| * tests/calc.at (power): Move its definition, as a preparation for |
| forthcoming changes. |
| And space changes. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| tests: strengthen the test on generated headers inclusion |
| * tests/headers.at (AT_TEST_CPP_GUARD_H): Accept Bison directives. |
| (Invalid CPP headers): Check glr. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it. |
| This is already what glr.c and lalr1.cc do. |
| |
| * data/yacc.c: here. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| maint: xfdopen, and scope reduction. |
| * src/files.h, src/files.c (xfdopen): New. |
| * src/output.c (output_skeleton): Use it. |
| Reduce the scope of argv. |
| |
| 2012-06-15 Akim Demaille <[email protected]> |
| |
| maint: space changes |
| * configure.ac, src/complain.c: space changes. |
| |
| 2012-06-13 Akim Demaille <[email protected]> |
| |
| yacc.c: factor. |
| yacc.c used to include two almost identical sections: one for the *.h |
| file, and another for the *.c file. The main difference is that in |
| the *.c file we used the yy* names (as %name-prefix is handled by |
| "#define yy* <prefix>*" before), while the *.hh used <prefix>* names. |
| Keep only the later. If this is troublesome, b4_shared_declarations |
| can easily take the desired prefix as argument. |
| |
| * data/yacc.c (b4_shared_declarations): New. |
| Use it to factor duplicated declarations. |
| |
| 2012-06-13 Stefano Lattarini <[email protected]> (tiny change) |
| |
| cosmetics: prettify names for compiled object for bison |
| * src/local.mk (src_bison_SHORTNAME): Define to "bison". |
| |
| 2012-06-13 Akim Demaille <[email protected]> |
| |
| lalr1.cc: spello. |
| * data/lalr1.cc: Reported by Gilles Espinasse. |
| |
| 2012-06-13 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| skeletons: factor yacc.c and glr.c. |
| glr.c: minor refactoring. |
| tests: remove all the -On flags. |
| maint: fix spello. |
| maint: improve release procedure instructions. |
| gnulib: update readme-release. |
| maint: cfg.mk: manual title. |
| maint: cfg.mk: simplify |
| maint: post-release administrivia |
| |
| 2012-06-12 Akim Demaille <[email protected]> |
| |
| skeletons: factor yacc.c and glr.c. |
| yacc.c and glr.c share common declarations. Their YYLTYPE are exactly |
| equal, and their YYSTYPE are sufficiently alike to be fused (its |
| declaration was protected by YYSTYPE_IS_DECLARED in yacc.c, but not in |
| glr.c). Besides, yacc.c duplicated the definitions of YYLTYPE and |
| YYSTYPE (*.h/*.c). |
| |
| * data/c.m4 (b4_declare_yylstype): New. |
| * data/yacc.c, data/glr.c: Use it. |
| |
| 2012-06-12 Akim Demaille <[email protected]> |
| |
| glr.c: minor refactoring. |
| * data/glr.c (b4_shared_declarations): Move from the generated file |
| section, to the M4 prologue. |
| |
| 2012-06-12 Akim Demaille <[email protected]> |
| |
| tests: remove all the -On flags. |
| * tests/atlocal.in: Here. |
| Reported by Gilles Espinasse. |
| |
| 2012-06-12 Akim Demaille <[email protected]> |
| |
| maint: fix spello. |
| * README-hacking: Here. |
| * THANKS: Reported by Gilles Espinasse. |
| |
| 2012-06-12 Akim Demaille <[email protected]> |
| |
| maint: improve release procedure instructions. |
| * gnulib: Update, in particular (README-release). |
| * bootstrap.conf: don't require gendocs, provided by gnu-web-doc-update, |
| provided by readme-release. |
| * README-hacking: Update accordingly. |
| |
| 2012-06-07 Akim Demaille <[email protected]> |
| |
| gnulib: update readme-release. |
| * gnulib (readme-release): Now includes the modules it promotes. |
| * bootstrap.conf: Simplify accordingly. |
| |
| 2012-06-07 Akim Demaille <[email protected]> |
| |
| maint: cfg.mk: manual title. |
| * cfg.mk (manuel_title): New. |
| |
| 2012-06-07 Akim Demaille <[email protected]> |
| |
| maint: cfg.mk: simplify |
| * cfg.mk: Remove bits provided by maint.mk. |
| |
| 2012-06-07 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| maint: an envvar equal to "00" is 0. |
| * src/output.c (prepare): here. |
| Reported by Paul Eggert. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| maint: don't use mbsr?chr. |
| Basically, revert ba60c39547a445dee3e07920931b4d7a81843868's move to |
| mbs* functions, which was prompted by -DGNULIB_POSIXCHECK. See |
| <http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html> |
| and following. |
| |
| * bootstrap.conf: No longer ask for them. |
| * src/files.c, src/getargs.c, src/location.c, |
| * src/parse-gram.c, src/parse-gram.y, src/scan-gram.l, |
| * src/symtab.c: s/mbs(r?chr)/str$1/g. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| maint: use xconcat-filename. |
| * bootstrap.conf (gnulib_modules): Request it. |
| * src/output.h, src/output.c (compute_pkgdatadir): Rename as... |
| (pkgdatadir): this. |
| Adjust dependencies. |
| * src/output.c (output_skeleton): Reduce the scope of "in". |
| Use xconcatenated_filename to simplify the construction of the |
| qualified paths to m4sugar.m4, bison.m4, and the selected skeleton. |
| There are a few minor differences: the new code uses strchr instead of |
| mbschr (but this was not really justified), and the new code does not |
| garantee a single slash even if $BISON_PKGDATADIR ends with several |
| (which was considered more accurate). See the discussion at |
| <http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html>. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| maint: minor simplification |
| * src/output.c (prepare): Assign use_push_for_pull_flag's value at its |
| declaration. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| version 2.5.1 |
| NEWS: prepare for 2.5.1. |
| maint: update release procedure |
| maint: fix comment typos |
| maint: post-release administrivia |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| version 2.5.1 |
| * NEWS: Record release date. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| NEWS: prepare for 2.5.1. |
| * NEWS: Be compliant with do-release-commit-and-tag. |
| |
| 2012-06-05 Akim Demaille <[email protected]> |
| |
| maint: update release procedure |
| * bootstrap.conf: Request do-release-commit-and-tag and readme-release. |
| * README-hacking: Adjust. |
| |
| 2012-06-05 Jim Meyering <[email protected]> |
| |
| maint: fix comment typos |
| Using http://github.com/lyda/misspell-check, massage its |
| output into sed commands to perform the suggested changes. |
| Initially, I filtered out the THRU->Through changes, because |
| that failed to retain capitalization in the grammar token. |
| Instead, do this manually, beforehand: |
| |
| sed -i s/THRU/THROUGH/ tests/existing.at |
| git ls-files|misspellings -f -|perl -nl \ |
| -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \ |
| -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\ |
| -e 'print "sed -i $q${n}s!$l!$r!$q $file"'|bash |
| |
| 2012-05-24 Akim Demaille <[email protected]> |
| |
| build: regen. |
| |
| 2012-05-24 Akim Demaille <[email protected]> |
| |
| Merge tag 'v2.5.1_rc2' |
| Bison 2.5.1_rc2. |
| |
| * tag 'v2.5.1_rc2': (34 commits) |
| Bison 2.5.1_rc2. |
| doc: fixes. |
| build: fix ChangeLog generation. |
| c++: compute the header guards. |
| skeletons: remove support for unused directive. |
| lalr1.cc: improve Doxygen documentation. |
| lalr1.cc: extract stack.hh. |
| news: convert to double quotes. |
| space changes. |
| build: do not prototype flex-generated functions. |
| build: fix ChangeLog generation. |
| Bison 2.5.1_rc1. |
| tests: save/restore Autotest special files when checking XML support. |
| tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES. |
| tests: honor TESTSUITEFLAGS in all the check targets. |
| build: do not enable c++ warnings on 0 when nullptr is not supported. |
| maint: update gnulib. |
| build: config.in.h. |
| build: move silent rules. |
| glr.c: reduce variable scopes. |
| maint: maintainer-release-check. |
| maint: shush a syntax-check. |
| maint: prefer "commit message" to "log entry". |
| command line: fix minor leaks. |
| maint: we no longer maintain the ChangeLog. |
| maint: fix the generation of the synclines for bison's parser. |
| maint: regen. |
| maint: import the xmemdup0 gnulib module. |
| maint: remove left-over gnulib modules. |
| maint: ignore files imported by autopoint. |
| build: AC_PROG_LEX: use more readable variable names. |
| maint: regen src/parse-gram.[ch] |
| maint: simplify parse-gram.y |
| maint: s/strncpy/memcpy/, when equivalent |
| |
| 2012-05-23 Akim Demaille <[email protected]> |
| |
| maint: post-release administrivia |
| * NEWS: Add header line for next release. |
| * .prev-version: Record previous version. |
| * cfg.mk (old_NEWS_hash): Auto-update. |
| |
| 2012-05-23 Akim Demaille <[email protected]> |
| |
| Bison 2.5.1_rc2. |
| * NEWS: Update. |
| |
| 2012-05-23 Akim Demaille <[email protected]> |
| |
| doc: fixes. |
| * doc/bison.texinfo: Fix errors spotted by syntax-check. |
| |
| 2012-05-23 Akim Demaille <[email protected]> |
| |
| build: fix ChangeLog generation. |
| * gnulib: Update to get newest gitlog-to-changelog. |
| * bootstrap: Update. |
| * Makefile.am (gen-ChangeLog): Fix for Bison's git log style. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| c++: compute the header guards. |
| This is a frequent request. Recently pointed out by Wei Song, |
| <http://lists.gnu.org/archive/html/help-bison/2012-05/msg00002.html>. |
| |
| * data/c.m4 (b4_tocpp, b4_cpp_guard, b4_cpp_guard_open) |
| (b4_cpp_guard_close): New. |
| * data/lalr1.cc, data/location.cc, data/stack.hh: Use them. |
| * TODO (Header Guards): Move to... |
| * NEWS: here. |
| Formatting changes. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| skeletons: remove support for unused directive. |
| * src/scan-skel.l (@dir_prefix@): Remove support, has never been |
| used, not even in the commit that introduced it, |
| 2b81e969ea04c1a6502928ba7e847ec8ff7dcb2f. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| lalr1.cc: improve Doxygen documentation. |
| * data/location.cc: Qualify file names with directory name. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| lalr1.cc: extract stack.hh. |
| See commit 51bacae6b58fd5c6cce861f00440dc917384625e. |
| * data/stack.hh: New, extracted from... |
| * data/lalr1.cc: here. |
| * data/Makefile.am: Adjust. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| news: convert to double quotes. |
| * NEWS: Convert from `quoted' to "quoted". |
| Reported by Stefano Lattarini. |
| http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00039.html |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| space changes. |
| * src/flex-scanner.h: Indent nested cpp directives. |
| |
| 2012-05-21 Akim Demaille <[email protected]> |
| |
| build: do not prototype flex-generated functions. |
| Some versions of Flex, possibly modified by the distribution package |
| maintainers, have incompatible signatures. Since newer versions of |
| Flex prototype their functions, avoid the conflicts in that case. |
| Reported by Stefano Lattarini. |
| <http://lists.gnu.org/archive/html/bug-bison/2012-05/msg00012.html>. |
| |
| * src/flex-scanner.h (FLEX_VERSION_GT): New. |
| Use it to issue prototypes for flex-generated functions only for |
| versions up to 2.5.31, in accordance with the comment. |
| See commit dc9701e848f27ae64b6ddcf809580998667d60f2. |
| Use it to define yylex_destroy when needed. |
| |
| 2012-05-16 Akim Demaille <[email protected]> |
| |
| build: fix ChangeLog generation. |
| * Makefile.am (gen-ChangeLog): Fix for VPATH builds. |
| |
| 2012-05-14 Akim Demaille <[email protected]> |
| |
| Bison 2.5.1_rc1. |
| * NEWS: Update. |
| * src/parse-gram.c, src/parse-gram.h: Regen. |
| |
| 2012-05-11 Akim Demaille <[email protected]> |
| |
| tests: save/restore Autotest special files when checking XML support. |
| Currently the test 248, "parse-gram.y: LALR = IELR", fails |
| BISON_TEST_XML is set. |
| |
| * tests/local.at (AT_BISON_CHECK_XML): Belt: Save/restore files. |
| * tests/regression.at (parse-gram.y: LALR = IELR): Suspenders: Don't |
| rely on expout. |
| Each one of these changes suffices. |
| |
| 2012-05-11 Akim Demaille <[email protected]> |
| |
| tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES. |
| Some of our macros play with expout and other Autotest special files, |
| which may break their callers (e.g., currently TESTSUITEFLAGS='248 |
| BISON_TEST_XML=1' fails). |
| |
| There is already some support for this. Expand it to be ready to use |
| it elsewhere. |
| |
| * tests/local.at (AT_RESTORE_SPECIAL_FILES, AT_SAVE_SPECIAL_FILES) |
| (at_save_special_files, at_restore_special_files): New. |
| (AT_BISON_CHECK_NO_XML): Use them. |
| |
| 2012-05-11 Akim Demaille <[email protected]> |
| |
| tests: honor TESTSUITEFLAGS in all the check targets. |
| * tests/Makefile.am (installcheck-local): Simplify. |
| (maintainer-check-posix, maintainer-check-valgrind): Honor |
| $(TESTSUITEFLAGS). |
| |
| 2012-05-11 Akim Demaille <[email protected]> |
| |
| build: do not enable c++ warnings on 0 when nullptr is not supported. |
| * configure.ac (WARN_CXXFLAGS): Enable -Wzero-as-null-pointer-constant |
| only when nullptr is supported.. |
| |
| 2012-05-11 Akim Demaille <[email protected]> |
| |
| maint: update gnulib. |
| * bootstrap, gnulib: Update. |
| |
| 2012-05-09 Akim Demaille <[email protected]> |
| |
| build: config.in.h. |
| Historically we used config.hin (where everybody else used |
| config.h.in) to please DOS. Now that we use gnulib, there are already |
| tons of files with several dots, especially *.in.h. |
| |
| * configure.ac: Rename config.hin as config.in.h. |
| |
| 2012-05-09 Akim Demaille <[email protected]> |
| |
| build: move silent rules. |
| * tests/Makefile.am: In the generation of the test suite. |
| |
| 2012-05-09 Akim Demaille <[email protected]> |
| |
| glr.c: reduce variable scopes. |
| * data/glr.c: Where appropriate, fuse variable declarations followed |
| by assignments by variable declarations with a value. |
| Where appropriate, introduce new scopes to limit variable spans. |
| |
| 2012-05-08 Akim Demaille <[email protected]> |
| |
| maint: maintainer-release-check. |
| * tests/Makefile.am (maintainer-release-check): New. |
| * Makefile.am (MAINTAINER_CHECKS): New. |
| Support maintainer-release-check. |
| * README-hacking: Document it, and syntax-check too. |
| |
| 2012-05-08 Akim Demaille <[email protected]> |
| |
| maint: shush a syntax-check. |
| * cfg.mk: lib/timevar is not planned to be gnulib'ed, as it comes |
| from GCC. |
| |
| 2012-05-08 Akim Demaille <[email protected]> |
| |
| maint: prefer "commit message" to "log entry". |
| * README-hacking: here. |
| Suggested by Stefano Lattarini. |
| |
| 2012-05-08 Akim Demaille <[email protected]> |
| |
| command line: fix minor leaks. |
| * src/getargs.c (getargs): Free pointers before allocating them new |
| content. |
| |
| 2012-05-08 Akim Demaille <[email protected]> |
| |
| maint: we no longer maintain the ChangeLog. |
| * .gitattributes: No need to merge it. |
| * README-hacking: Update release instructions. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| maint: fix the generation of the synclines for bison's parser. |
| * tests/bison.in: Import from master the changes that make |
| this script generate synclines that are independant of the |
| builddir/srcdir user's set up. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| maint: regen. |
| * src/parse-gram.c, src/parse-gram.h: Regen. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| maint: import the xmemdup0 gnulib module. |
| * bootstrap.conf: Require this module. |
| * src/parse-gram.y: Include xmemdup0.h. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| maint: remove left-over gnulib modules. |
| * bootstrap.conf (gnulib_modules): Remove pipe-posix. |
| * lib/.gitignore, m4/.gitignore: Remove files that we no longer use. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| maint: ignore files imported by autopoint. |
| * m4/.gitignore: here. |
| |
| 2012-05-06 Akim Demaille <[email protected]> |
| |
| build: AC_PROG_LEX: use more readable variable names. |
| * m4/flex.m4 (AC_PROG_LEX): Prefer LEX_IS_FLEX to FLEX. |
| Prefer true/false to yes/no for such variables. |
| * configure.ac: Adjust. |
| |
| 2012-05-06 Jim Meyering <[email protected]> |
| |
| maint: regen src/parse-gram.[ch] |
| |
| 2012-05-06 Jim Meyering <[email protected]> |
| Akim Demaille <[email protected]> |
| |
| maint: simplify parse-gram.y |
| * src/parse-gram.y (add_param): Use xmemdup0 in place of |
| xmalloc+memcpy, and strspn in place of an open-coded loop. |
| |
| 2012-05-06 Jim Meyering <[email protected]> |
| |
| maint: s/strncpy/memcpy/, when equivalent |
| * src/output.c (output_skeleton): Use memcpy, not strncpy, |
| since the source is known to fit in the destination buffer. |
| * src/parse-gram.y (%skeleton): Likewise. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.c: formatting changes. |
| * data/glr.c: Fix indentation. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/master' |
| * origin/master: |
| glr.c: untabify. |
| glr.cc: untabify. |
| glr.cc: formatting changes. |
| glr.cc: remove unused signature. |
| glr.cc: properly declare locations are const where appropriate. |
| doc: fix @xref. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.c: untabify. |
| * data/glr.c: here. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.cc: untabify. |
| * data/glr.cc: here. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.cc: formatting changes. |
| * data/glr.cc: Fit in 80 columns. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.cc: remove unused signature. |
| * data/glr.cc (yydestruct_): Not used, remove. |
| It is yydestruct which is used. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| glr.cc: properly declare locations are const where appropriate. |
| * data/glr.cc (yyerror): The location is const. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| doc: fix @xref. |
| * doc/bison.texinfo: here. |
| |
| 2012-05-04 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: (22 commits) |
| tests: ignore code coverage/profiling failure messages |
| doc: fix some invalid @ref. |
| build: fix previous commit. |
| install-pdf: fix. |
| NEWS: Update. |
| %printer: support both yyo and yyoutput. |
| doc: mfcalc: demonstrate %printer. |
| tests: style changes. |
| build: require Flex. |
| build: flex.m4: check for Flex. |
| build: flex.m4: quote properly. |
| build: flex.m4. |
| build: autoconf: update. |
| glr: eliminate last bits of unwanted locations. |
| NEWS: 2.6 will drop K&R. |
| TODO: remove dead items. |
| TODO: import from master. |
| gnulib: update. |
| maint: update NEWS. |
| doc: fix index. |
| doc: fix documentation of YYERROR. |
| c++: more YY_NULL |
| |
| 2012-05-02 Akim Demaille <[email protected]> |
| |
| tests: ignore code coverage/profiling failure messages |
| The Hydra buildfarm provides code coverage analysis. For some reason, |
| in some test cases, code coverage data seem to be incompatible, and |
| generate error messages at parser run-time. Ignore these messages so |
| that (i) these tests do pass, (ii) coverage results be provided by |
| Hydra. |
| |
| * tests/local.at (AT_PARSER_CHECK): Ignore messages for failed merges |
| of code coverage/profiling results. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| doc: fix some invalid @ref. |
| * doc/bison.texinfo: Fix incorrect @ref uses. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| build: fix previous commit. |
| * bootstrap: Update from gnulib. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| install-pdf: fix. |
| * gnulib: Fix install-pdf in po/ and runtime-po/. |
| Reported by Hans Aberg. |
| Fixed by Joel E. Denny. |
| http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| NEWS: Update. |
| * NEWS: Spell check. |
| (%printer): is now documented. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| %printer: support both yyo and yyoutput. |
| lalr1.cc used to support yyo, but not yyoutput. Support both, |
| but document only yyoutput (at least until there is some consensus |
| on this). |
| |
| * data/c.m4 (yy_symbol_value_print): Also support yyo. |
| * data/glr.cc (yy_symbol_value_print_): Support both yyo and yyoutput. |
| * data/lalr1.cc: Also support yyoutput. |
| * doc/bison.texinfo: Explicitly use yyoutput in the examples. |
| * examples/mfcalc/mfcalc.test: Test the -p option. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| doc: mfcalc: demonstrate %printer. |
| * doc/bison.texinfo (Printer Decl): New. |
| Number mfcalc.y snippets so that they are output in |
| the proper order. |
| (The mfcalc Main): Use yydebug. |
| (Debugging): Simplify the text. |
| (Enabling Traces, Mfcalc Traces, The YYPRINT Macro): New. |
| (Table of Symbols): Document YYPRINT and YYFPRINTF. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| tests: style changes. |
| * tests/input.at: Use "print" in %printer instead of "destroy". |
| It is unused, so we don't care, yet it is less surprising. |
| * tests/actions.at: Comment changes. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| %printer: support both yyo and yyoutput. |
| lalr1.cc used to support yyo, but not yyoutput. Support both, |
| but document only yyoutput (at least until there is some consensus |
| on this). |
| |
| * data/c.m4 (yy_symbol_value_print): Also support yyo. |
| * data/glr.cc (yy_symbol_value_print_): Support both yyo and yyoutput. |
| * data/lalr1.cc: Also support yyoutput. |
| * doc/bison.texinfo: Explicitly use yyoutput in the examples. |
| * examples/mfcalc/mfcalc.test: Test the -p option. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| doc: mfcalc: demonstrate %printer. |
| * doc/bison.texinfo (Printer Decl): New. |
| Number mfcalc.y snippets so that they are output in |
| the proper order. |
| (The mfcalc Main): Use yydebug. |
| (Debugging): Simplify the text. |
| (Enabling Traces, Mfcalc Traces, The YYPRINT Macro): New. |
| (Table of Symbols): Document YYPRINT and YYFPRINTF. |
| |
| 2012-04-16 Akim Demaille <[email protected]> |
| |
| tests: style changes. |
| * tests/input.at: Use "print" in %printer instead of "destroy". |
| It is unused, so we don't care, yet it is less surprising. |
| * tests/actions.at: Comment changes. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| build: require Flex. |
| * configure.ac: Require Flex. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| build: flex.m4: check for Flex. |
| * m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Check that $LEX |
| supports some of the Flex options, and exclusive start conditions. |
| Define FLEX to 'yes'/'', as AC_PROG_CC does for GCC. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| build: flex.m4: quote properly. |
| * m4/flex.m4: Use quotes more systematically. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| build: flex.m4. |
| * m4/flex.m4: New. |
| An exact copy of what is in Autoconf currently. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| build: autoconf: update. |
| * submodules/autoconf: Update. |
| There are no changes in data/m4sugar/foreach.m4, and the |
| changes in data/m4sugar/m4sugar.m4 are minor. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| glr: eliminate last bits of unwanted locations. |
| * data/glr.c (YYLTYPE): Do not define when locations are |
| not demanded. |
| Adjust all dependencies. |
| |
| 2012-04-10 Akim Demaille <[email protected]> |
| |
| NEWS: 2.6 will drop K&R. |
| * NEWS: here. |
| (glr.c): Fix a spello. |
| |
| 2012-04-09 Akim Demaille <[email protected]> |
| |
| TODO: remove dead items. |
| * TODO (Documentation, %printer, Java): Remove, already done (or just |
| waiting for approval). |
| (Fortran, BTYacc): Remove, there does not seem to be demand. |
| |
| 2012-04-09 Akim Demaille <[email protected]> |
| |
| TODO: import from master. |
| * TODO: Copy the current version. |
| |
| 2012-04-08 Akim Demaille <[email protected]> |
| |
| tests: fix bison wrapper. |
| * tests/bison.in (PERL): Fix. |
| |
| 2012-04-08 Akim Demaille <[email protected]> |
| |
| doc: fix some invalid @ref. |
| * doc/bison.texinfo: Fix incorrect @ref uses. |
| |
| 2012-04-08 Akim Demaille <[email protected]> |
| |
| build: extexi: support out-of-order blocks. |
| * examples/extexi (%file_output): Remove. |
| (&process): Accept "FILE: BLOCK-NUM" requests. |
| |
| 2012-04-08 Akim Demaille <[email protected]> |
| |
| build: look for Perl in configure. |
| Bison uses "/usr/bin/perl" or "perl" in several places, and it does |
| not appear to be a problem. But, at least to make it simpler to |
| change PERL on the make command line, check for perl in configure. |
| |
| * configure.ac (PERL): New. |
| * doc/Doxyfile.in, doc/local.mk, examples/local.mk, |
| * tests/bison.in: Use it. |
| |
| 2012-04-08 Akim Demaille <[email protected]> |
| |
| maint: rewrite extexi in Perl. |
| * examples/extexi: Rewrite in Perl. |
| * examples/local.mk (extract): Adjust. |
| |
| 2012-04-07 Akim Demaille <[email protected]> |
| |
| build: simplify clean. |
| * doc/local.mk (CLEANFILES): Since the previous commit, |
| there a no longer such files. |
| * Makefile.in (CLEANFILES): Initialize here. |
| |
| 2012-04-07 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| * bootstrap.conf (bootstrap_sync): True again. |
| It was disabled while waiting for changes to be integrated |
| in gnulib's bootstrap, which was done long ago. |
| * bootstrap, gnulib: Update. |
| |
| 2012-04-04 Akim Demaille <[email protected]> |
| |
| maint: update NEWS. |
| * NEWS: Fix entry about __attribute__. |
| Reorder by "decreasing" order of importance. |
| |
| 2012-04-04 Akim Demaille <[email protected]> |
| |
| doc: fix index. |
| http://lists.gnu.org/archive/html/bison-patches/2012-04/msg00006.html |
| |
| * doc/bison.texinfo: Avoid using @def* variant with more |
| than the defined entity as main entity, as it results in |
| an incorrect index. For instance, don't document |
| {return YYERROR;}, which results in a single index entry |
| "return YYERROR;", but rather as typed function whose |
| return type is "type", and whose argument list is ";". |
| |
| 2012-04-04 Akim Demaille <[email protected]> |
| |
| doc: fix documentation of YYERROR. |
| * doc/bison.texinfo (Table of Symbols): Fix the documentation |
| of YYERROR by copying that from "Action Features". |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| build: fix distcheck issues. |
| For some reason it seems that texi2dvi -o no longer forces --clean |
| mode, so we have stray TeX compilation files staying in top_builddir |
| since TeX is run from there. |
| |
| While at it, upgrade the generation of the (completely obsolete) |
| reference card. Target PDF. |
| |
| * doc/local.mk (TEXI2DVI): Pass --build-dir. |
| (CLEANDIRS): More accurate. |
| (doc/refcard.dvi): Replace with... |
| (doc/refcard.pdf): this. |
| Adjust dependencies. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| build: don't rely on $< in non-pattern rules. |
| * doc/local.mk, tests/local.mk: here. |
| Reported by Stefano Lattarini. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| doc: upgrade Doxyfile. |
| * doc/Doxyfile.in: Run doxygen -u. |
| Prompted by Tim Landscheidt. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| doc: help Doxygen find our files. |
| * doc/Doxyfile.in (INCLUDE_PATH): here. |
| |
| 2012-04-01 Tim Landscheidt <[email protected]> |
| |
| Fix Doxygen generation and clean-up. |
| * doc/Doxyfile.in: Amend OUTPUT_DIRECTORY. |
| * doc/local.mk (html-local): Amend working directory. |
| (CLEANDIRS): Fix "html", remove "latex". |
| |
| 2012-04-01 Tim Landscheidt <[email protected]> |
| |
| Fix Doxygen comment. |
| * src/InadequacyList.h: s#</t>#</tt>#. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| c++: more YY_NULL |
| Caught by maintainer-check-g++. |
| * data/glr.c, data/lalr1.cc, data/yacc.c, tests/cxx-type.at, |
| * tests/glr-regression.at, tests/push.at: |
| When simple to do, avoid expliciting the null ptr. |
| Otherwise use YY_NULL. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| c++: more YY_NULL |
| Caught by maintainer-check-g++. |
| * data/glr.c, data/lalr1.cc, data/yacc.c, tests/cxx-type.at, |
| * tests/glr-regression.at, tests/push.at: |
| When simple to do, avoid expliciting the null ptr. |
| Otherwise use YY_NULL. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'origin/maint' |
| * origin/maint: |
| bump to 2012 in skeletons. |
| build: remove ancient Autoconf tests. |
| doc: c++: complete the location documentation. |
| c++: locations: provide convenience constructors. |
| c++: locations: remove useless "inline". |
| glr: do not use locations when they are not requested |
| c++: use nullptr for C++11. |
| build: simplify and improve the compiler warnings for tests. |
| gnulib: update. |
| maint: formatting changes. |
| NEWS: update. |
| Java: Fix syntax error handling without error token. |
| tests: beware of -pedantic on large #line numbers. |
| tests: when using the C++ compiler, use its flags too. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| bump to 2012 in skeletons. |
| * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, |
| * data/location.cc, data/yacc.c: Bump copyright year ranges. |
| |
| 2012-04-01 Akim Demaille <[email protected]> |
| |
| build: remove ancient Autoconf tests. |
| lib/subpipe.c was removed in 47fa574761319b0a422691223c9b8a9a72f36aa2. |
| |
| * m4/subpipe.m4: Remove. |
| * configure.ac (BISON_PREREQ_SUBPIPE): Remove. |
| |
| 2012-03-31 Akim Demaille <[email protected]> |
| |
| doc: c++: complete the location documentation. |
| * data/location.cc (position::initialize, location::initialize): |
| Also accept line and column, with default values. |
| * doc/bison.texinfo (C++ position, C++ location): New nodes. |
| Describe more thoroughly these classes. |
| Fix several Texinfo misuses. |
| |
| 2012-03-31 Akim Demaille <[email protected]> |
| |
| c++: locations: provide convenience constructors. |
| * data/location.cc (position::position): Accept file, line and |
| column as arguments with default values. |
| Always qualify initial line and column literals as unsigned. |
| (location::location): Provide convenience constructors. |
| |
| 2012-03-31 Akim Demaille <[email protected]> |
| |
| c++: locations: remove useless "inline". |
| * data/location.cc: "inline" is implicit when defining |
| methods in the class definition. |
| |
| 2012-03-31 Akim Demaille <[email protected]> |
| |
| glr: do not use locations when they are not requested |
| When the test suite runs with -O2 and warnings enabled, G++ |
| complains of locations being used, but not initialized. |
| The simplest is to not use locations. |
| |
| * data/glr.c (b4_locuser_formals, b4_locuser_args): New. |
| Use them when locations should not be used. |
| Use b4_locations_if where appropriate. |
| (yyuserAction): Modify the order to the arguments to make |
| it more alike the other routines, and to make use of |
| b4_locuser_args simpler. |
| |
| 2012-03-31 Akim Demaille <[email protected]> |
| |
| c++: use nullptr for C++11. |
| C++11 introduces "nullptr" which plays the role of C's NULL, in |
| replacement of "0". Fix the C++ skeletons to avoid warnings about |
| uses of "0" in place of "nullptr", and improve C skeletons to also use |
| this "nullptr" when compiled with a C++11 compiler. |
| |
| * configure.ac: More C++ warnings. |
| * NEWS (2.5.1): Document this. |
| * data/c++.m4, data/c.m4 (b4_null_define): New. |
| (b4_null): Use YY_NULL instead of 0. |
| * data/glr.c, data/lalr1.cc, data/location.cc, data/yacc.c: |
| Call b4_null_define/b4_null where appropriate. |
| Use YY_NULL instead of NULL. |
| * data/location.cc (initialize): Accept a default argument, |
| YY_NULL. |
| * tests/actions.at, tests/calc.at: Adjust. |
| |
| * data/glr.c, lib/libiberty.h, src/system.h (__attribute__): |
| Do not disable it when __STRICT_ANSI__ is defined, as, for |
| instance, it disables the __attribute__((unused)) which |
| protects us from some compiler warnings. |
| This was already done elsewhere in Bison, in 2001, see |
| 4a0d89369599a2cea01f4fbdf791f426a02cb5a3. |
| * tests/regression.at: Adjust output. |
| |
| 2012-03-30 Akim Demaille <[email protected]> |
| |
| build: simplify and improve the compiler warnings for tests. |
| * configure.ac (warn_common, warn_c, warn_cxx): New. |
| Use them to compute independently the options supported |
| by the C and C++ compilers. |
| Don't AC_SUBST the variables passed to gl_WARN_ADD: it |
| does it for us. |
| (WARN_CFLAGS_TEST, WARN_CXXFLAGS_TEST): Don't aggregate |
| $WARN_CFLAGS and $WARN_CXXFLAGS in them now, leave it |
| to atlocal.in. |
| (O0CFLAGS, O0CXXFLAGS): Move their definition to... |
| * tests/atlocal.in: here. |
| Be more systematic between C and C++. |
| Reorder to factor between variables. |
| Propagate all of the variables when --compile-c-with-cxx. |
| |
| 2012-03-30 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| |
| 2012-03-30 Akim Demaille <[email protected]> |
| |
| maint: formatting changes. |
| * src/system.h: Indent CPP directives using cppi. |
| |
| 2012-03-27 Akim Demaille <[email protected]> |
| |
| NEWS: update. |
| * NEWS: Java fixes, more about the doc changes, liby issues. |
| |
| 2012-03-27 Tim Landscheidt <[email protected]> |
| |
| Java: Fix syntax error handling without error token. |
| * data/lalr1.java (YYParser::parse): Here. |
| * tests/java.at: Add test case. |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: beware of -pedantic on large #line numbers. |
| * tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic |
| when compiling large canonical-LR parsers. |
| Reported by Tys Lefering. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: when using the C++ compiler, use its flags too. |
| * tests/local.at: Go for colors. |
| (--compile-c-with-cxx): New option. |
| We used to pass "CC=$CXX" as command line argument, |
| but it was not possible to adjust CFLAGS accordingly |
| in atlocal, since it is loaded before assignments on |
| the command line are honored (so that the command line |
| takes precedence). |
| * tests/atlocal.in: Implement it. |
| * tests/local.mk: Use it. |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: style changes in the Makefile. |
| * tests/local.mk: Prefer passing variable assignment by |
| the command line, instead of the environment, so that it |
| is reported in the logs. |
| Prefer single quotes for shell literal strings. |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: beware of -pedantic on large #line numbers. |
| * tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic |
| when compiling large canonical-LR parsers. |
| Reported by Tys Lefering. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: when using the C++ compiler, use its flags too. |
| * tests/local.at: Go for colors. |
| (--compile-c-with-cxx): New option. |
| We used to pass "CC=$CXX" as command line argument, |
| but it was not possible to adjust CFLAGS accordingly |
| in atlocal, since it is loaded before assignments on |
| the command line are honored (so that the command line |
| takes precedence). |
| * tests/atlocal.in: Implement it. |
| * tests/local.mk: Use it. |
| |
| 2012-03-24 Akim Demaille <[email protected]> |
| |
| tests: fix dependencies. |
| * tests/local.mk (check_SCRIPTS): Add atlocal and atconfig so |
| that they are properly updated before running tests. |
| (RUN_TESTSUITE_deps): New. |
| Use it to factor the dependencies of "*-check" targets, |
| especially those that don't bounce to the regular |
| "check-local" target, since then they don't benefit from the |
| proper dependencies (such as atlocal). |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| Merge remote-tracking branch 'fsf/maint' |
| * fsf/maint: (404 commits) |
| doc: update the --verbose report format. |
| doc: spell check. |
| doc: stmt, not stmnt. |
| doc: save width. |
| doc: reformat grammar snippets. |
| doc: use only @example, not @smallexample. |
| doc: style changes. |
| doc: minor fixes to "Understanding" section |
| tests: minor fixes/simplifications |
| tests: be robust to quote style. |
| maint: update gnulib. |
| tests: be robust to POSIXLY_CORRECT being defined. |
| doc: fix environment issues. |
| regen. |
| tests: fix regressions. |
| glr: fix ambiguity reports. |
| doc: stylistic improvements. |
| maint: address sc_prohibit_doubled_word. |
| maint: address sc_prohibit_always-defined_macros. |
| maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. |
| ... |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: spell fix. |
| * doc/bison.texinfo: here. |
| Reported by Tim Landscheidt. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: update the --verbose report format. |
| * doc/bison.texinfo (Understanding): Adjust to match the |
| current format. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: spell check. |
| * doc/bison.texinfo: here. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: stmt, not stmnt. |
| * doc/bison.texinfo: s/stmnt/stmt/g. This is a |
| much more common abbreviation for "statement". |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: save width. |
| * doc/bison.texinfo (Language and Grammar): Use the same |
| layout for an example in all the versions, i.e., keep |
| as general case what used to be used only for Info. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: reformat grammar snippets. |
| * doc/bison.texinfo: Convert the grammar examples to |
| use a narrower style. This helps fitting into the |
| @smallbook constraints. |
| http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: use only @example, not @smallexample. |
| * doc/bison.texinfo: Convert all @smallexamples into @examples. |
| Adjust layout where needed. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: style changes. |
| * doc/bison.texinfo: Avoid line width issues with TeX. |
| Upgrade ancient messages. |
| Move some comments to better looking places. |
| Add more @group. |
| (Mfcalc Symbol Table): Reduce variable scopes. |
| Prefer size_t for sizes. |
| Prefer declarations with an initial value. |
| Fix a @group environment. |
| |
| 2012-03-19 Paul Eggert <[email protected]> |
| |
| doc: minor fixes to "Understanding" section |
| * doc/bison.texinfo (Understanding): Minor wording fixes and |
| improvements. Fixes problems reported in |
| <https://savannah.gnu.org/patch/?4306>. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: update the --verbose report format. |
| * doc/bison.texinfo (Understanding): Adjust to match the |
| current format. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: spell check. |
| * doc/bison.texinfo: here. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: stmt, not stmnt. |
| * doc/bison.texinfo: s/stmnt/stmt/g. This is a |
| much more common abbreviation for "statement". |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: save width. |
| * doc/bison.texinfo (Language and Grammar): Use the same |
| layout for an example in all the versions, i.e., keep |
| as general case what used to be used only for Info. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: reformat grammar snippets. |
| * doc/bison.texinfo: Convert the grammar examples to |
| use a narrower style. This helps fitting into the |
| @smallbook constraints. |
| http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: use only @example, not @smallexample. |
| * doc/bison.texinfo: Convert all @smallexamples into @examples. |
| Adjust layout where needed. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| doc: style changes. |
| * doc/bison.texinfo: Avoid line width issues with TeX. |
| Upgrade ancient messages. |
| Move some comments to better looking places. |
| Add more @group. |
| (Mfcalc Symbol Table): Reduce variable scopes. |
| Prefer size_t for sizes. |
| Prefer declarations with an initial value. |
| Fix a @group environment. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| c.m4: better newline control with b4_parse_param_use. |
| * data/c.m4: Use m4_ifvaln instead of m4_ifval where |
| applicable. |
| (b4_parse_param_use): Switch order between two nested |
| "if"s to avoid useless empty lines. |
| Adjust callers to avoid useless lines. |
| |
| 2012-03-19 Akim Demaille <[email protected]> |
| |
| glr.c: remove (broken) support for YYPRINT. |
| YYPRINT uses yytoknum which glr does not define. Since YYPRINT |
| is considered obsolete, and did not work, don't fix its support, |
| remove it from glr.c. |
| |
| * data/c.m4 (yy_symbol_value_print): Use YYPRINT only for yacc.c. |
| * TODO: Done. |
| |
| 2012-03-17 Paul Eggert <[email protected]> |
| |
| doc: minor fixes to "Understanding" section |
| * doc/bison.texinfo (Understanding): Minor wording fixes and |
| improvements. Fixes problems reported in |
| <https://savannah.gnu.org/patch/?4306>. |
| |
| 2012-03-15 Akim Demaille <[email protected]> |
| |
| TODO: update. |
| |
| 2012-03-15 Akim Demaille <[email protected]> |
| |
| gnulib: update. |
| |
| 2012-03-13 Akim Demaille <[email protected]> |
| |
| tests: minor fixes/simplifications |
| * tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs, |
| quotation, and default value assignments. |
| Ensure a proper value to the numeric variables. |
| Reported by Lie Yan. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html |
| |
| 2012-03-13 Akim Demaille <[email protected]> |
| |
| maint: fix distcheck. |
| * examples/local.mk (MAINTAINERCLEANFILES): Complete, and rename as... |
| (CLEANFILES): this, |
| * examples/calc++/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk (CLEANFILES): Add the generated files. |
| |
| 2012-03-13 Akim Demaille <[email protected]> |
| |
| tests: minor fixes/simplifications |
| * tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs, |
| quotation, and default value assignments. |
| Ensure a proper value to the numeric variables. |
| Reported by Lie Yan. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| tests: be robust to POSIXLY_CORRECT being defined. |
| * tests/local.at (AT_BISON_CHECK_NO_XML): Check if |
| POSIXLY_CORRECT is defined, not if it is defined to 1. |
| Reported by Lie Yan. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| tests: be robust to quote style. |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>. |
| |
| * src/main.c (main): Define the quoting style we use. |
| * tests/atlocal.in: Use ASCII style quotes during the tests. |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| maint: update gnulib. |
| * gnulib: update. |
| * src/scan-gram.l: Don't use the (former version of) STREQ. |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| tests: remove quote magic from the bison test wrapper. |
| Basically, revert 4c4d35394d1bdb4dc3392482ab002bc111a3378f. |
| |
| * tests/bison.in: Leave bison's stderr as is. |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| tests: be robust to quote style. |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>. |
| |
| * src/main.c (main): Define the quoting style we use. |
| * tests/atlocal.in: Use ASCII style quotes during the tests. |
| |
| 2012-03-09 Akim Demaille <[email protected]> |
| |
| avoid direct strncmp calls. |
| Before this change, bison would accept either .tab and _tab equivalently, |
| whatever the current platform. Besides, it was not obeying everywhere |
| to the possible definition of TAB_EXT to something else than .tab. |
| |
| For consistency, handle only TAB_EXT (".tab" on non DJGPP platforms). |
| Support for "_tab" is neither documented, nor tested. |
| |
| * src/system.h (STRNCMP_LIT): New. |
| From Jim Meyering. |
| (STRPREFIX_LIT): New. |
| * src/files.c, src/getargs.c: Use it. |
| |
| 2012-03-06 Akim Demaille <[email protected]> |
| |
| tests: be robust to POSIXLY_CORRECT being defined. |
| * tests/local.at (AT_BISON_CHECK_NO_XML): Check if |
| POSIXLY_CORRECT is defined, not if it is defined to 1. |
| Reported by Lie Yan. |
| http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html |
| |
| 2012-02-24 Akim Demaille <[email protected]> |
| |
| build: comment changes. |
| * Makefile.am, examples/calc++/local.mk, examples/local.mk, |
| * examples/mfcalc/local.mk, examples/rpcalc/local.mk, |
| * lib/local.mk, src/local.mk, tests/local.mk: |
| Make the copyright licenses more uniform. |
| |
| 2012-02-24 Akim Demaille <[email protected]> |
| |
| build: fix more example extraction issues. |
| * Makefile.am (dist_TESTS): New. |
| (TESTS, EXTRA_DIST): Run and ship them. |
| * examples/calc++/local.mk: examples/calc++/calc++.stamp no longer |
| exists, don't try to ship it. |
| (.yy.stamp): New recipe. |
| Use it. |
| * examples/calc++/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk: |
| Don't ship the sources. |
| Adjust the CPPFLAGS: there is nothing left in srcdir. |
| (MAINTAINERCLEANFILES): Remove, now we are in builddir. |
| (TESTS): Rename as... |
| (dist_TESTS): this. |
| |
| 2012-02-24 Akim Demaille <[email protected]> |
| |
| maint: fix example extraction issues. |
| calc++: don't rely on Automake to compile a C++ parser. |
| |
| Basically, revert commit 609b3d8096fb0cc1fa4d908b6e1a860ced260bda, |
| Automake 1.11.3 is not safe enough for C++ parser. |
| |
| * examples/calc++/calc++-parser.hh: Remove. |
| * examples/calc++/local.mk (examples/calc++/calc++-parser.stamp): |
| New. |
| |
| examples: factor the extractions into a single step |
| |
| extexi had to be run in the extraction directory. Now, it can be |
| given the files with expected output directory. This allows to |
| use $(*_extracted) variables (before we had to list again their |
| members, but limited to their base names). In turn, this also |
| allows fusing the extraction recipes into a single one. |
| |
| Also, it is currently too hard (or requires too much duplication, |
| since Make wants all the occurrences of the files to be prefixed with |
| $(srcdir)/, which is something Automake cannot support for *_SOURCES) |
| to work in the source tree. So extract, and compile scanners and parsers |
| in the build tree. |
| |
| * examples/extexi (basename): New. |
| (BEGIN): Now "file_wanted" maps base name to extracted file name. |
| * examples/calc++/local.mk, examples/mfcalc/local.mk, |
| * examples/rpcalc/local.mk: Fuse extraction rules into... |
| * examples/local.mk: Here. |
| (extract, extracted): New. |
| |
| 2012-02-23 Akim Demaille <[email protected]> |
| |
| maint: use STREQ/STRNEQ. |
| * doc/bison.texinfo: Space change. |
| * src/system.h (STREQ, STRNEQ): New. |
| * src/files.c, src/ielr.c, src/lalr.c, src/muscle-tab.c, |
| * src/output.c, src/print.c, src/print_graph.c, |
| * src/reader.c, src/scan-skel.l, src/tables.c, |
| * src/uniqstr.c: |
| Use them. |
| * src/scan-gram.l: Do not use streq.h, use system.h's STREQ. |
| * cfg.mk: The documentation is an exception. |
| |
| 2012-02-23 Akim Demaille <[email protected]> |
| |
| doc: fix environment issues. |
| * doc/bison.texinfo: Do not use @verbatim, in particular when |
| we use @group inside. |
| Use @quotation instead of @display for frequently asked questions, |
| it looks much nicer. |
| |
| 2012-02-23 Akim Demaille <[email protected]> |
| |
| doc: fix environment issues. |
| * doc/bison.texinfo: Do not use @verbatim, in particular when |
| we use @group inside. |
| Use @quotation instead of @display for frequently asked questions, |
| it looks much nicer. |
| |
| 2012-02-23 Akim Demaille <[email protected]> |
| |
| regen. |
| * src/parse-gram.h, src/parse-gram.c: regen. |
| |
| 2012-02-23 Akim Demaille <[email protected]> |
| |
| tests: fix regressions. |
| Exit status 63 is documented for version-mismatch. |
| * bootstrap.conf (gnulib_modules): Remove sysexits. |
| * src/system.h (EX_MISMATCH): Define. |
| * src/parse-gram.y (version_check): Use it instead of EX_CONFIG. |
| |
| Missing includes. |
| * tests/calc.at, tests/named-refs.at: Include assert.h. |
| |
| 2012-02-22 Akim Demaille <[email protected]> |
| |
| maint: gitignore. |
| * examples/mfcalc/.gitignore, examples/rpcalc/.gitignore: Fix. |
| |
| 2012-02-21 Akim Demaille <[email protected]> |
| |
| regen. |
| * src/parse-gram.c, src/parse-gram.h: regen. |
| |
| 2012-02-21 Akim Demaille <[email protected]> |
| |
| tests: fix regressions. |
| Exit status 63 is documented for version-mismatch. |
| * bootstrap.conf (gnulib_modules): Remove sysexits. |
| * src/system.h (EX_MISMATCH): Define. |
| * src/parse-gram.y (version_check): Use it instead of EX_CONFIG. |
| |
| Missing includes. |
| * tests/calc.at, tests/named-refs.at: Include assert.h. |
| |
| 2012-02-21 Akim Demaille <[email protected]> |
| |
| tests: post-process stderr to normalize quotes. |
| * tests/bison.in: Save bison's stderr, and convert gettextized |
| quotes to plain ASCII. |
| |
| 2012-02-21 Akim Demaille <[email protected]> |
| |
| glr: fix ambiguity reports. |
| * tests/glr-regression.at (Ambiguity reports): New. |
| |
| 2012-02-21 Akim Demaille <[email protected]> |
| |
| glr: fix ambiguity reports. |
| Fix a regression introduced in commit |
| 783aa653f4ca70a75919c8516b950494c612cbfe. |
| |
| * tests/glr-regression.at (Ambiguity reports): New. |
| * data/glr.c (yyreportTree): Fix an offset error. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| doc: stylistic improvements. |
| * doc/bison.texinfo: Prefer "continue" to empty loop bodies. |
| Add some @group/@end group to avoid poor page breaks. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_prohibit_doubled_word. |
| * data/yacc.c, doc/bison.texinfo: Reword to avoid having to |
| disable that check. |
| * cfg.mk: No longer skip this test. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_prohibit_always-defined_macros. |
| * cfg.mk: No longer skip it, except where EXIT_SUCCESS is used |
| as a witness for stdlib.h. |
| Skip this test when appropriate. |
| * data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. |
| * bootstrap.conf (gnulib_modules): Require progname. |
| * src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it. |
| * cfg.mk (exclude): New. |
| Use it. |
| Skip lib/main.c for bindtextdomain and set_program_name. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: remove stray file. |
| * config.hin: Remove. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| doc: stylistic improvements. |
| * doc/bison.texinfo: Prefer "continue" to empty loop bodies. |
| Add some @group/@end group to avoid poor page breaks. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| doc: check the rpcalc. |
| * doc/bison.texinfo: Tag rpcalc.y snippets. |
| Add missing includes. |
| (Rpcalc Rules): Don't issue leading tabs. |
| Complete an Info menu. |
| Use @result. |
| * examples/rpcalc/local.mk: New. |
| * examples/rpcalc/rpcalc.test: New. |
| * examples/local.mk: Use them. |
| * examples/mfcalc/mfcalc.test: Remove dup test. |
| * examples/test: Disable debug traces. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| regen. |
| * src/parse-gram.c, src/parse-gram.h: Regen. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_prohibit_doubled_word. |
| * data/yacc.c, doc/bison.texinfo: Reword to avoid having to |
| disable that check. |
| * cfg.mk: No longer skip this test. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_prohibit_always-defined_macros. |
| * cfg.mk: No longer skip it, except where EXIT_SUCCESS is used |
| as a witness for stdlib.h. |
| Skip this test when appropriate. |
| * data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. |
| * bootstrap.conf (gnulib_modules): Require progname. |
| * src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it. |
| * cfg.mk (exclude): New. |
| Use it. |
| Skip lib/main.c for bindtextdomain and set_program_name. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: remove stray file. |
| * config.hin: Remove. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| bitset: fix an incorrect error message. |
| * lib/bitset_stats.c: here. |
| Reported by Stefano Lattarini. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address some syntax-issues remaining after cherry-picking from master. |
| * cfg.mk: Skip bison generated files, 2.5 is generating trailing |
| blanks. This is already fixed in master. |
| * tests/conflicts.at, tests/java.at: Fix white space issues. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| regen. |
| * src/parse-gram.c, src/parse-gram.h: Regen. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| bitset: fix an incorrect error message. |
| * lib/bitset_stats.c: here. |
| Reported by Stefano Lattarini. |
| |
| 2012-02-19 Jim Meyering <[email protected]> |
| |
| maint: reenable sc_m4_quote_check |
| * cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check. |
| * m4/dmalloc.m4: Add quotes. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: remove trailing empty lines. |
| * cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except |
| for parse-gram.h (generated). |
| * examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore, |
| * po/.gitignore, runtime-po/.gitignore: Remove trailing/leading |
| empty lines. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: avoid "magic number exit". |
| * cfg.mk (local-checks-to-skip): No longer skip it. |
| * bootstrap.conf (gnulib_modules): Add sysexits. |
| * doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y, |
| * src/system.h, tests/calc.at, tests/named-refs.at: Use assert |
| where appropriate instead of "if (...) exit". |
| Use symbolic exit status elsewhere. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: fix some syntax-check issues. |
| * cfg.mk (local-checks-to-skip): Remove |
| sc_prohibit_quotearg_without_use, sc_prohibit_strcmp, |
| sc_unmarked_diagnostics, sc_useless_cpp_parens. |
| (sc_unmarked_diagnostics): Skip DJGPP. |
| * data/yacc.c, src/LR0.c, src/closure.c, |
| * src/flex-scanner.h, src/gram.c, src/lalr.c, |
| * src/print-xml.c, src/print.c, src/print_graph.c, |
| * src/reader.c, src/reduce.c, src/tables.c: |
| Don't use parens with cpp's defined. |
| Remove useless includes. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: address a couple of syntax-check errors. |
| * cfg.mk (local-checks-to-skip): Remove sc_error_message_period |
| and sc_error_message_uppercase. |
| Address the uncovered issues. |
| * po/POTFILES.in: Add missing files. |
| * src/symtab.c: Remove useless includes. |
| * lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use |
| conformant error messages. |
| |
| 2012-02-19 Akim Demaille <[email protected]> |
| |
| maint: gnulib: upgrade. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: remove trailing empty lines. |
| * cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except |
| for parse-gram.h (generated). |
| * examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore, |
| * po/.gitignore, runtime-po/.gitignore: Remove trailing/leading |
| empty lines. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: regen. |
| * src/parse-gram.c, src/parse-gram.h: regen. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: avoid "magic number exit". |
| * cfg.mk (local-checks-to-skip): No longer skip it. |
| * bootstrap.conf (gnulib_modules): Add sysexits. |
| * doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y, |
| * src/system.h, tests/calc.at, tests/named-refs.at: Use assert |
| where appropriate instead of "if (...) exit". |
| Use symbolic exit status elsewhere. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: fix some syntax-check issues. |
| * cfg.mk (local-checks-to-skip): Remove |
| sc_prohibit_quotearg_without_use, sc_prohibit_strcmp, |
| sc_unmarked_diagnostics, sc_useless_cpp_parens. |
| (sc_unmarked_diagnostics): Skip DJGPP. |
| * data/yacc.c, src/LR0.c, src/closure.c, |
| * src/flex-scanner.h, src/gram.c, src/lalr.c, |
| * src/print-xml.c, src/print.c, src/print_graph.c, |
| * src/reader.c, src/reduce.c, src/tables.c: |
| Don't use parens with cpp's defined. |
| Remove useless includes. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: address a couple of syntax-check errors. |
| * cfg.mk (local-checks-to-skip): Remove sc_error_message_period |
| and sc_error_message_uppercase. |
| Address the uncovered issues. |
| * po/POTFILES.in: Add missing files. |
| * src/symtab.c: Remove useless includes. |
| * lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use |
| conformant error messages. |
| |
| 2012-02-18 Akim Demaille <[email protected]> |
| |
| maint: gnulib: upgrade. |
| |
| 2012-02-17 Akim Demaille <[email protected]> |
| |
| doc: mfcalc: fix includes. |
| * doc/bison.texinfo: math.h is needed early. |
| |
| 2012-02-17 Akim Demaille <[email protected]> |
| |
| examples: factor the test suite. |
| * examples/mfcalc/test, examples/calc++/test: Extract the |
| common bits into... |
| * examples/test: here. |
| (cwd): New. |
| Use it to avoid a race on the temporary directory. |
| Reported by Jim Meyering. |
| * examples/mfcalc/test, examples/calc++/test: Rename into... |
| * examples/mfcalc/mfcalc.test, examples/calc++/calc++.test: these. |
| * examples/calc++/local.mk, examples/mfcalc/local.mk, |
| * examples/local.mk: Adjust. |
| |
| 2012-02-17 Akim Demaille <[email protected]> |
| |
| examples: fix the test suites. |
| * examples/calc++/test, examples/mfcalc/test (me): Be more |
| meaningfull: include the example name. |
| (prog): Factor. |
| (run): Avoid printf, use echo. |
| Add missing parens. |
| (cleanup): New. |
| Call it on trap. |
| Remove the previous "rm" that did the cleanup. |
| Move into a private directory to avoid concurrency issues. |
| Reported by Jim Meyering. |
| |
| 2012-02-17 Jim Meyering <[email protected]> |
| |
| examples: link mfcalc with -lm for uses of pow, cos, atan, etc. |
| * examples/mfcalc/local.mk (examples_mfcalc_mfcalc_LDADD): Define. |
| |
| 2012-02-16 Akim Demaille <[email protected]> |
| |
| mfcalc: extract and exercise. |
| * examples/mfcalc/local.mk, examples/mfcalc/test: New, |
| based on calc++'s ones. |
| * examples/local.mk: Include mfcalc/local.mk. |
| |
| 2012-02-16 Akim Demaille <[email protected]> |
| |
| calc++: factor for other extracted tests. |
| * Makefile.am (TESTS, check_PROGRAMS): Initialize here. |
| * examples/local.mk (doc, extexi): Define here. |
| * examples/calc++/local.mk: Adjust accordingly. |
| * configure.ac: Ask for parallel-tests (for the way the logs |
| are handled). |
| * examples/calc++/test: As a consequence, always be verbose. |
| ($prog): New. |
| (run): Use it. |
| Sort the tests in a more natural order (simplest first). |
| |
| 2012-02-16 Akim Demaille <[email protected]> |
| |
| doc: mfcalc: send errors to stderr. |
| * doc/bison.texinfo (Mfcalc Lexer): New. |
| (Mfcalc Main): Move the definition of main and yyerror here, for |
| clarity. |
| Let yyerror report on stderr. |
| |
| 2012-02-16 Akim Demaille <[email protected]> |
| |
| doc: fix mfcalc code. |
| * doc/bison.texinfo (Multi-function Calc): Add missing includes. |
| Fix the rendering of the result: use @result and remove the |
| initial tabulation in the actual code. |
| Fix stylistic issues: avoid the , operator. |
| Add extexi mark-up. |
| * examples/extexi: Also support @smallexample. |
| |
| 2012-02-16 Akim Demaille <[email protected]> |
| |
| tests: c++: stylistic changes. |
| * tests/c++.at: Don't use void for incoming arguments. |
| Prefer cstdlib to stdlib.h. |
| |
| 2012-02-16 Jim Meyering <[email protected]> |
| |
| tests: avoid c++ failure due to lack of getenv decl |
| * tests/c++.at (Syntax error as exception): Avoid spurious failure |
| at least when compiling with g++-4.7.x due to lack of declaration |
| of getenv. Include <stdlib.h>. |
| |
| 2012-02-15 Akim Demaille <[email protected]> |
| |
| maint: rely on Automake for parsers. |
| * Makefile.am (AM_YFLAGS): Automake looks for "-d" alone. |
| Move other options in here. |
| (BISON): New. |
| (YACC): Use it. |
| (bison_SOURCES): Now that automake can see `-d' in AM_YFLAGS, |
| we can rely on it to compile and ship the parser header |
| files. |
| |
| Based on commit 737406a32c201471699bfa0843d1f432f3ec29ab and |
| commit 3d6ca339083c278d907c9f030f4ba6bc5ecb07f2. |
| |
| 2012-02-15 Akim Demaille <[email protected]> |
| |
| maint: trust Automake for parser headers. |
| * examples/calc++/local.mk, src/local.mk: Now that automake |
| can see `-d' in AM_YFLAGS, we can rely on it to compile |
| and ship the parser header files. |
| |
| 2012-02-15 Akim Demaille <[email protected]> |
| |
| maint: help Automake reading Yacc flags. |
| * Makefile.am (AM_YFLAGS): Automake looks for "-d" alone. |
| |
| 2012-02-15 Akim Demaille <[email protected]> |
| |
| calc++: rely on Automake. |
| Rely on $(YACC) being the bison being built, and let Automake do the |
| rest. It turned out to be much more difficult than anticipated, for |
| various reasons, including some bad behavior from Automake 1.11.2 |
| which (i) generates calc++-parser.h instead of calc++-parser.hh, and |
| (ii) leaves an #include "y.tab.h" in the generated parser instead |
| of #include "calc++-parser.h". |
| |
| The authors of Automake appear to be aware of the problem, |
| http://lists.gnu.org/archive/html/automake/2011-05/msg00008.html |
| so a simple work around will suffice for the time being. |
| |
| * examples/calc++/y.tab.h, examples/calc++/calc++-parser.hh: New. |
| To work around Automake 1.11.2 issues. |
| * examples/calc++/local.mk: Remove all the rules for compilation |
| with bison, leave them to Automake. |
| So provide it with "calc++-parse.yy" as a source file. |
| (calc_sources_generated, calc_sources_extracted): Rename as. |
| (calc_generated, calc_extracted): these. |
| (calc_sources): New. |
| Fix them. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: tidy the Makefile a bit. |
| * src/local.mk: Put yacc related variables together. |
| (AUTOMAKE_OPTIONS): Move to... |
| * Makefile.am: here. |
| Remove an old Emacs mode request which disables Automake support. |
| * src/local.mk (YACC, AM_YFLAGS): Move to... |
| * Makefile.am: here, as they will be used by other local.mks. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: de-recurse the handling of examples |
| The directory was still using a local Makefile.am because it provides |
| "scoped" Make variables: these examples are not meant to use the same |
| CPPFLAGS etc. If we were to use the same -I set, we'd pick up |
| gnulib's stdio.h for instance, which we do not want for these simple |
| examples. |
| |
| Yet, as a result, the dependencies are less accurate, there is code |
| duplication, etc. This is especially perceptible when trying to |
| extract more examples from the documentation, as will be done in |
| forthcoming changes. |
| |
| In order to make the tuning of CPPFLAGS easier, discard the predefined |
| -I from Automake. |
| |
| * examples/calc++/Makefile.am: Rename as... |
| * examples/calc++/local.mk: this. |
| Adjust the paths which are now rooted in top_srcdir/top_builddir. |
| Handle BISON_CXX_WORKS here, instead of the too crude previous |
| approach that completely discarded the whole directory. |
| ($(BISON)): Remove now useless bouncing recipe. |
| (calc___CPPFLAGS): New. |
| Stay away from -Ilib. |
| * Makefile.am, configure.ac, examples/local.mk, |
| * examples/calc++/test: Adjust. |
| |
| * configure.ac: Pass nostdinc to Automake. |
| * src/local.mk, lib/local.mk (AM_CPPFLAGS): Move to... |
| * Makefile.am: here. |
| |
| * src/local.mk, examples/calc++/Makefile.am (BISON, BISON_IN): Factor |
| to... |
| * Makefile.am: here. |
| * tests/local.mk: Use it. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| variant: fix the example. |
| * examples/variant.yy: Adjust to "assert" being now |
| "parse.assert". |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: more authors. |
| * AUTHORS: here. |
| Suggested by Tys Lefering. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: add license headers. |
| * examples/calc++/test, examples/variant.yy, AUTHORS, THANKS, |
| * tests/atlocal.in, tests/bison.in: Add license headers. |
| Reported by Tys Lefering. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: remove obsolete file. |
| * etc/make-ChangeLogs: Remove (used for rcs to cvs migration!). |
| Reported by Tys Lefering. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: more authors. |
| * AUTHORS: here. |
| Suggested by Tys Lefering. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: add license headers. |
| * examples/calc++/test, examples/variant.yy, AUTHORS, THANKS, |
| * tests/atlocal.in, tests/bison.in: Add license headers. |
| Reported by Tys Lefering. |
| |
| 2012-02-14 Akim Demaille <[email protected]> |
| |
| maint: remove obsolete file. |
| * etc/make-ChangeLogs: Remove (used for rcs to cvs migration!). |
| Reported by Tys Lefering. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| lalr1.cc: also handle syntax_error when calling yylex. |
| * data/lalr1.cc (parse): Catch syntax_error around yylex and |
| forward them to errlab1. |
| * tests/c++.at (Syntax error as exception): Check support for |
| syntax exceptions raised by the scanner. |
| * NEWS, doc/bison.texinfo: Document it. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| tests: lalr1.cc: check syntax_error. |
| * tests/c++.at (Syntax error as exception): New. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| tests: don't require locations uselessly. |
| * tests/c++.at (Syntax error discarding no lookahead): Contrary to |
| 2.5, C++ parsers can work without locations. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| maint: more silent rules. |
| * tests/local.mk (TESTSUITE_AT): Include plackage.m4. |
| Adjust dependencies. |
| Make testsuite.at its first argument. |
| (package.m4): Be silent. |
| (testsuite): Be silent. |
| Use $<. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| skeletons: simplify the protections against "unused" warnings. |
| * data/c.m4 (b4_parse_param_use): Also accept optional arguments |
| to "use". |
| Simplify callers. |
| * data/glr.c (yyuserAction): Simplify use of b4_parse_param_use. |
| (yy_reduce_print): Don't use b4_parse_param_use, as all the arguments |
| _are_ used. |
| * data/lalr1.cc (YY_SYMBOL_PRINT): Even when disabled, "use" the |
| symbol argument. |
| This neutralizes a warning in yypush_ when there are no symbols |
| with a semantic values. |
| (yy_destroy_): Remove useless "use" of yymsg. |
| |
| 2012-02-10 Akim Demaille <[email protected]> |
| |
| glr: formatting changes. |
| * data/glr.c: Split long strings. |
| |
| 2012-02-08 Akim Demaille <[email protected]> |
| |
| use a more consistent quoting style. |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>. |
| Use quotearg as often as possible instead of leaving the choice of |
| the quotes to the translators. Use shorter messages. Factor similar |
| messages to a single format, to make localization easier. |
| |
| * src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c |
| * src/scan-code.l, src/scan-gram.l, src/symtab.c: |
| Use quote() or quotearg_colon() on printf arguments instead of |
| quotes in the format string. |
| * data/bison.m4: Keep sync with the changes in muscle-tab.c. |
| |
| * tests/skeletons.at, tests/input.at, tests/regression.at: Adjust |
| expected messages. |
| |
| 2012-02-08 Akim Demaille <[email protected]> |
| |
| use a more consistent quoting style. |
| See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>. |
| Use quotearg as often as possible instead of leaving the choice of |
| the quotes to the translators. Use shorter messages. Factor similar |
| messages to a single format, to make localization easier. |
| |
| * src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c |
| * src/scan-code.l, src/scan-gram.l, src/symtab.c: |
| Use quote() or quotearg_colon() on printf arguments instead of |
| quotes in the format string. |
| * data/bison.m4: Keep sync with the changes in muscle-tab.c. |
| |
| * tests/skeletons.at, tests/input.at, tests/regression.at: Adjust |
| expected messages. |
| |
| 2012-01-31 Jim Meyering <[email protected]> |
| |
| maint: reenable sc_m4_quote_check |
| * cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check. |
| * m4/dmalloc.m4: Add quotes. |
| |
| 2012-01-31 Jim Meyering <[email protected]> |
| |
| maint: force "make syntax-check" to pass by skipping failing tests |
| * cfg.mk (local-checks-to-skip): Skip all currently-failing tests. |
| Remove changelog-check; it's long gone. |
| |
| 2012-01-31 Akim Demaille <[email protected]> |
| |
| maint: remove stray debug code. |
| * src/Makefile.am (echo): Remove. |
| |
| 2012-01-31 Akim Demaille <[email protected]> |
| |
| maint: space changes. |
| * src/Makefile.am: Use 2 leading spaces for variable definition |
| spreading over several lines. |
| |
| 2012-01-31 Akim Demaille <[email protected]> |
| |
| maint: more silent-rules. |
| * doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use |
| $(AM_V_GEN) and $(AM_V_at) where appropriate. |
| |
| 2012-01-31 Jim Meyering <[email protected]> |
| |
| do not ignore errors like ENOSPC,EIO when writing to stdout |
| Standard output was never explicitly closed, so we could not |
| detect failure. Thus, bison would ignore the errors of writing |
| to a full file system and getting an I/O error on write, but only |
| for standard output, e.g., for --print-localedir, --print-datadir, |
| --help and some verbose output. |
| Now, "bison --print-datadir > /dev/full" reports the write failure: |
| bison: write error: No space left on device |
| Before, it would exit 0 with no diagnostic, implying success. |
| This is not an issue for "--output=-" or the other FILE-accepting |
| command-line options, because unlike most other GNU programs, |
| an output file argument of "-" is treated as the literal "./-", |
| rather than standard output. |
| * bootstrap.conf (gnulib_modules): Add closeout. |
| * src/main.c: Include "closeout.h". |
| Use atexit to ensure we close stdout. |
| * .gitignore: Ignore new files pulled in via gnulib-tool. |
| |
| 2012-01-31 Akim Demaille <[email protected]> |
| |
| maint: more silent-rules. |
| * doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use |
| $(AM_V_GEN) and $(AM_V_at) where appropriate. |
| |
| 2012-01-29 Jim Meyering <[email protected]> |
| |
| do not ignore errors like ENOSPC,EIO when writing to stdout |
| Standard output was never explicitly closed, so we could not |
| detect failure. Thus, bison would ignore the errors of writing |
| to a full file system and getting an I/O error on write, but only |
| for standard output, e.g., for --print-localedir, --print-datadir, |
| --help and some verbose output. |
| Now, "bison --print-datadir > /dev/full" reports the write failure: |
| bison: write error: No space left on device |
| Before, it would exit 0 with no diagnostic, implying success. |
| This is not an issue for "--output=-" or the other FILE-accepting |
| command-line options, because unlike most other GNU programs, |
| an output file argument of "-" is treated as the literal "./-", |
| rather than standard output. |
| * bootstrap.conf (gnulib_modules): Add closeout. |
| * src/main.c: Include "closeout.h". |
| Use atexit to ensure we close stdout. |
| * .gitignore: Ignore new files pulled in via gnulib-tool. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| tests: fix expected output. |
| * tests/actions.at (YYBACKUP): here. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| tests: fix expected output. |
| * tests/actions.at (YYBACKUP): here. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: fix configure.ac |
| Fix commit 1890a2a816dab86c23cc1d0af8fac3986335deb7. |
| |
| * configure.ac: Fix variable assignment. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| yacc: fix YYBACKUP. |
| Reported by David Kastrup: |
| https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html. |
| |
| * data/yacc.c (YYBACKUP): Accept rhs size. |
| Restore the proper state value. |
| * TODO (YYBACKUP): Make it... |
| * tests/actions.at: a new test case. |
| * NEWS, THANKS: Update. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: update TODO. |
| * TODO (Labeling the symbols): Remove, it's done ("Name references"). |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: update THANKS. |
| * THANKS: Update Tys's address, on his request. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: fix --gcc-warnings support. |
| * configure.ac: Use enable_gcc_warnings instead of enableval, |
| which is valid only with AC_ARG_ENABLE. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: silent-rules. |
| * configure.ac: Ask for silent-rules support. |
| Enable it by default. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| maint: remove trailing blanks. |
| * src/scan-code.l: Here. |
| |
| 2012-01-26 Akim Demaille <[email protected]> |
| |
| yacc: fix YYBACKUP. |
| Reported by David Kastrup: |
| https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html. |
| |
| * data/yacc.c (YYBACKUP): Accept rhs size. |
| Restore the proper state value. |
| * TODO (YYBACKUP): Make it... |
| * tests/actions.at: a new test case. |
| * NEWS, THANKS: Update. |
| |
| 2012-01-25 Akim Demaille <[email protected]> |
| |
| maint: update TODO. |
| * TODO (Labeling the symbols): Remove, it's done ("Name references"). |
| |
| 2012-01-25 Akim Demaille <[email protected]> |
| |
| maint: update THANKS. |
| * THANKS: Update Tys's address, on his request. |
| |
| 2012-01-25 Akim Demaille <[email protected]> |
| |
| maint: fix --gcc-warnings support. |
| * configure.ac: Use enable_gcc_warnings instead of enableval, |
| which is valid only with AC_ARG_ENABLE. |
| |
| 2012-01-25 Akim Demaille <[email protected]> |
| |
| maint: silent-rules. |
| * configure.ac: Ask for silent-rules support. |
| Enable it by default. |
| |
| 2012-01-25 Paul Eggert <[email protected]> |
| |
| tests: port to Solaris 10 'diff -u' |
| * tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10, |
| where "diff -u X X" outputs "No differences encountered" |
| instead of outputting nothing. Reported by Tomohiro Suzuki in |
| <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>. |
| |
| 2012-01-25 Jim Meyering <[email protected]> |
| |
| build: avoid possibly-replaced fprintf in liby-source, yyerror.c |
| * lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf |
| with a mere "%s\n" format. Always return 0 now, on the assumption |
| that the return value was never used anyway. |
| Don't include <config.h> after all. This avoids a problem |
| reported by Thiru Ramakrishnan in |
| http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html |
| * cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test. |
| * THANKS: Update. |
| |
| 2012-01-24 Paul Eggert <[email protected]> |
| |
| tests: port to Solaris 10 'diff -u' |
| * tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10, |
| where "diff -u X X" outputs "No differences encountered" |
| instead of outputting nothing. Reported by Tomohiro Suzuki in |
| <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>. |
| |
| 2012-01-24 Jim Meyering <[email protected]> |
| |
| maint: generate ChangeLog from git log |
| * Makefile.am (gen-ChangeLog): New rule. |
| (dist-hook): Depend on it. |
| (EXTRA_DIST): Distribute the two ChangeLog-* files. |
| * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. |
| (bootstrap_post_import_hook): Ensure that ChangeLog exists. |
| * build-aux/git-log-fix: New file. |
| * ChangeLog-2012: Renamed ... |
| * ChangeLog: ... from this. |
| * ChangeLog-1998: Renamed ... |
| * OChangeLog: ...from this |
| * .gitignore: Add ChangeLog. |
| |
| 2012-01-24 Jim Meyering <[email protected]> |
| |
| change more quotes in source, and adjust tests to match |
| Run this command to change each `%s' to '%s' in source directories: |
| git grep -l '`%s'\' src djgpp data \ |
| |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g' |
| * data/bison.m4: Affected per the above. |
| * djgpp/subpipe.c: Likewise. |
| * src/files.c: Likewise. |
| * src/getargs.c: Likewise. |
| * src/muscle-tab.c: Likewise. |
| * src/reader.c: Likewise. |
| * tests/glr-regression.at: Adjust to match. |
| * tests/input.at: Likewise. |
| * tests/push.at: Likewise. |
| * tests/skeletons.at: Likewise. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| quote consistently and make tests pass with new quoting from gnulib |
| Updating to gnulib pulled in new quote and quotarg modules, |
| by which quoting is now done like 'this' rather than `this'. |
| That change induces many "make check" test failures. This change |
| adapts code and tests so that "make check" passes once again. |
| * src/scan-code.l: Quote like 'this', not like `this'. |
| * src/scan-gram.l: Likewise. |
| * src/symtab.c: Likewise. |
| * tests/actions.at: Adjust tests to match. |
| * tests/input.at: Likewise. |
| * tests/named-refs.at: Likewise. |
| * tests/output.at: Likewise. |
| * tests/regression.at: Likewise. |
| * lib/.gitignore: Regenerate. |
| * m4/.gitignore: Likewise. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| build: avoid possibly-replaced fprintf in liby-source, yyerror.c |
| * lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf |
| with a mere "%s\n" format. Always return 0 now, on the assumption |
| that the return value was never used anyway. |
| Don't include <config.h> after all. This avoids a problem |
| reported by Thiru Ramakrishnan in |
| http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html |
| * cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test. |
| * THANKS: Update. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| build: update gnulib and autoconf submodules to latest (cherry picked from commit 728415f885e5cb8e518c8576fa6e1f541e384130) |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| build: manually update bootstrap from gnulib, and adapt |
| Updating to the latest bootstrap from gnulib involves more of a |
| change than usual, and updating to the latest gnulib would involve |
| its own set of challenges with the upcoming quoting changes, so |
| we update bootstrap manually and separately. |
| * bootstrap: Update from gnulib. |
| * lib/Makefile.am: Initialize more variables to empty, so that gnulib.mk |
| can append to them with "+=". |
| * bootstrap.conf (gnulib_mk_hook): Remove. No longer honored. |
| (gnulib_tool_option_extras): Generate gnulib.mk. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| maint: include <config.h> first |
| * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): |
| Exempt data/glr.c and data/yacc.c from the include-config.h-first |
| requirement. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| build: include <config.h> from lib/yyerror.c |
| * lib/yyerror.c: Include <config.h>. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| maint: list djgpp/subpipe.c in po/POTFILES.in |
| * po/POTFILES.in: Add djgpp/subpipe.c. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| maint: placate the space-TAB syntax-check |
| * cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt |
| tests/input.at and tests/c++.at, since they appear to use |
| SP-TAB sequences deliberately. |
| * OChangeLog: Remove space-before-TAB. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| doc: correct typo: s/can not/cannot/ |
| * doc/bison.texinfo (Bug Reports): s/can not/cannot/ |
| And remove trailing blanks. |
| |
| 2012-01-23 Jim Meyering <[email protected]> |
| |
| build: generalize etc/prefix-gnulib-mk |
| This script hard-coded "libbison" and lib/gnulib.mk. |
| Adjust the script to require a --lib-name=$gnulib_name option |
| and a FILE argument like lib/$gnulib_mk. |
| Also add support for --help and --version. |
| * etc/prefix-gnulib-mk: Generalize. |
| * bootstrap.conf (bootstrap_post_import_hook): Update its invocation. |
| |
| 2012-01-22 Jim Meyering <[email protected]> |
| |
| maint: get gpl-3.0 from gnulib |
| * bootstrap.conf (gnulib_modules): Add gpl-3.0. |
| * doc/gpl-3.0.texi: Remove from version control, now that |
| we get it via gnulib. |
| * doc/.gitignore: Ignore it. |
| |
| 2012-01-20 Akim Demaille <[email protected]> |
| |
| maint: be more robust to gnulib's FOO_H variables. |
| * configure.ac: Instead of listing gnulib's variables, look for |
| them among AC_SUBST variables. |
| |
| 2012-01-20 Jim Meyering <[email protected]> |
| |
| maint: generate ChangeLog from git log |
| * Makefile.am (gen-ChangeLog): New rule. |
| (dist-hook): Depend on it. |
| (EXTRA_DIST): Distribute the two ChangeLog-* files. |
| * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. |
| (bootstrap_post_import_hook): Ensure that ChangeLog exists. |
| * build-aux/git-log-fix: New file. |
| * ChangeLog-2012: Renamed ... |
| * ChangeLog: ... from this. |
| * ChangeLog-1998: Renamed ... |
| * OChangeLog: ...from this |
| * .gitignore: Add ChangeLog. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| change more quotes in source, and adjust tests to match |
| Run this command to change each `%s' to '%s' in source directories: |
| git grep -l '`%s'\' src djgpp data \ |
| |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g' |
| * data/bison.m4: Affected per the above. |
| * djgpp/subpipe.c: Likewise. |
| * src/files.c: Likewise. |
| * src/getargs.c: Likewise. |
| * src/muscle-tab.c: Likewise. |
| * src/reader.c: Likewise. |
| * tests/glr-regression.at: Adjust to match. |
| * tests/input.at: Likewise. |
| * tests/push.at: Likewise. |
| * tests/skeletons.at: Likewise. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| quote consistently and make tests pass with new quoting from gnulib |
| Updating to gnulib pulled in new quote and quotarg modules, |
| by which quoting is now done like 'this' rather than `this'. |
| That change induces many "make check" test failures. This change |
| adapts code and tests so that "make check" passes once again. |
| * src/scan-code.l: Quote like 'this', not like `this'. |
| * src/scan-gram.l: Likewise. |
| * src/symtab.c: Likewise. |
| * tests/actions.at: Adjust tests to match. |
| * tests/input.at: Likewise. |
| * tests/named-refs.at: Likewise. |
| * tests/output.at: Likewise. |
| * tests/regression.at: Likewise. |
| * lib/.gitignore: Regenerate. |
| * m4/.gitignore: Likewise. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| build: update gnulib and autoconf submodules to latest |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| build: manually update bootstrap from gnulib, and adapt |
| Updating to the latest bootstrap from gnulib involves more of a |
| change than usual, and updating to the latest gnulib would involve |
| its own set of challenges with the upcoming quoting changes, so |
| we update bootstrap manually and separately. |
| * bootstrap: Update from gnulib. |
| * Makefile.am: Initialize more variables to empty, so that gnulib.mk |
| can append to them with "+=". |
| * bootstrap.conf (gnulib_mk_hook): Remove. No longer honored. |
| (bootstrap_post_import_hook): Instead, run the same command, |
| etc/prefix-gnulib-mk lib/$gnulib_mk, via slightly different API. |
| Temporarily disable "bootstrap_sync=true". |
| * etc/prefix-gnulib-mk: Don't prepend "lib/" to tokens like -I$(... |
| or "\". |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| maint: include <config.h> first |
| * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): |
| Exempt data/glr.c and data/yacc.c from the include-config.h-first |
| requirement. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| build: include <config.h> from lib/yyerror.c |
| * lib/yyerror.c: Include <config.h>. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| maint: list djgpp/subpipe.c in po/POTFILES.in |
| * po/POTFILES.in: Add djgpp/subpipe.c. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| maint: placate the space-TAB syntax-check |
| * cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt |
| tests/input.at and tests/c++.at, since they appear to use |
| SP-TAB sequences deliberately. |
| * OChangeLog: Remove space-before-TAB. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| maint: remove final trailing space |
| * src/scan-gram.l (%): Remove single space at end of line. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| maint: get gpl-3.0 from gnulib |
| * bootstrap.conf (gnulib_modules): Add gpl-3.0. |
| * doc/gpl-3.0.texi: Remove from version control, now that |
| we get it via gnulib. |
| * doc/.gitignore: Ignore it. |
| |
| 2012-01-19 Jim Meyering <[email protected]> |
| |
| doc: correct typo: s/can not/cannot/ |
| * doc/bison.texinfo (Bug Reports): s/can not/cannot/ |
| And remove trailing blanks. |