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.

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

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

	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  <thirdedition@gmx.net>

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

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

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

	gnulib: update timevar
	See
	https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00005.html.

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

	style: modernize lib/vbitset.h

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

	style: modernize lib/vbitset.c

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

	style: modernize lib/lbitset.c

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

	style: modernize lib/lbitset.h

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

	style: modernize lib/ebitset.c

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

	style: modernize lib/ebitset.h

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

	style: modernize lib/bitsetv.c

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

	style: modernize lib/bitsetv.h

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

	style: modernize lib/bitsetv-print.c

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

	style: modernize lib/bitsetv-print.h

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

	style: modernize lib/bitset_stats.c

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

	style: modernize lib/bitset_stats.h

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

	style: modernize lib/bitset.c

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

	style: modernize lib/bitset.h

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

	style: modernize lib/bbitset.h

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

	style: modernize lib/abitset.c

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

	style: modernize lib/abitset.h

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

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

	C++: remove stray empty line
	* data/stack.hh: here.

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

	doc: spell check

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

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

	build: add missing gnulib libs
	* src/local.mk (LDADD): Here.

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

	build: let timevar be dealt with by gnulib
	* lib/local.mk (lib_libbison_a_SOURCES): Remove timevar.

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

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

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

	NEWS: document api.*.file changes

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

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

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

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

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

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

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

	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
