ChangeLog (bison-3.8.1.tar.xz) | : | ChangeLog (bison-3.8.2.tar.xz) | ||
---|---|---|---|---|
2021-09-25 Akim Demaille <akim.demaille@gmail.com> | ||||
version 3.8.2 | ||||
* NEWS: Record release date. | ||||
2021-09-25 Akim Demaille <akim.demaille@gmail.com> | ||||
tests: Apple clang issues warning on C++11 features | ||||
$ cat /tmp/foo.cc | ||||
using foo = int; | ||||
foo f; | ||||
$ clang++ -Wc++11-extensions -c /tmp/foo.cc | ||||
/tmp/foo.cc:1:13: warning: alias declarations are a C++11 extension [-Wc+ | ||||
+11-extensions] | ||||
using foo = int; | ||||
^ | ||||
1 warning generated. | ||||
$ clang++ --version | ||||
Apple clang version 11.0.0 (clang-1100.0.33.17) | ||||
Target: x86_64-apple-darwin18.7.0 | ||||
Thread model: posix | ||||
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/Xcode | ||||
Default.xctoolchain/usr/bin | ||||
* tests/local.at (AT_COMPILE_CXX): Make sure -std=c++11 is passed when | ||||
running glr2.cc. It may be overridden by another flag in CXXFLAGS | ||||
afterwards. | ||||
2021-09-25 Akim Demaille <akim.demaille@gmail.com> | ||||
avoid using atoi | ||||
* cfg.mk: Disable sc_indent as auto indent is too invasive for now. | ||||
Enable sc_prohibit_atoi_atof, except where we don't care. | ||||
* src/location.c, src/muscle-tab.c: Use strtol instead of atoi. | ||||
2021-09-24 Akim Demaille <akim.demaille@gmail.com> | ||||
news: update | ||||
2021-09-18 Akim Demaille <akim.demaille@gmail.com> | ||||
gnulib: update | ||||
To get | ||||
commit 7818455627c5e54813ac89924b8b67d0bc869146 | ||||
Author: Bruno Haible <bruno@clisp.org> | ||||
Date: Fri Sep 17 22:22:50 2021 +0200 | ||||
threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0. | ||||
Reported by Brian Inglis via Akim Demaille in | ||||
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00063.html> | ||||
. | ||||
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on | ||||
Cygwin. | ||||
2021-09-18 Akim Demaille <akim.demaille@gmail.com> | ||||
c++: use YY_NOEXCEPT where it helps | ||||
Suggested by Don Macpherson. | ||||
<https://github.com/akimd/bison/issues/80> | ||||
* data/skeletons/c++.m4, data/skeletons/glr2.cc, | ||||
* data/skeletons/lalr1.cc, data/skeletons/stack.hh: Use YY_NOEXCEPT | ||||
where it helps constructors. | ||||
2021-09-13 Akim Demaille <akim.demaille@gmail.com> | ||||
gnulib: update | ||||
2021-09-13 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: semantic_option: use a symbol | ||||
* data/skeletons/c++.m4 (basic_symbol): Add assignment operators. | ||||
* data/skeletons/glr2.cc (semantic_option): Replace yytoken, yyvalue | ||||
and yylocation by yyla. | ||||
2021-09-13 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: don't publish move ctor to lalr1.cc | ||||
These operators were introduced in "c++: add move assignments to the | ||||
symbol type" (fdaedc780af0dd678a4f4fa3175a201a553be20a) for glr2.cc. | ||||
* data/skeletons/c++.m4: Define them for glr2.cc only. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: simplify semantic_option | ||||
* data/skeletons/glr2.cc (semantic_option): Simplify the rule-based | ||||
constructor. This shows that it should be easy to use a symbol_kind, | ||||
instead of the kind/value/location triple. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: we require C++11 | ||||
* data/skeletons/glr2.cc: So no need for C++98 compatibility. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: introduse b4_glr2_cc_if | ||||
* data/skeletons/bison.m4 (b4_glr2_cc_if): Intro. | ||||
* data/skeletons/c++.m4: use. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: don't pass %parse-param to destroy | ||||
I regret that %destructor and %printer give access to the %parse-param | ||||
in lalr1.cc, since that prevents them from being implemented as a | ||||
simple destructor and operator<<. Let's not repeat the mistake in | ||||
glr2.cc. In addition, fixes a name conflict we have currently in | ||||
tests 566 568 570 657: | ||||
calc.cc:1395:85: error: declaration shadows a field of 'calc::parser | ||||
' [-Werror,-Wshadow] | ||||
void glr_state::destroy (char const* yymsg, calc::parser& yyparser, | ||||
semantic_value *result, int *count, int *nerrs) | ||||
^ | ||||
calc.hh:441:21: note: previous declaration is here | ||||
semantic_value *result; | ||||
^ | ||||
With this commit, the whole test suite passes for glr2.cc. | ||||
* data/skeletons/glr2.cc (glr_state::destroy): Don't take the user | ||||
arguments. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: kill trailing white spaces | ||||
Fixes several calc tests. | ||||
Tests 566 568 570 657 still fail because of a name clash when using | ||||
%parse-param: | ||||
calc.cc:1395:85: error: declaration shadows a field of 'calc::parser' | ||||
[-Werror,-Wshadow] | ||||
void glr_state::destroy (char const* yymsg, calc::parser& yyparser, s | ||||
emantic_value *result, int *count, int *nerrs) | ||||
^ | ||||
calc.hh:441:21: note: previous declaration is here | ||||
semantic_value *result; | ||||
^ | ||||
* data/skeletons/glr2.cc: Fix indentation/trailing spaces. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: check linking conflicts | ||||
* tests/headers.at (Several Headers): Link two glr2.cc parsers. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: move strong_index_alias into the unnamed namespace | ||||
* data/skeletons/glr2.cc: here. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: use only symbol_kind_type, not yysymbol_kind_t | ||||
* data/skeletons/glr2.cc: here. | ||||
And prefer the unnamed namespace to static. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: prefer using, and remove useless type aliases | ||||
* data/skeletons/glr2.cc: here. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: put glr_state_set and glr_stack_item in unnamed namespace | ||||
* data/skeletons/glr2.cc: here. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: move state_stack into the unnamed namespace | ||||
* data/skeletons/glr2.cc: here. | ||||
Prefer `using` to `typedef`, this is C++11. | ||||
Use the type alias we introduced. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: style: clarify control flow | ||||
* data/skeletons/glr2.cc (yypreference): Be more functional-style. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: move glr_stack and glr_state into the parser class | ||||
In order to be able to link several glr2.cc parser together, we cannot | ||||
have glr_stack and glr_state be in no namespace. Putting them in the | ||||
unnamed namespace is not doable, since we need to fwd declare them in | ||||
the parser. Putting them in the specified namespace is not enough | ||||
either, since some users would like to be able to put several parsers | ||||
in the same name, only differing by the class name. | ||||
* data/skeletons/glr2.cc (glr_state, glr_stack): Move into yy::parser. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: put create_state_set_index in unnamed namespace | ||||
* data/skeletons/glr2.cc: here. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: prefer unnamed namespace to 'static' | ||||
* data/skeletons/glr2.cc: here. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: put semantic_option into an unnamed namespace | ||||
If we link several glr2.cc parsers together, we get linking failures | ||||
because of duplicate symbols. | ||||
* data/skeletons/glr2.cc (semantic_option::indexIn) | ||||
(semantic_option::next): Remove the useless overloads. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: don't publish YY_EXCEPTIONS | ||||
We don't need them in the header file. | ||||
* data/skeletons/glr2.cc (YY_EXCEPTIONS): Define only in the | ||||
implementation file. | ||||
* tests/headers.at (Several Parsers): Also check glr2.cc. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
c++: demonstrate custom error messages in the examples | ||||
Let's use c++/glr to demonstrate custom error messages in C++ (not | ||||
just in glr2.cc). | ||||
* examples/c++/glr/c++-types.yy (report_syntax_error): New. | ||||
* examples/c++/glr/c++-types.test: Adjust. | ||||
* examples/c/bistromathic/parse.y: Comment changes. | ||||
* tests/local.at (AT_YYERROR_DEFINE(c++)): Use a nicer way to print | ||||
the lookakead's name. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: custom error messages | ||||
Reported by Tom Shields <thomas.evans.shields@icloud.com>. | ||||
<https://lists.gnu.org/r/bug-bison/2021-08/msg00003.html> | ||||
* data/skeletons/glr2.cc (context): New. | ||||
Use it to generate the error messages. | ||||
Add support for custom error messages. | ||||
* tests/calc.at: Check support for custom error messages. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
glr2.cc: start the transition to using symbol_type | ||||
Currently glr2.cc uses three variables/struct members to denote the | ||||
symbols' kind (or state), value and location. lalr1.cc has two types | ||||
for "complete" symbols: symbol_type and stack_symbol_type. Let's use | ||||
that model in glr2.cc too. | ||||
For a start use yyla (a symbol_type) to denote the lookahead, instead | ||||
of the triple yytoken, yylval and yylloc. This will make easier the | ||||
introduction of the "context" subclass, used in parse.error=custom. | ||||
It simplifies the code in several places. For instance from: | ||||
symbol_kind_type yytoken_current = this->yytoken;]b4_variant_if([[ | ||||
value_type yylval_current; | ||||
]b4_symbol_variant([this->yytoken], | ||||
[yylval_current], [move], [this->yylval])], [[ | ||||
value_type yylval_current = this->yylval;]])[]b4_locations_if([ | ||||
location_type yylloc_current = this->yylloc;])[ | ||||
to: | ||||
symbol_type yyla_current = std::move (this->yyla); | ||||
* data/skeletons/glr2.cc (yytoken, yylval, yylloc): Replace by... | ||||
(yyla): this. | ||||
Adjust all dependencies. | ||||
(yyloc_default): Remove, unused. | ||||
* tests/c++.at, tests/glr-regression.at, tests/types.at: C++11 is | ||||
required for glr2.cc. | ||||
Adjust to changes in glr2.cc. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
c++: add move assignments to the symbol type | ||||
This will be used in glr2.cc, which requires C++11. | ||||
* data/skeletons/c++.m4 (basic_symbol, by_kind): Add move assignment. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
c++: avoid using the obsolete names | ||||
* data/skeletons/c++.m4: Don't define obsolete identifiers in the case | ||||
of glr2.cc. Let's not start with technical debt. | ||||
* data/skeletons/glr2.cc, data/skeletons/lalr1.cc, | ||||
* data/skeletons/variant.hh: Use token_kind_type, not token_type. | ||||
* tests/c++.at, tests/local.at: Use value_type, not semantic_type. | ||||
2021-09-12 Akim Demaille <akim.demaille@gmail.com> | ||||
regen | ||||
2021-09-11 Akim Demaille <akim.demaille@gmail.com> | ||||
maint: post-release administrivia | ||||
* NEWS: Add header line for next release. | ||||
* .prev-version: Record previous version. | ||||
* cfg.mk (old_NEWS_hash): Auto-update. | ||||
2021-09-11 Akim Demaille <akim.demaille@gmail.com> | 2021-09-11 Akim Demaille <akim.demaille@gmail.com> | |||
version 3.8.1 | version 3.8.1 | |||
* NEWS: Record release date. | * NEWS: Record release date. | |||
2021-09-11 Akim Demaille <akim.demaille@gmail.com> | 2021-09-11 Akim Demaille <akim.demaille@gmail.com> | |||
portability: don't use strtof | portability: don't use strtof | |||
It is not available on HP-UX 11i. | It is not available on HP-UX 11i. | |||
Reported by Larkin Nickle <me@larbob.org>. | Reported by Larkin Nickle <me@larbob.org>. | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 309 lines changed or added |