2018-11-21  Akim Demaille  <akim.demaille@gmail.com>

	version 3.2.2
	* NEWS: Record release date.

2018-11-21  Akim Demaille  <akim.demaille@gmail.com>

	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-21  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update

2018-11-20  Akim Demaille  <akim.demaille@gmail.com>

	NEWS: update

2018-11-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  Akim Demaille  <akim.demaille@gmail.com>

	c++: use YY_CPLUSPLUS
	* data/c++.m4: here.

2018-11-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  Akim Demaille  <akim.demaille@gmail.com>

	tests: compile the C++ examples with warnings
	* examples/c++/local.mk: Pass $(WARN_CXXFLAGS_TEST).

2018-11-20  Akim Demaille  <akim.demaille@gmail.com>

	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-20  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.

2018-11-09  Akim Demaille  <akim.demaille@gmail.com>

	version 3.2.1
	* NEWS: Record release date.

2018-11-08  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	NEWS: update

2018-11-06  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	build: minor fixes in doc/
	* doc/local.mk: Consistently use *.tmp for temporary files.
	Fix comments.

2018-11-05  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <ats@offog.org>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <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.

2018-10-29  Akim Demaille  <akim.demaille@gmail.com>

	version 3.2
	* NEWS: Record release date.

2018-10-29  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	cfg.mk: remove exceptions for timevar
	They appear to be no longer needed.

	* cfg.mk: here.

2018-10-28  Akim Demaille  <akim.demaille@gmail.com>

	style: clean up src/AnnotationList.c
	* src/AnnotationList.c: Reduce scopes.

2018-10-28  Akim Demaille  <akim.demaille@gmail.com>

	style: clean up print.c
	* src/print.c: Reduce scopes.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up bbitset.h
	* lib/libiberty.h: Inline in...
	* lib/bbitset.h: here.
	* lib/local.mk: Adjust.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up bitset.h
	* lib/bitset.h: Fix include order.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up vbitset.c
	* lib/vbitset.c: Reduce scopes, etc.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up lbitset.c
	* lib/lbitset.c: Reduce scopes, etc.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up ebitset.c
	* lib/ebitset.c: Reduce scopes, etc.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up bitset_stats.c
	* lib/bitset_stats.c: Reduce scopes, etc.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up bitset.c
	* lib/bitset.c: Reduce scopes, etc.

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	bitset: clean up abitset.c
	* lib/abitset.c: Reduce scopes, etc.

2018-10-27  Jannick  <thirdedition@gmx.net>

	xml2dot.xsl: fix typos in comments

2018-10-27  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	NEWS: prepare for 3.2

2018-10-26  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	doc: spell check
	* README, doc/bison.texi, examples/README, examples/c++/README: here.

2018-10-26  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	regen

2018-10-23  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	flex: work around more warnings
	* doc/bison.texi: here.

2018-10-23  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	printf returns a signed int
	* tests/local.at: Adjust location_print's signature.

2018-10-22  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	c++: minor simplification
	* data/stack.hh: Prefer a default argument value to two constructors.

2018-10-21  Akim Demaille  <akim.demaille@gmail.com>

	regen

2018-10-21  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	tests: refactor
	* tests/actions.at, tests/synclines.at: Prefer iteration to
	copy-paste.

2018-10-21  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	%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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	doc: reorder C++ sections
	* doc/bison.texi (C++ Parser Interface): Document before semantic_type
	and location_type.

2018-10-20  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	c++: do not exhibit private macros
	* examples/variant-11.yy: here.

2018-10-20  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	build: add missing gnulib libs
	Reported by Denis Excoffier.

	* lib/local.mk, src/local.mk: here.

2018-10-18  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.

2018-10-18  Akim Demaille  <akim.demaille@gmail.com>

	version 3.1.91
	* NEWS: Record release date.

2018-10-18  Akim Demaille  <akim.demaille@gmail.com>

	NEWS: update

2018-10-18  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	doc: improve the doc of the examples
	* examples/README: here.

2018-10-17  Akim Demaille  <akim.demaille@gmail.com>

	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  <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.

2018-10-17  Akim Demaille  <akim.demaille@gmail.com>

	version 3.1.90
	* NEWS: Record release date.

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	examples: don't generate the position/stack files
	* examples/variant-11.yy, examples/variant.yy: Require 3.2.

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	pacify syntax-checks
	* lib/lbitset.c, tests/c++.at: here.
	* cfg.mk: Add exceptions.

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	regen

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	regen

2018-10-16  Akim Demaille  <akim.demaille@gmail.com>

	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  <akim.demaille@gmail.com>

	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.

